LuckyTemplates の DAX クエリ: その論理フローを理解する

LuckyTemplates の DAX クエリ: その論理フローを理解する

このチュートリアルでは、 LuckyTemplates DAX Studioで DAX クエリがどのように実行されるかを学習します。このチュートリアルでは 2 つのフローチャートを示します。最初のフローチャートは、DAX クエリの実行の背後にある基本プロセスを示しています。一方、2 番目のフローチャートでは、プロセスをよりわかりやすく視覚化するための明確な例を示しています。

目次

LuckyTemplates の DAX クエリのフローチャート

このフローチャートは、DAX Studio が DAX クエリを実行する方法を示しています。

LuckyTemplates の DAX クエリ: その論理フローを理解する

もちろん、最初のステップはLuckyTemplates DAX Studio でDAX クエリを作成することです。[実行] オプションをクリックすると、DAX パーサーが起動し、作成したコードが有効かどうかをチェックします。これには、構文や括弧が欠落しているなど、クエリが何らかの点で不完全であるかどうかを確認することが含まれます。

LuckyTemplates の DAX クエリ: その論理フローを理解する

DAX パーサーのチェックが完了すると、数式エンジンはDAX クエリを一連のクエリ プランに変換します。これには、論理クエリ プランと物理クエリ プランの両方が含まれます。

論理クエリ プランが構築された後、フォーミュラ エンジンはストレージ エンジンからデータを取得します。次に、ストレージ エンジンは物理クエリ プランを構築します。その後、結果がエンド ユーザーに返されます。

データをフォーミュラ エンジンに返すには 2 つの方法があります。Formula Engine は、リクエストを In Memory Columnar データベースVertiPaqまたはリレーショナル データ ソースに送信できます。

LuckyTemplates の DAX クエリ: その論理フローを理解する

VertiPaq がフォーミュラ エンジンからリクエストを受信すると、VertiPaq はスキャンを実行しxmSQL クエリを実行する という 2 つのことが起こります。データ キャッシュはフォーミュラ エンジンに送り返され、フォーミュラ エンジンは結果を呼び出し元に送り返します。

DirectQueryの場合、Analysis Services は要求を数式エンジンからデータ ソースに転送します。次に、データ ソースはネイティブ言語を実行し、データ キャッシュを準備して、それを Analysis Services に送り返します。

次に、Analysis Services はデータ キャッシュを数式エンジンに送信します。このエンジンはデータ キャッシュを処理し、エンド ユーザーに送信します。複合モデルの場合、部分的な要求が VertiPaq に送信され、その後 DirectQuery に送信されます。

LuckyTemplates の DAX クエリの例

プロセスをよりよく理解するために例を見てみましょう。

LuckyTemplates の DAX クエリ: その論理フローを理解する

たとえば、製品の色が「赤」の場合の総売上高を計算するDAX コードを作成するとします。

LuckyTemplates の DAX クエリ: その論理フローを理解する

このコードを実行すると、DAX パーサーはまずコードに間違いがないかどうかをチェックします。

すべて問題がなければ、フォーミュラ エンジンは論理クエリ プランを準備し、ストレージ エンジンからデータ キャッシュを取得します。ストレージ エンジンがリクエストを受信すると、xmSQL と呼ばれる疑似 SQL 言語がクエリを作成します。

LuckyTemplates の DAX クエリ: その論理フローを理解する

次に、xmSQL コードはデータ キャッシュを取得し、それをフォーミュラ エンジンに送信します。

LuckyTemplates の DAX クエリ: その論理フローを理解する

データ キャッシュは、単一列または複数列のいずれかにすることができます。フォーミュラ エンジンはデータ キャッシュを受信すると、それを行ごとに繰り返します。

式エンジンが受信したクエリのタイプに応じて、結果はスカラー値またはテーブルの形式で返されます。

結論

これは、LuckyTemplates DAX Studio で DAX クエリがどのように実行されるかについての簡単な概要でした。このチュートリアルで示されているフローチャートが、表形式モデルにおける 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 ゲートウェイとは何ですか? 知っておくべきことすべて