Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
初級者向け_Azure_Analysis_Service_入門.pdf
Search
鍋島千夏
May 28, 2022
Technology
1
300
初級者向け_Azure_Analysis_Service_入門.pdf
鍋島千夏
May 28, 2022
Tweet
Share
More Decks by 鍋島千夏
See All by 鍋島千夏
Synapse AnalyticsからCognitive Servicesの感情分析を使ってみた(2022/09)
cnuts
0
270
Synapse Analytics Service から Cognitive Services の 感情分析を使ってみた
cnuts
1
130
Other Decks in Technology
See All in Technology
エンジニアリング価値を黒字化する バリューベース戦略を用いた 技術戦略策定の道のり
kzkmaeda
6
1.8k
LINE NEWSにおけるバックエンド開発
lycorptech_jp
PRO
0
150
OPENLOGI Company Profile for engineer
hr01
1
20k
AWSではじめる Web APIテスト実践ガイド / A practical guide to testing Web APIs on AWS
yokawasa
5
340
Apache Iceberg Case Study in LY Corporation
lycorptech_jp
PRO
0
270
Raycast AI APIを使ってちょっと便利な拡張機能を作ってみた / created-a-handy-extension-using-the-raycast-ai-api
kawamataryo
0
200
偏光画像処理ライブラリを作った話
elerac
1
160
日経のデータベース事業とElasticsearch
hinatades
PRO
0
200
分解して理解する Aspire
nenonaninu
2
760
抽象化をするということ - 具体と抽象の往復を身につける / Abstraction and concretization
soudai
27
15k
Visualize, Visualize, Visualize and rclone
tomoaki0705
9
77k
遷移の高速化 ヤフートップの試行錯誤
narirou
6
980
Featured
See All Featured
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
330
21k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
366
25k
What's in a price? How to price your products and services
michaelherold
244
12k
Build The Right Thing And Hit Your Dates
maggiecrowley
34
2.5k
The Cost Of JavaScript in 2023
addyosmani
47
7.4k
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
28
9.3k
The Art of Programming - Codeland 2020
erikaheidi
53
13k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
160
15k
Site-Speed That Sticks
csswizardry
4
400
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
7
640
Large-scale JavaScript Application Architecture
addyosmani
511
110k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
248
1.3M
Transcript
【初級者向け】 Analysis Service Intro エーティーエルシステムズ 鍋島 千夏
自己紹介 • 名前: 鍋島 千夏 • 所属:エーティーエルシステムズ • 住所:山梨県甲府市 •
私のお仕事: 自治体のデータ分析をやっています。 • データエンジニア (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でモデルを定義して配置 PowerBI Reporting Service Excel ④レポート作成 データをどのように比較するか決めたもの 分析する人 ①ヒアリング
本日はチュートリアルを抜粋してご紹介 • 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 を分析する人が使うイメージ
準備: SSDT Visual 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 関数 Description DATESBETWEEN
指定された開始日から始まり、指定された終了日まで続く日付の列が含まれるテーブルを返します。 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で見てみよう。
PowerBIで見てみよう。
PowerBIで見てみよう。
Analysis Services を分析する人が使うイメージ
“配置”を試してみたい方に • オンプレもクラウドもモデルの作成手順は同じです。 • Azureの場合 • Azure Analysis Services は個人が試すには高額です。
• サービスを停止すると課金が停止します。 • 開発用のサービスレベルD1もあります。 • データソースもAzure専用SQL(旧SQL DW)はサービスを停止すると課金が停 止します。 • オンプレの場合 • SQL Server Standardで利用できます。インストールが必要です。