VertiPaq LuckyTemplates: 列のエンコード方法

このチュートリアルでは、 LuckyTemplates で VertiPaq を使用して列をエンコードする方法について学習します。各メソッドがどのように機能し、DAX のパフォーマンスにどのような影響を与えるかを理解できます。

各方法には独自のデータ圧縮スタイルがあり、より高速でスムーズなトランザクションを実現できます。

目次

LuckyTemplates での VertiPaq による値のエンコーディング

最初のデータ圧縮タイプはValue Encodingです。これは整数型の列で発生します。

これは元のコスト列の例です。

VertiPaq LuckyTemplates: 列のエンコード方法

内部に値があることがわかります。

ここで、VertiPaq がこれらのデータをそのまま列に格納すると、12 ビットのメモリが必要になります。

ただし、VertiPaq は 、データを保存するために必要なメモリの量を最小限に抑える方法を模索しています。列の最小値を見つけて、各値から 3004 を減算してその列をエンコードします。そうすることで、必要なメモリは 9 ビットだけになります。

VertiPaq LuckyTemplates: 列のエンコード方法

VertiPaq は必要なメモリを減らし、コードの実行を高速化しました。

辞書エンコーディング

次のデータ圧縮方法は、非整数またはテキスト値の列で行われるディクショナリまたはハッシュエンコーディングです。

これは、製品名が繰り返される列の例です。

VertiPaq LuckyTemplates: 列のエンコード方法

VertiPaq には、非整数列の圧縮を支援する機能があります。その列に個別の値のリストが作成され、それらに番号が割り当てられます。

VertiPaq LuckyTemplates: 列のエンコード方法

製品名に対応する番号が適用されていることがわかります。

次に、製品名の値を整数値に置き換えます。

VertiPaq LuckyTemplates: 列のエンコード方法

整数値を格納する場合、テキスト値を格納する場合よりも必要なビットが少なくなります。

これは、DAX とストレージ エンジンがエンコード時に行うことです。

LuckyTemplates での VertiPaq を使用したランレングス エンコーディング

最後のエンコーディング タイプは、ランレングス エンコーディングと呼ばれます。繰り返し値を検索し、開始と終了を保存します。

これは、営業担当者 IDと を含むサンプル テーブルです 。

VertiPaq LuckyTemplates: 列のエンコード方法

これは、ランレングス エンコーディングを使用してエンコードされたテーブルです。

VertiPaq LuckyTemplates: 列のエンコード方法

ID が EMP1017 の営業担当者が行 1 から 363 に入ることがわかっています。

行の開始と行の終了があり、間にある繰り返し値の数も表示されます。したがって、EMP1017 はどこから始まりどこで終わるかがわかっているため、EMP1017 を 362 回保存する必要はありません。

エンコードされた列を使用したランレングスエンコード

VertiPaq のもう 1 つの優れた点は、値エンコーディングまたはディクショナリ エンコーディングでエンコードされた列に対して長さエンコーディングを実行できることです。

これは、辞書エンコーディングを使用してエンコードされたテーブルです。

VertiPaq LuckyTemplates: 列のエンコード方法

NameID列が繰り返されていることがわかります。これは、列でランレングス エンコーディングを使用できることを意味します。

この場合、VertiPaq は NameID、Row Start、および Row End のみを検索します。

VertiPaq LuckyTemplates: 列のエンコード方法

したがって、整数値を 3 回保存する代わりに、1 回保存するようになりました。


LuckyTemplates のこの新しいコース
メジャーを使用して DAX 関数を最適化する: 最適化のヒントとテクニック
LuckyTemplates テーブルを最適化するための高度なヒント

結論

VertiPaq Storage Engine内には、DAX コードの実行をよりスムーズにする 3 つのデータ圧縮方法があります。

各メソッドが計算でどのように機能するかを理解したら、それらを使用して最大化してコードのパフォーマンスを向上させ、レポートに必要なデータを簡単に取得できます。

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