アウトバウンドプライベート接続による Apache Iceberg™ REST のカタログ統合の構成

このトピックでは、 Apache Iceberg™ テーブル オープンソースに準拠したリモートカタログで管理されている Apache Iceberg™ REST OpenAPI 仕様 の :ref:` カタログ統合 <label-tables_iceberg_catalog_integration_def>` を構成する方法について説明します。

この構成により、カタログ統合を使用して、パブリックインターネット経由の代わりにプライベート IP アドレスを介し、リモートのIceberg REST カタログに接続できます。

次の図は、Icebergテーブルが外部Icebergカタログとのカタログ統合をどのように使用するかを示しています。

カタログ統合を使用するIcebergテーブルの仕組み

:ref:` アウトバウンドプライベート接続コスト <label-private_connect_costs>` を含むSnowflakeのアウトバウンドプライベート接続に関する一般情報については アウトバウンドネットワークトラフィックのプライベート接続 をご参照ください。

このトピックでは、次のカタログタイプの構成手順について説明します。

  • ジェネリックIceberg REST カタログ

  • AWS Glueデータカタログ

  • Databricks Unityカタログ

注釈

  • プライベート接続は、AWS PrivateLink を使用する AWS とAzure Private Linkを使用するAzureのカタログ統合でのみサポートされています。

  • プライベート接続は、同じクラウドプロバイダー内でのみ利用できます。カタログとSnowflakeデプロイメントが同じクラウドプロバイダーで実行されている必要があります。

  • アウトバウンドプライベート接続でカタログ統合を構成する場合、カタログベンディングの認証情報はサポートされません。

ステップ1:カタログのプライベート接続情報を収集

プライベート接続情報を収集し、後に Snowflake VPC または VNet で対応するプライベート接続エンドポイントをプロビジョニングする ときに指定する必要があります。対応するプライベート接続エンドポイントをプロビジョニングする際、Snowflakeアカウントが AWS でホストされている場合はSnowflakeに AWS PrivateLink エンドポイントを作成し、SnowflakeアカウントがAzureでホストされている場合はAzureプライベートエンドポイントを作成します。

  • カタログのプライベート接続情報を収集するには、リモートの REST Icebergカタログのドキュメントをご参照ください。

    次は、AWS の AWS VPC エンドポイントサービス ID の例です: com.amazonaws.vpce.us-west-2.vpce-svc-0123456789abcdef

ステップ2:プライベート接続エンドポイントのプロビジョニング

このステップでは、Snowflake VPC または VNet にプライベート接続エンドポイントをプロビジョニングし、Snowflakeがプライベート接続を使用してリモートのIceberg REST カタログに接続できるようにします。

  • プライベート接続エンドポイントをプロビジョニングするには、 SYSTEM$PROVISION_PRIVATELINK_ENDPOINT システム関数を呼び出します。

    このシステム関数の引数を指定する手順については、プライベート接続で接続したいリモートの REST Icebergカタログのドキュメントをご参照ください。

    次のコードブロックは、AWS PrivateLink エンドポイントのプロビジョニングの例を示しています:

    SELECT SYSTEM$PROVISION_PRIVATELINK_ENDPOINT(
      'com.amazonaws.vpce.us-west-2.vpce-svc-0123456789abcdef',
      'my.catalog.com'
      );
    
    Copy

ステップ3:エンドポイントステータスの確認

このステップでは、前のステップでプロビジョニングしたSnowflake VPC または VNet でプライベート接続エンドポイントのエンドポイントステータスを確認します。

  • エンドポイントのステータスを確認するには、 SYSTEM$GET_PRIVATELINK_ENDPOINTS_INFO システム関数を呼び出します:

    SELECT SYSTEM$GET_PRIVATELINK_ENDPOINTS_INFO();
    
    Copy

    エンドポイントは、 statuspending から available に変更する場合に使用できるよう準備されています。

ステップ4:追加のカタログ固有の構成

カタログタイプの追加構成ステップを完了します。

注釈

一部のカタログまたは一部のタイプのプライベート接続エンドポイントでは、カタログサーバー側でプライベート接続エンドポイントの接続を承認するか、許可リストに登録する必要もあります。

  • 追加の構成ステップを完了するには、リモート REST Icebergカタログのドキュメントを参照してから :ref:` 次のステップ <label-iceberg_rest_private_step3>` に進んでください。

ステップ5:カタログ統合を使用する

このステップでは、プライベート接続を有効にするために、カタログ REST エンドポイントのカタログ統合を構成します。

  • このカタログ統合を構成するには、 CREATE CATALOG INTEGRATION コマンドを実行します。

    例:

    CREATE OR REPLACE CATALOG INTEGRATION iceberg_rest_catalog_cat_int_private
      CATALOG_SOURCE = ICEBERG_REST
      TABLE_FORMAT = ICEBERG
      REST_CONFIG = (
        CATALOG_URI = '<rest_api_endpoint_url>'
        CATALOG_API_TYPE = PRIVATE
        CATALOG_NAME = '<catalog_name>'
      )
      REST_AUTHENTICATION = (
        TYPE = OAUTH
        OAUTH_TOKEN_URI = '<token_server_uri>'
        OAUTH_CLIENT_ID = '<oauth_client_id>'
        OAUTH_CLIENT_SECRET = '<oauth_client_secret>'
        OAUTH_ALLOWED_SCOPES = ('all-apis', 'sql')
    )
    ENABLED = true;
    
    Copy

    重要

    アウトバウンドプライベート接続を使用するには、統合を作成するときに CATALOG_API_TYPE=PRIVATE を指定する必要があります。

    サポートされている認証方法などの詳細については、 CREATE CATALOG INTEGRATION (Apache Iceberg™ REST) をご参照ください。

ステップ6:カタログ統合を確認する

(任意)ステップ7:カタログ構成の更新

リモートカタログの構成を更新して、プライベート接続からのみアクセスできるようにすることを推奨します。

  • カタログへのパブリックアクセスを無効にするには、プライベート接続で接続したいリモートカタログのドキュメントをご参照ください。

次のステップ

このセクションには、カタログ統合を構成した後に実行できるいくつかのタスクが含まれています。

プライベート接続エンドポイントのモニター

アウトバウンドプライベート接続による外部ボリュームの構成

  • Snowflakeとストレージバケット間のプライベート接続を有効にするには、アウトバウンドプライベート接続での :ref:` 外部ボリューム <label-tables_iceberg_external_volume_def>` を構成します。

    外部ボリュームの詳細については、 外部ボリュームの構成 をご参照ください。

    注釈

    アウトバウンドプライベート接続でカタログ統合を構成する場合、カタログベンディングの認証情報はサポートされません。

カタログリンクデータベースの作成

  • 外部Iceberg REST カタログに接続するSnowflakeデータベースを作成するには、カタログリンクのデータベースを作成します。

    詳細については、 カタログリンクデータベースの作成 をご参照ください。

    注釈

    カタログリンクデータベースを作成する場合は、アウトバウンドプライベート接続で構成されているカタログ統合を指定します。

リモートカタログへの書き込み

Apache Iceberg™ REST のカタログ統合を構成してカタログリンクのデータベースを作成すると、リモートカタログに書き込むことができます。