LuckyTemplates と SSAS – TE3 と C# を使用した列の並べ替え

LuckyTemplates と SSAS – TE3 と C# を使用した列の並べ替え

今日のチュートリアルでは、LuckyTemplates および SSAS または SQL サーバー分析サービス内で、ある列を別の列で並べ替えるプロセスを自動化する方法を説明します。このチュートリアルの完全なビデオは、このブログの下部でご覧いただけます。

この例では、複数の列を含む Dates テーブルがあります。一部の列は整数部分ですが、これは非表示にします。一部の列は文字列部分であり、これをエンドユーザーに表示します。

LuckyTemplates と SSAS – TE3 と C# を使用した列の並べ替え

したがって、Calendar Year、Calendar Year Month、Month 列があります。私たちがやりたいのは、これら 3 つの列の整数部分による並べ替えを自動化することです。暦年を暦年番号で並べ替え、暦年月を暦年月番号で並べ替え、さらに月を月番号で並べ替えます。

しかし、それをいちいちやるわけではありません。この特定のテーブルに対してそれを自動的に並べ替えるスクリプトを実行します。複数のテーブルに複数の列がある場合は、それらのテーブルのセットでそのスクリプトを使用できます。

C# コードの記述には表形式エディターを使用しますが、現時点では表形式エディターには C# 言語用の IntelliSense がありません。簡単にするために、 Visual Studio (VS)を使用します。Visual Studio (VS) には C# 言語用の IntelliSense があり、VS コードも使用できます。

目次

C# を使用した LuckyTemplates および SSAS の列の並べ替え

まず、Visual Studio 内に新しいプロジェクトを作成する必要があります。これは、 C# 言語のコンソール アプリ (.Net Framework)になります。それを選択して「次へ」をクリックしましょう。

LuckyTemplates と SSAS – TE3 と C# を使用した列の並べ替え

次に、プロジェクトに任意の名前を付けることができます。これをSortByという名前にして、「作成」をクリックします。

LuckyTemplates と SSAS – TE3 と C# を使用した列の並べ替え

コードができたことがわかります。コードが機能したら、それをコピーして表エディター内に貼り付けるだけです。

LuckyTemplates と SSAS – TE3 と C# を使用した列の並べ替え

ただし、コードが Visual Studio 内で動作するには、ライブラリへの参照を設定する必要があります。そのためには、[参照]をクリックして、 [ブラウザー内でNuGet パッケージを管理する]オプションを選択するだけです。

LuckyTemplates と SSAS – TE3 と C# を使用した列の並べ替え

参照オプション内に、分析サービスを記述する必要があります。次に、利用可能なオプションで 2 番目のオプションを選択し、[インストール] をクリックする必要があります。インストールが開始され、インストールが完了するまでに数秒かかります。

LuckyTemplates と SSAS – TE3 と C# を使用した列の並べ替え

次に、コード内に「Using Microsoft.AnalysisServices.Tabular」と記述し、セミコロンを記述する必要があります。サーバー オブジェクトを作成するので、単純にServerと書きます。サーバー オブジェクトの名前はServer自体になり、 New Serverと書きます。

したがって、基本的には、メモリ内に新しいオブジェクトを作成しています。そして、そのサーバーを LuckyTemplates ファイルに接続するには、サーバー オブジェクトのメソッドを使用します。そこで、 server.Connectを作成しましょう。ここで、LuckyTemplates 内の AnalysisServices がリッスンするポート番号を指定します。

LuckyTemplates と SSAS – TE3 と C# を使用した列の並べ替え

そのポート番号を見つけるには、[外部ツール] に移動し、 [DAX Studio]をクリックして、下部でローカル ホストを見つけます。これは、LuckyTemplates 内にある SQL サーバー分析サービスが、LuckyTemplates またはその他の外部ツールを通じて送信される変更をリッスンするコード番号です。

LuckyTemplates と SSAS – TE3 と C# を使用した列の並べ替え

サーバーは 1 つのものですが、SSAS の場合はサーバーに複数のモデルを含めることもできます。しかし現時点では、LuckyTemplates にはモデルが 1 つしかありません。そこで、そのモデルを宣言します。ここではModel is等しい (=) server.Databasesと書き、そのサーバー内の最初のデータベースにアクセスするので、.Modelと書きます。

次に、コードのその部分が機能するかどうかをテストしてみましょう。これを行うには、そのデータ モデル内にあるすべてのテーブルのリストを出力するだけです。したがって、ここに「 each (Table t in model.Tables) 」と入力し、括弧を開けて Enter キーを押します。

その後、「 Console.WriteLine (t.Name) 」と入力します。テーブルの名前を出力した後にウィンドウが自動的に閉じないようにするには、Console.ReadLine、開き括弧と閉じ括弧、およびセミコロンを記述します。あとは、「開始」オプションをクリックして、実行されるのを待つだけです。

LuckyTemplates と SSAS – TE3 と C# を使用した列の並べ替え

データ モデル内にあるテーブルの名前を出力できることがわかります。日付、製品、顧客、店舗があります。これにより、作成したセットアップが機能していることが確認できます。

LuckyTemplates と SSAS – TE3 と C# を使用した列の並べ替え

ここで、実際にコードの核心に入り、対応する整数で列を並べ替えるのに役立つコードの作成を開始できます。

ForEach部分から作成したものをすべて削除しましょう。サーバーとモデルはそのままにしておきます。反復処理するテーブルの名前を保持する変数を宣言しましょう。これにDatesTableという名前を付けます。テーブルの名前は基本的にDatesになります。

次に、model.Tables にforeach var tを設定し、 where句を使用して、 T が t に移動する場所を指定します。NameはDatesTableと等しい必要があります。現在 DatesTable を反復処理している場合は、その DatesTable のすべての列に対して別のループを開始します。そのために、t.Columns に foreach var cを書くことができます。

DatesTable のみを反復処理していて、DatesTable のすべての列にアクセスできるかどうかをテストするには、単純にConsole.WriteLine を出力し、 c.Nameとします。

LuckyTemplates と SSAS – TE3 と C# を使用した列の並べ替え

F5 キーを押すと、列にアクセスできることがわかります。

LuckyTemplates と SSAS – TE3 と C# を使用した列の並べ替え

ここでさらに先に進み、さらにコードを記述します。

さらに 3 つの列を含むタプルのリストを作成します。列の 1 つがターゲット列になります。2 番目の列は、ターゲット列を並べ替える際に使用する列になります。3 番目の列は、実際に並べ替える際に使用する列を非表示にするかどうかにかかわらず、単純に true または false を保持します。

暦年列を暦年番号で並べ替えたいとします。最初の列には暦年が含まれ、2 列目は暦年番号が含まれ、3 列目は並べ替えの完了後に暦年番号列を非表示にするかどうかを決定します。

そのために、Visual Studio に戻り、新しい変数を作成します。任意の名前を付けることができます。この例では、これをColOperationsと呼びます。次に、 newを記述し、次にリストを作成し、列のタイプ (string、string、bool) を記述します。その後、タプルを作成します。

LuckyTemplates と SSAS – TE3 と C# を使用した列の並べ替え

したがって、基本的には 3 列のリストを作成しているだけであり、3 列に対して 2 行を用意しています。次に、foreachループ内でfor ループを開始します。基本的に、私たちが言いたいのは、各反復でiで始まる変数を宣言するということです。i がcolOperations.Countより小さい場合は 、単純にその値をインクリメントします。

次にIF文を書いていきます。c.Name は、現在いる列の名前に属します。次に、colOperations iがあります。基本的にi使用すると、特定の 1 つの行にアクセスできます。そして、 .Item1を記述すると、最初の列、2 列目、または 3 列目にアクセスできます。

したがって、最初にItem1列を使用します。これが真の場合は、「 c.SortByColumn はt.Columnsと等しい必要があります」と単純に記述します。t はテーブル オブジェクトであることに注意してください。次に、その特定のテーブルの列にアクセスします。必要なのは、現在列操作を行っている行であるcolOperationsであり、列は基本的にItem2オブジェクトです。

最後に、並べ替えを適用する特定の列を非表示にするために、最後の 1 行のコードを記述します。

LuckyTemplates と SSAS – TE3 と C# を使用した列の並べ替え

表形式モデルに対して実行するメイン コードを記述したので、varcolOperations からコードをコピーして表形式エディターに取り込むだけで、同じコードを実行できます。

表形式エディターを使用した LuckyTemplates および SSAS の列の並べ替え

表形式エディターは、接続する必要がある LuckyTemplates モデルまたは分析サービス モデルを舞台裏で自動的に認識するため、サーバーまたはモデル オブジェクトは使用しません。したがって、これらの変数を使用する必要はありません。これは、これらのモデルに接続する方法を識別するのが表形式エディターの仕事であるためです。

LuckyTemplates に戻り、表形式エディター 3 または表形式エディター 2 のいずれかを起動します。どちらを使用しても構いません。この場合は、Tabular Editor 3 を使用しましょう。

[ファイル] タブに移動し、[新しい C# コード] をクリックして、[プロパティ] オプションを閉じます。次に、コードをここに貼り付けます。唯一確認する必要があるのは、モデル変数を使用する代わりにモデル オブジェクトを使用することです。そこで、大文字の M を使用してそのコードを実行してみましょう。

LuckyTemplates と SSAS – TE3 と C# を使用した列の並べ替え

スクリプトが正常に実行され、3 つのモデル変更が表示されたと表示されたので、変更をデータ モデルにコミットして戻します。これらの列に適用したものはすべて保存します。

LuckyTemplates に戻ると、月番号が非表示になっていることがわかります。「月」列をクリックして「列ツール」 、 「列で並べ替え」に移動すると、特定の列が月番号で並べ替えられていることがわかります。暦年月番号も同様です。

LuckyTemplates と SSAS – TE3 と C# を使用した列の並べ替え

C# コード内にその列がなかったため、暦年は自動的に並べ替えられます。したがって、私たちができることは、表形式エディタを起動して別のタプルを作成することです。そして、もう一度そのスクリプトを実行します。

LuckyTemplates と SSAS – TE3 と C# を使用した列の並べ替え


表形式エディター LuckyTemplates: バージョン 3 のレビューとチュートリアル
LuckyTemplates 表形式エディター 3: スクリプトによる自動化 表形式
エディター 3 内の DAX コーディング

結論

と SSASでは、ある列を別の列で並べ替えるプロセスを自動化することが非常に簡単です。これは、Dates テーブル内でその操作を行う方法を示す非常に基本的な例でした。ただし、さらに列を追加してこのリストを充実させ、別のテーブルを確認することができます。

こうすることで、何度も作成する同じモデルに対してこれらの列を並べ替えるのに費やす時間を削減できます。

これがお役に立てば幸いです。ご質問がございましたら、コメント欄にご記入ください。


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