この記事では、Microsoft Dataverse テーブルのデータを Azure Synapse Analytics および Azure Data Lake にエクスポートする際の、よくある質問について記載しています。
接続された Azure ストレージ内のデータ ファイルの作成、更新、削除、自動削除ポリシーの設定などのタスクを手動で実行できますか?
顧客はデータ ファイルを変更できません。また、顧客ファイルをデータ フォルダーに配置することはできません。
注意
データレイク内の古くなったデータや停滞したデータを、Azure Synapse Linkを壊さずに削除するには、 増分更新のクエリと分析機能の使用を検討してください
テーブルのリレーションシップにアクセスするにはどうすればよいですか?
多対多のリレーションシップにアクセスするには、新しいリンクの場合は テーブルの追加 ページから、既存のリンクの場合は テーブルの管理 から、リレーションシップをテーブルとして選択できます。
注意
すべての リレーションシップ データは、CSV 形式で書き込まれる場合、既定で追加専用モードになります。
Azure Synapse Link を追加する前にコストの見積を取得するにはどうすればよいですか?
Azure Synapse Link は、Dataverse に付属する無料の機能です。 Azure Synapse Link for Dataverse を使用しても、Dataverse に基づく追加料金は発生しません。 ただし、Azure サービスの潜在的なコストを考慮してください。
- Azure Data Lake Storage Gen2 のデータ ストレージ: Azure Storage Data Lake Gen2 の価格 | Microsoft Azure
- データ消費コスト (Synapse Workspace など): 価格 - Azure Synapse Analytics | Microsoft Azure 包括的な Microsoft Cost Management 情報については、次のサイトを参照してください: Azure のコスト管理を計画する - Microsoft Cost Management | Microsoft Learn
列を追加するとどうなりますか ?
ソースのテーブルに新しい列を追加すると、対応するファイル パーティションの宛先のファイルの最後に追加されます。 列が追加される前の行には新しい列は表示されませんが、新しい行や更新された行には新しく追加された列が表示されます。
列を削除するとどうなりますか?
ソースのテーブルから列を削除しても、その列は宛先から削除されません。 その代わりに、行は更新されなくなり、前の行を保持したまま null 値としてマークされます。
列のデータ型を変更するとどうなりますか ?
列のデータ型を変更することは破壊的変更であり、リンクを解除して再リンクする必要があります。
行を削除するとどうなりますか ?
行の削除は、選択したデータ書き込みオプションにによって処理が異なります。
- CSV 形式によるインプレース更新: これが既定のモードです。 このモードでテーブルの行を削除すると、Azure Data Lake の対応するデータ パーティションからも行が削除されます。 つまり、データは保存先から完全に削除されます。
- 追加のみ : このモードでは、Dataverse テーブルの行が削除され、保存先から完全に削除されるわけではありません。 代わりに、Azure Data Lake の対応するデータ パーティション内のファイルに行が追加され、
isDeleted=True
と設定されます。 - Delta Lake 形式にエクスポート: Azure Synapse Link 次のデルタ同期サイクル中にデータのソフト削除を実行し、30 日後にハード削除を実行します。
エクスポートされたファイルに列ヘッダーが表示されないのはなぜですか?
Azure Synapse Link は Common Data Model に従って、Microsoft Power Apps、Power BI、Dynamics 365、Azure などのアプリケーションやビジネス プロセス全体でデータとその意味の整合性を保つことができます。 各 CDM フォルダーでは、列ヘッダーなどのメタデータが model.json ファイルに保存されます。 詳細情報: Common Data Model と Azure Data Lake Storage Gen2 | Microsoft Learn
Model.json ファイルのデータ型の長さが増加または変更され、Dataverse で定義されている内容が保持されないのはなぜですか?
Model.json では、列のサイズに対応したデータベースの長さを保持しています。 Dataverse では、各列のデータベースの長さという概念があります。 サイズが 200 の列を作成し、後で 100 に減らしたとしても、Dataverse は既存のデータを Dataverse に存在させることができます。 これは DBLength
を 200 に、MaxLength
を 100 に保つことで実現します。 Model.json に表示されるのは DBLength
であり、これを下流工程に使用すると、Dataverse 列のスペースが不足することになります。
注意
メモ フィールドは varchar(max)
として定義され、既定の最大長は 9999 です。
エクスポートされた Dataverse テーブルで期待できる日付と時刻の形式は何ですか ?
エクスポートされた Dataverse テーブルで期待できる日付と時刻の形式は 3 つあります。
列名 | 形式 | データ型 | 例 |
---|---|---|---|
SinkCreatedOn と SinkModifiedOn | M/d/yyyy H:mm:ss tt | datetime | 6/28/2021 4:34:35 PM |
CreatedOn | yyyy-MM-dd'T'HH:mm:ss.sssssssXXX | datetimeOffset | 2018-05-25T16:21:09.0000000+00:00 |
その他のすべての列 | yyyy-MM-dd'T'HH:mm:ss'Z' | datetime | 2021-06-25T16:21:12Z |
注意
CreatedOn のデータ型が、2022/07/29 に datetime
から datetimeOffset
に変更されました。 変更前に作成されたテーブルのデータ型形式を編集するには、テーブルを削除して再追加します。
Dataverse の日付と時刻の列に対してさまざまな列の動作を選択することができ、これによりデータ型の形式が更新されます。 詳細: 日時の列の動作と形式
一部の Dataverse テーブルで、通常の日時パーティション ファイル名ではなく、1.csv または 1_001.csv ファイル名が表示されるのはなぜですか?
この動作は、追加専用エクスポート モードを選択し、有効な CreatedOn 列のないテーブルがある場合に予期されます。 BLOB は、1.csv、2.csv などのファイルに編成されます (有効な作成日がないため、カスタム パーティション分割が採用されています)。 いずれかのパーティションが MaxBlockPerBlobLimit の 95% に近づくと、システムは新しいファイル (ここでは 1_001.csv として示されています) を自動的に生成します。
年次または月次のパーティション化戦略はいつ使用する必要がありますか ?
1 年以内にデータ量が多くなる Dataverse のテーブルでは、月次パーティションを使用することをお勧めします。 そうすることで、ファイルが小さくなり、パフォーマンスが向上します。 また、Dataverse テーブルの行が頻繁に更新される場合は、複数の小さなファイルに分割することで、インプレース更新シナリオの場合のパフォーマンスが向上します。 Delta Lake は、CSV 形式に比べてパフォーマンスが優れているため、年間パーティションでのみ使用できます。
追加専用モードとは何ですか? また、追加専用モードとインプレース更新モードの違いは何ですか?
追加専用モードでは、Dataverse テーブルからの増分データがレイクの対応するファイル パーティションに追加されます。 詳細情報: Azure Synapse Link の詳細構成オプション
変更の履歴表示に追加専用モードを使用するのはどのような場合ですか?
追加のみモードは、Dataverse のテーブル データをレイクに書き込む際に推奨されるオプションで、特にデータが頻繁に変更されるパーティション内でデータ ボリュームが大きい場合に有効です。 繰り返しになりますが、これは一般的によく使用されているため、企業のお客様に強く推奨されるオプションです。 さらに、Dataverse からの変更を段階的に確認し、ETL、AI、ML のシナリオで使用する変更を処理することを意図したシナリオには、このモードを選択できます。 追加のみのモードでは、最新の変更やインプレース更新ではなく、変更の履歴を提供し、過去の値に基づいた予測や予報の分析など、AI のシナリオからいくつかの時系列を可能にします。
追加専用モードでデータをエクスポートするときに、各レコードの最新の行を取得し、削除された行を除外するにはどうすればよいですか?
追記のみのモードでは、VersionNumber
と SinkModifiedOn
を使用して同じ ID のレコードの最新バージョンを識別し、最新バージョンに isDeleted=0
を適用する必要があります。
追加専用モードを使用してデータをエクスポートすると、バージョン番号が重複して表示されるのはなぜですか?
追加専用モードの場合、ネットワークの遅延などの理由でデータがコミットされたことを Azure Synapse Link for Dataverse が Azure Data Lake から認証できないとき、Azure Synapse Link はシナリオにおいて再試行し、データを再度コミットします。 下流の消費は、SinkModifiedOn
を使ってデータをフィルターすることで、このシナリオに対応できるようにする必要があります。
Sinkmodifiedon 列と Modifiedon 列に違いが見られるのはなぜですか?
起こりえることです。 Modifiedon
は Dataverse でレコードが変更された日時です。Sinkmodifiedon
はデータ レイクでレコードが変更された日時です。
エクスポートにサポートされていないのはどの Dataverse テーブルですか?
次のシステム テーブルと、変更の追跡が有効になっていないテーブルはサポートされません:
- 添付
- カレンダー
- Calendarrule
注意
Azure Synapse Link for Dataverse を使用するエクスポートに監査テーブルを追加できます。 ただし、監査テーブルのエクスポートは、Delta Lake プロファイルでのみサポートされています。
デルタ レイクへのエクスポート機能を使用しています。Apache Spark ジョブを停止したり、実行時間を変更したりできますか?
Delta Lake 変換ジョブは、構成された時間の間隔内にデータ変更があったときにトリガーされます。 Apache Spark プールを停止または一時停止するオプションはありません。 ただし、リンク作成後の時間間隔は、[テーブルの管理] > [時間間隔の詳細] で変更できます。
Azure Synapse Link はルックアップ列をサポートしていますか?
ルックアップ列は ID と値で構成されます。 ルックアップ値はルート テーブルでのみ変更されます。 参照列の値をより適切に反映するには、元のルート テーブルと結合して最新の値を取得することをお勧めします。
Azure Synapse Link は計算列をサポートしていますか?
Dataverse では、計算列には数式情報のみが保持され、実際の値は基本テーブル列によって異なります。 したがって、計算列は、すべての列が同じエクスポートされたテーブル内にある場合にのみサポートされます。
デフォルトで追加専用モードを使用するのはどの Dataverse テーブルですか?
createdOn フィールドを持たないすべてのテーブルは、規定で追加専用モードを使用して同期されます。 これには、リレーションシップ テーブルと ActivityParty テーブルが含まれます。
"パス上のディレクトリの内容をリストできません" というエラー メッセージが表示されるのはなぜですか?
- Dataverse データは、接続されたストレージ コンテナーに保存されます。 Synapse Workspace を通じて読み取り操作とクエリ操作を実行するには、リンクされたストレージ アカウントに "Storage Blob Data投稿者" ロールが必要です。
- Delta Lake 形式でデータをエクスポートすることを選択した場合、Delta Lake 変換後に CSV ファイルがクリーンアップされます。 Synapse Workspace を通じて、non_partitioned テーブルを含むデータをクエリする必要があります。
次のエラー メッセージが表示されるのはなぜですか? "ファイルが不完全または読み取ることができなかったため一括読み込みできません (CSV ファイルのみ)"
Dataverse データは、トランザクションの作成、更新、削除を通じて継続的に変更できます。 このエラーは、基礎となるファイルからデータを読み取るときに変更されることが原因で発生します。 したがって、継続的に変更されるテーブルの場合、消費パイプラインを変更して、スナップショット データ (パーティション テーブル) を使用して消費します。 詳細: サーバーレス SQL プールのトラブルシューティング
Azure Synapse Link を使用して重要なデータをアーカイブするには?
Azure Synapse Link for Dataverse は分析目的のために設計されています。 アーカイブ目的で長期保存を使用することをお勧めします。 詳細情報: Dataverse の長期間データ保持に関する概要
Dataverse でレコードが削除された場合でも、データ レイクでデータの変更が表示されないのはなぜですか?
レコードを削除するための直接 SQL 呼び出しの場合、BPO.Delete が呼び出されないため、Azure Synapse Link for Dataverse サービスはトリガーされません。 サンプル機能については、継承されたアクセスをクリーンアップする方法 を参照してください。