CREATE CATALOG INTEGRATION (AWS Glue)¶
アカウント内に新しい カタログ統合 を作成するか、 AWS Glue をカタログとして使用する Apache Iceberg™ テーブル 用の既存のカタログ統合を置き換えます。
重要
AWS Glue用のカタログ統合を作成する場合、SnowflakeとGlueデータカタログ間の信頼関係を確立するために追加の手順を完了する必要があります。詳細については、 AWS Glueのカタログ統合を設定する をご参照ください。
- こちらもご参照ください。
ALTER CATALOG INTEGRATION、 DROP CATALOG INTEGRATION、 SHOW CATALOG INTEGRATIONS、 DESCRIBE CATALOG INTEGRATION
構文¶
CREATE [ OR REPLACE ] CATALOG INTEGRATION [IF NOT EXISTS]
<name>
CATALOG_SOURCE = GLUE
TABLE_FORMAT = ICEBERG
GLUE_AWS_ROLE_ARN = '<arn-for-AWS-role-to-assume>'
GLUE_CATALOG_ID = '<glue-catalog-id>'
[ GLUE_REGION = '<AWS-region-of-the-glue-catalog>' ]
CATALOG_NAMESPACE = '<catalog-namespace>'
ENABLED = { TRUE | FALSE }
[ REFRESH_INTERVAL_SECONDS = <value> ]
[ COMMENT = '<string_literal>' ]
必須パラメーター¶
name
カタログ統合の識別子(名前)を指定する文字列。アカウント内で一意である必要があります。
また、識別子はアルファベット文字で始まる必要があり、識別子文字列全体が二重引用符で囲まれていない限り、スペースや特殊文字を含めることはできません(例:
"My object"
)。二重引用符で囲まれた識別子も大文字と小文字が区別されます。詳細については、 識別子の要件 をご参照ください。
CATALOG_SOURCE = GLUE
AWS Glueとの統合を指定します。
TABLE_FORMAT = ICEBERG
Glue Iceberg テーブルを指定します。
GLUE_AWS_ROLE_ARN = 'arn-for-AWS-role-to-assume'
引き受ける AWS Identity and Access Management(IAM)ロールのAmazonリソース名(ARN)を指定します。
GLUE_CATALOG_ID = 'glue-catalog-id'
AWS アカウントの ID を指定します。
CATALOG_NAMESPACE = 'catalog-namespace'
AWS Glue Data Catalog名前空間(例えば、
my_glue_database
)を指定します。これは、このカタログ統合に関連付けたすべてのIcebergテーブルのデフォルトの名前空間です。テーブルの作成時にテーブルレベルで名前空間を指定することで、この値をオーバーライドできます。ENABLED = { TRUE | FALSE }
カタログ統合をIcebergテーブルで使用できるかどうかを指定します。
TRUE
は、ユーザーがこの統合を参照する新しいIcebergテーブルを作成できるようにします。この統合関数を通常参照する既存のIcebergテーブル。FALSE
は、ユーザーがこの統合を参照する新しいIcebergテーブルを作成できないようにします。この統合を参照する既存のIcebergテーブルは、テーブル定義のカタログにアクセスできません。
オプションのパラメーター¶
[ GLUE_REGION = 'AWS-region-of-the-glue-catalog' ]
AWS Glue Data Catalogの AWS リージョンを指定します。Snowflakeアカウントが AWS でホストされていない場合、このパラメーターに値を指定する必要があります。そうでない場合、デフォルトのリージョンはアカウントのSnowflakeデプロイメントリージョンになります。
REFRESH_INTERVAL_SECONDS = value
自動リフレッシュ のメタデータ更新のために外部 Iceberg カタログをポーリングしようとする間に Snowflake が待機する秒数を指定します。
値:30から86400まで。
デフォルト: 30秒
COMMENT = 'string_literal'
統合のコメントを指定する文字列(リテラル)。
デフォルト: 値なし
アクセス制御の要件¶
この SQL コマンドの実行に使用される ロール には、少なくとも次の 権限 が必要です。
権限 |
オブジェクト |
メモ |
---|---|---|
CREATE INTEGRATION |
アカウント |
Only the ACCOUNTADMIN role has this privilege by default. The privilege can be granted to additional roles as needed. |
指定された権限のセットを使用してカスタムロールを作成する手順については、 カスタムロールの作成 をご参照ください。
セキュリティ保護可能なオブジェクト に対して SQL アクションを実行するためのロールと権限付与に関する一般的な情報については、 アクセス制御の概要 をご参照ください。
使用上の注意¶
既存のカタログ統合は変更できません。代わりに CREATE OR REPLACE CATALOG INTEGRATION ステートメントを使用してください。
1つ以上の Apache Iceberg™ テーブルがカタログ統合に関連付けられている場合、カタログ統合をドロップしたり置き換えたりすることはできません。
カタログ統合に依存するテーブルを表示するには、 SHOW ICEBERG TABLES コマンドと、
catalog_name
列でフィルターする RESULT_SCAN を使用したクエリを使用できます。注釈
列識別子(
catalog_name
)は大文字と小文字を区別します。SHOW ICEBERG TABLES 出力に表示されるのと同じように、列識別子を指定します。例:
SHOW ICEBERG TABLES; SELECT * FROM TABLE( RESULT_SCAN( LAST_QUERY_ID() ) ) WHERE "catalog_name" = 'my_catalog_integration_1';
メタデータについて:
注意
Snowflakeサービスを使用する場合、お客様は、個人データ(ユーザーオブジェクト向け以外)、機密データ、輸出管理データ、またはその他の規制されたデータがメタデータとして入力されていないことを確認する必要があります。詳細については、 Snowflakeのメタデータフィールド をご参照ください。
CREATE OR REPLACE <オブジェクト> ステートメントはアトミックです。つまり、オブジェクトが置き換えられると、単一のトランザクションで、古いオブジェクトが削除されて新しいオブジェクトが作成されます。
例¶
次の例は AWS Glueカタログソースを使用するカタログ統合を作成します。Glue用のカタログ統合を作成する場合、SnowflakeとGlueデータカタログ間の信頼関係を確立するために追加の手順を完了する必要があります。詳細については、 AWS Glueのカタログ統合を設定する をご参照ください。
CREATE CATALOG INTEGRATION glueCatalogInt CATALOG_SOURCE = GLUE CATALOG_NAMESPACE = 'myNamespace' TABLE_FORMAT = ICEBERG GLUE_AWS_ROLE_ARN = 'arn:aws:iam::123456789012:role/myGlueRole' GLUE_CATALOG_ID = '123456789012' GLUE_REGION = 'us-east-2' ENABLED = TRUE;