More Related Content Similar to データ基盤の従来~最新の考え方とSynapse Analyticsでの実現 (20) More from Ryoma Nagata (7) データ基盤の従来~最新の考え方とSynapse Analyticsでの実現2. • ニーズ:サイロ化した業務システムの分析のためにデータを統合・集約した DWH が必要と
なった
• 問題:高コスト、スキーマオンライト(後述)、ML対応が困難
従来のDWH型情報基盤
• What is a Data Lakehouse? – Databricks
データソース:サイロ化した業務システム
統合:様々なデータを抽出、変換、ロード(ETL)
DWH:データマートの集合体としてRDBMSに保管
BI、可視化:ユーザライクなツールによるデータの分析
4. スキーマオンライトとスキーマオンリード
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
ストレージ総保有コスト
の低下
5. • ニーズ:柔軟性の確保、 低コスト化(特に効果大)、MLのためのオブジェクトストレージアク
セス
• 問題:サービス間ロードによるデータ鮮度の古さ、複雑さ、ファイル管理性、MLからのDWHア
クセス非効率性
データレイク型情報基盤
(2層データレイク+DWHアーキテクチャ
• What is a Data Lakehouse? – Databricks
データソース:構造化、非構造化データ
データレイク:生データ、加工済みデータ(2層)
DWH/リアルタイムDB:長所を組み合わせた構成
BI、可視化:DWHデータを利用
ML:データレイク上データを利用
6. Data Lake + DWH
インポート
デ
ー
タ
統
合
インポート
直接クエリ
Semantic Layer
Data
Warehouse
BI Reporting
Data Marts
インメモリエンジン ダッシュボード
探索、発見
データ統合システム BIシステム
Data Lake
MLシステム
訓練データ
生成
MLモデル
デ
ー
タ
準
備
インポート
生データ
加工済みデータ
Data
Sources
SQL
ア
ク
セ
ス
MLアクセス
10. 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
13. • 生データ→加工済みデータの概念を拡張
• ステージ毎のデータの役割明確化による、ガバナンスへの好影響
• 利用者に必要なデータがステージとして整理されている=責任、関心の分離
• ステージを遡れば、新たな知見を得るための元情報にアクセスできる
効果的なデータ管理
メダリオンアーキテクチャ
• Delta LakeとLakehouseプラットフォームによるデータウェアハウス設計 - every Engineering
Blog
生データ
(Bronze)
データマート的特化データ
(Gold)
利用可能な
クレンジング済み
データ
(Silver)
最発明を防ぐ
共通データ加工
分析シナリオごとの
データ加工
14. 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
可視化