【初級者向け】Analysis Service Introエーティーエルシステムズ 鍋島 千夏
View Slide
自己紹介• 名前: 鍋島 千夏• 所属:エーティーエルシステムズ• 住所:山梨県甲府市• 私のお仕事: 自治体のデータ分析をやっています。• データエンジニア (SSIS, Data Factory、最近 Synapse Analytics 始めました。)• データサイエンティスト (Azure Machine Learning, Python)• データアナリスト (SSAS, AAS, PowerBI)• ソリューション開発 (.NET Core、Angular)
分析って何するの?• 分析はデータを比較すること。• すなわち、分析シナリオからデータをどのように比較するかを決めること。どのデータを比較するか 売上、所得、テストの点数…データの集計方法は? 合計、平均値、中央値、最大値、最小値、前年比…比較する分析軸は何か 年代別、性別、カテゴリ、 …分析軸を掘り下げるか? 年→月→日、 カテゴリ → サブカテゴリ → サブサブカテゴリ
分析って何するの?• 分析までの流れ• データを準備して取り込む。• データを加工して集計する。• 集計データを可視化して、比較する。Analysis Service を使うと日々変化する大規模データを加工して集計する処理を自動化します。非エンジニアが簡単に可視化・分析できるように、お膳立てをするツールです。準備が8割。
Analysis Services での分析プロセスのイメージ1. 分析する人にどのような分析したいかヒアリング2. 分析モデルを定義して、サーバーに配置3. モデルへのデータの取り込みを自動化4. 分析する人はクリックするだけで、最新の集計を確認できるデータベース 分析データベースAnalysis Service③最新データを自動取込する②Visual Studioでモデルを定義して配置PowerBIReporting ServiceExcel④レポート作成データをどのように比較するか決めたもの分析する人①ヒアリング
本日はチュートリアルを抜粋してご紹介• Adventure Works Internet Sales チュートリアル (1500)• https://docs.microsoft.com/ja-jp/analysis-services/tutorial-tabular-1400/as-lesson-3-mark-as-date-table?view=asallproducts-allversions• Adventure Works Cycles という架空の会社を題材• 北米、ヨーロッパ、アジアの商業市場向けに自転車、部品、アクセサリーを製造および販売する大規模な多国籍製造会社です。• 各拠点の営業ユーザーのためにインターネット販売データを分析するための表形式モデルを作成1日かかる 30分に
本日はチュートリアルを抜粋してご紹介• Adventure Works Internet Sales チュートリアル (1500)• https://docs.microsoft.com/ja-jp/analysis-services/tutorial-tabular-1400/as-lesson-3-mark-as-date-table?view=asallproducts-allversions• 1 - テーブル モデル プロジェクトの作成• 2 - データの取得• 3 - 日付テーブルとしてマーク• 4 - リレーションシップの作成• 5 - 計算列の作成• 6 - メジャーの作成• 7 - 主要業績評価指標の作成8 - パースペクティブの作成9 - 階層の作成10 - パーティションの作成11 - ロールの作成12 - Excel で分析13 - 配置
チュートリアル完了時のモデル
Analysis Services を分析する人が使うイメージ
準備: SSDTVisual Studio を使います。Microsoft Analysis Services Projects (VSIX) 拡張機能パッケージを追加します。
デザインツール• Visual Studio に Microsoft Analysis Services Projects (VSIX) 拡張機能パッケージ を追加します。https://marketplace.visualstudio.com/items?itemName=ProBITools.MicrosoftAnalysisServicesModelingProjects
ステップ1:表形式モデル プロジェクトを作成するVisual Studioでプロジェクトを作成。
表形式モデル プロジェクトを作成する(1/4)Visual Studioから新しいプロジェクトを追加
表形式モデル プロジェクトを作成する(2/4)
表形式モデル プロジェクトを作成する(3/4)
表形式モデル プロジェクトを作成する(4/4)プロジェクトできました。
ステップ2:データを取得する表形式モデルにデータソースを定義。DBから取り込むテーブルを選択。各テーブルの取り込む列を選択(不要な列を削除。)
データを取得するデータソースを設定する。(1/4)
データを取得するデータソースを設定する。(2/4)追加するデータソースのタイプを選択
データを取得するデータソースを設定する。(3/4)事前に準備した専用SQLの SQL Server を指定
データを取得するデータソースを設定する。(4/4)専用SQLプールを選択
テーブルを選択ナビゲータでチェックボックスを選択して、インポートするテーブルを選択[データの変換] をクリックすると、Power Query エディターが開きます。インポートしたテーブル• DimCustomer• DimDate• DimGeograph• DimProduct• DimProductCategory• DimProductSubcategory• FactInternetSales
各テーブルの列を選択(不要な列を削除)• テーブル• DimCustomer• 削除した列• SpanishEducation• FrenchEducation• SpanishOccupation• FrenchOccupation
ステップ3:日付テーブルとしてマーク日付と時刻データが含まれているテーブルを日付テーブル と呼びます。タイム インテリジェンス関数を使用する場合は、テーブルを 日付テーブル としてマークし、日付の列を 日付列 (一意識別子) としてマークします。
日付テーブルのイメージ日付テーブルはAnalysis Serviceで使うために後から追加することが多いです。
タイム インテリジェンス関数(抜粋)1月~3月 4月~6月 7月~9月 10月~11月https://docs.microsoft.com/ja-jp/dax/time-intelligence-functions-dax関数 DescriptionDATESBETWEEN 指定された開始日から始まり、指定された終了日まで続く日付の列が含まれるテーブルを返します。DATESQTD 現在のコンテキストで、現在までの四半期の日付の列を含むテーブルを返します。ENDOFQUARTER 指定された日付列について、現在のコンテキストにおける四半期の最後の日付を返します。FIRSTDATE 指定された日付列について、現在のコンテキストにおける最初の日付を返します。LASTDATE 指定された日付列の現在のコンテキストにおける最終日付を返します。DATESQTD
Date列が日付型になっているか確認
日付テーブルとしてマーク
ステップ4:リレーションシップの作成テーブル間に新しいリレーションシップを追加します。(データベースにリレーションが定義されている場合、データをインポートしたときに自動的に作成されます。)
テーブル間のリレーションを定義します。
ダイアグラムビューに切り替え
ダイアグラムビューに切り替えDB側でリレーションの設定をしていないと、既定ではリレーションが定義されません。
リレーションを定義していこう。• 定義が終わると…
リレーションの作成• GeographyKeyでリレーション
ステップ5計算列を作成するData Analysis Expressions (DAX)を使って計算列を追加します。
計算列を作成するDimDate テーブルに MonthCalendar 計算列を作成する(1/5)
計算列を作成するDimDate テーブルに MonthCalendar 計算列を作成する(2/5)=RIGHT(" " & FORMAT([MonthNumberOfYear],"#0"), 2) & " - " & [EnglishMonthName]
計算列を作成するDimDate テーブルに MonthCalendar 計算列を作成する(3/5)=RIGHT(" " & FORMAT([MonthNumberOfYear],"#0"), 2) & " - " & [EnglishMonthName]
計算列を作成するDimDate テーブルに MonthCalendar 計算列を作成する(4/5)列名を MonthCalendar に変更
計算列を作成するDimDate テーブルに MonthCalendar 計算列を作成する(5/5)列名を MonthCalendar に変更
レッスン6メジャーの作成
メジャーって何?• メジャーは DAX 式を使用して作成される計算値• ユーザーが選択した “フィルター” に基づいて計算される。• 例: 全商品のうちバイクを売った利益は?分析する人が決める
メジャーを作る方法• AutoSum機能を使用する方法• 標準の集計関数。• 列をクリックし、ツールバー上の 「AutoSum」 ボタン (∑) をクリック• DAX式を入力する方法• メジャー グリッドで空のセルをクリックし、数式バーで DAX 式を入力する
メジャーを作成するAutoSum機能を使用する方法(1/2)
メジャーを作成するAutoSum機能を使用する方法(2/2)
メジャーを作成するDAX式でメジャーを作成する(1/2)DimDateテーブルの空いているセルをクリック
メジャーを作成するDimDate テーブルに DaysCurrentQuarterToDate メジャーを作成する(2/2)DaysCurrentQuarterToDate:=COUNTROWS( DATESQTD( 'DimDate'[Date]))
ステップ13配置Visual Studioからサーバーに配置します。• Azure Analysis Services• PowerBI ワークスペース
配置• ソリューションエクスプローラーのプロパティで配置先を設定■サーバ名の値•Azure Analysis Services• ポータルから取得したURL•Power BI Premium ワークスペース• ワークスペース接続 URL• オンプレのSQL Server• <サーバー名>¥<インスタンス名>
配置配置を実行
PowerBIで見てみよう。
“配置”を試してみたい方に• オンプレもクラウドもモデルの作成手順は同じです。• Azureの場合• Azure Analysis Services は個人が試すには高額です。• サービスを停止すると課金が停止します。• 開発用のサービスレベルD1もあります。• データソースもAzure専用SQL(旧SQL DW)はサービスを停止すると課金が停止します。• オンプレの場合• SQL Server Standardで利用できます。インストールが必要です。