Azure Synapse Link for Dataverse に関する FAQ

この記事では、Microsoft Dataverse テーブルのデータを Azure Synapse Analytics および Azure Data Lake にエクスポートする際の、よくある質問について記載しています。

複数の Microsoft Dataverse テーブルを同時にレイクに追加した場合、パフォーマンスに影響は発生しますか?

複数のテーブルを Azure Synapse Link プロファイルに追加すると、次のシナリオでパフォーマンスに影響を与えます。

  • デルタ同期: テーブルの初期同期が完了した後、選択したテーブルに対して Dataverse で行われたすべての変更は、Azure Synapse Link の共通キューに追加されます。 キューは固定の並列するリスナーで処理されます。 キューにテーブルを追加すると、Azure Synapse Link はメッセージを処理しますが、メッセージ数が多くなると、Synapse や Data Lake へのデータの同期に待機時間が発生します。

テーブルのリレーションシップにアクセスするにはどうすればよいですか?

多対多のリレーションシップにアクセスするには、新しいリンクの場合は テーブルの追加 ページから、既存のリンクの場合は テーブルの管理 から、リレーションシップをテーブルとして選択できます。

列を追加するとどうなりますか ?

ソースのテーブルに新しい列を追加すると、対応するファイル パーティションの宛先のファイルの最後に追加されます。 列が追加される前の行には新しい列は表示されませんが、新しい行や更新された行には新しく追加された列が表示されます。

列を削除するとどうなりますか?

ソースのテーブルから列を削除しても、その列は宛先から削除されません。 その代わりに、行は更新されなくなり、前の行を保持したまま null 値としてマークされます。

列のデータ型を変更するとどうなりますか ?

列のデータ型を変更することは破壊的変更であり、リンクを解除して再リンクする必要があります。

行を削除するとどうなりますか ?

行の削除は、選択したデータ書き込みオプションにによって処理が異なります。

  • インプレース更新: これは既定のモードであり、このモードでテーブルの行を削除すると、Azure Data Lake の対応するデータ パーティションからも行が削除されます。 つまり、データは保存先から完全に削除されます。
  • 追加のみ : このモードでは、Dataverse テーブルの行が削除され、保存先から完全に削除されるわけではありません。 代わりに、Azure Data Lake の対応するデータ パーティション内のファイルに行が追加され、[isDeleted=True] と設定されます。

Data Lake に同期する新しいテーブルを追加するとどうなりますか?

Azure Synapse Link for Dataverse では、固定された一連のテーブルを同時に処理して初期同期を行うことに注意が必要です。 新しいテーブルがプロファイルに追加されると、既存のテーブルの増分同期または差分同期が一時停止します。 既存テーブルのデルタ メッセージがキューに入り続ける間、Azure Synapse Link は、新しく追加されたテーブルの最初の同期が完了するまで、デルタ キューからのメッセージを処理しません。 これは、新しいリンクされるレイクを作成した場合でも、新しいプロファイルを作成した場合でも、既存のプロファイルにテーブルを追加した場合でも同様です。 新規または既存のプロファイルでは、一度に Data Lake に同期するテーブルを 5 つまでに留めることをお勧めします。 テーブルを追加しても、同期プロセスは高速化されません。 新しく追加されたテーブルの初期同期が進行している間に、それらのテーブルの差分変更を単一のキューにまとめます。 Azure Synapse Link for Dataverse は、以前に追加されたすべてのテーブルの最初の同期が完了するまで、これらのデルタの変更を処理しません。

エクスポートされた Dataverse テーブルで期待できる日付と時刻の形式は何ですか ?

エクスポートされた Dataverse テーブルで期待できる日付と時刻の形式は 3 つあります。

列名 フォーマット
SinkCreatedOnSinkModifiedOn M/d/yyyy H:mm:ss tt 6/28/2021 4:34:35 PM
CreatedOn yyyy-MM-dd'T'HH:mm:ss.sssssssXXX 2018-05-25T16:21:09.0000000+00:00
その他のすべての列 yyyy-MM-dd'T'HH:mm:ss'Z' 2021-06-25T16:21:12Z

年次または月次のパーティション化戦略はいつ使用する必要がありますか ?

1 年以内にデータ量が多くなる Dataverse のテーブルでは、月次パーティションを使用することをお勧めします。 そうすることで、ファイルが小さくなり、パフォーマンスが向上します。 また、Dataverse テーブルの行が頻繁に更新される場合は、複数の小さなファイルに分割することで、インプレース更新時のパフォーマンスが向上します。

変更履歴の表示追加のみを使用するのはどのような場合ですか?

追加のみモードは、Dataverse のテーブル データをレイクに書き込む際に推奨されるオプションで、特にデータが頻繁に変更されるパーティション内でデータ ボリュームが大きい場合に有効です。 繰り返しになりますが、これは一般的によく使用されているため、企業のお客様に強く推奨されるオプションです。 さらに、Dataverse からの変更を段階的に確認し、ETL、AI、ML のシナリオで使用する変更を処理することを意図したシナリオには、このモードを選択できます。 追加のみのモードでは、最新の変更やインプレース更新ではなく、変更の履歴を提供し、過去の値に基づいた予測や予報の分析など、AI のシナリオからいくつかの時系列を可能にします。

エクスポートにサポートされていないのはどの Dataverse テーブルですか ?

次のシステム テーブルと、変更の追跡が有効になっていないテーブルはサポートされません:

  • 添付ファイル
  • 注釈
  • 文字列マップ
  • カレンダー

規定で追加のみを使用するのはどの Dataverse テーブルですか?

createdOn フィールドを持たないすべてのテーブルは、規定で追加専用モードを使用して同期されます。 これには、リレーションシップ テーブルと ActivityParty テーブルが含まれます。

Synapse Link では、エグレスの防止だけでなく、高性能と低遅延を確保するために、すべてのリソースを同じリージョンに配置する必要があります。 クロス リージョン シナリオがある場合は、次のことができます。

  • Azure リソースを環境と同じリージョンに移動します。
  • Microsoft カスタマー サポート に連絡して、環境を Azure リソースと同じリージョンに移動します。
  • Azure Data Lakeで、読み取りアクセス geo 冗長ストレージ (RA-GRS) を有効化して、Azure データを近くのリージョンに複製します。 詳細: セカンダリ リージョンのデータへの読み取りアクセス
  • Azure Synapse パイプラインまたは Azure Data Factory を使用して、あるリージョンから他の Azure リソースへデータをコピーします。

エラー メッセージが表示されるのはなぜですか - ファイルが不完全または読み取ることができなかったため、一括読み込みができない?

Dataverse データは、トランザクションの作成、更新、削除を通じて継続的に変更できます。 このエラーは、基になるファイルからデータを読み取るときに変更されることが原因で発生します。 したがって、継続的に変更されるテーブルの場合、消費パイプラインを変更して、スナップショット データ (パーティション テーブル) を使用して消費する必要があります。 詳細: Azure Synapse Workspace を使用して Azure Synapse Link for Dataverse を作成する