メインコンテンツまでスキップ

Microsoft Dynamics 365 取り込み用の Parquet データソースを構成する

備考

ベータ版

Parquet の取り込みは Beta 版です。

データが Parquet としてエクスポートされる場合に、Lakeflow Connect を使用して Databricks への取り込み用データソースとして Microsoft Dynamics 365 を設定する方法について説明します。このワークフローでは、Azure Synapse Analytics ワークスペースと Apache Spark プールを使用して Dataverse テーブルを Parquet 形式の Delta テーブルとしてエクスポートし、Databricks がそれらを読み取るために使用する認証を構成します。

注記

このページでは Parquet ワークフローについて説明します。これには Azure Synapse Analytics ワークスペースと Apache Spark プールが必要です。Parquet エクスポートは Azure Synapse Link の ADLS Gen2 への Delta Lake エクスポートを使用します。これは Microsoft Fabric Link とは異なります。このコネクタは Fabric Link をサポートしていません。Azure Synapse Link がデータを CSV としてエクスポートする場合は、代わりに Microsoft Dynamics 365 取り込み用のデータソースを構成するを使用してください。

コネクタがデータソースにアクセスする方法に関する情報については、「コネクタはどのように D365 データにアクセスしますか?」を参照してください。サポートされている Dataverse アプリケーションの一覧については、「サポートされている Dynamics 365 アプリケーションはどれですか?」を参照してください。

前提条件

Dynamics 365データソースを構成する前に、以下が必要です:

  • リソースを作成する権限を持つアクティブなAzureサブスクリプション。
  • 管理者アクセス権を持つMicrosoft Dynamics 365環境。
  • Dynamics 365インスタンスに関連付けられたDataverse環境。
  • Databricks におけるワークスペース管理者またはメタストア管理者の権限。
  • Dataverse環境でAzure Synapse Linkを作成および構成するためのアクセス許可。
  • Azure Synapse Analytics ワークスペースおよび Apache Spark プールを作成するためのアクセス許可。
  • ADLS Gen2 ストレージアカウント(または作成権限)。
  • Microsoft Entra ID アプリケーションを作成および構成するための権限。
  • Dataverse API v9.2以降。
  • Azure Storage REST API バージョン 2021-08-06。
  • Azure Synapse Link for Dataverse バージョン 1.0 以降。

Azure Synapse Analyticsワークスペースを作成します

Synapse Analytics ワークスペースは、Azure Synapse Link が Dataverse テーブルを Parquet としてエクスポートするために使用する Apache Spark プールをホストします。

  1. Azure portalAzure Synapse Analytics に移動し、 Create をクリックします。
  2. ワークスペースに関連付けるサブスクリプション、リソースグループ、および Data Lake Storage Gen2 アカウントを選択します。
  3. ワークスペースで対話的にクエリーを実行するために、Data Lake Storage Gen2アカウントで自分自身にストレージBLOBデータ共同作成者ロールを割り当てる を選択します。
  4. Security tab の Authentication method 配下で、 Use only Microsoft Entra ID authentication を選択します。
  5. Review + Create をクリックし、次に Create をクリックします。
  6. デプロイメントが完了するまで待ってから続行してください。

Apache Spark プールを作成する

Azure Synapse Link は、Apache Spark プールを使用して、エクスポートされた Parquet フォーマットの Delta テーブルを書き込みます。

  1. ワークスペースの Overview ページから、 New Apache Spark プール をクリックします。
  2. プールに名前を付けます。
  3. 大規模なデータセットの場合は、 ノードサイズLarge に増やし、 ノード数10 に設定してください。追加の設定は必要ありません。
  4. Review + Create をクリックし、次に Create をクリックします。

Parquetエクスポートを使用したAzure Synapse Linkを作成します

このステップでは、Azure Synapse Linkを使用して取り込むテーブルを選択し、Sparkプールを介してParquetとしてエクスポートします。

仮想エンティティまたは直接テーブルを構成します(オプション)

仮想エンティティと直接テーブルを使用すると、データをコピーすることなく、Dataverse 以外のソース (Dynamics 365 Finance & Operations など) のデータを Dataverse で利用できるようになります。Dataverse 以外のソースの場合は、Azure Synapse Link を設定する前に、仮想エンティティまたは直接テーブルを構成する必要があります。

仮想エンティティを設定するには:

  1. Power Apps[環境] ページに移動し、 [Dynamics 365 アプリ] をクリックします。
  2. F&O エンティティを Dataverse の仮想エンティティとして link するには、 Finance and Operations Virtual Entity ソリューションをインストールします。
  3. Dataverseとお客様のF&Oアプリケーション間でサービス間(S2S)認証を設定します。この認証により、Dataverseはお客様のアプリケーションと通信できるようになります。詳細については、Microsoftのドキュメント「Configure Dataverse virtual entities」を参照してください。
  4. 取り込むすべての仮想エンティティに対して、 Advanced Properties 配下の Track Changes を有効にします。
  5. defaultでは、F&O Virtual Entity ソリューションは、Dataverse テーブルのリスト内の一部の仮想エンティティを公開します。ただし、追加のエンティティを手動で公開することもできます。
    1. Dataverse 環境の Advanced Settings ページに移動します。
    2. 右上にあるフィルターアイコンをクリックして、詳細検索にアクセスします。
    3. ドロップダウンメニューから Available Finance and Operation Entities を選択し、 Results をクリックします。
    4. 公開する仮想エンティティを選択します。
    5. [Entity Admin] ページで、 [Visible][True] に切り替え、 [Save and Close] をクリックします。

これで、mserp_で始まる名前のDataverseテーブルの一覧にエンティティが表示されるようになります。

重要

仮想エンティティと直接テーブルは、Dataverseによる同期が完了した後にのみ Azure Synapse Link に表示されます。これには通常最大15分かかりますが、最大30分かかる場合があります。30分経過してもテーブルが表示されない場合は、スキーマ検出に仮想エンティティが表示されないを参照してください。

Linkを作成

  1. make.powerapps.com に移動し、 テーブル をクリックします。

  2. ページ上部で Analyze をクリックし、 Azure Synapse Link をクリックします。

  3. [New Link] をクリックします。

  4. Connect to your Azure Synapse Analytics workspace チェックボックスをオンにして、詳細を入力します。前のステップで作成した Apache Spark プールとストレージアカウントを選択します。このチェックボックスをオンにするとデータが Parquet としてエクスポートされます。設定する個別のエクスポート形式オプションはありません。

  5. 同期するテーブルを選択します。

    • Dataverseネイティブアプリから取り込む場合は、 Dataverse セクションから関連するDataverseテーブルを直接選択します。
    • F&O から取り込む場合は、 D365 Finance & Operations セクションから直接テーブルを選択するか、 Dataverse セクションから仮想エンティティ (プレフィックス mserp_) を選択できます。仮想エンティティの詳細については、仮想エンティティまたは直接テーブルの構成 (オプション) を参照してください。
  6. [Save] をクリックし、初期同期が完了するまで待ちます。

    Synapse Link は、各テーブルを Parquet 形式の Delta テーブルとして、関連付けられた ADLS Gen2 ストレージ アカウント内の <profileRoot>/deltalake/<tableName>/ 配下に書き込みます。

  7. エクスポートを確認するには、 Go to Azure Synapse Analytics ワークスペース をクリックします。

注記

F&O ユーザーの場合、数百ギガバイト規模の大規模なテーブルでは、この初期同期に数時間かかることがあります。

Databricksの認証を構成する

Dynamics の構成に基づいて、認証を default として設定する必要があります。このステップでは、Unity Catalog接続の作成に必要なMicrosoft Entra IDとストレージの詳細を収集し、エクスポートされたParquet形式のDeltaテーブルへのアクセス権をMicrosoft Entra IDアプリケーションに付与します。

Entra ID とストレージの詳細を収集する

  1. Entra IDテナントの テナントID を取得します(portal.azure.com >> Microsoft Entra ID >> 概要tab >> 右側のペインに表示されている テナントID )。
  2. Azure Synapse Linkを作成すると、Azure SynapseはエクスポートされたParquet形式のDeltaテーブル用に、関連付けられたストレージアカウント内にADLSコンテナーを作成します。Synapse Linkの 管理ページ にアクセスして、 ADLSコンテナー名 を確認します。
  3. ワークスペースに関連付けられているストレージアカウントの Azureストレージアカウント名 を収集します。
  4. ADLSコンテナーのアクセス資格情報を収集します。
    1. まだお持ちでない場合は、Microsoft Entra IDアプリを作成してください。
    2. クライアント シークレット を収集します。
    3. App ID を収集します (portal.azure.com >> Microsoft Entra ID >> 管理 >> アプリの登録 )。

Entra ID アプリケーションにストレージへのアクセス権を付与する

まだ行っていない場合は、Entra ID アプリに ADLS コンテナーへのアクセス権を付与してください。

注記

Entra ID アプリケーションが、各 Synapse Link プロファイルに関連付けられた ADLS コンテナーにアクセスできることを確認してください。複数の環境またはアプリケーションからデータを取り込んでいる場合は、そのアプリケーションが関連するすべてのコンテナーに対してロール割り当てを持っていることを確認してください。

  1. Azureストレージアカウントに移動し、コンテナーまたはストレージアカウントを選択します。(Databricksでは、最小限の特権を維持するためにコンテナーレベルでの設定を推奨しています。)
  2. アクセス制御(IAM) をクリックし、 ロールの割り当ての追加 をクリックします。
  3. ストレージ BLOB データ共同作成者 → 読み取り/書き込み/削除アクセスロールを選択します。組織でこれが許可されていない場合は、Databricksアカウントチームにお問い合わせください。
  4. [次へ] をクリックし、 [メンバーの選択] をクリックします。
  5. ユーザー、グループ、またはService Principal を選択し、 アプリの登録を検索 します。(検索結果にアプリが表示されない場合は、検索バーにオブジェクトIDを直接入力し、 Enter キーを押します)。
  6. Review + Assign をクリックします。
  7. 権限が正しく構成されていることを確認するには、コンテナーの Access Control を確認します。

次のステップ

Parquet データソースを構成した後、Databricks で接続とインジェストパイプラインを作成します: