Python における Self とは: 実際の例
Python における Self とは: 実際の例
このチュートリアルでは、 DAX Studioの VertiPaq Analyzer メトリクスと、それが DAX コードの最適化にどのように役立つかを紹介します。各メトリクスがコードのパフォーマンスの向上にどのように役立つかを理解できるように、すべてのメトリクスについて説明します。
これは VertiPaq Analyzer メトリクスです。
目次
VertiPaq Analyzer の [テーブル] タブ
最初のメトリクスは、[テーブル]タブまたは [全体のテーブル ビュー] です。このタブには、 「カーディナリティ」列が表示されます 。これは、テーブル内の一意の値の数を指します。これは、データ モデルとDAX クエリで最も重要な列です。
DimCustomerテーブルを見ると、20 個の一意の値があります。これは、反復しない値を持つ個別の顧客が 20 人いることを意味します。
これはサンプル DAX クエリです。
関数を使用して、 さまざまなテーブルの行をカウントします。行の数は、テーブル内で生成されるカーディナリティに対応します。
データサイズの列
Cardinalityの次の列はTable と呼ばれます。テーブルがどれだけのメモリを使用しているかを示します。データのサイズが大きくなるほど、より多くの注意が必要になります。Col Size列は、 Data、Dictionary、およびHierarchy Size列 の合計です。
Data 、Dictionary、およびHierarchy Size列には、それぞれ、圧縮データ、辞書でエンコードされた列、および自動生成された階層列の合計サイズが表示されます。
次は、 使用されるエンコーディングのタイプを示すエンコーディング列です。 すべてのテーブルで値 とハッシュ エンコーディングが発生しているため、結果に「多」と表示されます。
参照整合性違反は、「RI 違反」列にも表示されます。値がファクトテーブルには存在するが、ディメンションテーブルには存在しない場合、違反が発生します。
「ユーザー階層サイズ」 列には、ユーザー定義の階層のサイズが表示されます。1 対多設定の多側に基づく関係のサイズも、[関係のサイズ]列に表示されます。
次に、 %DB列があります。この列には、テーブルがすべてのテーブルの合計サイズに占める割合が表示されます。
この例では、 DimCustomerテーブルがテーブル全体のサイズのほぼ 66% を占めていることがわかります。ファクトテーブルに対するデータベースの割合は、ディメンションテーブル よりも大きくする必要があります 。
割合は次のとおりです。
この例には大量のデータがないため、Segments 列 とPartitions 列は使用できません。これは、より大きなテーブルにのみ適用されます。
タブの最後の列はColumnsと呼ばれます。これは、テーブル内に存在する列の数を示すだけです。[データタイプ] 列と[% テーブル]列は、全体テーブル ビューには適用されません。
FactSales テーブルの内部
これは全体的な FactSales データ テーブルです。
テーブルの各列には独自の情報があります。たとえば、全体のテーブル レベルには、Cardinality、Column Sizeなどのさまざまな列があります。
この例では、 SalesKeyのカーディナリティがテーブルのカーディナリティと等しいことがわかります。これは、 SalesKey には繰り返し値がなく、一意の値であるためです。
「列サイズ」列は、表レベルと同様に重要です。Data、Dictionary、およびHierarchy Size列の合計が表示されます。
また、使用されているエンコード方法がHash Encodingであることもわかります。これにより、値の個別のリストが作成されます。
Quantity行を見ると、データ型が整数であってもハッシュ エンコーディングメソッドが使用されていることがわかります。
その理由は、SQL Server Analysis Services が最適な圧縮方法を決定する方法を設定しているためです。
「% Table」列には、テーブルの合計サイズに対する列の割合が表示されます。この例では、SalesKeyのテーブル サイズが最大ですが、カーディナリティと列サイズが最も大きいため、これは当然のことです。
同様に、「% Database」 列には、データベース全体に対するテーブルまたはテーブル内の列の割合が表示されます。
FactSalesテーブルがデータ モデルの合計サイズの 46.8% であることがわかります。FactSalesテーブル内の SalesKey 列は、データベースの合計サイズの 15% を占めます。
この例には少量のデータしか含まれていないため、セグメントとパーティションは 1 つだけになります。Columns列も同様です。列ビューでは列の数は常に 1 になります。
VertiPaq Analyzer の [列] タブ
[列]タブ には、データを表示するための簡単な形式があります。[テーブル]タブよりも詳細な情報が表示されます。
[テーブル]タブと同様の列があることがわかります 。
[列]タブでは、任意の列を並べ替えることができます。この例では、小さな三角形で示されているカーディナリティによってソートされています。「行」 列には、テーブル内の行数が表示されます。
FactSales-SalesKey には15,000 行とカーディナリティがあることがわかります 。すべての主キーには、対応するカーディナリティと等しい行があります。
行数がカーディナリティの数と等しくない場合、テーブルには繰り返し値が含まれます。
FactSales-CustomerKeyを見ると、カーディナリティが 801 で、列サイズがほぼ 110 万であることがわかります。
これは、最適化して圧縮する必要があることを意味します。最適化するには、LuckyTemplates ファイルに移動し、DimCustomer テーブルを開きます。
CustomerKey列は文字列型のデータです。値が C で始まり、その後に数字が続くことがわかります。[値の置換]をクリックして、列内の値を変更します。
値 C を見つけて空白に変更します。次に、データ型を整数に変更します。
ファクトテーブル のCustomerKey列に対しても同じことを実行します 。[適用] をクリックして DAX Studio に戻ります。次に、[View Metrics] をクリックして DAX を再読み込みし、カーディナリティで並べ替えます。
列サイズは 110 万から 46,372 に減少しました。テーブル ビューを見ると、列サイズも 46,372 まで減少していることがわかります。
列サイズがほぼ 110 万ある SalespersonKey に対して同じことを行うと、列サイズを 5,540 まで減らすことができます。
文字列またはテキスト型の値を整数型に変更すると、DAX を最適化してパフォーマンスを向上させることができます。
この新しいコースで DAX 関数を最適化する
より最適化されたデータを実現する簡単な LuckyTemplates 変換
高度な DAX を使用して LuckyTemplates 数式を最適化する
結論
DAX の最適化は、VertiPaq Analyzer を使用して DAX Studio で開始されます。アナライザー メトリックでは、テーブルと列がどのように機能するかを確認し、どのエンティティをより最適化および改善する必要があるかを判断します。
コードのどの部分がコードのパフォーマンスを低下させているかを調べたい場合は、VertiPaq Analyzer を使用してください。それは確実にあなたの DAX を改善します。
ニクリ
Python における Self とは: 実際の例
R の .rds ファイルからオブジェクトを保存および読み込む方法を学習します。このブログでは、R から LuckyTemplates にオブジェクトをインポートする方法についても説明します。
この DAX コーディング言語チュートリアルでは、GENERATE 関数の使用方法とメジャー タイトルを動的に変更する方法を学びます。
このチュートリアルでは、マルチスレッド動的ビジュアル手法を使用して、レポート内の動的データ視覚化から洞察を作成する方法について説明します。
この記事では、フィルター コンテキストについて説明します。フィルター コンテキストは、LuckyTemplates ユーザーが最初に学習する必要がある主要なトピックの 1 つです。
LuckyTemplates Apps オンライン サービスが、さまざまなソースから生成されたさまざまなレポートや分析情報の管理にどのように役立つかを示したいと思います。
LuckyTemplates でのメジャー分岐や DAX 数式の結合などの手法を使用して、利益率の変化を計算する方法を学びます。
このチュートリアルでは、データ キャッシュの具体化のアイデアと、それが結果を提供する際の DAX のパフォーマンスにどのように影響するかについて説明します。
これまで Excel を使用している場合は、ビジネス レポートのニーズに合わせて LuckyTemplates の使用を開始するのに最適な時期です。
LuckyTemplates ゲートウェイとは何ですか? 知っておくべきことすべて