2022/3/24に開催した「オンプレML基盤 on Kubernetes」の資料です。機械学習モデルの開発者が、よりモデルの開発にのみ集中できるようにすることを目指して開発している「LakeTahoe(レイクタホ)」について紹介します。
https://ml-kubernetes.connpass.com/event/239859/
「進化するアプリ イマ×ミライ ~生成AIアプリへ続く道と新時代のアプリとは~」Interop24Tokyo APPS JAPAN B1-01講演
Multiple Dimension Spreadのご紹介
1. Copyright (C) 2018 Yahoo Japan Corporation. All Rights Reserved.
2018年11月19日
ヤフー株式会社
井島 洸二 、大戸 康紀
Multiple-Dimension-
Spread
2. Copyright (C) 2018 Yahoo Japan Corporation. All Rights Reserved.
自己紹介
2
井島 洸二
ヤフー株式会社 データ&サイエンスソリューション統括本部
データプラットフォーム本部データデリバリー部 所属
大戸 康紀
ヤフー株式会社 データ&サイエンスソリューション統括本部
データプラットフォーム本部データデリバリー部 所属
3. Copyright (C) 2018 Yahoo Japan Corporation. All Rights Reserved.
目次
3
1. 目的/背景
2. ゴール設定
3. 構成
4. チュートリアル
5. 開発状況
6. パフォーマンス
7. 今後の予定
8. まとめ
4. Copyright (C) 2018 Yahoo Japan Corporation. All Rights Reserved.Copyright (C) 2018 Yahoo Japan Corporation. All Rights Reserved.
目的/背景
5. Copyright (C) 2018 Yahoo Japan Corporation. All Rights Reserved.
目的
Data Lake に最適な
データフォーマットを提供
6. Copyright (C) 2018 Yahoo Japan Corporation. All Rights Reserved.
Data Lake とは
データを湖のように蓄えておく
• 保存時には使われ方(データ形式)を気にしない
• 利用時に考える
Data Lake
生データで保存
柔軟なデータ利用
SQL/HQL でアクセス
7. Copyright (C) 2018 Yahoo Japan Corporation. All Rights Reserved.
データフォーマット (初期)
生データを保存、利用時に解釈
• テキスト や JSON など
• Ex. Apache log
Data Lake
柔軟なデータ利用
SQL/HQL でアクセス
生データで保存
8. Copyright (C) 2018 Yahoo Japan Corporation. All Rights Reserved.
問題 溢れるデータ
データが級数的に増加
総務省 平成29年版 情報通信白書 データ流通量の爆発的増大
http://www.soumu.go.jp/johotsusintokei/whitepaper/ja/h29/html/nc121210.html
9. Copyright (C) 2018 Yahoo Japan Corporation. All Rights Reserved.
問題 溢れるデータ
生データ保存では、
増え続けるデータに対抗できない
Data Lake
SQL/HQL でアクセス
生データで保存
10. Copyright (C) 2018 Yahoo Japan Corporation. All Rights Reserved.
問題 溢れるデータ
増え続けるデータに対抗する
• 効率の良いデータ圧縮
• 利用しやすいデータ形式
効率的なデータ保存、利用
11. Copyright (C) 2018 Yahoo Japan Corporation. All Rights Reserved.
データフォーマット (現在)
カラムナデータフォーマットで保存
• ORC, Parquet, Carbondata
Data Lake
SQL/HQL でアクセス
カラムナデータフォーマットで保存
12. Copyright (C) 2018 Yahoo Japan Corporation. All Rights Reserved.
カラムナ データフォーマット
列方向にデータを収集、圧縮する
• 同種データによる圧縮率の向上
• 集計時にデータ全体を解凍しなくて良い
• 生成時に データ形式/Schema が
必要
圧縮
13. Copyright (C) 2018 Yahoo Japan Corporation. All Rights Reserved.
カラムナ データフォーマット
列方向にデータを収集、圧縮する
• 同種データによる圧縮率の向上
• 集計時にデータ全体を解凍しなくて良い
• 生成時に データ形式/Schema が
必要
圧縮
効率性
柔軟性
14. Copyright (C) 2018 Yahoo Japan Corporation. All Rights Reserved.
既存技術
14
Server
APIWeb/App
Request
JSON
message
Schema registry
ETL
HDFS
カラムナー
フォーマット
MR/TEZ
Spark
HIVE/Presto
事前に Schema の
設定が必要
15. Copyright (C) 2018 Yahoo Japan Corporation. All Rights Reserved.
既存技術 まとめ
大量のデータを柔軟に処理したい
• Data Lake 構想
• カラムナーフォーマットによる効率的な保存
• データ保存時の柔軟性が犠牲
16. Copyright (C) 2018 Yahoo Japan Corporation. All Rights Reserved.Copyright (C) 2018 Yahoo Japan Corporation. All Rights Reserved.
ゴール設定
17. Copyright (C) 2018 Yahoo Japan Corporation. All Rights Reserved.
モチベーション
17
事象を自然なデータ構造で表現できる世界
18. Copyright (C) 2018 Yahoo Japan Corporation. All Rights Reserved.
目指すところ
18
効率と柔軟性の両立
効率
柔軟性
JSON
Apache ORC
Apache Parquet
Apache Carbondata
MDS
生データ
19. Copyright (C) 2018 Yahoo Japan Corporation. All Rights Reserved.
効率
19
• 処理で必要最小限の読み込み
Storage
InputStream
Col-1 Col-4
In-Memory
Col-1
Col-2
Col-3
Col-4
Col-5
Col-1
Col-2
Col-3
Col-4
Col-5
Col-1
Col-4
Col-1
Col-4
Volume
Decompress/CopyNetwork,Disk/IO Main
Processing
20. Copyright (C) 2018 Yahoo Japan Corporation. All Rights Reserved.
柔軟性
20
• データ保存時に Schema 設定がいらない
21. Copyright (C) 2018 Yahoo Japan Corporation. All Rights Reserved.
Other
21
• Hadoop エコシステムに連携
• MR/TEZ
• Spark
• Hive/Presto
…
22. Copyright (C) 2018 Yahoo Japan Corporation. All Rights Reserved.
ユースケース
22
Server
APIWeb/App
Request
JSON
message
Schema registry
ETL
Schema-less data pipeline
HDFS
MDS
MR/TEZ
Spark
HIVE/Presto
23. Copyright (C) 2018 Yahoo Japan Corporation. All Rights Reserved.Copyright (C) 2018 Yahoo Japan Corporation. All Rights Reserved.
構成
24. Copyright (C) 2018 Yahoo Japan Corporation. All Rights Reserved.
言語
• Java
25. Copyright (C) 2018 Yahoo Japan Corporation. All Rights Reserved.
前提
25
• 分散ストレージ上での蓄積と分散処理
フレームワークに対応にフォーカス
27. Copyright (C) 2018 Yahoo Japan Corporation. All Rights Reserved.
Spread
27
Root Spread
Child Spread
Child Spread
Root
ColColCol
Col Col Col
Col Col
Spread は Root を持つ木構
造で表現される。
Column は子を持つことがで
きる。
そのノード以下は子 Spread
として表現される。
単一の Spread は Column[]
と同等の意味を持つ。
28. Copyright (C) 2018 Yahoo Japan Corporation. All Rights Reserved.
Column
28
ColCol
Root
String : encoding class name
String : compress class name
String : column name
ColumnType : column type
Int : row count
Int : raw data size
Int : logical data size
Int : cardinality
Int : binary start offset
Int : binary length
Byte[] : data
Col
29. Copyright (C) 2018 Yahoo Japan Corporation. All Rights Reserved.
File Header
29
File
File Header
Magic
Byte[] 4byte
BlockSize
Int 4byte
Class name length
of BlockReader
Int 4byte
Class name of BlockReader
Char[] Xbyte
30. Copyright (C) 2018 Yahoo Japan Corporation. All Rights Reserved.
Block
30
Block-1 Block Metadata
Block index Number of spread Spread row counts
Byte[] Xbyte Int 4byte Int[] Xbyte
Metadata length
Int 4byte
31. Copyright (C) 2018 Yahoo Japan Corporation. All Rights Reserved.
Spread
31
Spread metadata Spread data
Byte[] Xbyte Byte[] Xbyte
Block-1
Spread-1
Spread-2
…
Spread-X
60. Copyright (C) 2018 Yahoo Japan Corporation. All Rights Reserved.
Expand&Flatten - Hive
60
0
20000
40000
60000
80000
100000
120000
140000
160000
not flatten flatten
CPU TIME(SEC)
90% down
61. Copyright (C) 2018 Yahoo Japan Corporation. All Rights Reserved.Copyright (C) 2018 Yahoo Japan Corporation. All Rights Reserved.
今後の予定
62. Copyright (C) 2018 Yahoo Japan Corporation. All Rights Reserved.
今後の提供機能
62
各フレームワークの型に対応
Sparkに対応したコードをOSS公開
型の拡張(Date,Timestamp…etc)
63. Copyright (C) 2018 Yahoo Japan Corporation. All Rights Reserved.
パフォーマンス
63
ベンチマークの整備
Write処理の効率化
64. Copyright (C) 2018 Yahoo Japan Corporation. All Rights Reserved.
OSS 活動について
64
コントリビューター募集
利用者・導入事例を増やす取り組み
ドキュメントや運営周りの整備
イベントでの宣伝
65. Copyright (C) 2018 Yahoo Japan Corporation. All Rights Reserved.Copyright (C) 2018 Yahoo Japan Corporation. All Rights Reserved.
まとめ
65
66. Copyright (C) 2018 Yahoo Japan Corporation. All Rights Reserved.
MDS とは
66
事象を自然なデータ構造で表現できる世界
大量のデータを柔軟に効率よく扱うための
フォーマット
を実現する