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

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 つのデータ圧縮方法があります。

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


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 ゲートウェイとは何ですか? 知っておくべきことすべて