Azure Synapse Link の高度な構成オプション
Azure Synapse Link では、さまざまな分析シナリオに合わせてデータの書き込みと読み取りをする複数の方法を提供します。 分析シナリオに応じて、以下のオプションから特定の構成を選択できます。
シナリオ | 適用対象 | 利用可能な構成オプション |
---|---|---|
業務レポート | Dataverse テーブル、財務と運用テーブルとエンティティ | Delta Lake オプションを備えた Synapse Analytics は、特に大量のデータのクエリに適用できる、より優れたクエリ応答時間を実現します。 詳細情報: Synapse リンクと Delta Lake オプション |
業務レポート | Dataverse テーブルのみ | Synapse Link の「インプレース更新」構成オプションにより、データレイクにほぼリアルタイムで更新される CSVフ ァイルを提供します これは、 Dataverse テーブルで使用できるレガシー オプションです。 このオプションは、財務と運用アプリのテーブルではサポートされていません |
データ統合 | Dataverse テーブル、財務と運用テーブルとエンティティ | 追加のみ オプションでは、増分データを含む CSV ファイルが提供されます。 増分データを消費し、下流のシステムにデータを入力するパイプラインを構築できます。 ユーザー指定のデータ パーティション 機能により、Dataverse テーブル専用のカスタム データ パーティション戦略を選択できます。 財務および運用テーブルのデータは、適切なパーティション戦略に基づいてシステムによってパーティション分割されます。 このオプションは財務と運用アプリでは使用できません |
注意
Azure Synapse Link for Dataverse は以前は、データ レイクへのエクスポートと呼ばれていました。 このサービスは、2021 年 5 月より名称が変更され、 Azure Data Lake Storage だけでなく、Azure Synapse Analytics へのデータのエクスポートも継続されます。 2023 年 9 月より、Azure Synapse Link では Dynamics 365 の財務と運用アプリケーションからデータを選択できるようになりました。 財務と運用アプリでは、すべての統合パターンがサポートされているわけではありません。 財務および運用アプリのデータレイク機能へのエクスポートから Synapse Link への移行に関するガイダンスについては、 移行ガイドをご覧ください。
この記事では、Dataverse テーブルで利用可能な高度な構成設定について説明します。 財務と運用アプリでは、これらのオプションは利用できません。
- インプレース更新と、追加のみ書き込みの比較。
- ユーザー指定のデータ分割。
インプレース更新と追加のみの書き込み
Dataverse のテーブル データを Azure Data Lake に書き込んでいる間、レコードが作成された日時である createdOn
の値に基づいて、2つの異なる設定を選択することができます。 これらは インプレース アップデート と 追加のみ です。
既定の設定 (createdOn
が使用可能なテーブル) は、宛先の増分データのインプレース更新、またはアップサート (更新または挿入) を実行します。 変更が新しく、対応する行がレイクに存在しない場合は、作成の場合に、宛先ファイルがスキャンされ、変更がレイクの対応するファイル パーティションに挿入されます。 変更内容が更新で、レイクに行が存在する場合、レイクの対応するファイルは挿入ではなく、増分データで更新されます。 つまり、createdOn
を有効化した Dataverse テーブルで、すべての CUD (作成、更新、削除) 変更の既定設定では、宛先である Azure データ レイクでインプレース更新を行います。
追加のみ のオプション設定を使用することで、インプレース アップデートの既定の動作を切り替えることができます。 インプレース アップデートではなく、追加のみモードでは、Dataverse のテーブルからの増分データがレイクの対応するファイル パーティションに追加されます。 これは、テーブルの設定ごとに、詳細>高度な構成の設定を表示するの下のチェックボックスとして利用できます。 追加のみ を有効化した Dataverse テーブルでは、すべての CUD の変更点がレイクの対応する宛先ファイルに増分追加されます。 このオプションを選択すると、パーティション戦略はデフォルトで 年 に設定され、データ レイクにデータが書き込まれると、年単位で分割されます。 追加のみ は、createdOn
値を持たない Dataverse テーブルのデフォルト設定でもあります。
この表は、各データ書き込みオプションの CUD イベントに対するレイクでの行の処理方法について説明しています。
イベント | インプレース アップデート | 追加のみ |
---|---|---|
作成 | この行はパーティション ファイルに挿入され、その行の createdOn の値に基づきます。 |
この行はパーティション ファイルの最後に追加され、レコードの createdOn 値に基づいています。 |
更新 | 行がパーティション ファイルに存在する場合は、更新後のデータに置き換えられるか、更新されます。 存在しない場合は、ファイルに挿入されます。 | この行は、更新されたバージョンとともに、パーティション ファイルの最後に追加されます。 |
Delete キー | 行がパーティション ファイルに存在する場合、その行はファイルから削除されます。 | パーティション ファイルの末尾に IsDelete column = True の行が追加されます。 |
注意
追加のみ が有効な Dataverse のテーブルでは、ソース側の行を削除してもレイク側の行は削除されません。 代わりに、削除された行がレイクの新しい行として追加され、isDeleted
行は True に設定されます。
サーバーレスのダーティ リード (ALLOW_INCONSISTENT_READS) は、追加専用モードで有効になります。 ALLOW_INCONSISTENT_READS は、ユーザーが SELECT
クエリの実行中に常に変更可能なファイルを読み取ることができることを意味します。 結果は一貫しており、ファイルのスナップショットの読み取りと同等になります。 (スナップショットの生成時間が異なるため、データベース スナップショットの分離とは異なります。)
すべての CUD 変更が 追加専用 でキャプチャされるわけではありません: データ レイクに公開する前に、Synapse Link はデータの変更をグループまたは "バッチ" で処理します。 その結果、ユーザーが短い時間間隔で変更を加える場合、一部の CUD 変更がデータ レイクでキャプチャされない場合があります。
オプションのいずれかを使用する場合の詳細を次に示します。
- インプレース更新: このオプションは既定の設定であり、レイクのデータに直接接続し、現在の状態 (履歴や増分変更ではなく) が必要な場合にのみ推奨されます。 このファイルには、データセット全体が含まれており、Power BI やETL (抽出、転送、読み込み) パイプラインにデータセット全体をコピーして利用することができます。
- 追加のみ : レイク内のデータに直接接続せず、ETL パイプラインを使ってデータを別のターゲットに段階的にコピーする場合は、このオプションを選択します。 このオプションは、AI や ML のシナリオを有効にするための変更履歴を提供します。
Azure Synapse Link for Dataverse の詳細にある高度な構成設定を表示するを切り替えると、データ パーティション戦略をカスタマイズや、Azure data lake への書き込みオプションを選択することができます。
データのパーティション分割
Azure Synapse Link を使用して Dataverse テーブル データを Azure data lake storage に書き込む場合、テーブルはソースの各行の createdOn
値に基づいてレイクにパーティション分割 (単一ファイルの代わりに) されます。 既定のパーティション戦略は月単位で、データは月単位で Azure Data Lake に分割されます。
Dataverse テーブルのボリュームとデータの分布に基づいて、データを年ごとに分割することを選択できます。 このオプションを使用すると、Dataverse テーブル データが Azure Data Lake に書き込まれる際に、ソースの各行の createdOn
値に基づいて 1 年単位で分割されます。 createdOn
列のないテーブルでは、500 万レコードごとにデータの行が新しいファイルに分割されます。 これは、テーブルごとの設定で、詳細>詳細な構成設定を表示する の下のチェックボックスとして利用できます。
年次または月次のパーティション戦略を使用して、レイクでデータを処理する方法の例を含む詳細: