カタログ統合の構成¶
カタログ統合は、名前付きのアカウントレベルのSnowflakeオブジェクトで、以下のシナリオのためにテーブルのメタデータがどのように整理されているかについての情報を格納します。
SnowflakeをIcebergカタログ として使用しない場合。例えば、テーブルがAWS Glue で管理されている場合、カタログ統合が必要です。
Snowflake Open Catalog と統合して、次のことを実現したい場合。
Snowflakeを使用して、 Snowflake Open Catalog でIcebergテーブルをクエリします。
サードパーティのコンピュートエンジンがテーブルをクエリできるように、Snowflakeが管理するIcebergテーブルを Snowflake Open Catalog と同期します。
1つのカタログ統合で1つまたは複数のIcebergテーブルをサポートできます。
以下のシナリオでは、Snowflakeで Apache Iceberg™ テーブルを作成するためにカタログ統合を指定する必要があります。
外部Icebergカタログを使用します。
オブジェクトストレージ内のファイルからテーブルを作成します。
Snowflake Open Catalog と統合します。
Iceberg REST カタログを使用します。
カタログ統合を使用する¶
1つまたは複数のIcebergテーブルで使用するカタログ統合を作成および構成できます。
具体的な手順については、以下のトピックをご参照ください。
アカウント、データベース、スキーマレベルでデフォルトカタログを設定する¶
Icebergテーブルのデフォルトとして使用するカタログを定義するには、 CATALOG パラメーターを以下のレベルで設定します。
- アカウント:
アカウント管理者は ALTER ACCOUNT コマンドを使用して、アカウントのパラメーターを設定できます。アカウントに値が設定されている場合、外部カタログを使用するアカウントで作成されたすべてのIcebergテーブルは、デフォルトでこのカタログ統合を使用します。
- オブジェクト:
ユーザーは適切な CREATE <オブジェクト> または ALTER <オブジェクト> コマンドを実行して、データベースまたはスキーマレベルで CATALOG パラメーター値を上書きできます。宣言の有効範囲が最も低いもの(スキーマ > データベース > アカウント)が使用されます。
適切な ALTER <object_type> コマンドを使用してオブジェクトを変更するために必要な最小権限に加えて、ロールにはカタログ統合に対して USAGE 権限が必要です。
注釈
CATALOG パラメーターの変更は、変更 後 に作成されたテーブルにのみ適用されます。既存のテーブルは、作成時に指定されたカタログ統合を引き続き使用します。
例¶
次のステートメントは、 my_database_1
という名前のデータベースに対してカタログ統合(shared_catalog_integration
)を設定します。
ALTER DATABASE my_database_1
SET CATALOG = 'shared_catalog_integration';
データベースレベルでカタログ統合を設定すると、カタログ統合を指定せずにそのデータベースにIcebergテーブルを作成できます。次のステートメントは、データベースに設定されたデフォルトのカタログ統合(shared_catalog_integration
)を使用する my_database_1
のオブジェクトストレージ内のメタデータからIcebergテーブルを作成します。
CREATE ICEBERG TABLE my_iceberg_table
EXTERNAL_VOLUME='my_external_volume'
METADATA_FILE_PATH='path/to/metadata/v1.metadata.json';