データプラットフォーム概論サマリ
Azure Synapse Analytics、Power BI を効果的に利用するために
永田 亮磨
Twitter:@ryomaru0825
Linkedin:ryoma-nagata-0825
Qiita:qiita.com/ryoma-nagata
• ニーズ:サイロ化した業務システムの分析のためにデータを統合・集約した DWH が必要と
なった
• 問題:高コスト、スキーマオンライト(後述)、ML対応が困難
従来のDWH型情報基盤
• What is a Data Lakehouse? – Databricks
データソース:サイロ化した業務システム
統合:様々なデータを抽出、変換、ロード(ETL)
DWH:データマートの集合体としてRDBMSに保管
BI、可視化:ユーザライクなツールによるデータの分析
データプラットフォームの基本構成
インポート
デ
ー
タ
統
合
インポート
直接クエリ
Semantic Layer
Data
Warehouse
Data
Sources
デ
ー
タ
準
備
BI Reporting
Data Marts
インメモリエンジン ダッシュボード
探索、発見
データ統合システム BIシステム
集める、貯める、整理する 整える、活用する
SQL
ア
ク
セ
ス
スキーマオンライトとスキーマオンリード
DWH中心← → データレイク中心
• ユーザによる活用 (分析)
シナリオを想定し、
そこからデータ蓄積先の
スキーマを設計
• 業務システムからは、
そのシナリオ実現のため
にETLで「データ」抽出
• 想定に含まれなかった
「データ」の周辺データは
埋没
Schema-on-Write
• 将来のあらゆる分析
要件に対応するために、
すべてのデータを、
可能な限りネイティブ
フォーマットのまま蓄積
• 利用時にはじめて
スキーマ・データ構造を
定義し、Read を実施
Schema-on-Read
abe, 95, 46, 85, 85
itoh, 89, 72, 46, 76,
34
ueda, 95, 13, 57, 63,
87
emoto, 50, 68, 38,
85, 98
otsuka, 13, 16, 67,
100, 7
katase, 42, 61, 90,
11, 33
{"name" : "cat",
"count" : 105}
{"name" : "dog",
"count" : 81}
{"name" : "rabbit",
"count" : 2030}
{"name" : "turtle",
"count" : 1550}
{"name" : "tiger",
"count" : 300}
{"name" : "lion",
"count" : 533}
{"name" : "whale",
"count" : 2934}
xxx.xxx.xxx.xxx - -
[27/Jan/2018:14:20:17
+0000] "GET
/item/giftcards/3720
HTTP/1.1" 200 70 "-"
"Mozilla/5.0
(Windows NT 6.1;
WOW64; rv:10.0.1)
Gecko/20100101
Firefox/10.0.1"
ネイティブフォーマットを、そのまま蓄積
SELECT ~~~ FROM ~~~
WHERE ~~~ ORDER BY ~~~;
利用時にデータ構造を定義
4
ストレージ総保有コスト
の低下
• ニーズ:柔軟性の確保、 低コスト化(特に効果大)、MLのためのオブジェクトストレージアク
セス
• 問題:サービス間ロードによるデータ鮮度の古さ、複雑さ、ファイル管理性、MLからのDWHア
クセス非効率性
データレイク型情報基盤
(2層データレイク+DWHアーキテクチャ
• What is a Data Lakehouse? – Databricks
データソース:構造化、非構造化データ
データレイク:生データ、加工済みデータ(2層)
DWH/リアルタイムDB:長所を組み合わせた構成
BI、可視化:DWHデータを利用
ML:データレイク上データを利用
Data Lake + DWH
インポート
デ
ー
タ
統
合
インポート
直接クエリ
Semantic Layer
Data
Warehouse
BI Reporting
Data Marts
インメモリエンジン ダッシュボード
探索、発見
データ統合システム BIシステム
Data Lake
MLシステム
訓練データ
生成
MLモデル
デ
ー
タ
準
備
インポート
生データ
加工済みデータ
Data
Sources
SQL
ア
ク
セ
ス
MLアクセス
• DWHではできたSQLによる1行1行に対するUPDATEコマンドなどの修正も、
ファイル保管となるデータレイクでは不正データ1行を修正することは困難
(わらの中の針)
データスワンプ(沼)
生データフォルダ/
├ 2020-01-01/
├ 2020-01-02/
│└ data-01.csv
├ 2020-01-03
│└ data-01.csv
・
・
・
DataLake
ID eventtype data
1click AAA
2click BBB
ID eventtype data
2click BBB'
3conversion CCC
• ニーズ:データレイク上のCRUDオペレーション、SQL,MLからの透過的なアクセス
• 主要OSS:Delta Lake(from Databricks) , Iceberg(from Netflix) , Hudi(from
Uber)
レイクハウス型の情報基盤の到来
• What is a Data Lakehouse? – Databricks
OSSプロジェクト『Delta Lake』
• Databricks社が開発した、レイクハウス
の中核を担うOSS
• ファイルシステム上でSparkと共に動作
し、SQL API(UpdateなどのDMLや
BIからのアクセス)、
python API(解析処理)の実行が
可能
• 実態はparquetファイルのため高圧縮
率
• https://delta.io/
Delta Lake ベネフィット例
- CRUDオペレーション
• Update、Delete、 Mergeをサポートし、データの修正・削除Upsertを実行
• データレイク上でデータ管理タスクが完結
ID eventType timestamp
1 clck 2020/4/1 23:00
2 clck 2020/4/1 23:01
3 conversion 2020/4/1 23:02 UPDATE events
SET eventType = 'click’
WHERE eventType = 'clck'
ID eventType data
1 click AAA
2 click BBB
3 conversion CCC
ID eventType data
3 conversion ccc'
4 conversion DDD
MERGE INTO events
USING updates
ON events.eventId = updates.eventId
WHEN MATCHED THEN
UPDATE SET events.data = updates.data
WHEN NOT MATCHED THEN
INSERT (date, eventId, data) VALUES (date, eventId, data)
ID eventType data
1 clck AAA
2 clck BBB
3 conversion ccc'
4 conversion DDD
• 分離されたクエリエンジンによりDWHを物理構成しなくてもデータの活用が可能。
• アドホックな分析や、BIインメモリモデルにインポートすることが主目的の場合、DWHの常時立ち上げが
不要→コスト柔軟性向上
DWH/レイクハウス
専用
ストレージ
データレイク
テーブル
テーブル
ファイル
ファイル
データレイク
ファイル
ファイル
クエリ発行口
(URL)
+
エンジン
クエリ発行口
(URL)
+
エンジン
BI,SQL
BI,SQL
レイクハウス(論理DWH)
=サーバーレスSQLプール
DWH(物理DWH)
=専用SQLプール
• 専用ストレージで最適化された
安定高速クエリ
• データの実体はデータレイクに持ち、コスト柔軟
性、データの再利用性が向上
テーブル
テーブル
仮想テーブル
ロード
アクセス
レイクハウス
インポート
デ
ー
タ
統
合
インポート
直接クエリ
Semantic Layer
Lake house
Data
Sources
BI Reporting
インメモリエンジン ダッシュボード
探索、発見
データ統合システム BIシステム
MLシステム
訓練データ
生成
MLモデル
デ
ー
タ
準
備
インポート
未加工データ
加工済みデータ
SQL
ア
ク
セ
ス
MLアクセス
データレイク上での更新を
含む統合処理
インポート
物理DWH
直接クエリ(論理DWH)
• 生データ→加工済みデータの概念を拡張
• ステージ毎のデータの役割明確化による、ガバナンスへの好影響
• 利用者に必要なデータがステージとして整理されている=責任、関心の分離
• ステージを遡れば、新たな知見を得るための元情報にアクセスできる
効果的なデータ管理
メダリオンアーキテクチャ
• Delta LakeとLakehouseプラットフォームによるデータウェアハウス設計 - every Engineering
Blog
生データ
(Bronze)
データマート的特化データ
(Gold)
利用可能な
クレンジング済み
データ
(Silver)
最発明を防ぐ
共通データ加工
分析シナリオごとの
データ加工
Azure BIデータ基盤ソリューション例
Azure Synapse Analytics
Synapse Pipelines
SQL Pool
Spark Pool
Data Lake Storage
Spark ETL(GUI)
データレイクに
直接 クエリ
Spark ETL
(コードファースト)
Overview Data Develop Monitor
Pipeline Manage
Synapse Studio
統合管理
データCopy
Power BI Report
Power BI
Dataset
セマンティック層
論理DWH
/物理DWH
可視化
インポート
BI,MLデータプロセス全体像➀
PoC,スモールスタート段階
parquet
Silver
parquet
インポート
直接クエリ
(サーバレスSQL)
DWH化対象
Native Format
インメモリ
エンジン
デ
ー
タ
統
合
マ
ッ
ピ
ン
グ
デ
ー
タ
フ
ロ
ー
デ
ー
タ
準
備
Power
Query
直接クエリ
(DAX)
各種
データソース
システム
分
析
モ
デ
ル
Power
BI
Dataset
Bronze
Landing
SQL
エ
ン
ド
ポ
イ
ン
ト
インポート
デ
ー
タ
準
備
・
学
習
・
ラ
べ
リ
ン
グ
ML
デ
ザ
イ
ナ
ー
ML
モ
デ
ル ML Datasets
(学習データ、
スコアリング済みデータ)
差分
蓄積
クレンジング
タイムアウト=30分に注意
Delta
Lake
or
フ
ァ
イ
ル
ア
ク
セ
ス
インポート
BI,MLデータプロセス全体像②
データ準備の性能が足りなくなったら
parquet
Silver
parquet
インポート
直接クエリ
(サーバレスSQL)
DWH化対象
Native Format
インメモリ
エンジン
デ
ー
タ
統
合
マ
ッ
ピ
ン
グ
デ
ー
タ
フ
ロ
ー
デ
ー
タ
準
備
Power
Query
直接クエリ
(DAX)
各種
データソース
システム
分
析
モ
デ
ル
Power
BI
Dataset
Bronze
Landing
インポート
デ
ー
タ
準
備
・
学
習
・
ラ
べ
リ
ン
グ
ML
デ
ザ
イ
ナ
ー
ML
モ
デ
ル ML Datasets
(学習データ、
スコアリング済みデータ)
差分
蓄積
クレンジング
Gold
parquet
移管、大規模処
理化対応
Delta
Lake
or
フ
ァ
イ
ル
ア
ク
セ
ス
SQL
エ
ン
ド
ポ
イ
ン
ト
インポート
BI,MLデータプロセス全体像③
データセットにデータがおさまらなかったら
parquet
Silver
parquet
インポート
直接クエリ
直接クエリ
(サーバレスSQL)
DWH化対象
Native Format
インメモリ
エンジン
デ
ー
タ
統
合
マ
ッ
ピ
ン
グ
デ
ー
タ
フ
ロ
ー
デ
ー
タ
準
備
Power
Query
直接クエリ
(DAX)
各種
データソース
システム
Gold
分
析
モ
デ
ル
Power
BI
Dataset
Bronze
parquet
Landing
インポート
デ
ー
タ
準
備
・
学
習
・
ラ
べ
リ
ン
グ
ML
デ
ザ
イ
ナ
ー
ML
モ
デ
ル ML Datasets
(学習データ、
スコアリング済みデータ)
差分
蓄積
クレンジング
併用して、データ量が多
いテーブルのみ直接クエ
リで取得させる
少量のデータは引き続き
インポート利用
Delta
Lake
or
フ
ァ
イ
ル
ア
ク
セ
ス
SQL
エ
ン
ド
ポ
イ
ン
ト
インポート
BI,MLデータプロセス全体像④
直接クエリの性能を安定させる場合
parquet
Silver
parquet
インポート
直接クエリ
直接クエリ
(サーバレスSQL)
DWH化対象
Native Format
インメモリ
エンジン
デ
ー
タ
統
合
マ
ッ
ピ
ン
グ
デ
ー
タ
フ
ロ
ー
デ
ー
タ
準
備
Power
Query
直接クエリ
(DAX)
各種
データソース
システム
Gold
分
析
モ
デ
ル
Power
BI
Dataset
Delta
Lake
or
フ
ァ
イ
ル
ア
ク
セ
ス
Bronze
parquet
Landing
インポート
デ
ー
タ
準
備
・
学
習
・
ラ
べ
リ
ン
グ
ML
デ
ザ
イ
ナ
ー
ML
モ
デ
ル ML Datasets
(学習データ、
スコアリング済みデータ)
差分
蓄積
クレンジング
併用して、データ量が多
いテーブルのみ直接クエ
リで取得させる
少量のデータは引き続き
インポート利用
インポート
専用SQL
(物理DWH)
SQL
エ
ン
ド
ポ
イ
ン
ト
インポート
内製化に必要なスキル
parquet
Silver
parquet
インポート
直接クエリ
直接クエリ
(サーバレスSQL)
DWH化対象
Native Format
インメモリ
エンジン
デ
ー
タ
統
合
マ
ッ
ピ
ン
グ
デ
ー
タ
フ
ロ
ー
デ
ー
タ
準
備
Power
Query
直接クエリ
(DAX)
各種
データソース
システム
Gold
分
析
モ
デ
ル
Power
BI
Dataset
Delta
Lake
or
フ
ァ
イ
ル
ア
ク
セ
ス
Bronze
parquet
Landing
インポート
デ
ー
タ
準
備
・
学
習
・
ラ
べ
リ
ン
グ
ML
デ
ザ
イ
ナ
ー
ML
モ
デ
ル ML Datasets
(学習データ、
スコアリング済みデータ)
差分
蓄積
クレンジング
併用して、データ量が多
いテーブルのみ直接クエ
リで取得させる
少量のデータは引き続き
インポート利用
インポート
専用SQL
(物理DWH)
SQL
エ
ン
ド
ポ
イ
ン
ト
SQL,データエンジニリングスキル
Power Query
モデリングスキル
レポート作成
スキル
データサイエンススキルスキル

データ基盤の従来~最新の考え方とSynapse Analyticsでの実現