マネージド ID を使用して連続エクスポート ジョブを実行する

連続エクスポート ジョブは、定期的に実行されるクエリを使用して外部テーブルにデータをエクスポートします。

次のシナリオでは、継続的エクスポート ジョブを マネージド ID で構成する必要があります。

マネージド ID で構成された連続エクスポート ジョブは、マネージド ID の代わりに実行されます。

この記事では、システム割り当てマネージド ID またはユーザー割り当てマネージド ID を構成し、その ID を使用して連続エクスポート ジョブを作成する方法について説明します。

前提条件

マネージド ID の構成

マネージド ID には、次の 2 種類があります。

  • システム割り当て: システム割り当て ID はクラスターに接続され、クラスターが削除されると削除されます。 クラスターごとに許可されるシステム割り当て ID は 1 つだけです。

  • ユーザー割り当て: ユーザー割り当てマネージド ID は、スタンドアロンの Azure リソースです。 クラスターには、複数のユーザー割り当て ID を割り当てることができます。

次のいずれかのタブを選択して、優先するマネージド ID の種類を設定します。

  1. 「ユーザー割り当て ID を追加する」の手順に従います。

  2. Azure portalで、マネージド ID リソースの左側のメニューで、[プロパティ] を選択します。 次の手順で使用するために、 テナント IDプリンシパル ID を コピーして保存します。

    マネージド ID ID を含むAzure portal領域のスクリーンショット。

  3. 次の .alter-merge policy managed_identity コマンドを実行し、 を前の手順のマネージド ID オブジェクト ID に置き換えます <objectId> 。 このコマンドは、継続的エクスポートで マネージド ID を 使用できるようにするマネージド ID ポリシーをクラスターに設定します。

    .alter-merge cluster policy managed_identity ```[
        {
          "ObjectId": "<objectId>",
          "AllowedUsages": "AutomatedFlows"
        }
    ]```
    

    注意

    特定のデータベースにポリシーを設定するには、 ではなく clusterを使用database <DatabaseName>します。

  4. 次のコマンドを実行して、外部テーブルを含むデータベースなど、連続エクスポートに使用されるすべてのデータベースに対するアクセス許可をマネージド ID データベース ビューアー に付与します。

    .add database <DatabaseName> viewers ('aadapp=<objectId>;<tenantId>')
    

    を関連するデータベースに置き換え、<objectId>手順 2 のマネージド ID プリンシパル ID に、<tenantId>手順 2 のMicrosoft Entra ID テナント ID に置き換えます<DatabaseName>

外部テーブルを設定する

外部テーブルは、Azure Blob Storage、Azure Data Lake Gen1、Azure Data Lake Gen2、SQL Serverなど、Azure Storage にあるデータを参照します。

次のいずれかのタブを選択して、Azure Storage または外部テーブルSQL Server設定します。

  1. ストレージ 接続文字列 テンプレートに基づいて接続文字列を作成します。 この文字列は、アクセスするリソースとその認証情報を示します。 連続エクスポート フローの場合は、 偽装認証をお勧めします。

  2. .create または .alter 外部テーブルを実行して、テーブルを作成します。 前の手順の接続文字列を storageConnectionString 引数として使用します。

    たとえば、次のコマンドMyExternalTableでは、 内の CSV 形式のデータmycontainermystorageaccountを参照する が作成Azure Blob Storage。 テーブルには 2 つの列があります。1 つは整数 x 用、もう 1 つは文字列 sです。 接続文字列は で;impersonate終わります。これは、偽装認証を使用してデータ ストアにアクセスすることを示します。

    .create external table MyExternalTable (x:int, s:string) kind=storage dataformat=csv 
    ( 
        h@'https://mystorageaccount.blob.core.windows.net/mycontainer;impersonate' 
    )
    
  3. 関連する外部データ ストアに対するマネージド ID 書き込みアクセス許可を付与します。 継続的エクスポート ジョブはマネージド ID に代わってデータ ストアにデータをエクスポートするため、マネージド ID には書き込みアクセス許可が必要です。

    外部データ ストア 必要なアクセス許可 アクセス許可を付与する
    Azure Blob Storage ストレージ BLOB データ共同作成者 Azure ロールを割り当てる
    Data Lake Storage Gen2 ストレージ BLOB データ共同作成者 Azure ロールを割り当てる
    Data Lake Storage Gen1 共同作成者 Azure ロールを割り当てる

連続エクスポート ジョブを作成する

次のいずれかのタブを選択して、ユーザー割り当てマネージド ID またはシステム割り当てマネージド ID の代わりに実行される連続エクスポート ジョブを作成します。

プロパティをマネージド ID オブジェクト ID に設定してmanagedIdentity.create-or-alter continuous-export コマンドを実行します。

たとえば、次のコマンドは、 という名前 MyExport の連続エクスポート ジョブを作成して、ユーザー割り当てマネージド ID の代わりに データ MyTable を に MyExternalTable エクスポートします。 <objectId> はマネージド ID オブジェクト ID である必要があります。

.create-or-alter continuous-export MyExport over (MyTable) to table MyExternalTable with (managedIdentity=<objectId>, intervalBetweenRuns=5m) <| MyTable