データ変換の概要
このドキュメントでは、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 データ準備の概要をご覧ください。
次のステップ
- DML の詳細については、データ操作言語(DML)でデータを変換するをご覧ください。
- Dataform の詳細については、Dataform の概要をご覧ください。