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接続を作成するときは、次の点を指定します。
パラメーター | 説明 | 例 |
|---|---|---|
| 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 取り込みのトラブルシューティング」を参照してください。