Python における Self とは: 実際の例
Python における Self とは: 実際の例
とどちらも、DAX クエリでデータを操作および分析するための強力なツールですが、理解することが重要な重要な違いがいくつかあります。
このブログでは、 DAX Studio のCALCULAETABLE関数とそのクエリ プランについて説明し、 FILTER関数との違いを理解します。最後には、データ分析のニーズに適した関数を選択する方法をよりよく理解できるようになります。
デモのために、以下の DAX コードを使用します。
このコードを実行すると、ブランドと色を示すテーブルが表示されます。
[クエリ プラン]タブでは、数式エンジンのCrossApply演算子に対応するコードを取得します。
同時に、コードは [サーバー タイミング]タブで製品の色とブランドのみを取得していることがわかります。
目次
CALCULATABLE の DAX Studio サーバーのタイミング結果
例として、製品の色をフィルタリングして、赤および/または黒のみを表示してみましょう。
これを行うには、FILTER 関数を使用します。これを実行すると、サーバー タイミングに FILTER 引数がxmSQL コードに適用されていないことが表示されます。
ただし、CALCULAETABLE 関数を使用すると、[サーバー タイミング] タブのクエリで、結果が製品の色でフィルターされたことが表示されます。
DAX Studio の CALCULATABLE クエリ プラン
各関数のクエリ プランを見てみましょう。
CALCULAETABLE は、コード内の最上位関数であり、要件に依存しないため、論理クエリ プランの最初の行にあります。
CALCULAETABLE 関数のクエリ プランを読み取るときは、最初の引数から始めません。まず、使用されるフィルター コンテキストを理解する必要があります。それでは、5行目に行きましょう。
フィルターが適用されているため、VertiPaqオペレーターには製品の色の列が必要であることがわかります。次に、この列をスキャンし、Not IsEmpty フィルターの組み合わせを使用して、各行に対して製品の色をチェックします。
フィルター コンテキストが準備された後、引数が実行されます。
後から考えると、FILTER 関数を使用すると、別のクエリ プランが表示されるため、フィルター コンテキストを識別する前に CROSSJOIN 引数が実行されます。
このアプローチの欠点は、フィルター条件がストレージ エンジンにプッシュされないことです。xmSQL 内でWHERE句を使用することはできないため、フォーミュラ エンジンに大きな負担がかかります。
また、複数のテーブルを操作している場合、CROSSJOIN 関数のフィルターの組み合わせは膨大になります。これにより、DAX コードのパフォーマンスが低下します。したがって、ほとんどの場合、CALCULAETABLE 関数を使用することをお勧めします。
したがって、数式エンジンですべての計算を実行する代わりに、XMSQL コードの WHERE クラス内にフィルター条件を挿入できます。
同様の DAX 関数のコンテキスト遷移
サーバーのタイミング
この概念は CALCULATE 関数にも当てはまります。例として以下の DAX コードを使用してみましょう。
メジャーには自動的に CALCULATE 関数が追加されます。
このコードを実行すると、各色の総売上高を示す表が取得されます。
[サーバー タイミング] タブでは、コードが 2 つのクエリを実行していることがわかります。最初のクエリは、Products テーブルに関する Sales テーブルからの Sales 金額の合計を計算します。
一方、2 番目のクエリは Products テーブルから製品の色を再度取得します。これは、DAX コードの関数に対応します。
Formula Engine は、2 つのクエリのデータ キャッシュを並べて配置します。まず 2 番目のデータ キャッシュから値を取得し、次に 1 番目のデータ キャッシュでルックアップを実行します。
クエリプラン
引数により論理クエリ プランが製品の色をスキャンします。
次に、VertiPaq は製品の色に応じて総売上高を合計します。製品のカラー値を同等のフィルター コンテキストに変換するコンテキスト遷移を実行します。
コンテキスト遷移によって作成されたフィルターは、クエリ プランのdependOnColsプロパティに変換されます。VertiPaq は、総売上高の計算に必要な列をスキャンした後、売上数量に正味価格を乗算します。
その後、合計売上が通貨データ型の形式で結果として返されます。最後に、ADDCOLUMNS は、Color と Total Sales 金額を含む 2 つの列を含むテーブルを返します。
結論
クエリ プランが異なれば効率のレベルも異なる可能性があるため、クエリ プランはクエリのパフォーマンスに大きな影響を与える可能性があります。
DAX クエリで CALCULAETABLE 関数と FILTER 関数を使用する場合、クエリ プランは、特定のシナリオや、使用されている特定の数式やクエリ エンジンの機能などのさまざまな要因に応じて異なる場合があります。
一般に、特定のシナリオに対して最も効率的なアプローチを決定するために、さまざまなクエリ プランのパフォーマンスをテストして比較することをお勧めします。
ではごきげんよう、
Python における Self とは: 実際の例
R の .rds ファイルからオブジェクトを保存および読み込む方法を学習します。このブログでは、R から LuckyTemplates にオブジェクトをインポートする方法についても説明します。
この DAX コーディング言語チュートリアルでは、GENERATE 関数の使用方法とメジャー タイトルを動的に変更する方法を学びます。
このチュートリアルでは、マルチスレッド動的ビジュアル手法を使用して、レポート内の動的データ視覚化から洞察を作成する方法について説明します。
この記事では、フィルター コンテキストについて説明します。フィルター コンテキストは、LuckyTemplates ユーザーが最初に学習する必要がある主要なトピックの 1 つです。
LuckyTemplates Apps オンライン サービスが、さまざまなソースから生成されたさまざまなレポートや分析情報の管理にどのように役立つかを示したいと思います。
LuckyTemplates でのメジャー分岐や DAX 数式の結合などの手法を使用して、利益率の変化を計算する方法を学びます。
このチュートリアルでは、データ キャッシュの具体化のアイデアと、それが結果を提供する際の DAX のパフォーマンスにどのように影響するかについて説明します。
これまで Excel を使用している場合は、ビジネス レポートのニーズに合わせて LuckyTemplates の使用を開始するのに最適な時期です。
LuckyTemplates ゲートウェイとは何ですか? 知っておくべきことすべて