デベロッパー ツールと機能

このドキュメントでは、BigQuery でのソリューション開発に役立ついくつかの機能とツールの概要を説明します。

BigQuery アーキテクチャの図。

デベロッパー機能

このセクションでは、BigQuery を使用するデベロッパー向けの一般的な組み込み機能について説明します。

データの読み込みと変換

BigQuery には、新しいデータをバッチで読み込み、ストリーミング、生成する方法が用意されています。ユースケースに最適なオプションを選択するには、データの読み込みの概要をご覧ください。

クエリ

BigQuery は、大規模なデータセットで GoogleSQL で作成された分析クエリを実行するように最適化されています。BigQuery に格納されているデータ、外部データ、他のクラウドに保存されているデータ、一般公開データセットに対するクエリをスケジュール、保存、共有できます。

リモート関数

リモート関数を使用して、Cloud Run 関数または Cloud Run に関数をデプロイして、GoogleSQL クエリから関数を直接呼び出すことができます。この方法は、関数を SQL または JavaScript 以外の言語で実装する必要がある場合に特に便利です。テーブル内のテキストを別の言語に翻訳する、値がしきい値を下回った場合に通知などのアクションを実行する、機械学習(ML)モデルの適用などのバッチ変換を実行するなど、リモート関数を使用してさまざまな処理を行うことができます。

ML

BigQuery ML を使用すると、GoogleSQL クエリを使用して ML モデルを作成して実行できます。

SQL ストアド プロシージャ

SQL ストアド プロシージャを使用して、他のクエリまたはストアド プロシージャからステートメントのコレクションを呼び出すことができます。組み込みストアド プロシージャを呼び出すか、独自のプロシージャを作成して、変数を定義し、制御フローを実装できます。

半構造化データ

GoogleSQL の JSON データを使用すると、スキーマを事前に提供することなく、半構造化データを BigQuery に取り込むことができます。フィールド アクセス演算子を使用して、フィールドと配列要素の値を直接クエリできます。

タイムトラベル

タイムトラベルを使用して、過去 7 日間に変更または削除された BigQuery に保存されているデータにいつでもアクセスできます。この機能を使用すると、データをバックアップしていない場合でも、更新、削除、または期限切れのテーブルを復元できます。

テーブル スナップショット

タイムトラベル期間よりも後の時点のテーブルをバックアップする必要がある場合は、テーブル スナップショットを使用できます。BigQuery では、スナップショットとベーステーブルで異なるバイトのみが保存されるため、通常、テーブル スナップショットでは、使用するストレージがテーブルの完全なコピーよりも少なくなります。

テーブル クローン

テーブル クローンを使用して、テーブルをバージョン管理し、テーブル スキーマの変更をテストできます。テーブル クローンは、別のテーブルに対する軽量で書き込み可能なコピーです。ベーステーブルとは異なるテーブル クローンのデータ ストレージに対してのみ課金されるため、最初はテーブル クローンに対するストレージ コストは発生しません。

外部テーブル

別の Google Cloud データベース、Cloud Storage 内のファイル、別のクラウド プロダクト内のデータなど、BigQuery から直接外部テーブルをクエリできます。この機能を使用すると、単一のクエリで ELT ワークロードを実行できます。また、BigQuery テーブルと別のソースから頻繁に変化するデータを結合できます。

ユーザーが定義した関数

GoogleSQL または JavaScript でユーザー定義関数(UDF)を作成し、クエリ間で再利用できます。UDF をルーティンとして承認できます。これにより、特定のユーザーまたはグループに基になるテーブルへのアクセス権を付与せずに、そのユーザーまたはグループとクエリ結果を共有できます。

BigQuery API

BigQuery では、REST API と gRPC API を使用して、さまざまなタイプのサービスとプログラムでインターフェースできます。クライアント アカウント ID を認証し、サービス アカウントまたはユーザー アカウントを使用して API にアクセスできます。次の API を使用できます。

各 API が提供する内容の詳細については、BigQuery の API とライブラリの概要をご覧ください。

BigQuery DataFrames ライブラリ

BigQuery DataFrame は、BigQuery でのデータ分析と ML タスクの実行に使用できる Python API です。GitHub で API のソースコードを確認できます。

BigQuery DataFrames クイックスタートを使用して BigQuery DataFrame を使ってみましょう。

クライアント ライブラリ

クライアント ライブラリを使用すると、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 コマンドライン ツール。BigQuery 用の Python ベースのコマンドライン ツールです。
  • Dataform。データ アナリストが BigQuery でデータ変換を行う複雑な SQL ワークフローを開発、テスト、バージョン管理、スケジュール設定するためのサービス。
  • dbt。ワークフローのオーケストレーションとデプロイ、データのテストとカタログ化、コードのマクロとしての再利用のためのフレームワーク。
  • Liquibase。開発から本番環境まで、迅速かつ安全に変更を修正してリリースできるデータベース スキーマのチェンジ マネジメント ソリューション。

ODBC ドライバと JDBC ドライバ

Open Database Connectivity(ODBC)ドライバと Java Database Connectivity(JDBC)ドライバを使用すると、一般的なプログラミング言語でデータベースに依存しないソフトウェア アプリケーションを作成して、BigQuery を既存のインフラストラクチャに接続できます。詳細と最新のドライバ リリースについては、BigQuery 用の ODBC ドライバと JDBC ドライバをご覧ください。

次のステップ