因為工作需要,主管要我研讀BigQuery以下主題,整理成筆記如下(其實ChatGPT都查得到XD):
- BigQuery的Region和Multi-Region的比較:
- 地理範圍:
Multi-Region:多個資料中心區域的集合
- 可用性:
Region:較低(依賴單一區域)
Multi-Region:較高(跨多個區域)
- 容錯能力:
Region:一般
Multi-Region:高,可在區域故障時持續提供服務
- 成本:
Region:通常較低
Multi-Region:通常略高
- 合規性控制:
Region:較好(可明確指定區域)
Multi-Region:一般(資料分散於多區域)
- 延遲:
Region:較低(與應用同區時)
Multi-Region:較高(分散式資料訪問)
- BigQuery在設定DataSet時必須決定Region或是Multi-Region,決定後就無法更改。
- BigQuery的基本資料類型(Primitive Data Types)
- INT64:整數類型,64位元帶號整數(又稱INTEGER)
- FLOAT64:浮點數類型(又稱FLOAT)
- NUMERIC:高精度數值,最多38位數字(29位小數),適用於財務計算
- BIGNUMERIC:更高精度的數值類型,最多76位數字(38位小數)
- BOOL:布林值,TRUE或FALSE(又稱BOOLEAN)
- STRING:字串類型,可儲存UTF-8字元(不限長度)
- BYTES:二進位資料,儲存原始資料如圖片、加密資料等
- BigQuery的日期與時間類型(Date and Time Types)
- DATE:僅包含日期,格式為YYYY-MM-DD
- DATETIME:日期與時間(不含時區),格式為YYYY-MM-DD HH:MM:SS[.SSSSSS]
- TIME:僅包含時間,格式為HH:MM:SS[.SSSSSS]
- TIMESTAMP:日期與時間(含時區),以 UNIX 時間戳表示
- BigQuery的複合資料類型(Complex Data Types)
- STRUCT(或RECORD):結構型資料,可視為一個巢狀的欄位組,例如JSON物件
- ARRAY:陣列類型,可儲存同一資料類型的多個值,例如ARRAY<STRING>
- BigQuery的收費機制主要分為兩個部分:查詢成本和儲存成本
- 查詢成本有兩種收費模式:
- 按需計費:查詢時會根據實際掃描的資料量(不論實際返回多少資料)來計算費用;可透過EXPLAIN或Dry Run功能預估查詢會處理多少資料
- 訂閱計費:根據所購買的「查詢處理單位」或「slots」收費,適合大型企業或有穩定且大量查詢需求的用戶;可以預估費用,不論查詢量多寡
- 儲存成本也有兩種收費模式:
- 主動儲存:$0.02美元/GB/月,最近90天內有修改或寫入的資料
- 長期儲存:$0.01美元/GB/月,資料在90天內未被修改,自動轉為長期儲存,不需額外操作