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

Microsoft Dynamics 365 コネクタ リファレンス

備考

プレビュー

この機能は パブリック プレビュー段階です。

このページでは、 LakeFlow ConnectのMicrosoft Dynamics 365 コネクタに関する技術リファレンス情報を提供します。

認証の問題

Dynamics 365 コネクタは、 Microsoft Entra ID (旧称Azure Active Directory ) OAuth認証を使用して、 Azure Synapse Link がデータをエクスポートするAzureデータレイク ストレージ ( ADLS ) Gen2 にアクセスします。

必須の認証フィールド

D365 のUnity Catalog接続を作成するときは、次の点を指定します。

パラメーター

説明

tenant_id

Microsoft Entra ID テナント ID (ディレクトリ ID)

12345678-1234-1234-1234-123456789abc

client_id

Entra ID アプリのアプリケーション(クライアント)ID

87654321-4321-4321-4321-cba987654321

client_secret

Entra ID アプリ用に作成されたクライアント シークレット値

abc123~xyz789...

storage_account_name

ADLS Gen2 ストレージ アカウントの名前

d365storage

container_name

Synapse Linkがデータをエクスポートするコンテナ

d365-export

scope

Azure Storage アクセスの OAuth スコープ

https://storage.azure.com/.default

カーソルフィールド

Dynamics 365 コネクタは、Azure Synapse Link の変更ログのVersionNumberフィールドを増分取り込みのカーソルとして使用します。

カーソルの動作

  • ソース : Synapse Link は変更をエクスポートするときにVersionNumber値を自動的に生成します。
  • 形式 : 変更シーケンスを表す整数タイムスタンプ。
  • スコープ : テーブルごとのカーソル。各テーブルは独自のカーソル位置を維持します。
  • ストレージ : カーソルはパイプライン メタデータに保存され、ターゲット Delta テーブルには表示されません。

カーソルの要件

増分取り込みを機能させるには:

  • Synapse Link はVersionNumberフィールドを使用して変更ログをエクスポートする必要があります。
  • VersionNumber すべての変更ログ ファイルに存在する必要があります。
  • Changelog フォルダーは、Synapse Link のタイムスタンプベースの命名規則に従う必要があります。

VersionNumberがない場合、増分取り込みは失敗し、完全更新を実行する必要があります。

スキーマの検出

Dynamics 365 コネクタは、Dataverse メタデータからテーブル スキーマを自動的に検出します。

発見プロセス

パイプラインを作成するときは、次の点に注意してください。

  1. コネクタは、ADLS Gen2 から Synapse Link メタデータ ファイルを読み取ります。
  2. コネクタはメタデータ JSON ファイルからテーブル スキーマを抽出します。
  3. 列名、データ型、および NULL 値可能性はメタデータから推測されます。
  4. 検出されたスキーマを使用してターゲット テーブルが作成されます。

サポートされているデータバースデータ型

Dynamics 365 コネクタは、Dataverse データ型を Delta Lake データ型にマッピングします。

データ型のマッピング

データバース型

Delta Lake型

文字列(1行)

STRING

メタデータとして保存される最大長

文字列(複数行)

STRING

整数(整数)

Integer

BigINT

LONG

Decimal

DECIMALタイプ

精度とスケールを維持

倍精度浮動小数点数

DOUBLE

お金

10進数(19,4)

小数点以下4桁の10進数として保存されます

Boolean (はい/いいえ)

ブール値

DateTime

TIMESTAMP

タイムゾーン情報は保存されます

Date

DATE

Time

STRING

ISO 8601時間文字列として保存

一意の識別子 (GUID)

STRING

文字列表現として保存

見上げる

STRING

文字列として保存された外部キー GUID

ピックリスト(オプションセット)

Integer

ラベルではなく整数値

Multi-Select Picklist

STRING

カンマ区切りの整数値

画像

STRING

バイナリデータではなくURLまたはメタデータ

ファイル

STRING

メタデータのみ、ファイルの内容は含まれません

複雑なデータ型

一部の Dataverse タイプでは特別な処理が必要です。

  • オプション セット (ピックリスト) : 整数コードとして取り込まれます。ラベルにマップするには、 OptionSetMetadataテーブルと結合するか、参照マッピング テーブルを維持します。
  • ルックアップ : GUID 文字列として取り込まれます。関連データを取得するには、参照先のテーブルと結合します。
  • 複数選択オプション セット : カンマ区切りの整数文字列として取り込まれます (例: "1,3,5" )。文字列を解析して個々の値を抽出します。

例: 複数選択オプションセットの解析

SQL
-- Split comma-separated values into array
SELECT
accountid,
accountname,
SPLIT(industrycodes, ',') AS industry_array
FROM main.d365_data.account;

-- Explode into separate rows
SELECT
accountid,
accountname,
CAST(code AS INT) AS industry_code
FROM main.d365_data.account
LATERAL VIEW EXPLODE(SPLIT(industrycodes, ',')) AS code;

APIバージョンの互換性

Dynamics 365 コネクタは次のものと互換性があります。

  • Dataverse API : バージョン 9.2 以降
  • Azure Synapse Link for Dataverse : バージョン 1.0 以降
  • Azure Storage REST API : バージョン 2021-08-06 以降
  • Microsoft Entra ID (Azure AD) : OAuth 2.0 クライアント資格情報フロー
注記

古いバージョンの API も動作する可能性がありますが、公式にはサポートされていません。最高の互換性を得るために、D365 および Azure サービスを最新の状態に保ってください。

増分摂取行動

Dynamics 365 コネクタの増分取り込みは、次のルールに従います。

変更検出

  • 挿入 : 変更ログに存在することによって検出された新しいレコード。
  • 更新 : VersionNumberの変更によって識別される変更されたレコード。
  • 削除 : 変更ログ内の削除マーカーによって識別される削除されたレコード (Synapse Link によってエクスポートされた場合)。

SCDタイプ1の行動

SCD タイプ 1パイプラインの場合、レコードは履歴を保持せずにその場で更新されます。更新は主キーに基づいて既存の行を上書きし、削除は行を削除します (削除追跡が有効になっている場合)。

テーブル構造の例:

SQL
SELECT * FROM main.d365_data.account ORDER BY accountid;

-- Result: Latest state only
-- accountid | accountname | modifiedon
-- 123 | Acme Corp | 2025-12-03 10:00:00
-- 456 | TechCo | 2025-12-03 09:30:00

SCDタイプ2の行動

SCD タイプ 2パイプラインの場合、すべての変更は新しい行バージョンとして保持されます。コネクタは、バージョン履歴を追跡するために__START_AT__END_AT 、および__CURRENT列を追加します。

テーブル構造の例:

SQL
SELECT * FROM main.d365_data.account ORDER BY accountid, __START_AT;

-- Result: All historical versions
-- accountid | accountname | __START_AT | __END_AT | __CURRENT
-- 123 | Acme Inc | 2025-11-01 08:00:00 | 2025-12-03 10:00:00 | false
-- 123 | Acme Corp | 2025-12-03 10:00:00 | NULL | true
-- 456 | TechCo | 2025-12-01 14:00:00 | NULL | true

削除処理

削除の処理は Synapse Link の構成によって異なります。

  • ハード削除 : Synapse Link が削除レコードをエクスポートする場合、コネクタは削除されたレコードを削除するか (SCD タイプ 1)、削除されたレコードをマークします (SCD タイプ 2)。
  • 削除の追跡なし : Synapse Link が削除をエクスポートしない場合、削除されたレコードは完全更新を実行するまでターゲット テーブルに残ります。

正確な削除追跡が必要な場合は、Synapse Link 構成で削除がエクスポートされることを確認してください。

パイプラインある

D365 インジェスト パイプラインを作成するときは、次の点を指定します。

必須

パラメーター

Type

説明

channel

String

でなければなりません PREVIEW

"PREVIEW"

connection_name

String

Unity Catalog接続の名前

"d365_connection"

source_schema

String

データバース環境の URL または ID

"https://yourorg.crm.dynamics.com"

source_table

配列[文字列]

D365 テーブル論理名のリスト

["account", "contact"]

destination_catalog

String

ターゲットUnity Catalogカタログ

"main"

destination_schema

String

ターゲットUnity Catalogスキーマ

"d365_data"

scd_type

String

SCD_TYPE_1 または SCD_TYPE_2

"SCD_TYPE_2"

オプション

パラメーター

Type

説明

table_configuration

オブジェクト

テーブルごとの設定(列の選択など)

列の選択を参照

パイプライン構成の例

Python SDK を使用してパイプライン構成を完了します。

Python
from databricks.sdk import WorkspaceClient
from databricks.sdk.service.pipelines import IngestionPipelineDefinition

w = WorkspaceClient()

pipeline = w.pipelines.create(
name="d365_comprehensive_ingestion",
ingestion_definition=IngestionPipelineDefinition(
channel="PREVIEW",
connection_name="d365_connection",
source_schema="https://contoso.crm.dynamics.com",
source_table=[
"account",
"contact",
"opportunity",
"salesorder",
"systemuser"
],
destination_catalog="main",
destination_schema="d365_sales",
scd_type="SCD_TYPE_2",
table_configuration={
"account": {
"columns": [
"accountid",
"accountnumber",
"name",
"emailaddress1",
"telephone1"
]
}
}
)
)

テーブルの論理名の検索

source_table問題のテーブル論理名を特定するには:

  1. Power Apps メーカーポータル : テーブル に移動し、 論理名 列を表示します。
  2. Dataverse API : https://yourorg.api.crm.dynamics.com/api/data/v9.2/EntityDefinitionsを使用してメタデータをクエリします。
  3. ADLS Gen2 ストレージ : Synapse Link コンテナー内のフォルダーを一覧表示します (フォルダー名は論理名と一致します)。
ヒント

パイプライン構成では小文字の論理名を使用します (たとえば、 "account"ではなく"Account" )。コネクタでは大文字と小文字が区別されます。

パフォーマンスチューニング

Dynamics 365 コネクタでは、限定されたパフォーマンス チューニング オプションが提供されます。

列の選択

削減する必要な列のみを選択してください:

  • ADLS Gen2からのデータ転送
  • Delta Lakeのストレージコスト
  • クエリ処理時間

構成の詳細については、列の選択を参照してください。

テーブルのグループ化

多数のテーブルがある環境の場合:

  • 関連テーブル : 管理を容易にするために、関連するテーブルを同じパイプラインにグループ化します。
  • ボリュームベース : 大容量のテーブルを専用のパイプラインに分離します。
  • 更新頻度 : 更新パターンが類似するテーブルをグループ化します。
注記

各パイプラインは 250 テーブルに制限されます。より大規模な環境の場合は、複数のパイプラインを作成します。

トラブルシューティング

Dynamics 365 コネクタを使用する場合の一般的な問題と解決策については、 Microsoft Dynamics 365 取り込みのトラブルシューティング」を参照してください。