LuckyTemplates の DAX クエリ構造 – 2 つのエンジンと DAX Studio

LuckyTemplates の DAX クエリ構造 – 2 つのエンジンと DAX Studio

このチュートリアルでは、DAX クエリ構造と DAX Studio 内の 2 つのエンジンについて説明します。DAX 数式がどのように結果を生成するかの背後にあるプロセスがわかります。また、計算において各エンジンがどのように機能するかについても学習します。

データの生成を担当するエンジンは 2 つあります。それは、フォーミュラ エンジンVertiPaq ストレージ エンジンです。

目次

DAX クエリ構造

このチュートリアルでは、レポートの背後で DAX がどのように動作するかについて、詳細な DAX クエリ構造を示します。

LuckyTemplates の DAX クエリ構造 – 2 つのエンジンと DAX Studio

作成するすべてのメジャーはクエリです。一連のデータを処理し、答えを返します。次に、クエリは SQL Server Analysis Services と通信します。これは、バックグラウンドで実行される LuckyTemplates 用にカスタマイズされたバージョンです。

クエリを作成すると、クエリは数式エンジンに送信されます。すべての DAX に対応しますが、ストレージ エンジンほど効率的ではありません。

フォーミュラ エンジンはクエリを受信すると、VertiPaq ストレージ エンジンに処理するデータを要求します。次に、ストレージ エンジンは圧縮データ キャッシュからデータを取得します。

VertiPaq は圧縮された列で動作するため効率的です。ミリ秒以内に多くの行を計算できます。

図の最後にデータ ソースが表示されます。このトランザクションは、データを更新するときにのみ実行されます。

もう 1 つ学ぶ必要があるのは、単純なクエリにはストレージ エンジンが応答できるということです。それ以外の場合は、データ キャッシュを数式エンジンに送り返し、答えを計算します。

そのデータが数式エンジンに送り返されるとき、データは圧縮されなくなります。メモリ内の列全体が使用されます。 

したがって、数式エンジンはデータを取得した後、DAX クエリに対する答えを計算して入力します。

DAX クエリ構造のエンジン

フォーミュラ エンジンとストレージ エンジンの違いを理解することが重要です。それぞれが異なる目的のために設計されているため、DAX の知識を応用して、高速かつ正確なクエリを取得できます。2 つのエンジンの違いは次のとおりです。

LuckyTemplates の DAX クエリ構造 – 2 つのエンジンと DAX Studio

各エンジンのアイコンは、そのパフォーマンスの速さを表します。ストレージ エンジンは単純なリクエストを処理するため、数式エンジンよりも高速です。DAX クエリが単純で、  、  、またはが必要な場合は、ストレージ エンジンがすべてを単独で実行できます。

一方、数式エンジンは複雑な DAX 関数を処理できます。クエリが複雑になればなるほど、式に使用する数式エンジンが増えることに注意してください。

2 つのエンジンで使用されるデータも異なります。フォーミュラ エンジンはストレージ エンジンからの非圧縮データキャッシュを使用しますが、これは多くのメモリと時間を消費しますが、ストレージ エンジンは圧縮データを使用します。

ストレージ エンジンは、一度に複数のコアを使用するため高速です。それはマルチスレッドエンジンであることを意味します。テーブルにセグメントがある場合、コアの数に応じてセグメントがスキャンされます。ただし、フォーミュラ エンジンは一度に 1 つのコアしか実行できません。

ストレージ エンジンのもう 1 つの優れた機能は、メジャーによって答えが生成されると、数式エンジンとは異なり、その答えがメモリに保存されることです。同じ質問をした場合、完全な計算を実行せずに答えが得られます。

ストレージ エンジンは速度を重視して最適化され、フォーミュラ エンジンは複雑さを重視して最適化されています。

DAX 計算の裏側

DAX のパフォーマンスの背後にあるプロセスを知る唯一の方法は、DAX Studio を使用することです。これは DAX Studio のサンプル ファイルです。

LuckyTemplates の DAX クエリ構造 – 2 つのエンジンと DAX Studio

F5 キーを押して実行すると、結果が得られます。

LuckyTemplates の DAX クエリ構造 – 2 つのエンジンと DAX Studio

計算の背後で 2 つのエンジンで何が起こっているかを知るには、サーバー タイミングとクエリ プランをオンにします。次に、DAX を再度実行します。

LuckyTemplates の DAX クエリ構造 – 2 つのエンジンと DAX Studio

完了したら、「サーバータイミング」タブに移動します。

LuckyTemplates の DAX クエリ構造 – 2 つのエンジンと DAX Studio

クエリ、式エンジン、ストレージ エンジンの合計実行時間を確認できます。実行されたストレージ エンジンの数も表示されます。数式エンジンはクエリ全体の 83.3% で実行されますが、ストレージ エンジンは 16.7% しか実行しません。

[クエリ プラン] タブに移動すると、物理クエリ プランと論理クエリ プランが表示されます。これらは両方とも、数式エンジンが何を行っているかに関する数式クエリです。

LuckyTemplates の DAX クエリ構造 – 2 つのエンジンと DAX Studio



LuckyTemplates での DAX 計算: LuckyTemplatesのこの新しいコース メジャーで DAX 関数を最適化するベスト プラクティス
: 最適化のヒントとテクニック

結論

数式エンジンとストレージ エンジンはどちらも、DAX コードから結果を生成する際に大きな役割を果たします。これらは、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 ゲートウェイとは何ですか? 知っておくべきことすべて