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

Microsoft Dynamics 365 コネクタに関するよくある質問

Lakeflow Connect のマネージド Microsoft Dynamics 365 コネクタに関してよく寄せられる質問の回答をご覧ください。マネージド インジェスト コネクタに関する一般的な質問については、マネージドコネクタの FAQ を参照してください。

コネクタ固有のFAQ

以下の質問では、コネクタが Azure Synapse Link を介してどのようにデータを読み取るか、どの Dynamics 365 アプリケーションとアクセス許可が必要か、また接続、コスト、スキーマ変更をどのように計画するかについて説明します。

コネクタはどのようにして D365 データにアクセスしますか?

Dynamics 365 コネクタは、Azure Synapse Link for Dataverse を仲介として使用します。

  1. Synapse Link は、D365 データを CSV 形式で ADLS Gen2 に継続的にエクスポートします。
  2. Synapse Link は、変更を追跡するためにVersionNumberタイムスタンプ付きの変更ログを維持します。
  3. Databricks は、Microsoft Entra ID 認証を使用して ADLS Gen2 からエクスポートされたファイルを読み取ります。
  4. コネクタは変更ログを処理して増分取り込みを実行します。

このアーキテクチャを使用すると、D365 への OData ベースの API 呼び出しを行わずに D365 データを取り込むことができるため、D365 環境の負荷が軽減されます。

Dataverse用Azure Synapse Linkは、以下の場合に必要です。

  • 変更の追跡: Synapse Link は、増分取り込みを可能にする versionnumber フィールドを含む変更ログを提供します。
  • パフォーマンス: ADLS Gen2 からエクスポートされたファイルを読み取る方が、D365 に対して OData ベースの API 呼び出しを行うよりも効率的です。

増分取り込みはどのように機能しますか?

Dynamics 365 コネクタは、Azure Synapse Link の変更ログのversionnumberフィールドを使用して変更を追跡します。

  1. Synapse Link は、ADLS Gen2 のタイムスタンプ付きフォルダーにデータをエクスポートします。
  2. 各エクスポートには、レコードが変更された日時を示すversionnumber値を含む変更ログ ファイルが含まれます。
  3. コネクタは、タイムスタンプに基づいて時系列順にフォルダーを処理します。
  4. コネクタはフォルダーごとに変更ログを読み取り、変更 (挿入、更新、削除) を適用します。
  5. コネクタは最後に処理されたversionnumberカーソルとして保存します。
  6. 後続のパイプライン実行では、最後のカーソルの後に作成された新しいフォルダーのみが処理されます。

このアプローチにより、変更されていないデータを再処理することなく、コネクタがすべての変更を確実にキャプチャできます。コネクタが更新や削除をどのように処理するかについての情報は、履歴追跡の有効化 (SCDタイプ 2) を参照してください。

どの Dynamics 365 アプリケーションがサポートされていますか?

Dynamics 365コネクタは、Dataverseネイティブアプリケーションと非Dataverseネイティブアプリケーションの両方をサポートしています。

コネクタが仮想エンティティや直接テーブルを使用せずに直接アクセスする Dataverse ネイティブアプリには、以下が含まれます:

  • Dynamics 365 セールス
  • Dynamics 365 顧客サービス
  • Dynamics 365 マーケティング
  • Dynamics 365 フィールドサービス

仮想エンティティまたは直接テーブルのいずれかを必要とする、Dataverseネイティブではないアプリケーションには、以下が含まれます。

  • Dynamics 365 財務および運用 (F&O)

セットアップの詳細については、 「 Microsoft Dynamics 365 取り込み用のデータ ソースの構成」を参照してください。

Dataverse ネイティブアプリと非 Dataverse ネイティブアプリの違いは何ですか?

Dataverse ネイティブアプリは、データを Dataverse テーブルに直接格納します。Azure Synapse Link を構成すると、コネクタはすぐにこれらのテーブルにアクセスできるようになります。

F&O などの非 Dataverse ネイティブアプリは、Dataverse ではなく独自のデータベースにデータを格納します。データを取り込むには、仮想エンティティまたは直接テーブルのいずれかを使用します:

  • 仮想テーブル (仮想エンティティとも呼ばれます)は、通常の Dataverse テーブルのように表示および動作しますが、それ自体はデータを格納しません。外部ソースからオンデマンドでデータを取得するため、データが Dataverse 内に具体化されることはありません。データを複製せずに、そのデータを操作できます。
  • 直接テーブル は、Dataverseの外部にエクスポートおよびマテリアライズされた、アプリケーションデータの物理的なコピーです。Azure Synapse Linkは、ソースシステムからのデータを、ソーススキーマに厳密に一致する生のトランザクションテーブルとしてADLS Gen2にレプリケートします。データが永続化されるため、ソースシステムにクエリを実行することなく、スケーラブルなアナリティクスと履歴分析をサポートします。

F&O を例に挙げると:

  • 仮想エンティティ は、F&O Virtual Entityソリューションを通じてDataverseで公開されます。これらはmserp_がプレフィックスとして付いた読み取り専用テーブルとして表示され、Azure Synapse LinkがLakeflow Connectパイプラインによる取り込み用にADLS Gen2へエクスポートします。F&Oエンティティは、多くの場合、複数の基盤テーブルを集約して非正規化ビューを作成するため、このオプションを使用すると、通常、ダウンストリームでの変換が少なくて済む、ビジネスに適した事前結合済みのデータが得られます。
  • 直接テーブル は、Azure Synapse LinkがDataverseを経由せずにエクスポートする生のF&Oテーブルです。これらはSynapse Linkのセットアップ中に別のセクションに表示され、生のトランザクションデータとしてADLS Gen2に格納されます。

ワークロードに適したオプションを決定するには:

考慮事項

仮想テーブル

直接テーブル

データの粒度

コンピュートされたフィールドを含めることができる、よりフラットな集計ビュー。

最も粒度の細かい未加工のトランザクションデータであり、データモデリングを完全に制御できます。

変換の労力

多くの場合、事前に結合されておりビジネスですぐに使用できる状態であるため、Databricks での後続の変換を最小限に抑えられます。

通常、複雑な結合や変換には追加のデータエンジニアリングが必要です。

パフォーマンス

エンティティの複雑さによっては、ソース側にオーバーヘッドが追加される可能性があります。

ビジネスロジックを適用するために、より多くのダウンストリームコンピュートが必要になる場合があります。

考慮事項

仮想テーブル

直接テーブル

データの粒度

コンピュートされたフィールドを含めることができる、よりフラットな集計ビュー。

最も粒度の細かい未加工のトランザクションデータであり、データモデリングを完全に制御できます。

変換の労力

多くの場合、事前に結合されておりビジネスですぐに使用できる状態であるため、Databricks での後続の変換を最小限に抑えられます。

通常、複雑な結合や変換には追加のデータエンジニアリングが必要です。

パフォーマンス

エンティティの複雑さによっては、ソース側にオーバーヘッドが追加される可能性があります。

ビジネスロジックを適用するために、より多くのダウンストリームコンピュートが必要になる場合があります。

D365 から添付ファイルを取り込むことはできますか?

Dynamics 365 コネクタは添付ファイルのメタデータ (ファイル名、サイズ、MIME タイプ、レコードの関連付け) を取り込みますが、添付ファイルの内容はダウンロードしません。これは、Synapse Link がバイナリ ファイルの内容ではなくテーブル データをエクスポートするためです。

添付ファイルにアクセスするには:

  1. annotationattachment などの添付ファイルメタデータテーブルを取り込みます。
  2. メタデータを使用して必要なファイルを識別します。
  3. Dynamics 365 Web API または Power Automate を使用して、D365 から直接ファイルをダウンロードします。
  4. ADLS Gen2 や Unity Catalog ボリュームなど、任意のストレージの場所にファイルを保存します。

異なる D365 アプリごとに個別の接続が必要ですか?

いいえ、同じ Dataverse 環境内のすべての D365 アプリケーションに対して単一のUnity Catalog接続を使用できます。 接続は、個々の D365 アプリケーションではなく、ADLS Gen2 ストレージ アカウントに対して認証されます。

ただし、Dataverse 環境ごとに個別のパイプラインが必要であり、それぞれの source_schema 値によって識別されます。例えば:

  • 単一接続: ADLS Gen2 コンテナーに対して認証します。
  • 複数のパイプライン: Dataverse 環境ごとに 1 つのパイプライン。それぞれが異なるsource_schema値を指定します。

このアプローチにより、認証管理が簡素化されるとともに、複数の環境からの取り込みが可能になります。

D365 ではどのような権限が必要ですか?

Dynamics 365コネクタのセットアップには、Microsoft Dynamics 365およびDataverse、Azure、Databricksの3か所での権限が必要です。

Microsoft Dynamics 365 および Dataverse では、以下の権限が必要です:

  • Azure Synapse Link を構成するには、システム管理者ロールまたは同等の権限が必要です。
  • 取り込むすべてのテーブルに対する読み取り権限。
  • 仮想エンティティまたは直接テーブルを構成するための権限 (F&O などのアプリケーションの場合)。

Azure では、次の権限が必要です。

  • ADLS Gen2 ストレージ アカウントとコンテナーを作成および構成するためのアクセス許可。
  • Microsoft Entra ID アプリケーションを作成および構成するための権限。
  • Entra ID アプリケーションにストレージ BLOB データ共同作成者ロールを割り当てるための権限。

Databricks では、以下の権限が必要です。

  • Unity Catalog接続を作成するためのワークスペース管理者またはメタストア管理者の権限。
  • ターゲット カタログとスキーマに対する CREATE 権限。

詳細な権限要件については、 「 Microsoft Dynamics 365 取り込み用のデータ ソースの構成」を参照してください。

複数の Dataverse 環境からデータを取り込むことはできますか?

はい、単一の接続を使用して複数の Dataverse 環境から取り込むことができます。環境ごとに個別のパイプラインを作成します。

Python
# Pipeline for production environment
prod_pipeline = w.pipelines.create(
name="d365_prod_ingestion",
ingestion_definition=IngestionPipelineDefinition(
channel="PREVIEW",
connection_name="d365_connection", # Same connection
source_schema="https://prod.crm.dynamics.com", # Production
source_table=["account", "contact"],
destination_catalog="main",
destination_schema="d365_prod",
scd_type="SCD_TYPE_2"
)
)

# Pipeline for test environment
test_pipeline = w.pipelines.create(
name="d365_test_ingestion",
ingestion_definition=IngestionPipelineDefinition(
channel="PREVIEW",
connection_name="d365_connection", # Same connection
source_schema="https://test.crm.dynamics.com", # Test
source_table=["account", "contact"],
destination_catalog="main",
destination_schema="d365_test",
scd_type="SCD_TYPE_2"
)
)

すべての環境を同じ ADLS Gen2 ストレージ アカウントとコンテナーにエクスポートするか、ストレージの場所ごとに個別の接続を作成する必要があります。

摂取コストを削減するにはどうすればいいでしょうか?

コストを最適化するには:

  • 列選択を使用して、必要な列のみを取り込みましょう。「取り込む列の選択」を参照してください。
  • パイプラインに必要なテーブルのみを含めます。
  • ストレージを削減するために履歴追跡が必要ない場合は、履歴追跡をオフにします (SCD タイプ 1)。

その他の考慮事項については、Microsoft Dynamics 365 コネクタの制限事項を参照してください。

取り込み中にデータを変換できますか?

Lakeflow Connectは、変換なしでMicrosoft Dynamics 365から生データを取り込みます。データを変換するには:

  1. d365_landing などのランディングスキーマに生データを取り込みます。
  2. ダウンストリームのLakeFlow Pipelinesを変換用に作成します。
  3. SQL または Python を使用して、データをキュレーションされたスキーマに変換します。

この関心の分離により、下流での柔軟な変換を可能にしながら、生データが保持されます。

D365 でスキーマの変更を処理するにはどうすればよいですか?

現時点では、すべてのスキーマ変更にはテーブルの完全な更新が必要です。D365 スキーマの変更を監視し、それに応じて完全な更新を計画します。

いいえ。