カタログ統合の構成¶
カタログ統合は、名前付きのアカウントレベルの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 カタログを使用します。
Tip
Iceberg RESTカタログを使用する場合、カタログリンクデータベースとの|iceberg-tm| RESTカタログ統合を使用して、リモートのIceberg RESTカタログからSnowflakeに外部データを取り込むことができます。
カタログにリンクされたデータベースは、リモートカタログ内の名前空間とテーブルを自動的に検出し、同期を保ちます。カタログにリンクされたデータベースを使用して、Snowflakeからリモートカタログのテーブルを読み書きすることができ、既存のIcebergエコシステムとの完全な相互運用性を維持できます。詳細については、次のトピックをご参照ください。
外部データがUnity Catalogにある場合は、:doc:`/user-guide/tutorials/tables-iceberg-set-up-bidirectional-access-to-unity-catalog`を参照してください。
外部データがAWS Glueにある場合は、`SnowflakeとAWS GlueでApache Icebergを使用したデータレイクの構築<https://www.snowflake.com/en/developers/guides/data-lake-using-apache-iceberg-with-snowflake-and-aws-glue/>`_を参照してください。
カタログ統合を使用する¶
1つまたは複数のIcebergテーブルで使用するカタログ統合を作成および構成できます。
具体的な手順については、以下のトピックをご参照ください。
アカウント、データベース、スキーマレベルでデフォルトカタログを設定する¶
Icebergテーブルのデフォルトとして使用するカタログを定義するには、 CATALOG パラメーターを以下のレベルで設定します。
- アカウント:
アカウント管理者は ALTER ACCOUNT コマンドを使用して、アカウントのパラメーターを設定できます。アカウントに値が設定されている場合、外部カタログを使用するアカウントで作成されたすべてのIcebergテーブルは、デフォルトでこのカタログ統合を使用します。
- オブジェクト:
ユーザーは適切な CREATE <オブジェクト> または ALTER <オブジェクト> コマンドを実行して、データベースまたはスキーマレベルで CATALOG パラメーター値を上書きできます。宣言の有効範囲が最も低いもの(スキーマ > データベース > アカウント)が使用されます。
適切な ALTER <object_type> コマンドを使用してオブジェクトを変更するために必要な最小権限に加えて、ロールにはカタログ統合に対して USAGE 権限が必要です。
注釈
CATALOG パラメーターの変更は、変更 後 に作成されたテーブルにのみ適用されます。既存のテーブルは、作成時に指定されたカタログ統合を引き続き使用します。
例¶
次のステートメントは、 my_database_1 という名前のデータベースに対してカタログ統合(shared_catalog_integration)を設定します。
データベースレベルでカタログ統合を設定すると、カタログ統合を指定せずにそのデータベースにIcebergテーブルを作成できます。次のステートメントは、データベースに設定されたデフォルトのカタログ統合(shared_catalog_integration)を使用する my_database_1 のオブジェクトストレージ内のメタデータからIcebergテーブルを作成します。