注: 以下の翻訳の正確性は検証されていません。AIPを利用して英語版の原文から機械的に翻訳されたものです。
Foundry を Google Cloud Storage に接続して、Foundry データセットとストレージバケットの間でファイルを同期します。
| 機能 | ステータス |
|---|---|
| 探索 | 🟢 一般提供 |
| 一括インポート | 🟢 一般提供 |
| インクリメンタル(差分連携) | 🟢 一般提供 |
| 仮想テーブル | 🟢 一般提供 |
| エクスポートタスク | 🟡 サンセット |
| ファイルエクスポート | 🟢 一般提供 |
| Lakehouse Iceberg REST カタログ | 🟢 一般提供 |
| Iceberg テーブル用の独自バケットストレージ | 🟢 一般提供 |
このコネクターは、あらゆる種類のファイルを Foundry データセットに転送できます。ファイル形式は保持され、転送中も転送後もスキーマは適用されません。必要なスキーマを出力データセットに適用するか、下流のトランスフォームを作成してデータにアクセスします。
転送可能なファイルのサイズに制限はありません。ただし、ネットワークの問題により、大規模な転送が失敗することがあります。特に、実行に2日を超える時間がかかる直接クラウド同期は中断されます。ネットワークの問題を避けるために、ファイルサイズを小さくし、同期の各実行で取り込むファイル数を制限することを推奨します。同期は、頻繁に実行されるようにスケジュールできます。
Foundry でのコネクターのセットアップについて詳しくはこちら。
Google Cloud Storage の認証とセットアップを進めるには、Google Cloud IAM サービスアカウント ↗ が必要です。
アクセスするバケットに対して、以下のロールが必要です。
必要なロールについて詳しくは、アクセス制御に関する Google Cloud のドキュメント ↗ を参照してください。
利用可能な認証方法から1つを選択します。
GCPインスタンス: インスタンスベースの認証を設定する方法については、Google Cloud のドキュメント ↗ を参照してください。
JSON 資格情報: JSON サービスアカウントキーファイルを作成してダウンロードする方法については、Google Cloud のドキュメント ↗ を参照してください。
PKCS8認証: JSON サービスアカウントキーファイルに含まれる特定の資格情報を入力する必要があります。キーファイルの作成については、Google Cloud のドキュメント ↗ を参照してください。
ワークロード ID フェデレーション (OIDC): 表示されるソースシステムの設定手順に従って OIDC を設定します。ワークロード ID フェデレーションの詳細については Google Cloud のドキュメント ↗ を、Foundry での OIDC の仕組みについてはドキュメントを参照してください。
Google Cloud Storage コネクターには、ポート443で以下のドメインへのネットワークアクセスが必要です。
storage.googleapis.combiglake.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 ソースの仮想テーブルを使用する際の追加情報を説明します。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 ワークフローの詳細については、仮想テーブルのドキュメントを参照してください。
仮想テーブルを使用する場合は、次のソース設定の要件に注意してください。
Workload Identity Federation (OIDC) のいずれかを使用する必要があります。仮想テーブルを使用する場合、ほかの資格情報の選択肢には対応していません。仮想テーブルを元にしたパイプラインでインクリメンタル処理を有効にするには、ソースの Delta テーブルで Change Data Feed ↗ が有効になっていることを確認してください。Python トランスフォームの current および added 読み取りモードに対応しています。Python トランスフォームでは、_change_type、_commit_version、_commit_timestamp 列が利用可能になります。
Apache Iceberg テーブルを元にした仮想テーブルを読み込むには、Iceberg カタログが必要です。Iceberg カタログの詳細については、Apache Iceberg のドキュメント ↗を参照してください。ソースに登録されているすべての Iceberg テーブルは、同じ Iceberg カタログを使用する必要があります。
Object Storage カタログを使用する場合、テーブルの登録時に、Google Cloud Storage 内の Iceberg メタデータファイルを指す warehousePath を指定します。
テーブルが Google Cloud Storage に保存されている場合、Lakehouse Iceberg REST カタログを Iceberg カタログとして使用できます。Lakehouse はテーブルのカタログで、Iceberg はテーブル形式です。このカタログからテーブルを登録する際は、形式を Iceberg に設定します。
Google Cloud Storage コネクターを通じて Lakehouse カタログを設定する場合:
namespace.table_id パターンを使用する必要があります。Lakehouse カタログを設定するには、次の手順を実行します。
Lakehouse カタログと bring-your-own-bucket(BYOB)Iceberg ストレージに、同じ Google Cloud Storage ソースを使用することはできません。ワークフローごとに別のソースを作成してください。Lakehouse ソースではカタログを Lakehouse カタログに設定し、BYOB ソースではカタログを設定しないでください。
Lakehouse カタログの設定を含めて Google Cloud Storage ソースを保存した後、ソースの仮想テーブルタブから Iceberg 仮想テーブルを登録します。
namespace.table_id パターンを使用して Lakehouse カタログの Iceberg テーブル識別子を入力します。たとえば、analytics.orders と入力します。Foundry の仮想テーブル名は、Foundry に作成されるリソースの名前を決めます。Lakehouse 内のテーブル名は変更されません。
インクリメンタル処理は、Iceberg の Incremental Reads ↗ を使用し、現在は追加のみに対応しています。Python トランスフォームの current および added 読み取りモードに対応しています。
Parquet を使用する仮想テーブルは、スキーマ推論を使用します。スキーマの特定には最大100ファイルが使用されます。
Google Cloud Storage は、Foundry Iceberg テーブルの bring-your-own-bucket(BYOB)ストレージの場所として使用できます。BYOB Iceberg ストレージ用の GCS ソースを設定する場合、認証には JSON 資格情報または PKCS8 認証のいずれかを使用する必要があります。
このコネクターは、Foundry データセットのファイルを Google Cloud Storage バケット内の任意の場所にコピーできます。
データのエクスポートを開始するには、エクスポートタスクを設定する必要があります。エクスポート先の Google Cloud Storage コネクターが含まれるプロジェクトフォルダーに移動します。コネクター名を右クリックし、Data Connection タスクを作成を選択します。
Data Connection の表示の左パネルで、次の操作を行います。
inputDataset という名前の入力を追加します。入力データセットは、エクスポートする Foundry データセットです。outputDataset という名前の出力を追加します。出力データセットは、タスクの実行、スケジュール設定、監視に使用します。左側のパネルに表示されるコネクターと入力データセットのラベルには、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 10type: export-google-cloud-storage directoryPath: directory/to/export/to excludePaths: - ^_.* - ^spark/_.* uploadConfirmation: exportedFiles incrementalType: incremental retriesPerFile: 0 createTransactionFolders: true threads: 0
エクスポートタスクを設定したら、右上の保存を選択します。