開發人員工具和功能

本文件將概略說明一些可協助您使用 BigQuery 開發解決方案的功能和工具。

BigQuery 架構圖。

開發人員功能

本節將為使用 BigQuery 的開發人員介紹一些常見的內建功能。

載入及轉換資料

BigQuery 提供批次載入、串流傳輸和產生新資料的方法。如要選擇最適合您用途的選項,請參閱「載入資料簡介」。

查詢

BigQuery 經過最佳化調整,可在大型資料集上執行以 GoogleSQL 編寫的分析查詢。您可以排程、儲存及共用在 BigQuery 儲存空間、外部資料、儲存在其他雲端的資料,或公開資料集上執行的查詢。

遠端函式

您可以使用遠端函式,在 Cloud Run 函式Cloud Run 中部署函式,然後直接從 GoogleSQL 查詢中叫用這些函式。如果您需要使用 SQL 或 JavaScript 以外的語言實作函式,這個方法就特別實用。您可以使用遠端函式執行許多操作,例如將資料表中的文字從一種語言翻譯成另一種語言、啟動動作 (例如在資料表中的值低於閾值時通知您),或執行批次轉換作業 (例如套用機器學習 (ML) 模型)。

機器學習

您可以使用 BigQuery ML,透過 GoogleSQL 查詢建立及執行機器學習模型。

SQL 預存程序

您可以使用 SQL 預存程序,從其他查詢或預存程序中呼叫陳述式集合。您可以呼叫內建的儲存程序,或自行編寫儲存程序,藉此定義變數並實作控制流程。

半結構化資料

您可以使用 JSON 資料 (在 GoogleSQL 中),將半結構化資料匯入 BigQuery,而無須事先提供結構定義。您可以使用欄位存取運算子,直接查詢欄位和陣列元素的值。

時光旅行

您可以使用時間旅行功能,存取過去七天內任何時間點已變更或刪除的 BigQuery 資料。這項功能可讓您還原已更新、刪除或過期的資料表,即使您未備份資料也沒問題。

資料表快照

如需備份超出時間旅行視窗的資料表,可以使用資料表快照。BigQuery 只會儲存快照與其基礎資料表之間的不同位元組,因此資料表快照的儲存空間用量通常會比資料表的完整副本少。

資料表本機副本

您可以使用資料表複本來版本化資料表,並測試資料表結構變更。資料表複本是另一個資料表的輕量可寫副本。您只需為資料表本機副本中與基本資料表不同的資料付費,因此資料表本機副本一開始不會產生儲存空間費用。

外部資料表

您可以直接從 BigQuery 查詢外部資料表,例如不同資料庫中的資料、Cloud Storage 中的檔案,或其他雲端產品中的資料。 Google Cloud這項功能可讓您透過單一查詢執行 ELT 工作負載,或彙整 BigQuery 資料表與其他來源中變動頻繁的資料。

使用者自訂函式

您可以在 GoogleSQL 或 JavaScript 中編寫使用者定義函式 (UDF),並在各項查詢中重複使用。您可以將 UDF 授權為例行程序,這樣一來,您就可以與特定使用者或群組分享查詢結果,而不需要將基礎資料表的存取權授予這些使用者或群組。

BigQuery API

BigQuery 提供 REST 和 gRPC API,可透過程式輔助與不同類型的服務介接。您可以使用服務帳戶或使用者帳戶authenticate用戶端身分,以便存取 API。可用的 API 如下:

如要進一步瞭解各個 API 提供的功能,請參閱 BigQuery API 與程式庫總覽

BigQuery DataFrames 程式庫

BigQuery DataFrames 是 Python API,可用於在 BigQuery 中分析資料及執行機器學習作業。您可以查看 GitHub 上的 API 原始碼

如要開始使用 BigQuery DataFrames,請參閱 BigQuery DataFrames 快速入門指南

用戶端程式庫

用戶端程式庫可讓您使用偏好的程式設計語言 (包括 C#、Go、Java、Node.js、PHP、Python 和 Ruby) 直接存取 BigQuery API。如要查看 BigQuery API 的這些資源,請選取下列任一語言:

C#

Go

Java

Node.js

PHP

Python

Ruby

如要進一步瞭解如何在本機環境中使用 BigQuery 用戶端程式庫,請參閱「BigQuery API 用戶端程式庫」。

程式碼範例

您可以瀏覽 BigQuery 程式碼範例,這些範例提供完整程式碼片段,可用於完成 BigQuery 中的常見工作,例如建立資料表、列出連線、查看容量承諾和預留,以及載入資料。如要查看範例,請選取 API、工作和偏好的語言。

程式輔助工具和服務

下列服務已與 BigQuery 整合,可提供額外功能,協助您建構解決方案:

  • Dataproc 用於執行 Apache Hadoop 和 Apache Spark 工作流程的全代管服務。Dataproc 提供 BigQuery 連接器,可讓 Hadoop 和 Spark 直接處理 BigQuery 中的資料。
  • Dataflow. 用於大規模執行 Apache Beam 工作的全代管服務。Beam 的 BigQuery I/O 連接器可讓 Beam 管道讀取及寫入 BigQuery 資料。
  • Cloud Composer 在 Apache Airflow 上打造的全代管工作流程排程服務。BigQuery 運算子可讓 Airflow 工作流程管理資料集和資料表、執行查詢,以及驗證資料。
  • Pub/Sub 非同步且可擴充的訊息服務。Pub/Sub 提供 BigQuery 訂閱項目,可在收到訊息時將訊息寫入現有的 BigQuery 資料表。

持續整合和部署

您可以使用下列選項,透過 BigQuery 管理及自動化開發人員工作流程:

  • BigQuery Terraform 模組。這個模組可自動執行 BigQuery 資料集和資料表的例項化和部署作業。
  • bq 指令列工具。以 Python 為基礎的 BigQuery 指令列工具。
  • Dataform. 這項服務可讓資料分析師在 BigQuery 中開發、測試、版本管控,並安排資料轉換複雜的 SQL 工作流程。
  • dbt. 這個架構可協助您排定及部署工作流程、測試及編目資料,以及將程式碼片段重複使用為巨集。
  • Liquibase這項資料庫結構定義變更管理解決方案可讓您從開發環境到正式環境,快速且安全地修訂及發布變更。

ODBC 和 JDBC 驅動程式

您可以使用 Open Database Connectivity (ODBC) 和 Java Database Connectivity (JDBC) 驅動程式,以熱門程式設計語言編寫資料庫中立的軟體應用程式,將 BigQuery 連結至現有基礎架構。如需更多資訊和最新的驅動程式版本,請參閱「適用於 BigQuery 的 ODBC 和 JDBC 驅動程式」。

後續步驟