カテゴリ:

システム関数 (システム制御)

SYSTEM$SET_CATALOG_INTEGRATION

外部で管理されている Apache Iceberg™テーブル に関連付けられたカタログ統合を置き換えます。

この関数を使用して、Iceberg REST カタログ統合で動作するようにテーブルを更新します。これは、外部で管理されているIcebergテーブルの書き込みサポート など、幅広いIceberg機能をサポートしています。必要に応じて、この関数を使用して元のGlueカタログ統合にロールバックすることもできます。

また、この関数を使用して、テーブルをある Iceberg REST カタログ統合 から別のものに移行することもできます。

構文

SYSTEM$SET_CATALOG_INTEGRATION(
  '<table_name>' ,
  '<new_catalog_integration_name>'
)
Copy

引数

'table_name'

カタログ統合を置き換えるIcebergテーブルの名前。

'new_catalog_integration_name'

任意の table_name を移行するカタログ統合の名前。

戻り値

この関数は、テーブルのカタログ統合が正常に移行されたというステータスメッセージを返します。例については、 をご参照ください。

アクセス制御の要件

この操作の実行に使用される ロール には、少なくとも次の 権限 が必要です。

権限

オブジェクト

OWNERSHIP

カタログ統合が置き換えられるテーブル。

USAGE

現在のカタログ統合。

USAGE

ターゲットのカタログ統合。

スキーマ内のオブジェクトに対して操作を実行するには、親データベースとスキーマに対する USAGE 権限が必要です。スキーマについての権限を付与されたロールは、そのスキーマ名を解決できるようになります。たとえば、スキーマに対するCREATE権限を付与されたロールは、そのスキーマにオブジェクトを作成できますが、そのスキーマに対するUSAGE*も*付与されている必要はありません。

指定された権限のセットを使用してカスタムロールを作成する手順については、 カスタムロールの作成 をご参照ください。

セキュリティ保護可能なオブジェクト に対して SQL アクションを実行するためのロールと権限付与に関する一般的な情報については、 アクセス制御の概要 をご参照ください。

使用上の注意

  • 標準のSnowflakeデータベースでは、外部で管理されているIcebergテーブルのカタログ統合のみを置き換えることができます。カタログリンクデータベースでは、Icebergテーブルのカタログ統合を置き換えたり、他のタイプのIcebergテーブルのカタログ統合を置き換えたりすることはできません。

  • テーブルに関連付けられている現在のカタログ統合の型によって、置換として使用できるカタログ統合の型が制限されます。次の表は、ある型のカタログ統合を別の型と置き換えた場合にサポートされる移行を示しています。

    現在のカタログ統合型

    新しいカタログ統合型

    メモ

    AWS Glue

    AWS Glue Iceberg REST

    AWS Glue Iceberg REST

    AWS Glue

    AWS Glueカタログソースを使用するカタログ統合へのフォールバック。

    Iceberg REST

    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');
Copy

サンプル出力:

+------------------------------------------------------------------------------------------------------------------------------+
|                                                SYSTEM$SET_CATALOG_INTEGRATION                                                |
+------------------------------------------------------------------------------------------------------------------------------+
| Catalog integration for table GLUE_TABLE has been migrated from 'GLUE_CATALOG_INTEGRATION' to 'GLUE_REST_CATALOG_INT'        |
+------------------------------------------------------------------------------------------------------------------------------+
Copy

トラブルシューティング

この関数が失敗した場合は、エラー応答を返します。一般的なエラーメッセージには次のものがあります。

エラーメッセージ

状況と解決策

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テーブルを提供して、もう一度お試しください。