OneLake REST のカタログ統合を構成する

このトピックの手順に従って、OneLake REST API エンドポイントのカタログ統合を作成します。これは、Microsoft Fabricのテーブルを操作するために使用できる OneLake テーブル APIs のエンドポイントです。このエンドポイントの詳細については、Microsoft Fabricドキュメント内の Iceberg用 OneLake テーブル APIs 入門 をご参照ください。

このカタログ統合により、Snowflakeを使用してIcebergメタデータを持つ OneLake テーブルを読み取ることができます。

前提条件

  • 始める前に、Fabricのワークスペース用にワークスペース ID を、Fabricのレイクハウス用にデータアイテム ID を見つける必要があります。OneLake REST のカタログ統合を作成する場合は、後からワークスペース ID およびデータアイテム ID を指定します。

    • ワークスペース ID ( <workspaceID> )を見つけるには、Fabricサイトの URL を参照してワークスペース内のアイテムを探します。詳細については、Microsoft Fabricドキュメント内の ` ワークスペース ID を特定する <https://learn.microsoft.com/ja-jp/fabric/admin/portal-workspace#identify-your-workspace-id>`_ をご参照ください。ワークスペース ID をテキストエディターにコピーします。

    • データアイテム ID を見つけるには、 URL 内の( <dataItemID>), open your lakehouse, and then refer to the value after `` レイクハウス `` 。詳細については、Microsoft Fabricドキュメントの ` レイクハウスのソース構成 <https://learn.microsoft.com/ja-jp/fabric/data-factory/connector-lakehouse-copy-activity#source>`_ にある箇条書きの「接続」をご参照ください。データアイテム ID をテキストエディターにコピーします。

  • Fabricワークスペースでは、レイクハウスなど、データアイテムにIcebergテーブルがあることを確認してください。

ステップ1:OneLake のアクセス許可を構成する

OneLake のアクセス許可を構成するには、Microsoft Azureでアプリケーション登録を作成し、アプリケーション登録にuser_impersonation権限を追加して、アプリケーション登録用の新しいクライアントシークレットを作成します。

  1. Azureで、アプリケーション登録を作成します。

    詳細については、Microsoft Entraドキュメント内の ` アプリケーションをMicrosoft Entra ID に登録する <https://learn.microsoft.com/ja-jp/entra/identity-platform/quickstart-register-app>`_ をご参照ください。

  2. アプリケーション登録に、user_impersonation権限を追加します。

    開始するには、Microsoft Graphドキュメント内の Microsoft Entra管理センターを使用して、組織で使用する APIs を見つける にある最初の4つのステップに従います。

    重要

    ステップで説明されているように、 APIs my organization uses タブに切り替えないでください。代わりに、 Microsoft APIs タブに切り替えて Azure Storage を選択してから user_impersonation 権限を追加します。

  3. アプリケーション登録用に新しいクライアントシークレットを作成し、シークレットをテキストエディターにコピーします。

    指示については、Microsoft Entraドキュメント内の ` 新しいクライアントシークレットを作成する <https://learn.microsoft.com/ja-jp/entra/identity-platform/howto-create-service-principal-portal#option-3-create-a-new-client-secret>`_ をご参照ください。このシークレットは、カタログ統合を作成するときに指定します。

    重要

    シークレットをテキストエディターにコピーすることを忘れないでください。後で取得することができないからです。

  4. アプリケーション登録の Overview ページから Display nameApplication (client) ID および Directory (tenant) ID をテキストエディターにコピーします。

    カタログ統合と外部ボリュームを作成するときに、これらの値を指定します。

ステップ2:アプリケーション登録にFabricワークスペースへのアクセス権を付与する

このステップでは、アプリケーション登録にFabricのワークスペースへのアクセスを与えます。

  1. Microsoft Fabric へナビゲートしてサインインします。

  2. Microsoft Fabricワークスペースを開きます。

  3. Manage access を選択します。

  4. + Add people or groups を選択します。

  5. Enter name or email フィールドに、アプリケーション登録の名前を貼り付けます。

    この名前は OneLake のアクセス許可を構成した ときにコピーした Display name です。

  6. ドロップダウンメニューから、アプリが必要なFabricアイテムを作成できるようにする Contributor アクセスまたはそれ以上の権限を選択します。

  7. Add を選択します。

ステップ3:Snowflakeでカタログ統合を作成する

CREATE CATALOG INTEGRATION (Apache Iceberg™ REST) コマンドを使用して、REST API エンドポイントのカタログ統合を作成します。

例:

CREATE OR REPLACE CATALOG INTEGRATION my_onelake_catalog_int
   CATALOG_SOURCE = ICEBERG_REST
   TABLE_FORMAT = ICEBERG
   REST_CONFIG = (
      CATALOG_URI = 'https://onelake.table.fabric.microsoft.com/iceberg'
      CATALOG_NAME = '<fabric_data_item_scope>'
   )
   REST_AUTHENTICATION = (
      TYPE = OAUTH
      OAUTH_TOKEN_URI = '<azure_active_directory_token_endpoint>'
      OAUTH_CLIENT_ID = '<entra_application_client_id>'
      OAUTH_CLIENT_SECRET = '<entra_application_client_secret>'
      OAUTH_ALLOWED_SCOPES = ('https://storage.azure.com/.default')
   )
   ENABLED = TRUE;
Copy

条件:

  • https://onelake.table.fabric.microsoft.com/iceberg は OneLake テーブルのエンドポイントでベースとなる URL です。

  • <fabric_data_item_scope> is the Fabric data item scope, in the form <workspaceID>/<dataItemID>, such as 12345678-abcd-1abc-1a11-111111ab1111/11111111-abcd-1111-1ab1-1111a1a1ab91. To find your <workspaceID> and <dataItemID>前提条件 をご参照ください。

  • <azure_active_directory_token_endpoint_> is your Azure Active Directory OAuth 2.0 token endpoint URL, in the form of https://login.microsoftonline.com/<entra_tenant_id>/oauth2/v2.0/token. For ``<entra_tenant_id>``Entra tenant ID を指定します。これは、 OneLake のアクセス許可を構成したときにコピーしたIDです。

  • <entra_application_client_id> はEntraアプリケーションクライアント ID です。これは、11111111-aabb-1a11-abc1-ab11111a11a1 など OneLake のアクセス許可を構成したときにコピーしたIDです。

  • <entra_application_client_secret> はアプリケーションのクライアントシークレットです。これは、 OneLake のアクセス許可を構成したときにコピーしたものです。

  • https://storage.azure.com/.default は、ストレージトークンのオーディエンスです。

ステップ4:外部ボリュームの構成

このステップでは、Azure OneLake URL およびEntraテナント ID でAzureの外部ボリュームを構成します。

  1. CREATE EXTERNAL VOLUME コマンドを使用して外部ボリュームを作成します。

    例:

    CREATE OR REPLACE EXTERNAL VOLUME my_onelake_extvol
       STORAGE_LOCATIONS =
       (
          (
                NAME = 'my_onelake_extvol'
                STORAGE_PROVIDER = 'AZURE'
                STORAGE_BASE_URL = '<azure_onelake_url>'
                AZURE_TENANT_ID='<entra_tenant_id>'
          )
       )
       ALLOW_WRITES = FALSE;
    
    Copy

    条件:

    • <azure_onelake_url> is your Azure OneLake URL, in the form of azure://onelake.dfs.fabric.microsoft.com/<workspaceID>/<dataItemID>, such as azure://onelake.dfs.fabric.microsoft.com/12345678-abcd-1abc-1a11-111111ab1111/11111111-abcd-1111-1ab1-1111a1a1ab91. To find your <workspaceID> and <dataItemID>前提条件 をご参照ください。

    • <entra_tenant_id> is your Entra tenant ID, such as, 11111111-aabb-1a11-abc1-ab11111a11a1OneLake のアクセス許可を構成したときにEntraテナント ID をコピーしました。

  2. Microsoftの許可リクエストページへの URL を取得するには、 DESCRIBE EXTERNAL VOLUME コマンドを使用します。以前に作成した外部ボリュームの名前を指定します。

    DESC EXTERNAL VOLUME my_onelake_extvol;
    
    Copy

    次のプロパティの値を記録します。

    プロパティ

    説明

    AZURE_CONSENT_URL

    Microsoftのアクセス許可リクエストページへの URL。

    AZURE_MULTI_TENANT_APP_NAME

    アカウント用に作成されたSnowflakeクライアントアプリケーションの名前。このセクションの後半のステップでは、このアプリケーションに許可されたストレージの場所でアクセストークンを取得するための権限を付与します。

    これらの値は次のステップで使用します。

  3. ウェブブラウザーで、Microsoftの許可リクエストページ(AZURE_CONSENT_URL)に移動します。

  4. Accept を選択します。このアクションは、Snowflakeアカウント用に作成されたAzureサービスプリンシパルが、テナント内の指定したリソースでアクセストークンを取得できるようにします。アクセストークンの取得が成功するのは、サービスプリンシパルにストレージアカウントレベルで適切な権限を付与した場合のみです(次のステップを参照)。

  5. Fabricで許可されたストレージの場所でアクセストークンを取得するために、マルチテナントアプリケーションの権限を付与します。

    1. Microsoft Fabric へナビゲートしてサインインします。

    2. Microsoft Fabricワークスペースを開きます。

    3. Manage access を選択します。

    4. + Add people or groups を選択します。

    5. Enter name or email フィールドに AZURE_MULTI_TENANT_APP_NAME 用に記録した値を貼り付けます。

    6. ドロップダウンメニューから、アプリが必要なFabricアイテムを作成できるようにする Contributor アクセスまたはそれ以上の権限を選択します。

    7. Add を選択します。

詳細については、Microsoft Fabricドキュメント内の Microsoft Fabricの REST エンドポイント用Snowflakeカタログ統合と外部ボリュームコードの例 をご参照ください。

次のステップ

OneLake REST と外部ボリュームのカタログ統合を構成した後、 CREATE DATABASE(カタログリンク) コマンドを使用してカタログリンクのデータベースを作成し、Snowflakeの OneLake からテーブルを読み取ります。

カタログリンクデータベースを作成する際には、作成したカタログ統合と外部ボリュームを指定します。

例:

CREATE OR REPLACE DATABASE my_linked_db
   LINKED_CATALOG = (
      CATALOG = 'my_onelake_catalog_int'
   )
   EXTERNAL_VOLUME = 'my_onelake_extvol';

SELECT SYSTEM$CATALOG_LINK_STATUS('IRC_CATALOG_LINKED');

SELECT * FROM my_linked_db."dbo"."sentiment";
Copy

注釈

Snowflakeは、OneLake のテーブルに対する読み取り操作のみをサポートしています。