データ接続と統合Python仮想テーブルと計算プッシュダウンAPI リファレンス

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

API の概要

transforms-tables ライブラリは、Python トランスフォームで仮想テーブルを操作するための TableInput および TableOutput パラメーターを提供します。これらは、Foundry データセットで使用する Input および Output パラメーターと同様に動作します。ただし、仮想テーブルへの書き込みには、ソースを指定するための設定と、テーブルを保存する外部システム内の場所の設定が追加で必要です。仮想テーブルは、データセット出力と同様に、チェック時に作成されます。作成後は、記述を簡潔にするために、ソースおよびテーブルメタデータの追加設定を TableOutput から削除し、テーブル RID に置き換えることができます。

Copied!
1 2 3 4 5 6 7 8 9 10 11 12 13 14 from transforms.api import transform from transforms.tables import TableInput, TableOutput, TableTransformInput, TableTransformOutput, SnowflakeTable @transform.spark.using( source_table=TableInput(alias: str), output_table=TableOutput( alias: str, # 仮想テーブルを登録する Compass パス source: str, # 出力テーブルを書き込むソース RID table: Table, # 外部システムでの出力テーブルの保存場所を定義するロケーター ), ) def compute(source_table: TableTransformInput, output_table: TableTransformOutput): ... # 通常の transforms API

TableOutput の table: Table パラメーターは、外部システム内で出力テーブルを作成する場所を定義します。

作成後はソースと場所を変更できません

仮想テーブルの作成後は、そのソースや場所を変更できません。ソースや場所を変更すると、チェックに失敗します。

利用可能な Table サブクラスは次のとおりです。

  • BigQueryTable(project: str, dataset: str, table: str)
  • DatabricksTable(catalog: str, schema: str, table: str, format: Optional[str], location: Optional[str])
  • DeltaTable(path: str)
  • FilesTable(path: str, format: str)
  • IcebergTable(table: str, warehouse_path: Optional[str])
  • SnowflakeTable(database: str, schema: str, table: str)

接続先のソースの種類に応じて、適切なクラスを使用する必要があります。詳細については、以下のドキュメントを参照してください。

transforms.tables.BigQuery

Google BigQuery ↗ の出力テーブルを設定します。

コンストラクター:

Copied!
1 BigQueryTable(project: str, dataset: str, table: str)
パラメーターデータ型説明任意
projectstrBigQuery データセットが存在する Google Cloud のプロジェクトID。いいえ
datasetstrテーブルを含む BigQuery データセットの名前。いいえ
tablestrBigQuery テーブルの名前。いいえ

BigQuery コンピュートプッシュダウン(Ibis API)

BigQuery コンピュートプッシュダウンには、transforms.tables の Ibis 専用の入力クラスと出力クラスを、BigQuery トランスフォームデコレーターとともに使用します。Foundry は、設定された入力テーブルと出力テーブルを基に、BigQuery への Ibis 接続を確立します。Ibis DataFrame API を使用してデータ変換を記述できます。

デコレーター: @transform.bigquery.using(...)

設定: 仮想テーブルの参照には TableInput および TableOutput を使用し、BigQuery テーブルの場所は BigQueryTable(project, dataset, table) で指定します。

関数シグネチャ: def compute(source_table: IbisInput, output_table: IbisOutput)

メソッド:

  • IbisInput.table() は、入力の Ibis テーブル式を返します
  • IbisOutput.write(table_expr) は、Ibis テーブル式を出力に書き込みます

例:

Copied!
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 from transforms.api import transform from transforms.tables import ( IbisInput, IbisOutput, TableInput, TableOutput, BigQueryTable, ) @transform.bigquery.using( source_table=TableInput("ri.tables.main.table.1234"), output_table=TableOutput( "ri.tables.main.table.5678", "ri.magritte..source.1234", BigQueryTable("PROJECT", "DATASET", "TABLE"), ), ) def compute(source_table: IbisInput, output_table: IbisOutput): table = source_table.table() output_table.write(table)

Ibis の使用方法の詳細については、BigQuery コンピュートプッシュダウンを参照してください。

transforms.tables.DatabricksTable

Databricks ↗ の出力テーブルを設定します。Databricks のテーブルに書き込むには、Unity Catalog で外部アクセスを設定する必要があります。詳細については、仮想テーブルのドキュメントの Databricks セクションを参照してください。

コンストラクター:

Copied!
1 2 3 4 5 6 7 DatabricksTable( catalog: str, schema: str, table: str, format: Optional[str], location: Optional[str] = None )
パラメーターデータ型説明任意
catalogstrDatabricks のカタログ名。いいえ
schemastrカタログ内のスキーマ(データベース)名。いいえ
tablestrテーブル名。いいえ
formatOptional[str]ファイル形式(delta、iceberg)。デフォルトは delta です。はい
locationOptional[str]外部テーブルのストレージの場所(たとえば、abfss://<bucket-path>/<table-directory>)。はい

Databricks では、次の種類のテーブルに書き込むことができます。

  • 外部 Delta テーブル: location パラメーターには、テーブルを保存するクラウドストレージ内のディレクトリを指定する必要があります。format パラメーターのデフォルトは delta であるため、必須ではありません。外部テーブルの詳細については、Databricks の公式ドキュメント ↗ を参照してください。
  • マネージド Iceberg テーブル: format パラメーターは iceberg に設定する必要があります。テーブルを保存する場所は Unity Catalog によって決まるため、location パラメーターは不要です。マネージド Iceberg テーブルの詳細については、Databricks の公式ドキュメント ↗ を参照してください。

transforms.tables.DeltaTable

Delta Lake ↗ の出力テーブルを設定します。

コンストラクター:

Copied!
1 DeltaTable(path: str)
パラメーターデータ型説明任意
pathstrDelta テーブルへのストレージパス。いいえ

Azure Blob Filesystem、Google Cloud Storage、または Amazon S3 のソースで使用できます。

transforms.tables.FilesTable

クラウドストレージの場所に Avro、CSV、または Parquet 形式で保存する出力テーブルを設定します。

コンストラクター:

Copied!
1 FilesTable(path: str, format: str)
パラメーターデータ型説明任意
pathstrフォルダーへのパス。いいえ
formatstrファイル形式(avro、csv、parquet)。いいえ

Azure Blob Filesystem、Google Cloud Storage、または Amazon S3 のソースで使用できます。

transforms.tables.IcebergTable

Apache Iceberg ↗ カタログの出力テーブルを設定します。

コンストラクター:

Copied!
1 IcebergTable(table: str, warehouse_path: Optional[str] = None)
パラメーターデータ型説明任意
tablestr完全なテーブル識別子(たとえば、db.table またはカタログ表記法)。いいえ
warehouse_pathOptional[str]Iceberg テーブルのウェアハウスストレージパス。はい

サポートされているソースの詳細については、このドキュメントの Iceberg カタログセクションを参照してください。

transforms.tables.SnowflakeTable

Snowflake ↗ の出力テーブルを設定します。

コンストラクター:

Copied!
1 SnowflakeTable(database: str, schema: str, table: str)
パラメーターデータ型説明任意
databasestrSnowflake のデータベース名。いいえ
schemastrデータベース内のスキーマ名。いいえ
tablestrテーブル名。いいえ