Python における Self とは: 実際の例
Python における Self とは: 実際の例
関数やCALCULATE関数などの変数について説明します。これらが DAX クエリのパフォーマンスを向上させ、正確な結果を提供するのにどのように役立つかを理解できます。
変数は、最適化のためのコードを簡単に見つけることができるため、できる限り使用する必要があります。これにより、誤った出力が得られることがなくなり、エラーを探す時間を節約できます。ただし、変数によって値の再計算が妨げられる場合があります。したがって、一度値を定義すると、CALCULATEであってもその値を変更することはできません。
変数を反復の内部と外部で使用すると異なる結果が生成されるため、変数をどこで定義して使用するかを理解しておくことが重要です。これらは、使用される場所の近くで定義する必要があります。これは、長いコードを分割するのにも役立ち、コードの理解とデバッグが容易になります。
目次
CALCULATE と FILTER を使用して DAX クエリを作成する
DAX で結果と回答を取得するには、さまざまな方法があります。作業内容に満足できるように、レポートを作成する際に独自のスタイルとフローを確立する必要があります。独自のスタイルがある場合でも、 FILTERなどのさまざまなメソッドではなくCALCULATEを使用するなど、特定のガイドラインに従う必要があります。
FILTER は大量の非圧縮データを数式エンジンに送信する可能性があり、潜在的にCallBackDataID をトリガーする可能性があります。ここでは、 CALCULATEとFILTERの結果を表示するためにメジャーが使用されます。これには、クエリに対してローカルな定義済みのメジャーもあります。定義されたメジャーはデータ モデル内では見つかりませんが、コードの開発とトラブルシューティングをより迅速に行うことができます。
最初の行には、日付の変数を定義するメジャーが表示されます。これは、2016 年 3 月 31 日以降に発生する日付のファクト テーブルをフィルターすることを意味します。また、ファクト販売テーブルを反復して数量と現在の価格を乗算する総売上高の単純なメジャーを確認することもできます。
次の対策は、内でを使用することです。CallBackDataIDモジュールを思い出した場合、SUMX 関数内で IF を使用すると、CallBackDataIDが作成されます。
このメジャーは、Fact Sales テーブル全体をフィルター処理しています。Date テーブルからのフィルターを削除します。
テーブル全体をフィルタリングする場合は、1 対多のリレーションシップの片側にあるすべての列もフィルタリングされるため、注意が必要です。
このメジャーは前のメジャーと同じです。唯一の違いは、テーブル全体をフィルタリングしないことです。SUMX を使用して、フィルターされたテーブルを反復するだけです。
これは Fact Sales テーブルをフィルターする別のメジャーですが、今回はそれが含まれる列のみをフィルターします。
最後の手段は、CALCULATEとデータ モデルを使用してデータをフィルタリングして取得することです。
各測定を実行して確認する
まず、IF測定を実行します。クエリを実行する前に必ずキャッシュをクリアし、サーバー タイミングとクエリ プランをオンにしてください。
正しいデータが提供されますが、 CallBackDataIDと 3 つの期間のため、パフォーマンスが遅くなります。
Fact Sales テーブル全体をフィルターするメジャーを実行しても、 CallBackDataID を確認できます。また、15,003 行が生成され、誤った結果が得られます。
すべての Fact Sales テーブルをフィルターしないメジャーを実行すると、正しい結果が得られます。ただし、 CallBackDataIDと実体化された 15,003 行は引き続き表示されますが、出力は 7 行のみです。
列をフィルタリングする次のメジャーを実行します。正しい結果が得られ、CallBackDataID が削除されます。しかし、それでも多くの行が具体化されていることがわかります。
CALCULATEメジャーを実行します。10 行のみが実体化され、5 ミリ秒で正しいデータが生成されたことがわかります。
これは、 CallBackDataID がなく、10 行しかプルされないため、上記のすべての手段の中で最も高速です。これは、CALCULATEが迅速かつ正確な結果を得る上でいかに優れているかを示しています。
すべての DAX クエリまたはメジャーを実行すると、期間に基づいてどれが最も遅いか、最も速いかがわかります。各対策の結果も確認できます。
結論
フィルターを CALCULATE に移動すると、CallBackDataID が削除されるため、時間と具体化が節約されます。データを 2 回繰り返す必要はありません。これにより、DAX のパフォーマンスが最大化され、開発スキルの向上にも役立ちます。
Python における Self とは: 実際の例
R の .rds ファイルからオブジェクトを保存および読み込む方法を学習します。このブログでは、R から LuckyTemplates にオブジェクトをインポートする方法についても説明します。
この DAX コーディング言語チュートリアルでは、GENERATE 関数の使用方法とメジャー タイトルを動的に変更する方法を学びます。
このチュートリアルでは、マルチスレッド動的ビジュアル手法を使用して、レポート内の動的データ視覚化から洞察を作成する方法について説明します。
この記事では、フィルター コンテキストについて説明します。フィルター コンテキストは、LuckyTemplates ユーザーが最初に学習する必要がある主要なトピックの 1 つです。
LuckyTemplates Apps オンライン サービスが、さまざまなソースから生成されたさまざまなレポートや分析情報の管理にどのように役立つかを示したいと思います。
LuckyTemplates でのメジャー分岐や DAX 数式の結合などの手法を使用して、利益率の変化を計算する方法を学びます。
このチュートリアルでは、データ キャッシュの具体化のアイデアと、それが結果を提供する際の DAX のパフォーマンスにどのように影響するかについて説明します。
これまで Excel を使用している場合は、ビジネス レポートのニーズに合わせて LuckyTemplates の使用を開始するのに最適な時期です。
LuckyTemplates ゲートウェイとは何ですか? 知っておくべきことすべて