Azure Synapse Link の高度な構成オプション
Azure Synapse Link では、さまざまな分析シナリオに合わせてデータの書き込みと読み取りをする複数の方法を提供します。
注意
Azure Synapse Link for Dataverse は以前は、Data Lake へのエクスポートと呼ばれていました。 このサービスは、2021 年 5 月より名称が変更され、Azure Synapse Analytics だけでなく、Azure Data Lake へのデータのエクスポートも継続されます。
この記事では次の点を説明します:
- インプレース更新と、追加のみ書き込みの比較。
- ユーザー指定のデータ分割。
インプレース更新と追加のみの書き込み
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 万レコードごとにデータの行が新しいファイルに分割されます。 これは、テーブルごとの設定で、詳細 > 詳細な構成設定を表示する の下のチェックボックスとして利用できます。
年次または月次のパーティション戦略を使用して、レイクでデータを処理する方法の例を含む詳細:
関連情報
Azure Synapse Link for Dataverse
注意
ドキュメントの言語設定についてお聞かせください。 簡単な調査を行います。 (この調査は英語です)
この調査には約 7 分かかります。 個人データは収集されません (プライバシー ステートメント)。