データ変換の概要

このドキュメントでは、BigQuery テーブルでデータを変換するさまざまな方法について説明します。

データ統合の詳細については、データの読み込み、変換、エクスポートの概要をご覧ください。

データの変換方法

BigQuery では、次の方法でデータを変換できます。

  • データ操作言語(DML)を使用して BigQuery テーブル内のデータを変換します。
  • マテリアライズド ビューを使用して、クエリの結果を自動的にキャッシュに保存し、パフォーマンスと効率を向上させます。
  • 継続的クエリを使用して、受信データをリアルタイムで分析し、出力行を BigQuery テーブルに継続的に挿入するか、Pub/Sub または Bigtable にエクスポートします。
  • Dataform を使用して、BigQuery でバージョンを開発、テスト、管理し、SQL ワークフローをスケジュールします。
  • コンテキスト対応の AI 生成変換推奨事項を使用してデータ準備を行い、分析用にデータをクリーニングします。

次の表に、各変換方法のさまざまな特性を示します。

変換方法 変換ターゲット 定義方法 変換の頻度
データ操作言語(DML) テーブル(設置済み) SQL DML ユーザーが開始またはスケジュール
マテリアライズド ビュー マテリアライズド ビュー SQL クエリ 自動更新または手動更新
継続的クエリ テーブルPub/Sub トピックBigtable テーブル EXPORT DATA を使用した SQL クエリ 連続
Dataform テーブル Dataform コア(SQLX) スケジュール設定(ワークフロー)
データの準備 テーブル ビジュアル エディタ スケジュール設定済み

BigQuery テーブルの変更履歴を確認して、指定した期間にテーブルに対して行われた変換を調べることもできます。

DML でデータを変換する

データ操作言語(DML)を使用して、BigQuery テーブルのデータを変換できます。DML ステートメントは、既存のテーブルデータを操作して行の追加や削除、既存の行のデータの変更、別のテーブルの値とのデータの統合を行う GoogleSQL クエリです。DML 変換はパーティション分割テーブルでもサポートされています。

複数の DML ステートメントを同時に実行できます。その場合、BigQuery はデータを順次変換する複数の DML ステートメントをキューに入れます。BigQuery は、変換タイプに基づいて同時実行 DML ステートメントの実行方法を管理します。

マテリアライズド ビューでデータを変換する

マテリアライズド ビューは事前に計算されたビューで、パフォーマンスと効率を向上させるために SQL クエリの結果を定期的にキャッシュに保存します。BigQuery は、マテリアライズド ビューの事前に計算された結果を利用し、可能な場合にはベーステーブルからの差分のみを読み取って最新の結果を計算します。

ベーステーブルが変更されるとバックグラウンドでマテリアライズド ビューが事前に計算されます。ベーステーブルのすべての増分データの変更が自動的にマテリアライズド ビューに追加されます。ユーザーが操作する必要はありません。

継続的クエリでデータを変換する

継続的クエリは、継続的に実行される SQL ステートメントです。継続的クエリを使用すると、BigQuery で受信データをリアルタイムで分析できます。継続的クエリによって生成された出力行を BigQuery テーブルに挿入することも、Pub/Sub または Bigtable にエクスポートすることもできます。

Dataform でデータを変換する

Dataform を使用すると、データ統合の抽出、読み込み、変換(ELT)プロセスにおけるデータ変換を管理できます。ソースシステムから元データを抽出し、BigQuery に読み込んだ後、Dataform を使用して、整理、テスト、ドキュメント化した一連のテーブルに変換できます。DML では、データの変換方法を正確に BigQuery に指示することで命令型アプローチを取りますが、Dataform では宣言型ステートメントを記述し、Dataform がその状態を実現するために必要な変換を決定します。

Dataform では、データソースの宣言からテーブル、ビュー、マテリアライズド ビューの出力まで、データ変換を行う SQL ワークフローの開発、テスト、バージョン管理を行うことができます。SQL ワークフローは、Dataform コアまたは純 JavaScript を使用して開発できます。Dataform コア は、SQLX と JavaScript で SQL を拡張するオープンソースのメタ言語です。Dataform コアを使用すると、依存関係の管理、自動データ品質テストの設定、コード内のテーブルまたは列の説明のドキュメント化を行うことができます。

Dataform は、SQL ワークフロー コードをリポジトリに保存し、Git を使用してファイルの変更を追跡します。Dataform の開発ワークスペースを使用すると、同じリポジトリで作業している他のユーザーの作業に影響を与えることなく、リポジトリのコンテンツを操作できます。Dataform リポジトリは、Azure DevOps Services、Bitbucket、GitHub、GitLab などのサードパーティの Git プロバイダに接続できます。

Dataform リリース構成とワークフロー構成を使用して、SQL ワークフローを実行またはスケジュールできます。あるいは、Cloud Composer または Workflows と Cloud Scheduler を使用して実行をスケジュールすることもできます。実行中、Dataform は SQL ワークフローのオブジェクト依存関係の順に BigQuery で SQL クエリを実行します。実行後、定義済みのテーブルとビューを BigQuery で分析に使用できます。

Dataform でのデータ変換 SQL ワークフローの作成の詳細については、Dataform の概要Dataform の機能の概要をご覧ください。

BigQuery でのデータの準備

データ準備の負担を軽減するために、BigQuery では Gemini によって生成された変換の候補を使用してデータをクリーニングできます。BigQuery のデータ準備では、次の支援が提供されます。

  • 変換とデータ品質ルールの適用
  • データの標準化と拡充
  • スキーマ マッピングの自動化

すべてのデータに対して変更を実行する前に、データのプレビューで結果を検証できます。

詳細については、BigQuery データ準備の概要をご覧ください。

次のステップ