注: 以下の翻訳の正確性は検証されていません。AIPを利用して英語版の原文から機械的に翻訳されたものです。

Foundry の Iceberg カタログを Snowflake に接続する

Foundry は、Snowflake コネクターを通じて Snowflake と統合できます。

Snowflake は、Apache Iceberg REST カタログ統合 ↗を通じて、Foundry が管理する Iceberg テーブルと統合できます。これらの手順で問題が発生した場合は、認証のトラブルシューティング手順に沿って進めてください。

制限事項

Snowflake は現在、クライアント側暗号化を使用するテーブルの読み取りをサポートしていません。

1. カタログ統合を作成する

  1. Snowflake インスタンスから Foundry インスタンスおよび Iceberg ストレージバケットへのエグレスを有効にします。

  2. Snowflake インスタンスが Foundry の Iceberg カタログとストレージの場所に接続できるように、ネットワークイングレスを設定します。

  3. カタログ統合 ↗を作成するには、Snowflake で次のクエリを実行します。このクエリを実行するには、ACCOUNTADMIN ロール ↗を使用する必要があります。詳細については、Snowflake ドキュメント ↗を参照してください。

    次の例では、OAuth2 認証を使用します。

    Copied!
    1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 CREATE CATALOG INTEGRATION <name_your_integration> CATALOG_SOURCE = ICEBERG_REST TABLE_FORMAT = ICEBERG ENABLED = TRUE CATALOG_NAMESPACE = '<your_foundry_namespace>' -- Foundry フォルダー。たとえば、/FoundryNamespace/MyProject/tables の場合は 'FoundryNamespace.MyProject.tables' REST_CONFIG = ( CATALOG_NAME = 'foundry' CATALOG_URI = 'https://<your_foundry>/iceberg' CATALOG_API_TYPE = 'public' ACCESS_DELEGATION_MODE = VENDED_CREDENTIALS ) REST_AUTHENTICATION = ( TYPE = OAUTH OAUTH_TOKEN_URI = 'https://<your_foundry>/iceberg/v1/oauth/tokens' OAUTH_CLIENT_ID = '<client_id>' OAUTH_CLIENT_SECRET = '<client_secret>' OAUTH_ALLOWED_SCOPES = ( 'api:iceberg-read', 'api:iceberg-write' ) );

2. 統合を検証する

  1. 次のクエリを実行して、統合が正しく設定されていることを確認します。詳細については、Snowflake ドキュメント ↗を参照してください。

    Copied!
    1 SELECT SYSTEM$VERIFY_CATALOG_INTEGRATION('<your_integration_name>');
  2. Foundry Iceberg REST カタログから名前空間の一覧を取得 ↗し、Iceberg テーブルの一覧を取得 ↗できることを確認します。

    Copied!
    1 2 3 4 5 6 7 8 9 10 SELECT SYSTEM$LIST_NAMESPACES_FROM_CATALOG( '<your_integration_name>', '<your_foundry_folder>', -- Foundry フォルダー。たとえば、/FoundryNamespace/MyProject/tables の場合は 'FoundryNamespace.MyProject.tables' 1 ); SELECT SYSTEM$LIST_ICEBERG_TABLES_FROM_CATALOG( '<your_integration_name>', '<your_foundry_folder>', -- Foundry フォルダー。たとえば、/FoundryNamespace/MyProject/tables の場合は 'FoundryNamespace.MyProject.tables' 1 );

3. テーブルを登録して読み取る

Foundry のテーブルにリンクするテーブルを作成し、そのテーブルからデータを読み取れることを確認します。この操作は Foundry からデータを読み取るだけで、テーブルを上書きしたり削除したりすることはありません。

Copied!
1 2 3 4 5 6 7 CREATE OR REPLACE ICEBERG TABLE <database>.<schema>.<name_your_table_in_snowflake> CATALOG = '<your_integration_name>' CATALOG_TABLE_NAME = '<table_rid>' -- または '<table_name_in_foundry>' CATALOG_NAMESPACE = 'foundry' -- または '<table_namespace_in_foundry>'。たとえば、/FoundryNamespace/MyProject/tables の場合は 'FoundryNamespace.MyProject.tables' AUTO_REFRESH = TRUE; SELECT * FROM <database>.<schema>.<name_your_table_in_snowflake>;

4. 必要に応じてテーブルに書き込む

Snowflake で Foundry の Iceberg テーブルにデータを書き込みます。

Copied!
1 2 3 4 INSERT INTO <database>.<schema>.<name_your_table_in_snowflake> VALUES <value_1>, <value_2>, <value_3>;

5. 必要に応じて統合をデータベースにリンクする

  1. カタログ統合にリンクする新しいデータベースを作成します。

    Copied!
    1 2 3 4 CREATE DATABASE <name_your_integration_database> LINKED_CATALOG = ( CATALOG = '<your_integration_name>' );
  2. カタログのリンクステータスを確認します。詳細については、Snowflake ドキュメント ↗を参照してください。

    Copied!
    1 SELECT SYSTEM$CATALOG_LINK_STATUS('<name_your_integration_database>');