注: 以下の翻訳の正確性は検証されていません。AIPを利用して英語版の原文から機械的に翻訳されたものです。
transforms-tables ライブラリは、Python トランスフォームで仮想テーブルを操作するための TableInput および TableOutput パラメーターを提供します。これらは、Foundry データセットで使用する Input および Output パラメーターと同様に動作します。ただし、仮想テーブルへの書き込みには、ソースを指定するための設定と、テーブルを保存する外部システム内の場所の設定が追加で必要です。仮想テーブルは、データセット出力と同様に、チェック時に作成されます。作成後は、記述を簡潔にするために、ソースおよびテーブルメタデータの追加設定を TableOutput から削除し、テーブル RID に置き換えることができます。
Copied!1 2 3 4 5 6 7 8 9 10 11 12 13 14from 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.BigQueryGoogle BigQuery ↗ の出力テーブルを設定します。
コンストラクター:
Copied!1BigQueryTable(project: str, dataset: str, table: str)
| パラメーター | データ型 | 説明 | 任意 |
|---|---|---|---|
project | str | BigQuery データセットが存在する Google Cloud のプロジェクトID。 | いいえ |
dataset | str | テーブルを含む BigQuery データセットの名前。 | いいえ |
table | str | BigQuery テーブルの名前。 | いいえ |
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 20from 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.DatabricksTableDatabricks ↗ の出力テーブルを設定します。Databricks のテーブルに書き込むには、Unity Catalog で外部アクセスを設定する必要があります。詳細については、仮想テーブルのドキュメントの Databricks セクションを参照してください。
コンストラクター:
Copied!1 2 3 4 5 6 7DatabricksTable( catalog: str, schema: str, table: str, format: Optional[str], location: Optional[str] = None )
| パラメーター | データ型 | 説明 | 任意 |
|---|---|---|---|
catalog | str | Databricks のカタログ名。 | いいえ |
schema | str | カタログ内のスキーマ(データベース)名。 | いいえ |
table | str | テーブル名。 | いいえ |
format | Optional[str] | ファイル形式(delta、iceberg)。デフォルトは delta です。 | はい |
location | Optional[str] | 外部テーブルのストレージの場所(たとえば、abfss://<bucket-path>/<table-directory>)。 | はい |
Databricks では、次の種類のテーブルに書き込むことができます。
location パラメーターには、テーブルを保存するクラウドストレージ内のディレクトリを指定する必要があります。format パラメーターのデフォルトは delta であるため、必須ではありません。外部テーブルの詳細については、Databricks の公式ドキュメント ↗ を参照してください。format パラメーターは iceberg に設定する必要があります。テーブルを保存する場所は Unity Catalog によって決まるため、location パラメーターは不要です。マネージド Iceberg テーブルの詳細については、Databricks の公式ドキュメント ↗ を参照してください。transforms.tables.DeltaTableDelta Lake ↗ の出力テーブルを設定します。
コンストラクター:
Copied!1DeltaTable(path: str)
| パラメーター | データ型 | 説明 | 任意 |
|---|---|---|---|
path | str | Delta テーブルへのストレージパス。 | いいえ |
Azure Blob Filesystem、Google Cloud Storage、または Amazon S3 のソースで使用できます。
transforms.tables.FilesTableクラウドストレージの場所に Avro、CSV、または Parquet 形式で保存する出力テーブルを設定します。
コンストラクター:
Copied!1FilesTable(path: str, format: str)
| パラメーター | データ型 | 説明 | 任意 |
|---|---|---|---|
path | str | フォルダーへのパス。 | いいえ |
format | str | ファイル形式(avro、csv、parquet)。 | いいえ |
Azure Blob Filesystem、Google Cloud Storage、または Amazon S3 のソースで使用できます。
transforms.tables.IcebergTableApache Iceberg ↗ カタログの出力テーブルを設定します。
コンストラクター:
Copied!1IcebergTable(table: str, warehouse_path: Optional[str] = None)
| パラメーター | データ型 | 説明 | 任意 |
|---|---|---|---|
table | str | 完全なテーブル識別子(たとえば、db.table またはカタログ表記法)。 | いいえ |
warehouse_path | Optional[str] | Iceberg テーブルのウェアハウスストレージパス。 | はい |
サポートされているソースの詳細については、このドキュメントの Iceberg カタログセクションを参照してください。
transforms.tables.SnowflakeTableSnowflake ↗ の出力テーブルを設定します。
コンストラクター:
Copied!1SnowflakeTable(database: str, schema: str, table: str)
| パラメーター | データ型 | 説明 | 任意 |
|---|---|---|---|
database | str | Snowflake のデータベース名。 | いいえ |
schema | str | データベース内のスキーマ名。 | いいえ |
table | str | テーブル名。 | いいえ |