Google CloudがLakehouse runtime catalogの構成例を紹介

Google CloudがLakehouse runtime catalogの構成例を紹介、3つの外部カタログにあるデータを移行せず照会する接続手順を提示

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

構成例として、Google Cloudでは、BigQueryがLakehouseを通じて外部のApache Iceberg REST catalogのメタデータを連携します。データを移行しないまま、DatabricksやSnowflake、AWS Glueのデータをその場で照会し、会話型分析に使えます。[1]

この記事で解説するのは、Lakehouse runtime catalogでできることや接続の手順、今回の構成例が扱う範囲です。接続したデータを自然言語で調べる手段は、BigQueryの会話型分析です。

目次
  1. Lakehouse runtime catalogを使う構成でできること
  2. フェデレーションカタログの設定手順
  3. Lakehouse runtime catalogを使う構成例の範囲
  4. 従来の抽出パイプライン方式との違い

Lakehouse runtime catalogを使う構成でできること

BigQueryとborderless Lakehouseは、オープンなApache Iceberg REST catalog仕様を基盤にしています。データを計算エンジンへ移す代わりに、Google Cloudの計算処理と生成AIをデータのある場所へ持ち込む構成です。[1]

提供状態の指定がない構成例では、Lakehouse runtime catalogは、他のクラウドからメタデータを同期します。BigQueryや外部のオープンソースエンジンは、Apache Iceberg REST catalogエンドポイントを通じ、移行していないデータを照会できます。

Lakehouse runtime catalogの構成例でできること

図1 Lakehouse runtime catalogの構成例でできること

接続先の例は、Databricks Unity CatalogやSnowflake Horizon Catalog、AWS Glue Data Catalogです。3つともApache Iceberg REST catalog仕様に対応するため、同じ接続パターンを適用できます。

構成例では、3つの外部カタログにまたがるデータは、1つのクエリで結合できます。データを移行しないまま、BigQueryの会話型分析で自然言語を使える構成です。

フェデレーションクエリ実行時の分離

フェデレーションクエリの実行時、Lakehouse runtime catalogはメタデータの同期とストレージへのアクセスを分けます。利用者が定義した更新スケジュールに基づき、リモートのカタログからスキーマやスナップショットのポインター、テーブル定義を定期的に同期します。

メタデータ同期と直接読み取りの違い

図2 メタデータ同期と直接読み取りの違い

データの読み取りは、互換性のあるエンジンがAmazon S3などのリモートのオブジェクトストレージからParquetデータファイルを直接読む形です。読み取りには、リモートのプラットフォームが発行する一時的な資格情報を使います。

クエリ処理の実行場所

クエリの処理を担うのは、BigQueryやManaged Service for Apache SparkなどのGoogle Cloudの計算資源です。実行中に、リモートのDatabricksクラスターやSnowflakeの仮想ウェアハウス、AWSの計算インスタンスは呼び出されません。

クエリ実行時に使われる計算資源

図3 クエリ実行時に使われる計算資源


Python研修一覧はこちら

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

Python研修を比較する

Java研修一覧はこちら

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

Java研修を比較する

PHP研修一覧はこちら

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

PHP研修を比較する

新入社員研修

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

新入社員研修を比較する

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

フェデレーションカタログの設定手順

フェデレーションカタログの認証は、3段階の手順に従います。Google Cloudでフェデレーションカタログを作成し、構成から自動生成のサービスアカウントを取得したうえで、リモートのプラットフォームでアクセス権を付与します。[1]

接続完了には、Databricksのサービスプリンシパルに、Issuer URLがhttps://accounts.google.comのフェデレーションポリシーが必要です。Subjectはdescribeコマンドが返す数値のsubject ID、Audiencesはhttps://accounts.cloud.databricks.comです。

認証の3段階と接続を完了する操作

図4 認証の3段階と接続を完了する操作

以降は、Databricks Unity Catalogを連携先にする場合の手順を扱います。まずDatabricks側でカタログとテーブルを準備し、その後にGoogle Cloud側でカタログを作成します。

Databricks側の事前準備

Unity Catalogでの連携アクセスには、対象のスキーマとDatabricksに登録済みの外部ロケーションとの関連付けが必要です。Databricks SQL workspaceで実行するコード例の主な操作と補足は、以下の通りです。

カタログ作成:CREATE CATALOGでdbx_retail_dbを作成/保存先の宣言:コード例ではスキーマにMANAGED LOCATIONを指定/テーブル作成:USING icebergでIcebergテーブルを作成/サンプルデータ:AIで生成することも可能

外部エンジンがテーブルを読む前に、Databricksのメタストア管理者がメタストアの詳細タブでExternal data accessを有効にする必要があります。Databricks Service Principalは、Databricks Admin accountのUser Managementで作成し、UUIDを控えます。

フェデレーションカタログの作成

次に、gcloudコマンドラインツールを使い、Google Cloud内にフェデレーションカタログを作成します。作成には、DatabricksのワークスペースURLと、サービスプリンシパルのアプリケーションIDが必要です。

カタログ作成コマンドの主な指定

図5 カタログ作成コマンドの主な指定

作成コマンドの例は、次の通りです。

export GCP_PROJECT_ID="my-lakehouse-project"
export GCP_REGION="us-central1"

gcloud alpha biglake iceberg catalogs create dbx_retail_db \
  --project="$GCP_PROJECT_ID" \
  --primary-location="$GCP_REGION" \
  --catalog-type="federated" \
  --federated-catalog-type="unity" \
  --unity-instance-name="dbc-xxxxxxxx-xxxx.cloud.databricks.com" \
  --unity-catalog-name="dbx_retail_db" \
  --unity-service-principal-application-id="6ea7b861-c5a5-xxxx-xxxx-xxxxxxxxxxxx" \
  --refresh-interval="300s"

公式資料からの抜粋:Cross-cloud conversational analytics made simple with open standards(Connect Databricks to BigQuery)。対象版・範囲:gcloud alphaコマンドによる構成例(提供状態の指定なし)。

上記のコードでは、--catalog-typeにfederated、--federated-catalog-typeにunityを指定しています。--primary-locationにはus-central1を渡し、--refresh-intervalは300sとする例です。

作成後は、カタログをdescribeして、割り当てられたサービスアカウントを表示します。コード例でのdescribeの実行方法は、以下の通りです。

gcloud alpha biglake iceberg catalogs describe dbx_retail_db \
  --project="$GCP_PROJECT_ID"

公式資料からの抜粋:Cross-cloud conversational analytics made simple with open standards(Connect Databricks to BigQuery)。対象版・範囲:gcloud alphaコマンドによる構成例(提供状態の指定なし)。

上記のコードでは、describeの対象にdbx_retail_dbを指定し、--projectに$GCP_PROJECT_IDを渡しています。返される構成には、Subjectに入れる数値のsubject IDも含まれます。


Python基礎・実践(Django)

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

Python研修の詳細

DX社員研修

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

DX研修の詳細

Javaエンジニア育成研修

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

Java研修の詳細

新卒・新入社員向け研修

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

新入社員研修の詳細

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

Databricks側の権限設定

Databricksに戻り、サービスプリンシパルにUSE CATALOGやUSE SCHEMA、SELECTなどの権限を付与します。外部データアクセス用の資格情報を発行するには、対象のスキーマかカタログでEXTERNAL USE SCHEMA権限の付与が必要です。

サービスプリンシパルに付与する権限

図6 サービスプリンシパルに付与する権限

最後に、Databricksのサービスプリンシパルにフェデレーションポリシーを設定し、Issuer URLにhttps://accounts.google.comを指定します。Subjectはdescribeコマンドが返す数値のsubject ID、Audiencesはhttps://accounts.cloud.databricks.comです。

フェデレーションポリシーの設定値

図7 フェデレーションポリシーの設定値

Subjectに入れる値は、カタログのdescribeコマンドが返す数値のsubject IDです。Audiencesには、httpsで始まるaccounts.cloud.databricks.comのURLを指定します。

Lakehouse runtime catalogを使う構成例の範囲

今回の構成例では、外部エンジンがテーブルを読む前に、Databricksのメタストア管理者がExternal data accessを有効にする必要があります。提供状態や課金、対応リージョンの一覧は、今回の構成例には含まれていません。[1]

構成例で示された設定と確認事項

図8 構成例で示された設定と確認事項

カタログ作成のコマンド例は、gcloud alphaを使い、リージョンにus-central1を指定する構成です。東京や大阪のリージョンで構成したい場合は、対応リージョンと提供状態を利用前に確かめます。

Databricks Unity Catalogと接続する場合は、External data accessを有効にするメタストア管理者の操作を先に確かめます。AWS GlueとSnowflakeの設定は、Google Cloudの構成例の付録で扱われる内容です。

従来の抽出パイプライン方式との違い

Google Cloudは、分析やAIで組織全体の文脈が必要な場合、複雑な抽出パイプラインで中央へコピーするか分断された報告を受け入れるかの選択が生じるとしています。従来の構成の対処法は、定期的な抽出パイプラインでリモートのデータセットを中央のステージング用ウェアハウスへコピーする方式です。[1]

コピー型構成とフェデレーションクエリ実行時の違い

図9 コピー型構成とフェデレーションクエリ実行時の違い

この方式について、Google Cloudは同期の遅れや継続的な保存費用、変動するネットワークegress料金が生じると評価しています。上流でスキーマが変わるとパイプラインが壊れ、チームは同期していないダッシュボード間の指標の照合に何時間も費やします。

抽出パイプラインから移る場合、同期する対象はデータセットからメタデータに変わり、データはリモートのストレージから直接読み取る形です。このため、リモート側の権限設定と、ストレージの読み取りにかかる課金条件を事前に確かめます。

出典

  1. ^ Google Cloud. 「Cross-cloud conversational analytics made simple with open standards」. https://cloud.google.com/blog/products/data-analytics/cross-cloud-conversational-analytics-with-borderless-lakehouse, (参照 26-10-13).

※本記事は公式の一次情報を基に編集しています。内容は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やプログラムなどの
最新情報を検索する