VertiPaq Analyzer チュートリアル: リレーションシップと参照整合性

このチュートリアルでは、DAX Studio のVertiPaq Analyzerの [リレーションシップ] タブについて説明します。DAX コードの速度を低下させる参照整合性違反を特定する際に、これがどれほど役立つかを学びます。これは、どのテーブルまたは列を最適化および改善する必要があるかを判断するのに役立ちます。

目次

VertiPaq Analyzer の「関係」タブのチュートリアル

[関係] タブには、データ モデル内のすべての関係が表示されます。説明のために、これはこのチュートリアルで使用されるサンプル ファイルです。4 つの関係セットがあることがわかります。

VertiPaq Analyzer チュートリアル: リレーションシップと参照整合性

これはデータ モデルのダイアグラム ビューです。

VertiPaq Analyzer チュートリアル: リレーションシップと参照整合性

ファクト テーブルに関連する 4 つのディメンション テーブルがあります。「Relationships」タブに戻ると、  「Max From Cardinality」列が表示されます 。

この列は、リレーションシップのコストを定義します。これは、 DAX がフィルターをディメンション テーブルからファクト テーブルに転送するのに必要な時間です。

タブ内のその他の重要な列は、「Missing Keys」「Invalid Rows」、および「Sample 違反」です。これらは、モデル内の参照整合性の問題を示しています。

参照整合性違反

参照整合性違反は、1 対多の関係の多側に値があり、一方側には存在しない場合に発生します。

これらの違反により、DAX のパフォーマンスが低下し、場合によっては不正確な計算が発生することがあります。

これらの違反を特定するには、[関係] タブを使用するか、DAX クエリを実行します。パフォーマンスをよりスムーズにするために、常に問題を解決することがベスト プラクティスです。

「リレーションシップ」タブに戻ると、ディメンション テーブルとファクト テーブルのリレーションシップを参照する違反があることがわかります

VertiPaq Analyzer チュートリアル: リレーションシップと参照整合性

ファクト テーブルには、781 個の欠落したCustomerKey と、DimCustomerテーブル とDimSalespersonテーブルに存在しない 1 個の欠落したSalespersonKeyがあります。 

「サンプル違反」列には、欠落しているキーが何であるかを示します。この例では、Customer Key テーブルから 5 つのキーのみが表示されています。

表示されるキーの数を変更する場合は、「ファイル」に移動し、「オプション」をクリックします。次に、[詳細設定] をクリックして、違反の数を変更します。この例では、20 個の不足しているキーが使用されています。

VertiPaq Analyzer チュートリアル: リレーションシップと参照整合性

タブに戻ったら、[View Metrics] をクリックして DAX を再実行します。不足しているキーをさらに確認できるようになりました。

VertiPaq Analyzer チュートリアル: リレーションシップと参照整合性

ここで、これらのキーが欠落している理由とその内容を理解する必要があります。DAX クエリを作成して、顧客キーテーブルから不足しているキーを取得します。

VertiPaq Analyzer チュートリアル: リレーションシップと参照整合性

まずEVALUATE関数を使用し、次に 関数を使用します。左側のテーブルでは、FactSales テーブルのCustomerKeyに 関数を使用します。

また、右側のテーブルでは、DimCustomere r テーブルのCustomerKeyにDISTINCT 関数を使用します。F5 を押すと、欠落している 781 個のキーがすべて表示されます。

VertiPaq Analyzer チュートリアル: リレーションシップと参照整合性

VertiPaq Analyzer チュートリアル: RI 違反の修正

違反を修正するには、サンプル ファイルに戻り、  [データの変換]をクリックします。次に、DimCustomerテーブルに移動し、完全なリストを取得して、[適用] をクリックします。

VertiPaq Analyzer チュートリアル: リレーションシップと参照整合性

DAX クエリを再度実行します。不足しているキーがないことがわかります。

VertiPaq Analyzer チュートリアル: リレーションシップと参照整合性

SalesPersonKey テーブルからの違反についても、同じことを実行します。DimSalesPersonテーブルに移動し、不足しているキーを取得して、[適用] をクリックします。

VertiPaq Analyzer チュートリアル: リレーションシップと参照整合性

現在、参照整合性違反はありません。


この新しいコースで DAX 関数を最適化する
より最適化されたデータを実現する簡単な LuckyTemplates 変換
高度な DAX を使用して LuckyTemplates 数式を最適化する

結論

DAX の最適化をどこからどのように始めればよいかわからない場合は、VertiPaq Analyzer メトリクスの [関係] タブを使用してください。参照整合性違反のあるテーブルを特定し、それらを削除してDAX 計算を高速化するのに役立ちます。

パフォーマンスの問題は常に発生しますが、[関係] タブの使い方をマスターすれば、エラーのない計算ができるようになります。

Leave a Comment

Power Automate の文字列関数: Substring と IndexOf

Power Automate の文字列関数: Substring と IndexOf

Microsoft フローで使用できる 2 つの複雑な Power Automate String 関数、substring 関数とindexOf 関数を簡単に学習します。

LuckyTemplates でビジュアル ツールチップを作成する

LuckyTemplates でビジュアル ツールチップを作成する

LuckyTemplates ツールチップを使用すると、より多くの情報を 1 つのレポート ページに圧縮できます。効果的な視覚化の手法を学ぶことができます。

Power Automate で HTTP 要求を行う

Power Automate で HTTP 要求を行う

Power Automate で HTTP 要求を作成し、データを受信する方法を学んでいます。

LuckyTemplates で日付テーブルを作成する方法

LuckyTemplates で日付テーブルを作成する方法

LuckyTemplates で簡単に日付テーブルを作成する方法について学びましょう。データの分析と視覚化のための効果的なツールとして活用できます。

2 つの方法による SharePoint 列の検証

2 つの方法による SharePoint 列の検証

SharePoint 列の検証の数式を使用して、ユーザーからの入力を制限および検証する方法を学びます。

SharePoint リストを Excel または CSV ファイルにエクスポート

SharePoint リストを Excel または CSV ファイルにエクスポート

SharePoint リストを Excel ファイルおよび CSV ファイルにエクスポートする方法を学び、さまざまな状況に最適なエクスポート方法を決定できるようにします。

Power Automate のオンプレミス データ ゲートウェイ

Power Automate のオンプレミス データ ゲートウェイ

ユーザーがコンピューターから離れているときに、オンプレミス データ ゲートウェイを使用して Power Automate がデスクトップ アプリケーションにアクセスできるようにする方法を説明します。

DAX 数式での LASTNONBLANK の使用

DAX 数式での LASTNONBLANK の使用

DAX 数式で LASTNONBLANK 関数を使用して、データ分析の深い洞察を得る方法を学びます。

CROSSJOIN 関数の使用方法 – LuckyTemplates および DAX チュートリアル

CROSSJOIN 関数の使用方法 – LuckyTemplates および DAX チュートリアル

LuckyTemplates で予算分析とレポートを実行しながら、CROSSJOIN 関数を使用して 2 つのデータ テーブルをバインドする方法を学びます。

TREATAS 関数を使用して LuckyTemplates で仮想リレーションシップを作成する

TREATAS 関数を使用して LuckyTemplates で仮想リレーションシップを作成する

このチュートリアルでは、LuckyTemplates TREATAS を使用して数式内に仮想リレーションシップを作成する方法を説明します。