- カテゴリ:
システム関数 (システム制御)
SYSTEM$SET_CATALOG_INTEGRATION¶
外部で管理されている Apache Iceberg™テーブル に関連付けられたカタログ統合を置き換えます。
この関数を使用して、Iceberg REST カタログ統合で動作するようにテーブルを更新します。これは、外部で管理されているIcebergテーブルの書き込みサポート など、幅広いIceberg機能をサポートしています。必要に応じて、この関数を使用して元のGlueカタログ統合にロールバックすることもできます。
また、この関数を使用して、テーブルをある Iceberg REST カタログ統合 から別のものに移行することもできます。
構文¶
SYSTEM$SET_CATALOG_INTEGRATION(
'<table_name>' ,
'<new_catalog_integration_name>'
)
引数¶
'table_name'カタログ統合を置き換えるIcebergテーブルの名前。
'new_catalog_integration_name'任意の
table_nameを移行するカタログ統合の名前。
戻り値¶
この関数は、テーブルのカタログ統合が正常に移行されたというステータスメッセージを返します。例については、 例 をご参照ください。
アクセス制御の要件¶
この操作の実行に使用される ロール には、少なくとも次の 権限 が必要です。
権限 |
オブジェクト |
|---|---|
OWNERSHIP |
カタログ統合が置き換えられるテーブル。 |
USAGE |
現在のカタログ統合。 |
USAGE |
ターゲットのカタログ統合。 |
スキーマ内のオブジェクトに対して操作を実行するには、親データベースとスキーマに対する USAGE 権限が必要です。スキーマについての権限を付与されたロールは、そのスキーマ名を解決できるようになります。たとえば、スキーマに対するCREATE権限を付与されたロールは、そのスキーマにオブジェクトを作成できますが、そのスキーマに対するUSAGE*も*付与されている必要はありません。
指定された権限のセットを使用してカスタムロールを作成する手順については、 カスタムロールの作成 をご参照ください。
セキュリティ保護可能なオブジェクト に対して SQL アクションを実行するためのロールと権限付与に関する一般的な情報については、 アクセス制御の概要 をご参照ください。
使用上の注意¶
標準のSnowflakeデータベースでは、外部で管理されているIcebergテーブルのカタログ統合のみを置き換えることができます。カタログリンクデータベースでは、Icebergテーブルのカタログ統合を置き換えたり、他のタイプのIcebergテーブルのカタログ統合を置き換えたりすることはできません。
テーブルに関連付けられている現在のカタログ統合の型によって、置換として使用できるカタログ統合の型が制限されます。次の表は、ある型のカタログ統合を別の型と置き換えた場合にサポートされる移行を示しています。
現在のカタログ統合型
新しいカタログ統合型
メモ
AWS Glue Iceberg REST
AWS Glue
AWS Glueカタログソースを使用するカタログ統合へのフォールバック。
Iceberg REST
テーブルを代替カタログ統合に移行します。
他の移行の組み合わせはサポートされていません。
table_nameおよびnew_catalog_integration_nameは文字列リテラルであるため、値を一重引用符で囲む必要があります。現在のカタログ統合とターゲットのカタログ統合は両方とも、同じ外部カタログをポイントしている必要があります。
現在のカタログ統合とターゲットのカタログ統合の両方で、認証情報供給を有効にすることはできません。
例¶
glue_table という名前のIcebergテーブルに関連付けられた AWS Glueカタログ統合を glue_rest_catalog_int という名前の AWS Glue Iceberg REST カタログ統合と置き換えます。
SELECT SYSTEM$SET_CATALOG_INTEGRATION('glue_table', 'glue_rest_catalog_int');
サンプル出力:
+------------------------------------------------------------------------------------------------------------------------------+
| SYSTEM$SET_CATALOG_INTEGRATION |
+------------------------------------------------------------------------------------------------------------------------------+
| Catalog integration for table GLUE_TABLE has been migrated from 'GLUE_CATALOG_INTEGRATION' to 'GLUE_REST_CATALOG_INT' |
+------------------------------------------------------------------------------------------------------------------------------+
トラブルシューティング¶
この関数が失敗した場合は、エラー応答を返します。一般的なエラーメッセージには次のものがあります。
エラーメッセージ |
状況と解決策 |
|---|---|
SYSTEM$SET_CATALOG_INTEGRATION は、サポートされていない型の組み合わせのため、カタログ統合 '[CURRENT_CATALOG_INTEGRATION]' から '[TARGET_CATALOG_INTEGRATION]' への移行をサポートしていません。 |
提供された現在またはターゲットのカタログ統合が、サポートされているカタログ統合型と一致していません。サポートされている型については、使用上の注意 をご参照ください。 |
SYSTEM$SET_CATALOG_INTEGRATION は、互換性のないカタログ統合構成のため、'[CURRENT_CATALOG_INTEGRATION]' から'[TARGET_CATALOG_INTEGRATION]' へ移行できません。 |
指定されたカタログ統合はサポートされている型ですが、サポートされている移行の組み合わせのいずれかに一致していません。サポートされている移行の組み合わせについては、の使用上の注意 をご参照ください。 |
現在、カタログ統合 '[CATALOG_INTEGRATION]' の認証情報供給が有効になっている場合、移行の実行はサポートされていません。 |
提供されたカタログ統合では、認証情報供給が有効になっています。認証情報供給が無効なカタログ統合を提供し、もう一度お試しください。 |
SYSTEM$SET_CATALOG_INTEGRATION は管理されていないIcebergテーブルでのみ使用できます |
提供されたテーブルは外部で管理されているIcebergテーブルではありません。外部で管理されているIcebergテーブルを提供して、もう一度お試しください。 |