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

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 計算を高速化するのに役立ちます。

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


Python における Self とは: 実際の例

Python における Self とは: 実際の例

Python における Self とは: 実際の例

RでRDSファイルを保存してロードする方法

RでRDSファイルを保存してロードする方法

R の .rds ファイルからオブジェクトを保存および読み込む方法を学習します。このブログでは、R から LuckyTemplates にオブジェクトをインポートする方法についても説明します。

最初の N 営業日の再考 – DAX コーディング言語ソリューション

最初の N 営業日の再考 – DAX コーディング言語ソリューション

この DAX コーディング言語チュートリアルでは、GENERATE 関数の使用方法とメジャー タイトルを動的に変更する方法を学びます。

LuckyTemplates のマルチスレッド動的ビジュアル手法を使用したインサイトのショーケース

LuckyTemplates のマルチスレッド動的ビジュアル手法を使用したインサイトのショーケース

このチュートリアルでは、マルチスレッド動的ビジュアル手法を使用して、レポート内の動的データ視覚化から洞察を作成する方法について説明します。

LuckyTemplates のフィルター コンテキストの概要

LuckyTemplates のフィルター コンテキストの概要

この記事では、フィルター コンテキストについて説明します。フィルター コンテキストは、LuckyTemplates ユーザーが最初に学習する必要がある主要なトピックの 1 つです。

LuckyTemplates Online Service でアプリを使用する際の最良のヒント

LuckyTemplates Online Service でアプリを使用する際の最良のヒント

LuckyTemplates Apps オンライン サービスが、さまざまなソースから生成されたさまざまなレポートや分析情報の管理にどのように役立つかを示したいと思います。

時間の経過に伴う利益率の変化を分析する – LuckyTemplates と DAX を使用した分析

時間の経過に伴う利益率の変化を分析する – LuckyTemplates と DAX を使用した分析

LuckyTemplates でのメジャー分岐や DAX 数式の結合などの手法を使用して、利益率の変化を計算する方法を学びます。

DAX Studio でのデータ キャッシュのマテリアライゼーションのアイデア

DAX Studio でのデータ キャッシュのマテリアライゼーションのアイデア

このチュートリアルでは、データ キャッシュの具体化のアイデアと、それが結果を提供する際の DAX のパフォーマンスにどのように影響するかについて説明します。

LuckyTemplates を使用したビジネス レポート

LuckyTemplates を使用したビジネス レポート

これまで Excel を使用している場合は、ビジネス レポートのニーズに合わせて LuckyTemplates の使用を開始するのに最適な時期です。

LuckyTemplates ゲートウェイとは何ですか? 知っておくべきことすべて

LuckyTemplates ゲートウェイとは何ですか? 知っておくべきことすべて

LuckyTemplates ゲートウェイとは何ですか? 知っておくべきことすべて