> For the complete documentation index, see [llms.txt](https://gdgcloud-taipei.gitbook.io/google-cloud-platform-in-practice/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://gdgcloud-taipei.gitbook.io/google-cloud-platform-in-practice/google-cloud-shang-de-da-zi-liao-chu-li-fu-wu/bigquery/bigquery-jian-jie.md).

# BigQuery簡介

BigQuery是GCP家族中的大資料儲存與查詢的服務，可以提供大量的資料儲存，且以結構化查詢(SQL)方式查詢您儲存的資料，並且可以支援資料表之間的Join動作。

## BigQuery的特色

### 高效能的資料倉儲服務

BigQuery為Google Fully-managed的服務，也是一個可以提供類似資料倉儲與分析服務的系統。除此之外，BigQuery以分散式的Column Base方式儲存資料，並透過MapReduce的概念以Google背後強大的運算能力提供資料的查詢與分析能力，讓BigQuery以近似即時(Near Realtime)的速度提供使用者查詢與分析。

### 高可靠且安全的資料儲存服務

透過Google的管理，BigQuery具備更高的安全性、運作效能並且落實NoOps的概念，提供使用者無需花費力氣在底層系統的管理、延展與效能的監控等。另外，在資料儲存方面，BigQuery提供資料多份複製的能力，讓資料在儲存上無需擔心遺失的風險。

### 便宜的儲存服務

BigQuery提供想要使用這個服務的用戶可以從第一筆資料開始儲存，多過免費額度後才開始計費，每使用到超出的資源，則以超出的資源計費，無需有資料倉儲(Data Warehouse)系統的前置花費，也無需在前期投入難以預計的成本但卻無法有效地發揮出資料的價值。

### 可自動擴展以適應資源的使用量的能力

BigQuery的架構上，以分散儲存概念為基礎，搭配MapReduce的方式把運算分散給Google資料中心的大量運算資源來處理，在架構上，可以自動判斷每個查詢在最有效的時間內執行所需要的運算資源，進行各項資源的自動調度與調整，讓BigQuery足以應付大量的使用者及其大量的資料查詢與分析。

### 具備彈性的資料儲存能力

BigQuery提供使用者規劃資料表從一個欄位到一萬個欄位，並且可以透過資料表的修改擴充欄位大小。除此之外BigQuery提供巢狀的結構儲存方式，讓資料的儲存可以在特定屬性的欄位中再儲存另一個資料結構，以擴充資料的儲存能力。

### 簡單使用

為了符合眾多處理、使用大資料的用戶需求，BigQuery創新以結構化查詢(SQL)的方式提供使用者在可接受的時間查詢出所需要的資料，並且可以支援多個Table的Join，讓原本需要大量前置作業的資料倉儲處理方式變得更簡單。加上使用者毋須事先準備伺服器、儲存空間、備援資源等等，讓傳統大資料工程前置作業在轉換BigQuery後變得更加簡單。

## BigQuery與GCP其他服務的整合

BigQuery是GCP上大資料處理重要的一環，透過與其他GCP工具搭配，可以達到更多情境的應用。

### Cloud Storage的整合

BigQuery的資料上傳與下載都可以透過Cloud Storage來做為中介。上傳的部分透過Cloud Storage搭配bq import指令做上傳，可以保證資料進入BigQuery儲存體，避免遺失；下載部分透過Cloud Storage，可以支援資料集、查詢結果或是View的匯出儲存。

### Cloud Logging的整合

Cloud Logging服務在使用上具有資料保存的一些限制，透過自訂匯出到BigQuery可以讓所有資料以可查詢的方式儲存，並且支援長期儲存的降價優惠，讓資料得以更長時間的保存，也可支援臨時急需的查詢能力。

### Dataflow的整合

BigQuery支援Dataflow的Input與Output。在BigQuery Input Source中，可以提供Dataflow調用歷史資料與Pipeline中的資料進行關聯處理；在BigQuery Output Source中，更可以支援PubSub這樣的Streaming Pipeline做到串流資料的儲存。

### Datalab的整合

Datalab是GCP大資料家族中支援程式化查詢與分析輸出的工具，透過與BigQuery Data Source的結合，讓Dataflow可以調用BigQuery中大數據的分析結果，在Datalab中製作成報表與圖表，提供檢視者更即時的資料查詢服務。

## BigQuery的價格計算概念

BigQuery是以Column的方式儲存資料表中的資料，並且需要大量的運算機器來處理資料調用後的運算處理，因此在計費上，主要以儲存量與查詢量來做計費...

* 儲存量費用：BigQuery儲存之資料以GCS Nearline相等的價格做計算(0.02 USD per GB per month)。
* 查詢量費用：BigQuery在執行查詢時，透過調用的數量所估算的資料量大小來計費，例如查詢某個Table時，只有Select其中兩個欄位，則費用以該兩個欄位的總大小做計算。
* API request費用：舉凡BigQuery上所有的操作都需要透過BigQuery RESTful API進行處理，而API需要負擔每次呼叫費用，也必須在該API的限制下執行。(如果有需要擴充限制，可詢問Google Support來進行處理)
* 免費額度：BigQuery目前提供給使用者查詢的免費額度 1TB，使用者每月查詢量在 1TB 的範圍內將享有免費折扣，超過部分以超出之使用量計費。
* 儲存優惠：今年度GCPNext宣布之優惠消息，BigQuery上的儲存在資料表無變動的情況下，將會自動折扣，費用半價！

BigQuery推出至今，尚無其他資料儲存、分析服務可以匹敵，讓許多大資料應用的相關服務可以透過BigQuery得到許多好處，也得以發展出許多創意。而Google給使用者的回報，也不斷地以效能及優惠價格反映在我們的使用上！

## 參考

* BigQuery的Quota限制：<https://cloud.google.com/bigquery/quota-policy>


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://gdgcloud-taipei.gitbook.io/google-cloud-platform-in-practice/google-cloud-shang-de-da-zi-liao-chu-li-fu-wu/bigquery/bigquery-jian-jie.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
