Microsoft Dynamics 365 コネクタ リファレンス
プレビュー
この機能は パブリック プレビュー段階です。
このページでは、 LakeFlow ConnectのMicrosoft Dynamics 365 コネクタに関する技術リファレンス情報を提供します。
認証の問題
Dynamics 365 コネクタは、Microsoft Entra ID (旧 Azure Active Directory) OAuth 認証を使用します。詳細については、 「コネクタはどのようにして D365 データにアクセスしますか?」を参照してください。
必須の認証フィールド
D365 のUnity Catalog接続を作成するときは、次の点を指定します。
パラメーター | 説明 | 例 |
|---|---|---|
| Microsoft Entra ID テナント ID (ディレクトリ ID) |
|
| Entra ID アプリのアプリケーション(クライアント)ID |
|
| Entra ID アプリ用に作成されたクライアント シークレット値 |
|
| ADLS Gen2 ストレージ アカウントの名前 |
|
| Synapse Linkがデータをエクスポートするコンテナ |
|
| Azure Storage アクセスの OAuth スコープ |
|
カーソルフィールド
Dynamics 365 コネクタは、Azure Synapse Link の変更ログのVersionNumberフィールドを増分取り込みのカーソルとして使用します。
カーソルの動作
- ソース : Synapse Link は変更をエクスポートするときに
VersionNumber値を自動的に生成します。 - 形式 : 変更シーケンスを表す整数タイムスタンプ。
- スコープ : テーブルごとのカーソル。各テーブルは独自のカーソル位置を維持します。
- ストレージ : カーソルはパイプライン メタデータに保存され、ターゲット Delta テーブルには表示されません。
カーソルの要件
増分取り込みを機能させるには:
- Synapse Link は
VersionNumberフィールドを使用して変更ログをエクスポートする必要があります。 VersionNumberすべての変更ログ ファイルに存在する必要があります。- Changelog フォルダーは、Synapse Link のタイムスタンプベースの命名規則に従う必要があります。
VersionNumberがない場合、増分取り込みは失敗し、完全更新を実行する必要があります。
スキーマの検出
Dynamics 365 コネクタは、Dataverse メタデータからテーブル スキーマを自動的に検出します。
発見プロセス
パイプラインを作成するときは、次の点に注意してください。
- コネクタは、ADLS Gen2 から Synapse Link メタデータ ファイルを読み取ります。
- コネクタはメタデータ JSON ファイルからテーブル スキーマを抽出します。
- 列名、データ型、および NULL 値可能性はメタデータから推測されます。
- 検出されたスキーマを使用してターゲット テーブルが作成されます。
サポートされているデータバースデータ型
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")。文字列を解析して個々の値を抽出します。
例: 複数選択オプションセットの解析
-- 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パイプラインの場合、レコードは履歴を保持せずにその場で更新されます。更新は主キーに基づいて既存の行を上書きし、削除は行を削除します (削除追跡が有効になっている場合)。
テーブル構造の例:
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列を追加します。
テーブル構造の例:
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 | 説明 | 例 |
|---|---|---|---|
| String | でなければなりません |
|
| String | Unity Catalog接続の名前 |
|
| String | データバース環境の URL または ID |
|
| 配列[文字列] | D365 テーブル論理名のリスト |
|
| String | ターゲットUnity Catalogカタログ |
|
| String | ターゲットUnity Catalogスキーマ |
|
| String |
|
|
オプション
パラメーター | Type | 説明 | 例 |
|---|---|---|---|
| オブジェクト | テーブルごとの設定(列の選択など) | 列の選択を参照 |
パイプライン構成の例
Python SDK を使用してパイプライン構成を完了します。
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問題のテーブル論理名を特定するには:
- Power Apps メーカーポータル : テーブル に移動し、 論理名 列を表示します。
- Dataverse API :
https://yourorg.api.crm.dynamics.com/api/data/v9.2/EntityDefinitionsを使用してメタデータをクエリします。 - ADLS Gen2 ストレージ : Synapse Link コンテナー内のフォルダーを一覧表示します (フォルダー名は論理名と一致します)。
パイプライン構成では小文字の論理名を使用します (たとえば、 "account"ではなく"Account" )。コネクタでは大文字と小文字が区別されます。
パフォーマンスチューニング
Dynamics 365 コネクタでは、限定されたパフォーマンス チューニング オプションが提供されます。
列の選択
削減する必要な列のみを選択してください:
- ADLS Gen2からのデータ転送
- Delta Lakeのストレージコスト
- クエリ処理時間
構成の詳細については、列の選択を参照してください。
テーブルのグループ化
多数のテーブルがある環境の場合:
- 関連テーブル : 管理を容易にするために、関連するテーブルを同じパイプラインにグループ化します。
- ボリュームベース : 大容量のテーブルを専用のパイプラインに分離します。
- 更新頻度 : 更新パターンが類似するテーブルをグループ化します。
各パイプラインは 250 テーブルに制限されます。より大規模な環境の場合は、複数のパイプラインを作成します。
トラブルシューティング
Dynamics 365 コネクタを使用する場合の一般的な問題と解決策については、 Microsoft Dynamics 365 取り込みのトラブルシューティング」を参照してください。