Google CloudがBigQueryからAlloyDBへのエクスポートのGAを発表

Google CloudがBigQueryからAlloyDBへのエクスポートのGAを発表、BigQuery日本語版ページはプレビュー表示

公開:
CodeCampが提供するDX人材育成が可能なプログラミングやITが学べる公開講座

Google Cloudは、BigQueryからAlloyDBへのエクスポートの一般提供(GA)を発表しました。BigQueryからAlloyDBへのエクスポートは、データエンジニアリングチームが1つの宣言的なSQL文でデータを書き出せる機能です。[1]

この記事では、BigQueryからAlloyDBへのエクスポートでできることと、使い始める前に確認する条件を解説します。分析システム(OLAP)とトランザクションデータベース(OLTP)の間でデータを同期する処理は、しばしばリバースETLと呼ばれます。

目次
  1. BigQueryからAlloyDBへの直接エクスポート
  2. BigQueryからAlloyDBへのエクスポート手順
  3. AlloyDBへのエクスポートの利用条件
  4. プレビューのAlloyDBへのエクスポートと同期の選択

BigQueryからAlloyDBへの直接エクスポート

BigQueryからAlloyDBへのエクスポートでは、BigQueryが最適化された並列の接続でAlloyDBインスタンスと直接やり取りします。Cloud Storageの中間ファイルやgCloudスクリプト、一時テーブルの管理は要りません。[1]

BigQueryのエクスポートで不要になる作業

図1 BigQueryのエクスポートで不要になる作業

Copelの従来の処理

Copelは従来、Managed Service for Apache Airflowの複雑なDAGでリバースETLを制御していました。BigQueryからAlloyDBへ数億件のレコードを加工して書き出す過程は、壊れやすい中間段階を複数含むものでした。

Copelの従来の一時テーブルの入れ替え手順

図2 Copelの従来の一時テーブルの入れ替え手順

Apache Airflowは、本番テーブルの書き込みロックやデータ破損を防ぐため、SQLでAlloyDBに一時テーブルを作成していました。最後に、SQLのトランザクションブロックが本番テーブルを安全に削除し、一時テーブルを本番の名前に変える手順でした。

Copelのチームは、パイプラインの保守やファイルのステージングの慎重な管理を担っていました。複数サービスにまたがる複雑なIAMの権限借用や、システム全体の健全性の常時監視も必要でした。

Copelの置き換え後の処理

Copelは、従来の多段階の処理を1つのSQL文に置き換えました。数十行の複雑なスクリプトと独自のエラー処理を削除し、Airflow DAGは1つのBigQueryInsertJobOperatorタスクだけになりました。

Copelの置き換え後の処理

図3 Copelの置き換え後の処理

Copelは、高性能な組み込みのリバースETLへ移行し、大規模なオーケストレーションのボトルネックを解消しています。スマートメーターのテレメトリーも、移行によって規模を拡大しました。

Google Cloudが挙げる4利点

Google Cloudは、1つの宣言的なSQL文による方法で、複雑なETLミドルウェアが完全に不要になるとしています。同社が挙げる組み込みのエクスポート方式の利点は、次の4点です。

費用の削減:Cloud Storageを経由せず中間保存とAPI読み書きの料金がかからない/セキュリティ:Googleの内部ネットワークで移動し読み取り可能なCSVファイルに出力しない/保守の手間:エラーが1つのSQL文に収まり調査やログ確認がしやすい/並列の書き込み:BigQueryの並列処理とAlloyDBの性能で毎分400万件超

Copelの全件エクスポート(Test 2)では、N2(16 vCPUs、128 GB RAM)のAlloyDBへ207,484,577行を書き出しました。エクスポートの処理量は、毎分約420万行でした。


Python研修一覧はこちら

目的に合うPython研修を一覧形式から探したい方は、ぜひご利用ください。

Python研修を比較する

Java研修一覧はこちら

目的に合うJava研修を一覧形式から探したい方は、ぜひご利用ください。

Java研修を比較する

PHP研修一覧はこちら

目的に合うPHP研修を一覧形式から探したい方は、ぜひご利用ください。

PHP研修を比較する

新入社員研修

目的に合う新入社員研修を一覧形式から探したい方は、ぜひご利用ください。

新入社員研修を比較する

全ての研修からも探したい方はこちら

BigQueryからAlloyDBへのエクスポート手順

Copelのコード例は、一般提供(GA)の機能でhourly_metricsをTO_JSONでJSONBに変換する構成です。Google Cloudは、値がエクスポート時にAlloyDBの列へ完全に対応付けられ、入れ子の構造もPostgreSQL側でクエリやインデックスの対象にできるとしています。[1]

プレビューの機能では、BigQueryのEXPORT DATA文でBigQueryテーブルからAlloyDBテーブルへデータをエクスポートできます。エクスポート前にクエリでデータの処理や絞り込みも可能です。[2]

AlloyDBへのエクスポート前の準備(プレビュー)

図4 AlloyDBへのエクスポート前の準備(プレビュー)

このエクスポート(プレビュー)では、宛先のデータベースとスキーマ、テーブルを含むAlloyDBクラスタと、READY状態のPRIMARYインスタンスを事前に用意します。AlloyDBへのBigQuery接続はユーザー名とパスワード認証のみで作成し、データベースユーザーに宛先テーブルのINSERTと宛先スキーマのUSAGEの権限が必要です。

必要なIAMロールの確認

BigQuery側の各ロールはプロジェクトに、AlloyDBクライアントは接続サービスアカウントに付与します。カスタムロールやほかの事前定義ロールでも権限を得られます。

エクスポート:BigQueryデータ閲覧者(roles/bigquery.dataViewer)/抽出ジョブの実行:BigQueryユーザー(roles/bigquery.user)/接続の使用:BigQuery接続ユーザー(roles/bigquery.connectionUser)/AlloyDBインスタンスへの接続:接続サービスアカウントにroles/alloydb.client

プレビューのEXPORT DATA文

プレビュー表示の機能では、alloydb_optionsのJSON文字列で宛先を指定します。宛先のスキーマやテーブル、最大接続数を指定でき、必須はtableだけです。

alloydb_optionsの主な項目

図5 alloydb_optionsの主な項目

次のプレビュー表示の例は、mydataset.table1から選んだフィールドをAlloyDBのmy_target_tableへエクスポートします。

EXPORT DATA
  WITH CONNECTION `myproject.us-central1.my-alloydb-conn`
  OPTIONS (
    format='ALLOYDB',
    uri="https://alloydb.googleapis.com/v1/projects/myproject/locations/us-central1/clusters/my-cluster/instances/my-instance",
    alloydb_options="""{
      "schema": "public",
      "table": "my_target_table"
    }"""
  )
AS SELECT
  col1 AS id,
  col2 AS name,
  col3 AS value
FROM
  `mydataset.table1`;

公式資料からの抜粋:AlloyDB にデータをエクスポートする(リバース ETL)(データのエクスポート)。対象版・範囲:BigQuery日本語版ページ(最終更新日2026-11-11 UTC、プレビュー表示の機能)。

上記のコード(プレビュー)では、formatにALLOYDBを指定し、uriで宛先のAlloyDBインスタンスを示しています。SELECT文の各列には、宛先テーブルの列名と一致する別名が必要です。


Python基礎・実践(Django)

企業・法人向けのPython研修では、基礎から応用まで体系的に学べます。

Python研修の詳細

DX社員研修

企業・法人向けのDX研修では、実務に繋がるリスキリングでITレベルを向上させます。

DX研修の詳細

Javaエンジニア育成研修

企業・法人向けのJavaエンジニア育成研修では、Javaの基礎から応用まで確実に習得できます。

Java研修の詳細

新卒・新入社員向け研修

企業・法人に新入社員・新卒社員に向けたプログラミング研修を提供しています。

新入社員研修の詳細

コードキャンプのIT研修を全て見る

AlloyDBへのエクスポートの利用条件

BigQueryからAlloyDBへのエクスポートは一般提供と発表されましたが、最終更新日2026-11-11 UTCのBigQuery日本語版ページはプレビュー表示です。本番環境で使う場合は、一般提供前のサービス規約の対象かどうかを含め、適用される提供状態を事前に確かめます。[1][2]

利用前に確かめる主な条件

図6 利用前に確かめる主な条件

プレビュー版のAlloyDBへのエクスポートでは、BigQuery Standardエディションとオンデマンドコンピューティングは対象外です。QUERYの割り当てがあるBigQuery EnterpriseかEnterprise Plusの予約が必要です。

リージョンの組み合わせ

プレビュー版では、単一リージョンのBigQueryデータセットとAlloyDBインスタンスを、まったく同じGoogle Cloudリージョンに置く必要があります。USマルチリージョンのデータセットはus-central1、EUマルチリージョンはeurope-west4のAlloyDBインスタンスにだけ書き出せます。

データセットの場所と書き出せる先

図7 データセットの場所と書き出せる先

上記以外の組み合わせのクロスリージョンエクスポートは、サポートされていません。プレビューと表示された機能で日本のリージョンのBigQueryデータセットを書き出す場合は、AlloyDBインスタンスも同じリージョンに置く構成を前提に計画します。

書き込みに関する制限

プレビュー版のAlloyDBへのエクスポートはバッチエクスポート専用で、継続的クエリでは使えません。ほかの制限は次のとおりです。

プレビュー機能の制限

追加:新しい行の追加のみ、既存レコードは変更も削除もしない/重複:PRIMARY KEYかUNIQUE制約が無く同じデータの複数回エクスポートで重複/upsert:一意のキーが一致しても既存レコードを更新しない/制約違反:PRIMARY KEYかUNIQUE制約違反の行でジョブ全体が失敗/同時実行:同じ表への同時ジョブは非推奨、データ損失の恐れ/データ型:BigQueryのARRAY、BYTES、GEOGRAPHY、INTERVAL、STRUCTは非対応/省略列:SELECTで省いた宛先の列がNOT NULLで既定値が無いと失敗

プレビューと表示された機能では、宛先テーブルへのPRIMARY KEY制約かUNIQUE制約の定義が推奨対象です。同機能では、抽出ジョブなどのBigQueryジョブは最大6時間で、非常に大規模なエクスポートは複数の小さなジョブへの分割が推奨されます。

エクスポートにかかる料金

EXPORT DATA文によるAlloyDBへのエクスポート(プレビュー)に適用されるのは、BigQuery容量コンピューティングの料金です。書き出したデータをAlloyDBに保存すると、AlloyDB for PostgreSQLの料金も発生します。

EXPORT DATA文でAlloyDBへエクスポートする場合の費用

図8 EXPORT DATA文でAlloyDBへエクスポートする場合の費用

プレビューのAlloyDBへのエクスポートと同期の選択

AlloyDBへのエクスポートのGAが発表された一方、日本語版ページのEXPORT DATA文とテーブルの同期はプレビュー表示です。テーブルの同期は、SQLによる変換が要らないテーブル全体のコピーや自動ミラーリングに使えます。[1][2]

EXPORT DATA文とテーブルの同期の違い(プレビュー表示)

図9 EXPORT DATA文とテーブルの同期の違い(プレビュー表示)

プレビューと表示された機能を使う場合、クエリで加工や絞り込みをしてから既存のテーブルへ行を追加したいときの候補は、EXPORT DATA文です。BigQueryのテーブルを読み取り専用の表として定期的に映したいときは、定期的な同期(ミラーリング)が候補です。

編集部は、プレビューと表示された機能のEXPORT DATA文で同じデータを繰り返し書き出す場合に、宛先テーブルの制約と同時実行の扱いを先に決めることを提案します。決める内容は、宛先のAlloyDBテーブルのPRIMARY KEY制約かUNIQUE制約と、同じ宛先テーブルへのEXPORT DATAジョブを同時に実行しない運用です。

出典

  1. ^ Google Cloud. 「From OLAP to OLTP: How Copel Simplified Reverse ETL Using BigQuery's Native Export to AlloyDB」. https://cloud.google.com/blog/products/data-analytics/reverse-etl-bigquery-exports-to-alloydb, (参照 26-11-13).
  2. ^ Google Cloud. 「AlloyDB にデータをエクスポートする(リバース ETL)」. https://docs.cloud.google.com/bigquery/docs/export-to-alloydb?hl=ja, (参照 26-11-14).

※本記事は公式の一次情報を基に編集しています。内容はAIで確認していますが、誤りや最新情報との差異がある場合は、以下フォームよりご報告ください。

修正・削除・掲載などの依頼はこちら
ブログに戻る

コメントを残す

コメントは公開前に承認される必要があることにご注意ください。

企業・法人向けのIT・プログラミング・生成AI研修を探す、比較する - IT・プログラミングを知って学べるコネクトメディア CodeCampが提供するDX人材育成が可能なプログラミングやITが学べる公開講座 - IT・プログラミングを知って学べるコネクトメディア コードキャンプが提供する無料で学べるプログラミングスクール講座 - IT・プログラミングを知って学べるコネクトメディア コードキャンプDX人材育成研修 - IT・プログラミングを知って学べるコネクトメディア 3.5日の研修で、年間1,600時間の削減効果が見込まれる。東京きらぼしフィナンシャルグループのDX人材育成事例 - IT・プログラミングを知って学べるコネクトメディア 配属3ヶ月で30%の生産性向上を実現するいよぎんコンピュータサービスの新人研修に迫る - IT・プログラミングを知って学べるコネクトメディア 金融業界の業務効率化を加速するニッセイアセットマネジメントの生成AI×GAS活用研修事例 - IT・プログラミングを知って学べるコネクトメディア 【製造業のDX人材育成事例】デジタル人材の即戦力化を実現する、日本ガイシ株式会社の異動者向オンボーディング研修 - ITやプログラミングを知って学べるコネクトメディア フューチャーアーキテクト株式会社が実現した新入社員向けIT研修プログラムでタスクフォース制度が主体的な学びと成長を生み出す - IT・プログラミングを知って学べるコネクトメディア コードキャンプDX人材育成研修 - IT・プログラミングを知って学べるコネクトメディア コードキャンプIT・プログラミング研修事例/【IT新入社員研修】オンラインとオフラインの最適バランスを実現したFutureOneの導入事例 - IT・プログラミングを知って学べるコネクトメディア コードキャンプIT・プログラミング研修事例/【新入社員研修】柔軟なハイブリッド型Java研修で実現した新卒20名の成長と成果|サークレイス株式会社 - ITやプログラミングを知って学べるコネクトメディア コードキャンプIT・プログラミング研修事例/現場により近いところにデジタルを根付かせるDX基礎講座研修|株式会社ブリヂストン - ITやプログラミングを知って学べるコネクトメディア コードキャンプIT・プログラミング研修事例/業務の効率化・DX推進に向けたIT人材育成への第一歩|株式会社カナエ - ITやプログラミングを知って学べるコネクトメディア 企業・法人向けのIT・プログラミング研修 - ITやプログラミングを知って学べるコネクトメディア

What's New

新着記事

対象者別で探す

子供(小学生・中学生・高校生)向け
プログラミング教室検索する

子供(小学生・中学生・高校生)がロボットやプログラミング言語を学ぶことができるオフラインからオンラインスクールを検索、比較することが可能です。

子供(小学生・中学生・高校生)
プログラミング教室検索する

ITやプログラムなどの
最新情報を検索する

日々、新しいITやプログラミング言語の情報が流れていきますが、特定の情報を時系列でニュースやコラムを確認することができます。

ITやプログラムなどの
最新情報を検索する