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 クエリの論理フローを理解するのに役立つことを願っています。

クエリの概念に慣れていない場合は、少し混乱するかもしれません。ただし、その仕組みを一度理解すれば、理解して実装するのが簡単になります。

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 を使用して数式内に仮想リレーションシップを作成する方法を説明します。