データ変換の概要
このドキュメントでは、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 の概要をご覧ください。