データ接続と統合利用可能なコネクターGoogle Cloud Storage

注: 以下の翻訳の正確性は検証されていません。AIPを利用して英語版の原文から機械的に翻訳されたものです。

Google Cloud Storage

Foundry を Google Cloud Storage に接続して、Foundry データセットとストレージバケットの間でファイルを同期します。

サポートされる機能

機能ステータス
探索🟢 一般提供
一括インポート🟢 一般提供
インクリメンタル(差分連携)🟢 一般提供
仮想テーブル🟢 一般提供
エクスポートタスク🟡 サンセット
ファイルエクスポート🟢 一般提供
Lakehouse Iceberg REST カタログ🟢 一般提供
Iceberg テーブル用の独自バケットストレージ🟢 一般提供

データモデル

このコネクターは、あらゆる種類のファイルを Foundry データセットに転送できます。ファイル形式は保持され、転送中も転送後もスキーマは適用されません。必要なスキーマを出力データセットに適用するか、下流のトランスフォームを作成してデータにアクセスします。

パフォーマンスと制限事項

転送可能なファイルのサイズに制限はありません。ただし、ネットワークの問題により、大規模な転送が失敗することがあります。特に、実行に2日を超える時間がかかる直接クラウド同期は中断されます。ネットワークの問題を避けるために、ファイルサイズを小さくし、同期の各実行で取り込むファイル数を制限することを推奨します。同期は、頻繁に実行されるようにスケジュールできます。

セットアップ

  1. Data Connection アプリケーションを開き、画面右上の + 新規ソースを選択します。
  2. 利用可能なコネクターの種類から Google Cloud Storage を選択します。
  3. 追加の設定プロンプトに従い、以下のセクションの情報を使用してコネクターのセットアップを進めます。

Foundry でのコネクターのセットアップについて詳しくはこちら。

Google Cloud Storage の認証とセットアップを進めるには、Google Cloud IAM サービスアカウント ↗ が必要です。

認証

アクセスするバケットに対して、以下のロールが必要です。

  • ストレージ オブジェクト閲覧者:データを読み取ります。
  • ストレージ オブジェクト作成者:データを Google Cloud Storage にエクスポートします。
  • ストレージ オブジェクト管理者:Foundry にインポートした後に Google Cloud Storage からファイルを削除する場合、および UPDATE トランザクションを使用してファイルを上書きするインクリメンタルデータセットをエクスポートする場合に必要です。

必要なロールについて詳しくは、アクセス制御に関する Google Cloud のドキュメント ↗ を参照してください。

利用可能な認証方法から1つを選択します。

  • GCPインスタンス: インスタンスベースの認証を設定する方法については、Google Cloud のドキュメント ↗ を参照してください。

    • GCP インスタンス認証は、GCP 内の適切に設定されたインスタンスで実行される Agent を介して動作するコネクターでのみ機能します。
  • JSON 資格情報: JSON サービスアカウントキーファイルを作成してダウンロードする方法については、Google Cloud のドキュメント ↗ を参照してください。

  • PKCS8認証: JSON サービスアカウントキーファイルに含まれる特定の資格情報を入力する必要があります。キーファイルの作成については、Google Cloud のドキュメント ↗ を参照してください。

  • ワークロード ID フェデレーション (OIDC): 表示されるソースシステムの設定手順に従って OIDC を設定します。ワークロード ID フェデレーションの詳細については Google Cloud のドキュメント ↗ を、Foundry での OIDC の仕組みについてはドキュメントを参照してください。

ネットワーク

Google Cloud Storage コネクターには、ポート443で以下のドメインへのネットワークアクセスが必要です。

  • storage.googleapis.com
  • biglake.googleapis.com(Lakehouse Iceberg REST カタログを使用する場合のみ必要)
  • www.googleapis.com(Lakehouse Iceberg REST カタログを使用する場合のみ必要)
  • oauth2.googleapis.com(JSON 資格情報または PKCS8 認証を使用する場合のみ必要)
  • sts.googleapis.com(ワークロード ID フェデレーションを使用する場合のみ必要)
  • iamcredentials.googleapis.com(ワークロード ID フェデレーションを使用する場合のみ必要)

設定オプション

Google Cloud Storage コネクターでは、以下の設定オプションを利用できます。

オプション必須説明
プロジェクトIDはいCloud Storage バケットを含むプロジェクトの ID。
バケット名はいデータの読み取り元および書き込み先となるバケットの名前。
資格情報の設定はい上記の認証のガイダンスに従って設定します。
カタログいいえこの Google Cloud Storage バケットに保存される Iceberg テーブルのカタログを設定します。詳細については、仮想テーブルおよび Lakehouse Iceberg REST カタログを参照してください。
プロキシ設定いいえ有効にすると、Google Cloud Storage への接続時にプロキシが使用されます。

Google Cloud Storage からデータを同期する

Google Cloud Storage コネクターは、ファイルベースの同期インターフェースを使用します。ファイルベースの同期の設定に関するドキュメントを参照してください。

仮想テーブル

このセクションでは、Google Cloud Storage ソースの仮想テーブルを使用する際の追加情報を説明します。Foundry データセットに同期する場合、このセクションは適用されません。

次のテーブルは、Google Cloud Storage で利用できる仮想テーブルの機能を示しています。

機能ステータス
一括登録🔴 利用できません
自動登録🟢 カタログが設定されている場合、Iceberg テーブルで一般提供されています。それ以外の場合は 🔴 利用できません
テーブル入力🟢 一般提供:Code Repositories、Pipeline Builder で Avro ↗、Delta ↗、Iceberg ↗、Parquet ↗ を利用できます
テーブル出力🟢 一般提供:Code Repositories、Pipeline Builder で Avro ↗、Delta ↗、Iceberg ↗、Parquet ↗ を利用できます
インクリメンタル(差分処理)パイプライン🟢 Delta テーブルで一般提供:APPEND のみ(詳細)
🟢 Iceberg テーブルで一般提供:APPEND のみ(詳細)
🔴 Parquet テーブルでは利用できません
計算のプッシュダウン🔴 利用できません

Google Cloud Storage に保存されているテーブルを入力または出力として使用できる Foundry ワークフローの詳細については、仮想テーブルのドキュメントを参照してください。

ソース設定の要件

仮想テーブルを使用する場合は、次のソース設定の要件に注意してください。

  • Foundry ワーカーソースを使用する必要があります。仮想テーブルは Agent ワーカー接続の使用に対応していません。
  • このドキュメントのネットワークのセクションで説明されているように、双方向の接続と許可リスト登録が確立されていることを確認してください。
  • Code Repositories で仮想テーブルを使用する場合、追加で必要なソース設定の詳細については、仮想テーブルのドキュメントを参照してください。
  • ソースの資格情報を設定する際は、JSON 資格情報、PKCS8 認証、Workload Identity Federation (OIDC) のいずれかを使用する必要があります。仮想テーブルを使用する場合、ほかの資格情報の選択肢には対応していません。

Delta

仮想テーブルを元にしたパイプラインでインクリメンタル処理を有効にするには、ソースの Delta テーブルで Change Data Feed ↗ が有効になっていることを確認してください。Python トランスフォームの current および added 読み取りモードに対応しています。Python トランスフォームでは、_change_type、_commit_version、_commit_timestamp 列が利用可能になります。

Iceberg

Apache Iceberg テーブルを元にした仮想テーブルを読み込むには、Iceberg カタログが必要です。Iceberg カタログの詳細については、Apache Iceberg のドキュメント ↗を参照してください。ソースに登録されているすべての Iceberg テーブルは、同じ Iceberg カタログを使用する必要があります。

Object Storage カタログ

Object Storage カタログを使用する場合、テーブルの登録時に、Google Cloud Storage 内の Iceberg メタデータファイルを指す warehousePath を指定します。

Lakehouse カタログ

テーブルが Google Cloud Storage に保存されている場合、Lakehouse Iceberg REST カタログを Iceberg カタログとして使用できます。Lakehouse はテーブルのカタログで、Iceberg はテーブル形式です。このカタログからテーブルを登録する際は、形式を Iceberg に設定します。

Google Cloud Storage コネクターを通じて Lakehouse カタログを設定する場合:

  • Google Cloud Storage のバケット名が Lakehouse のカタログIDとして使用されます。
  • テーブル名は namespace.table_id パターンを使用する必要があります。
  • カタログIDはソースで設定され、個々の仮想テーブルを登録する際には変更できません。
  • ソースで設定されている Google Cloud の資格情報には、Lakehouse カタログと、Iceberg テーブルのデータおよびメタデータを保存する基盤の Google Cloud Storage バケットへのアクセス権が必要です。

Lakehouse カタログを設定するには、次の手順を実行します。

Lakehouse カタログと bring-your-own-bucket(BYOB)Iceberg ストレージに、同じ Google Cloud Storage ソースを使用することはできません。ワークフローごとに別のソースを作成してください。Lakehouse ソースではカタログを Lakehouse カタログに設定し、BYOB ソースではカタログを設定しないでください。

  1. Data Connection で Google Cloud Storage ソースを開きます。
  2. ソース設定を開きます。
  3. 追加設定を開き、カタログを追加します。
  4. カタログの種類として、Lakehouse カタログを選択します。
  5. ソースを保存します。

Lakehouse Iceberg 仮想テーブルを登録する

Lakehouse カタログの設定を含めて Google Cloud Storage ソースを保存した後、ソースの仮想テーブルタブから Iceberg 仮想テーブルを登録します。

  1. Data Connection で、設定済みの Google Cloud Storage ソースを開きます。
  2. 仮想テーブルタブを選択します。
  3. 仮想テーブルを作成を選択します。
  4. 設定セクションで、形式を Iceberg に設定します。これにより、仮想テーブルが、ソースで設定されている Lakehouse カタログに属する Iceberg テーブルとして識別されます。
  5. テーブル名に、namespace.table_id パターンを使用して Lakehouse カタログの Iceberg テーブル識別子を入力します。たとえば、analytics.orders と入力します。
  6. カタログID(バケット) が、ソースで設定されている Google Cloud Storage バケットと一致することを確認します。この項目は読み取り専用です。
  7. 仮想テーブルの場所を確認に、Foundry の仮想テーブル名を入力します。
  8. 仮想テーブルの作成先となる出力フォルダーを選択するか、ソースのデフォルトの出力場所を使用します。
  9. ウィザードを完了して、仮想テーブルを作成します。

Foundry の仮想テーブル名は、Foundry に作成されるリソースの名前を決めます。Lakehouse 内のテーブル名は変更されません。

インクリメンタル処理は、Iceberg の Incremental Reads ↗ を使用し、現在は追加のみに対応しています。Python トランスフォームの current および added 読み取りモードに対応しています。

Parquet

Parquet を使用する仮想テーブルは、スキーマ推論を使用します。スキーマの特定には最大100ファイルが使用されます。

Iceberg テーブル用の bring-your-own-bucket ストレージ

Google Cloud Storage は、Foundry Iceberg テーブルの bring-your-own-bucket(BYOB)ストレージの場所として使用できます。BYOB Iceberg ストレージ用の GCS ソースを設定する場合、認証には JSON 資格情報または PKCS8 認証のいずれかを使用する必要があります。

Google Cloud Storage にデータをエクスポートする

このコネクターは、Foundry データセットのファイルを Google Cloud Storage バケット内の任意の場所にコピーできます。

データのエクスポートを開始するには、エクスポートタスクを設定する必要があります。エクスポート先の Google Cloud Storage コネクターが含まれるプロジェクトフォルダーに移動します。コネクター名を右クリックし、Data Connection タスクを作成を選択します。

Data Connection の表示の左パネルで、次の操作を行います。

  1. ソース名が、使用するコネクターと一致していることを確認します。
  2. inputDataset という名前の入力を追加します。入力データセットは、エクスポートする Foundry データセットです。
  3. outputDataset という名前の出力を追加します。出力データセットは、タスクの実行、スケジュール設定、監視に使用します。
  4. 最後に、テキストフィールドに YAML ブロックを追加して、タスクの設定を定義します。

左側のパネルに表示されるコネクターと入力データセットのラベルには、YAML で定義した名前は反映されません。

エクスポートタスクの YAML を作成する際は、次のオプションを使用します。

オプション必須説明
directoryPathはいCloud Storage 内でファイルを書き込むディレクトリです。
excludePathsいいえ正規表現のリストです。これらの式に名前が一致するファイルはエクスポートされません。
uploadConfirmationいいえ値が exportedFiles の場合、出力データセットにはエクスポートされたファイルのリストが含まれます。
retriesPerFileいいえネットワーク障害が発生する場合は、この数を増やすと、エクスポートジョブ全体が失敗する前に Cloud Storage へのアップロードを再試行できます。
createTransactionFoldersいいえ有効にすると、指定した directoryPath 内のサブフォルダーにデータが書き込まれます。サブフォルダーは、Foundry でトランザクションがコミットされた時刻に基づいており、エクスポートされるトランザクションごとに一意の名前を持ちます。
threadsいいえファイルを並列にアップロードするために使用するスレッド数を設定します。使用するリソースを増やすには、この数を増やします。Agent 上でエクスポートを実行する場合は、並列度の増加に対応できる十分なリソースが Agent にあることを確認してください。
incrementalTypeいいえインクリメンタルにビルドされるデータセットの場合、incremental に設定すると、前回のエクスポート以降に発生したトランザクションのみをエクスポートします。

タスク設定の例:

Copied!
1 2 3 4 5 6 7 8 9 10 type: export-google-cloud-storage directoryPath: directory/to/export/to excludePaths: - ^_.* - ^spark/_.* uploadConfirmation: exportedFiles incrementalType: incremental retriesPerFile: 0 createTransactionFolders: true threads: 0

エクスポートタスクを設定したら、右上の保存を選択します。