Datastream を使用すると、分析とデータ統合のために、Microsoft Dataverse 環境から過去のデータと増分変更を複製できます。Dataverse は、ビジネス アプリケーションで使用されるデータを保存、管理するためのクラウドベースのデータ プラットフォームです。
Dataverse ソースを構成する前に、Datastream の重要な用語、レプリケーションの動作、サポートされているバージョン、既知の制限事項を確認してください。
主な用語
Dataverse は、次のコンセプトを使用して動作します。
- テーブル(以前のエンティティ)は、リレーショナル データベースのテーブルに似ています。Dataverse にはデフォルトで標準テーブルが含まれていますが、カスタム テーブルを作成することもできます。
- 列(以前のフィールド)はテーブルの属性であり、リレーショナル データベースの列に似ています。
- 行はテーブル内の特定のレコードであり、リレーショナル データベースの行に似ています。
動作
Datastream の Dataverse ソースのサポートは、Open Data Protocol(OData)を使用する Dataverse Web API に依存しています。Datastream は、設定した間隔に基づいてソースの変更をポーリングします。
Dataverse ソースからデータを複製すると、次の動作が確認されます。
- API の操作: Datastream は、RESTful リクエストを使用して Dataverse Web API とやり取りします。ベース環境の URL は
https://ORGANIZATION_ID.crm.dynamics.com/api/data/v9.1/です。標準ヘッダー(Accept: application/json、OData-MaxVersion: 4.0、OData-Version: 4.0)が使用されます。 - 認証: Datastream は、クライアント認証情報の権限付与タイプで OAuth 2.0 を使用して認証を処理します。Datastream は Microsoft Identity Platform からトークンを取得します。
スキーマの検出: Dataverse スキーマは動的です。Datastream は、
/EntityDefinitionsエンドポイントにクエリを実行して、オブジェクト名とスキーマを検出します。- オブジェクト名: Datastream は、
$filter=TableType ne 'Virtual' and IsPrivate eq falseフィルタと$select=EntitySetNameパラメータを使用して/EntityDefinitionsエンティティ セットパスにGETリクエストを送信して、オブジェクト名を取得します。 - オブジェクト スキーマ: Datastream は、
$expand=Attributes($select=LogicalName,AttributeType,AttributeTypeName)パラメータと$filter=EntitySetName eq '[objectName]'フィルタを使用して/EntityDefinitionsエンティティ セットパスにGETリクエストを送信することで、エンティティごとにオブジェクト スキーマを取得します。
- オブジェクト名: Datastream は、
データ レプリケーション:
- Datastream は、標準の Dataverse テーブルとカスタムの Dataverse テーブルを複製します。仮想テーブルとプライベート テーブルは除外されます。
- 履歴バックフィル: ストリーム用に構成されている場合、Datastream は含まれるテーブルのすべての過去のデータを複製します。これを行うには、エンティティ セットに最初の
GETリクエストを送信し、API レスポンスで提供される@odata.nextLinkプロパティを使用してすべてのページを反復処理します。Prefer: odata.maxpagesize=5000ヘッダーが使用されます。 - 増分同期: Datastream は挿入イベントと更新イベントを複製します。これは、タイムスタンプベースの同期を使用して、
modifiedonフィールドが最後の同期時間($filter=modifiedon gt [last_sync_timestamp])より大きいレコードをフィルタリングすることで実現されます。Datastream は削除イベントをキャプチャしません。
ポーリング間隔: Datastream は、ストリームの作成時に設定したポーリング間隔に従って変更をポーリングします。この間隔は、ストリームのデータの更新速度指標に反映されます。
複製されたすべてのオブジェクトは、modifiedon フィールドを使用した増分同期と完全なバックフィルの両方をサポートしています。
バージョン
Datastream は Dataverse Web API バージョン v9.1 を使用します。
既知の制限事項
Dataverse をソースとして使用する場合の既知の制限事項は次のとおりです。
modifiedonタイムスタンプに基づく増分同期方法では、削除イベントはキャプチャされません。- Datastream は、デルタリンク(
@odata.deltaLink)を使用する Dataverse の推奨変更トラッキング機能をサポートしていません。これは、後続の増分 pull に必要なデルタリンク URL の保存がサポートされていないためです。 - レプリケーションは標準テーブルとカスタム テーブルに限定されます。仮想テーブルとプライベート テーブルはサポートされていません。
- 増分同期が想定どおりに機能するようにするには、ソーステーブルの
modifiedonフィールドを正確に更新することが重要です。 Picklistフィールドのラベルを取得するには、データ リクエストに整数値だけでなくPrefer: data.include-annotations="*"ヘッダーを含める必要があります。
次のステップ
- Datastream で使用する Dataverse ソースの構成方法を学習する。