SlideShare a Scribd company logo
Copyright (C) 2018 Yahoo Japan Corporation. All Rights Reserved.
2018年11月19日
ヤフー株式会社
井島 洸二 、大戸 康紀
Multiple-Dimension-
Spread
Copyright (C) 2018 Yahoo Japan Corporation. All Rights Reserved.
自己紹介
2
井島 洸二
ヤフー株式会社 データ&サイエンスソリューション統括本部
データプラットフォーム本部データデリバリー部 所属
大戸 康紀
ヤフー株式会社 データ&サイエンスソリューション統括本部
データプラットフォーム本部データデリバリー部 所属
Copyright (C) 2018 Yahoo Japan Corporation. All Rights Reserved.
目次
3
1. 目的/背景
2. ゴール設定
3. 構成
4. チュートリアル
5. 開発状況
6. パフォーマンス
7. 今後の予定
8. まとめ
Copyright (C) 2018 Yahoo Japan Corporation. All Rights Reserved.Copyright (C) 2018 Yahoo Japan Corporation. All Rights Reserved.
目的/背景
Copyright (C) 2018 Yahoo Japan Corporation. All Rights Reserved.
目的
Data Lake に最適な
データフォーマットを提供
Copyright (C) 2018 Yahoo Japan Corporation. All Rights Reserved.
Data Lake とは
データを湖のように蓄えておく
• 保存時には使われ方(データ形式)を気にしない
• 利用時に考える
Data Lake
生データで保存
柔軟なデータ利用
SQL/HQL でアクセス
Copyright (C) 2018 Yahoo Japan Corporation. All Rights Reserved.
データフォーマット (初期)
生データを保存、利用時に解釈
• テキスト や JSON など
• Ex. Apache log
Data Lake
柔軟なデータ利用
SQL/HQL でアクセス
生データで保存
Copyright (C) 2018 Yahoo Japan Corporation. All Rights Reserved.
問題 溢れるデータ
データが級数的に増加
総務省 平成29年版 情報通信白書 データ流通量の爆発的増大
http://www.soumu.go.jp/johotsusintokei/whitepaper/ja/h29/html/nc121210.html
Copyright (C) 2018 Yahoo Japan Corporation. All Rights Reserved.
問題 溢れるデータ
生データ保存では、
増え続けるデータに対抗できない
Data Lake
SQL/HQL でアクセス
生データで保存
Copyright (C) 2018 Yahoo Japan Corporation. All Rights Reserved.
問題 溢れるデータ
増え続けるデータに対抗する
• 効率の良いデータ圧縮
• 利用しやすいデータ形式
効率的なデータ保存、利用
Copyright (C) 2018 Yahoo Japan Corporation. All Rights Reserved.
データフォーマット (現在)
カラムナデータフォーマットで保存
• ORC, Parquet, Carbondata
Data Lake
SQL/HQL でアクセス
カラムナデータフォーマットで保存
Copyright (C) 2018 Yahoo Japan Corporation. All Rights Reserved.
カラムナ データフォーマット
列方向にデータを収集、圧縮する
• 同種データによる圧縮率の向上
• 集計時にデータ全体を解凍しなくて良い
• 生成時に データ形式/Schema が
必要
圧縮
Copyright (C) 2018 Yahoo Japan Corporation. All Rights Reserved.
カラムナ データフォーマット
列方向にデータを収集、圧縮する
• 同種データによる圧縮率の向上
• 集計時にデータ全体を解凍しなくて良い
• 生成時に データ形式/Schema が
必要
圧縮
効率性
柔軟性
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 の
設定が必要
Copyright (C) 2018 Yahoo Japan Corporation. All Rights Reserved.
既存技術 まとめ
大量のデータを柔軟に処理したい
• Data Lake 構想
• カラムナーフォーマットによる効率的な保存
• データ保存時の柔軟性が犠牲
Copyright (C) 2018 Yahoo Japan Corporation. All Rights Reserved.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.
目指すところ
18
効率と柔軟性の両立
効率
柔軟性
JSON
Apache ORC
Apache Parquet
Apache Carbondata
MDS
生データ
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
Copyright (C) 2018 Yahoo Japan Corporation. All Rights Reserved.
柔軟性
20
• データ保存時に Schema 設定がいらない
Copyright (C) 2018 Yahoo Japan Corporation. All Rights Reserved.
Other
21
• Hadoop エコシステムに連携
• MR/TEZ
• Spark
• Hive/Presto
…
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
Copyright (C) 2018 Yahoo Japan Corporation. All Rights Reserved.Copyright (C) 2018 Yahoo Japan Corporation. All Rights Reserved.
構成
Copyright (C) 2018 Yahoo Japan Corporation. All Rights Reserved.
言語
• Java
Copyright (C) 2018 Yahoo Japan Corporation. All Rights Reserved.
前提
25
• 分散ストレージ上での蓄積と分散処理
フレームワークに対応にフォーカス
Copyright (C) 2018 Yahoo Japan Corporation. All Rights Reserved.
ファイルレイアウト
26
File
File Header
Block-1
Block-X
Block Metadata
Spread-1
Spread-2
…
Spread-X
Block-2
Block Metadata
Spread-1
…
MDS形式のファイルとして認識する
ための情報や読み込みに必要な設定が
含まれる。
ファイルは複数のブロックで構成され
る。
ブロックはカラムの構成や統計情報を
保持するメタデータと複数の Spread
で構成される。
Spread は複数の Column で構成さ
れる。
Block Metadata
Spread-1
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[]
と同等の意味を持つ。
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
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
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
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
Copyright (C) 2018 Yahoo Japan Corporation. All Rights Reserved.
MDSReaderMDSWriter
Write/Read
32
deserializer
Message
object
IBlockMaker
List<ColumnBinary>
IColumnBinaryMaker
MDSRecordWriter
Spread
MDS File
Byte[]
IBlockReader
IColumnBinaryMaker
List<ColumnBinary>
MDSRecordReader
Spread
serializer
Message
object
Byte[]
ProcessingETL
Spread
MessageMessage
Spread
Copyright (C) 2018 Yahoo Japan Corporation. All Rights Reserved.
Message のシリアライズ/デシリアライズ
33
• 同時に開発したスキーマライブラリを利用
https://github.com/yahoojapan/dataplatform-schema-lib
IParser
Reader
Avro
JSON
Etc…
AvroReader
JsonReader
Writer
AvroWriter
JsonWriter
Avro
JSON
Etc…
共通のインターフェースを通じてデータのアクセスと変換を提供
Copyright (C) 2018 Yahoo Japan Corporation. All Rights Reserved.
入力データからデータ構造を構築
34
message
Spread
{ “col-3” : “val” }
{ “col-1” : “val” , “col-5” : “val” }
{ “col-2” : “val” , “col-4” : “val” , “col-5” : “val” }
Col-3
Col-1 Col-3 Col-5
Null Null
Null
Col-1 Col-2 Col-3 Col-4 Col-5
Null Null Null Null
Null Null Null
Null Null
初期状態では何もデータ構造をもっ
ていない、入力データに応じた構造
が構築される。
入力データで新規に出現したキーが
ある場合には、データ構造に追加さ
れる。
これによりスキーマレスな書き込み
を実現。
Copyright (C) 2018 Yahoo Japan Corporation. All Rights Reserved.
カラム毎の独立したエンコーディング
35
Column
Col-2
Null
Null
Col-1
IColumnBinaryMaker
Encoder
ICompressor
Col-1
ColumnBinary
Col-2
IColumnBinaryMaker
Encoder
ICompressor
Col-2
ColumnBinary
Column
Col-1
Null
Null
Copyright (C) 2018 Yahoo Japan Corporation. All Rights Reserved.
オプティマイザ
36
MDSWriter
Analyzer
Column
IColumnAnalizeResult
IOptimizer
IColumnAnalizeResult
IColumnBinaryMaker
カラムを解析し統計情報を(rows,
cardinality…)を取得する。
統計情報に応じてエンコーディング
方式を選定する。
Copyright (C) 2018 Yahoo Japan Corporation. All Rights Reserved.
高速なファイルのマージ
37
MDS File
File Header
Block-1
Block-2
MDS File
File Header
Block-1
Block-2
MDSWriter
deserializer
Message
object
IBlockMaker
List<ColumnBinary>
IColumnBinaryMaker
MDSRecordWriter
Spread
MDS File
Byte[]
List<ColumnBinary>
ファイルのマージはメッセージ
のデシリアライズ、カラムのエ
ンコーディング/圧縮をスキッ
プできる。
ボトルネックをディスク/ネッ
トワークIOとする事により
HDFS 上に数GB単位のファイ
ルを作成する事が可能。
Copyright (C) 2018 Yahoo Japan Corporation. All Rights Reserved.
Splitable
38
MDS File
File Header
Block-1
Block-2
Block-3
Block-4
Block-5
Processing
Processing
Processing
Processing
Processing MDS はブロック単位で並列して処
理が可能。
ブロックサイズはファイルのオプ
ションで設定できる。
デフォルトは128MBとなる。
128MB
128MB
128MB
128MB
XMB
Copyright (C) 2018 Yahoo Japan Corporation. All Rights Reserved.
Projection Pushdown
39
MDSReader
Processing
[ col2 , col5]
MDS File
File Header
Block-1
Spread-1
Col-1 Col-2
Col-3 Col-4
Col-5
List<ColumnBinary>
[ col-2,col-3]
Skip Read
Skip
Read
Spread
読み込むカラムを設定
ストレージから必要なカラムのデータのみを読み込み
Copyright (C) 2018 Yahoo Japan Corporation. All Rights Reserved.
Predicate Pushdown
40
MDSReader
Processing
MDS File
File Header
Block-1
Block-2
Block-3
Spread-1
Spread-2
Spread-1
Spread-2
Spread-1
Spread-2
確実にデータが含まれない Block , Spread をスキップ
Spread
Col-1 < X and Col-3 = X
List<ColumnBinary>
Skip
Skip
Read
Read
入力に必要なデータの条件を設定
Col-1 Col-2 Col-3 Col-4 Col-5
Skip
Read
Read
確実にデータが含まれない行をスキップ
Copyright (C) 2018 Yahoo Japan Corporation. All Rights Reserved.
Expand
41
timestamp
(BIGINT)
total_price
(BIGINT)
Items
(STRUCT)
item_id
(STRING)
price
(BIGINT)
number
(INT)
1516773762 1000 I_001 300 1
1516773762 1000 I_005 350 2
1516773765 200 I_002 50 4
MDSReader
Processing
timestamp
(BIGINT)
total_price
(BIGINT)
Items
(ARRAY)
Items
(Struct)
item_id
(STRING)
price
(BIGINT)
number
(INT)
1516773762 1000
I_001 300 1
I_005 350 2
1516773765 200 I_002 50 4
Spread
Expand Spread
Spread
Expand ‘items’
展開したいArray要素のカラムを設定
指定されたカラムを展開した Spread を作成
Copyright (C) 2018 Yahoo Japan Corporation. All Rights Reserved.
Flatten
42
timestamp
(BIGINT)
total_price
(BIGINT)
item_id
(STRING)
price
(BIGINT)
number
(INT)
1516773762 1000 I_001 300 1
1516773762 1000 I_005 350 2
1516773765 200 I_002 50 4
MDSReader
Processing
Spread
Flatten Spread
Spread
Flatten
items.item_id -> item_id
items.price -> price
items.number -> number
平坦化したいカラムを設定
指定されたカラムを平坦化した Spread を作成
timestamp
(BIGINT)
total_price
(BIGINT)
Items
(STRUCT)
item_id
(STRING)
price
(BIGINT)
number
(INT)
1516773762 1000 I_001 300 1
1516773762 1000 I_005 350 2
1516773765 200 I_002 50 4
Copyright (C) 2018 Yahoo Japan Corporation. All Rights Reserved.
Expand & Flatten
43
timestamp
(BIGINT)
total_price
(BIGINT)
Items
(STRUCT)
item_id
(STRING)
price
(BIGINT)
number
(INT)
1516773762 1000 I_001 300 1
1516773762 1000 I_005 350 2
1516773765 200 I_002 50 4
MDSReader
Processingtimestamp
(BIGINT)
total_price
(BIGINT)
Items
(ARRAY)
Items
(Struct)
item_id
(STRING)
price
(BIGINT)
number
(INT)
1516773762 1000
I_001 300 1
I_005 350 2
1516773765 200 I_002 50 4
Spread Spread
Expand , Flatten を設定
timestamp
(BIGINT)
total_price
(BIGINT)
item_id
(STRING)
price
(BIGINT)
number
(INT)
1516773762 1000 I_001 300 1
1516773762 1000 I_005 350 2
1516773765 200 I_002 50 4
Expand & Flatten Spread
Expand ‘items’
Flatten
items.item_id -> item_id
items.price -> price
items.number -> number
Expand Spread
Copyright (C) 2018 Yahoo Japan Corporation. All Rights Reserved.Copyright (C) 2018 Yahoo Japan Corporation. All Rights Reserved.
チュートリアル
Copyright (C) 2018 Yahoo Japan Corporation. All Rights Reserved.
環境構築
$ git clone https://github.com/yahoojapan/multiple-dimension-spread.git
$ cd multiple-dimension-spread/
$ mvn package
$ bin/setup.sh
Copyright (C) 2018 Yahoo Japan Corporation. All Rights Reserved.
JSON メッセージの変換
$ bin/mds.sh create -i src/example/src/main/resources/sample_json.txt -f
json -o /tmp/sample.mds
$ bin/mds.sh cat -i /tmp/sample.mds -o '-' # show whole data
{"summary":{"total_price":550,"total_weight":412},"number":5,"price":110
,"name":"apple","class":"fruits"}
{"summary":{"total_price":800,"total_weight":600},"number":10,"price":80
,"name":"orange","class":"fruits"}
Copyright (C) 2018 Yahoo Japan Corporation. All Rights Reserved.
Hive テーブルの作成
47
$ hive -i jars/mds/add_jar.hql
> create database test;
> use test;
> create external table sample_json (
summary struct<total_price: bigint, total_weight: bigint>,
number bigint,
price bigint,
name string,
class string
)
ROW FORMAT SERDE 'jp.co.yahoo.dataplatform.mds.hadoop.hive.MDSSerde‘
STORED AS INPUTFORMAT 'jp.co.yahoo.dataplatform.mds.hadoop.hive.io.MDSHiveLineInputFormat‘
OUTPUTFORMAT 'jp.co.yahoo.dataplatform.mds.hadoop.hive.io.MDSHiveParserOutputFormat‘
LOCATION '/tmp/ss';
> select * from sample_json;
{"total_price":550,"total_weight":412} 5 110 apple fruits
{"total_price":800,"total_weight":600} 10 80 orange fruits
Copyright (C) 2018 Yahoo Japan Corporation. All Rights Reserved.Copyright (C) 2018 Yahoo Japan Corporation. All Rights Reserved.
開発状況
Copyright (C) 2018 Yahoo Japan Corporation. All Rights Reserved.
機能
機能 MDS ORC
Row Store Text, JSON, ORC, Avro Text, Sequence, Avro
Compress Data type specific ○ ○
Change by column base ○ ☓
Format GZIP,LZ4,ZSTD ZLIB, SNAPPY, LZO
Splittable ○ ○
Vectorization ○ ○
Pushdown Projection ○ ○
Predication ○ ○
Copyright (C) 2018 Yahoo Japan Corporation. All Rights Reserved.
データ型
基本型 説明
Boolean true/false
Byte 8ビット整数
Bytes バイト列
Short 16ビット整数
Integer 32ビット整数
Long 64ビット整数
Float 32ビット単精度浮動小数点数
Double 64ビット倍精度浮動小数点数
String 文字列
Null 欠損データ
複合型 説明
Array 配列
Map マップ
Struct 構造体
Union 共用体(異なる型を保持)
Copyright (C) 2018 Yahoo Japan Corporation. All Rights Reserved.
MDSの対応エコシステム
エコシステム 対応 URL
Hive ○ hive.apache.org
Spark △※1
spark.apache.org
Presto △※1
prestodb.io
Drill ☓ drill.apache.org
Impala ☓ impala.apache.org
Arrow ○ arrow.apache.org
※1:本資料公開時にはOSSには公開していません
Copyright (C) 2018 Yahoo Japan Corporation. All Rights Reserved.Copyright (C) 2018 Yahoo Japan Corporation. All Rights Reserved.
パフォーマンス
Copyright (C) 2018 Yahoo Japan Corporation. All Rights Reserved.
TPC-H 1000
53
TPC-H スケール1000(GB)で比較
MDS,Apache ORC,Apache parquet
で比較
圧縮フォーマットは全てGZIP
各データは Hive で変換を実施
Copyright (C) 2018 Yahoo Japan Corporation. All Rights Reserved.
バージョン
54
Hive:1.2.1
Spark:2.2.0
Copyright (C) 2018 Yahoo Japan Corporation. All Rights Reserved.
TPC-H 1000 - データサイズ
55
0
50
100
150
200
250
300
MDS Apache ORC Apache parquet
データサイズ(GB)
Law is better
Copyright (C) 2018 Yahoo Japan Corporation. All Rights Reserved.
TPC-H 1000 - テーブル別のサイズ
56
0
20
40
60
80
100
120
140
160
180
region nation supplier part customer partsupp orders lineitem
テーブル別データサイズ(GB)
MDS Apache ORC Apache parquet
Law is better
Copyright (C) 2018 Yahoo Japan Corporation. All Rights Reserved.
TPC-H 1000 - Hive
57
※テーブルスキャンオペレーション(Map)のみ計測
※q19:いずれも実行に時間がかかりすぎたため計測を断念
0
10000
20000
30000
40000
50000
60000
70000
80000
90000
100000
q6 q16 q14 q1 q15 q11 q22 q2 q12 q20 q13 q10 q4 q3 q7 q8 q5 q9 q17 q18 q21
CPU TIME(SEC)
MDS Apache ORC Apache parquet
Law is better
Copyright (C) 2018 Yahoo Japan Corporation. All Rights Reserved.
TPC-H 1000 - Spark
58
0
10000
20000
30000
40000
50000
60000
70000
80000
q6 q14 q12 q1 q10 q13 q3 q20 q8 q7 q5 q9 q4 q17
Executor CPU TIME(SEC)
MDS Apache ORC Apache parquet
※q2,11,15,18,21,22:テーブル作成の HQL を書き換えなければいけないため断念
※q16,19:いずれも実行に時間がかかりすぎたため計測を断念
Law is better
Copyright (C) 2018 Yahoo Japan Corporation. All Rights Reserved.
Expand&Flatten
59
社内で利用しているArrayを使って状態を表しているログを利用
元のデータ構造のまま SQL で展開して処理する場合と、利用する
フィールドだけフラットにして単純な SQL を実行した場合の速度
を比較する
timestamp
(BIGINT)
total_price
(BIGINT)
Items
(ARRAY)
Items
(Struct)
item_id
(STRING)
price
(BIGINT)
number
(INT)
151677376
2
1000
I_001 300 1
I_005 350 2
timestamp
(BIGINT)
total_price
(BIGINT)
item_id
(STRING)
price
(BIGINT)
number
(INT)
1516773762 1000 I_001 300 1
1516773762 1000 I_005 350 2
Array
展開のSQL
SQL
MDS File
※図は処理のイメージであり実際に利用されているログではありません。
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
Copyright (C) 2018 Yahoo Japan Corporation. All Rights Reserved.Copyright (C) 2018 Yahoo Japan Corporation. All Rights Reserved.
今後の予定
Copyright (C) 2018 Yahoo Japan Corporation. All Rights Reserved.
今後の提供機能
62
各フレームワークの型に対応
Sparkに対応したコードをOSS公開
型の拡張(Date,Timestamp…etc)
Copyright (C) 2018 Yahoo Japan Corporation. All Rights Reserved.
パフォーマンス
63
ベンチマークの整備
Write処理の効率化
Copyright (C) 2018 Yahoo Japan Corporation. All Rights Reserved.
OSS 活動について
64
コントリビューター募集
利用者・導入事例を増やす取り組み
ドキュメントや運営周りの整備
イベントでの宣伝
Copyright (C) 2018 Yahoo Japan Corporation. All Rights Reserved.Copyright (C) 2018 Yahoo Japan Corporation. All Rights Reserved.
まとめ
65
Copyright (C) 2018 Yahoo Japan Corporation. All Rights Reserved.
MDS とは
66
事象を自然なデータ構造で表現できる世界
大量のデータを柔軟に効率よく扱うための
フォーマット
を実現する

More Related Content

What's hot

データインターフェースとしてのHadoop ~HDFSとクラウドストレージと私~ (NTTデータ テクノロジーカンファレンス 2019 講演資料、2019...
データインターフェースとしてのHadoop ~HDFSとクラウドストレージと私~ (NTTデータ テクノロジーカンファレンス 2019 講演資料、2019...データインターフェースとしてのHadoop ~HDFSとクラウドストレージと私~ (NTTデータ テクノロジーカンファレンス 2019 講演資料、2019...
データインターフェースとしてのHadoop ~HDFSとクラウドストレージと私~ (NTTデータ テクノロジーカンファレンス 2019 講演資料、2019...
NTT DATA Technology & Innovation
 
Hadoop -ResourceManager HAの仕組み-
Hadoop -ResourceManager HAの仕組み-Hadoop -ResourceManager HAの仕組み-
Hadoop -ResourceManager HAの仕組み-
Yuki Gonda
 
Hadoop -NameNode HAの仕組み-
Hadoop -NameNode HAの仕組み-Hadoop -NameNode HAの仕組み-
Hadoop -NameNode HAの仕組み-
Yuki Gonda
 
大規模クラスタでのHadoop課題
大規模クラスタでのHadoop課題大規模クラスタでのHadoop課題
大規模クラスタでのHadoop課題
Yahoo!デベロッパーネットワーク
 
ビッグデータ活用を加速する!分散SQLエンジン Spark SQL のご紹介 20161105 OSC Tokyo Fall
ビッグデータ活用を加速する!分散SQLエンジン Spark SQL のご紹介 20161105 OSC Tokyo Fallビッグデータ活用を加速する!分散SQLエンジン Spark SQL のご紹介 20161105 OSC Tokyo Fall
ビッグデータ活用を加速する!分散SQLエンジン Spark SQL のご紹介 20161105 OSC Tokyo Fall
YusukeKuramata
 
マルチビッグデータの活用を支える DWHの作り方
マルチビッグデータの活用を支える DWHの作り方マルチビッグデータの活用を支える DWHの作り方
マルチビッグデータの活用を支える DWHの作り方
Yahoo!デベロッパーネットワーク
 
分散処理基盤ApacheHadoop入門とHadoopエコシステムの最新技術動向(OSC2015 Kansai発表資料)
分散処理基盤ApacheHadoop入門とHadoopエコシステムの最新技術動向(OSC2015 Kansai発表資料)分散処理基盤ApacheHadoop入門とHadoopエコシステムの最新技術動向(OSC2015 Kansai発表資料)
分散処理基盤ApacheHadoop入門とHadoopエコシステムの最新技術動向(OSC2015 Kansai発表資料)
NTT DATA OSS Professional Services
 
Gcpug tokyo february 2016
Gcpug tokyo february 2016Gcpug tokyo february 2016
Gcpug tokyo february 2016
Makoto Uehara
 
[db tech showcase Tokyo 2016] B31: Spark Summit 2016@SFに参加してきたので最新事例などを紹介しつつデ...
[db tech showcase Tokyo 2016] B31: Spark Summit 2016@SFに参加してきたので最新事例などを紹介しつつデ...[db tech showcase Tokyo 2016] B31: Spark Summit 2016@SFに参加してきたので最新事例などを紹介しつつデ...
[db tech showcase Tokyo 2016] B31: Spark Summit 2016@SFに参加してきたので最新事例などを紹介しつつデ...
Insight Technology, Inc.
 
Quick Overview of Upcoming Spark 3.0 + α
Quick Overview of Upcoming Spark 3.0 + αQuick Overview of Upcoming Spark 3.0 + α
Quick Overview of Upcoming Spark 3.0 + α
Takeshi Yamamuro
 
HDFS Router-based federation
HDFS Router-based federationHDFS Router-based federation
HDFS Router-based federation
NTT DATA OSS Professional Services
 
HBaseとSparkでセンサーデータを有効活用 #hbasejp
HBaseとSparkでセンサーデータを有効活用 #hbasejpHBaseとSparkでセンサーデータを有効活用 #hbasejp
HBaseとSparkでセンサーデータを有効活用 #hbasejp
FwardNetwork
 
20190516_DLC10_PGStrom
20190516_DLC10_PGStrom20190516_DLC10_PGStrom
20190516_DLC10_PGStrom
Kohei KaiGai
 
ビッグデータ処理データベースの全体像と使い分け - 2017年 Version -
ビッグデータ処理データベースの全体像と使い分け - 2017年 Version - ビッグデータ処理データベースの全体像と使い分け - 2017年 Version -
ビッグデータ処理データベースの全体像と使い分け - 2017年 Version -
Tetsutaro Watanabe
 
Apache Kafkaって本当に大丈夫?~故障検証のオーバービューと興味深い挙動の紹介~
Apache Kafkaって本当に大丈夫?~故障検証のオーバービューと興味深い挙動の紹介~Apache Kafkaって本当に大丈夫?~故障検証のオーバービューと興味深い挙動の紹介~
Apache Kafkaって本当に大丈夫?~故障検証のオーバービューと興味深い挙動の紹介~
NTT DATA OSS Professional Services
 
Hadoop 2.6の最新機能(Cloudera World Tokyo 2014 LT講演資料)
Hadoop 2.6の最新機能(Cloudera World Tokyo 2014 LT講演資料)Hadoop 2.6の最新機能(Cloudera World Tokyo 2014 LT講演資料)
Hadoop 2.6の最新機能(Cloudera World Tokyo 2014 LT講演資料)
NTT DATA OSS Professional Services
 
[db tech showcase Sapporo 2015] B16:ビッグデータには、なぜ列指向が有効なのか? by 日本ヒューレット・パッカード株式...
[db tech showcase Sapporo 2015] B16:ビッグデータには、なぜ列指向が有効なのか? by 日本ヒューレット・パッカード株式...[db tech showcase Sapporo 2015] B16:ビッグデータには、なぜ列指向が有効なのか? by 日本ヒューレット・パッカード株式...
[db tech showcase Sapporo 2015] B16:ビッグデータには、なぜ列指向が有効なのか? by 日本ヒューレット・パッカード株式...
Insight Technology, Inc.
 
Hadoopエコシステムのデータストア振り返り
Hadoopエコシステムのデータストア振り返りHadoopエコシステムのデータストア振り返り
Hadoopエコシステムのデータストア振り返り
NTT DATA OSS Professional Services
 
PostgreSQLでpg_bigmを使って日本語全文検索 (MySQLとPostgreSQLの日本語全文検索勉強会 発表資料)
PostgreSQLでpg_bigmを使って日本語全文検索 (MySQLとPostgreSQLの日本語全文検索勉強会 発表資料)PostgreSQLでpg_bigmを使って日本語全文検索 (MySQLとPostgreSQLの日本語全文検索勉強会 発表資料)
PostgreSQLでpg_bigmを使って日本語全文検索 (MySQLとPostgreSQLの日本語全文検索勉強会 発表資料)
NTT DATA OSS Professional Services
 
Apache Spark 1000 nodes NTT DATA
Apache Spark 1000 nodes NTT DATAApache Spark 1000 nodes NTT DATA
Apache Spark 1000 nodes NTT DATA
NTT DATA OSS Professional Services
 

What's hot (20)

データインターフェースとしてのHadoop ~HDFSとクラウドストレージと私~ (NTTデータ テクノロジーカンファレンス 2019 講演資料、2019...
データインターフェースとしてのHadoop ~HDFSとクラウドストレージと私~ (NTTデータ テクノロジーカンファレンス 2019 講演資料、2019...データインターフェースとしてのHadoop ~HDFSとクラウドストレージと私~ (NTTデータ テクノロジーカンファレンス 2019 講演資料、2019...
データインターフェースとしてのHadoop ~HDFSとクラウドストレージと私~ (NTTデータ テクノロジーカンファレンス 2019 講演資料、2019...
 
Hadoop -ResourceManager HAの仕組み-
Hadoop -ResourceManager HAの仕組み-Hadoop -ResourceManager HAの仕組み-
Hadoop -ResourceManager HAの仕組み-
 
Hadoop -NameNode HAの仕組み-
Hadoop -NameNode HAの仕組み-Hadoop -NameNode HAの仕組み-
Hadoop -NameNode HAの仕組み-
 
大規模クラスタでのHadoop課題
大規模クラスタでのHadoop課題大規模クラスタでのHadoop課題
大規模クラスタでのHadoop課題
 
ビッグデータ活用を加速する!分散SQLエンジン Spark SQL のご紹介 20161105 OSC Tokyo Fall
ビッグデータ活用を加速する!分散SQLエンジン Spark SQL のご紹介 20161105 OSC Tokyo Fallビッグデータ活用を加速する!分散SQLエンジン Spark SQL のご紹介 20161105 OSC Tokyo Fall
ビッグデータ活用を加速する!分散SQLエンジン Spark SQL のご紹介 20161105 OSC Tokyo Fall
 
マルチビッグデータの活用を支える DWHの作り方
マルチビッグデータの活用を支える DWHの作り方マルチビッグデータの活用を支える DWHの作り方
マルチビッグデータの活用を支える DWHの作り方
 
分散処理基盤ApacheHadoop入門とHadoopエコシステムの最新技術動向(OSC2015 Kansai発表資料)
分散処理基盤ApacheHadoop入門とHadoopエコシステムの最新技術動向(OSC2015 Kansai発表資料)分散処理基盤ApacheHadoop入門とHadoopエコシステムの最新技術動向(OSC2015 Kansai発表資料)
分散処理基盤ApacheHadoop入門とHadoopエコシステムの最新技術動向(OSC2015 Kansai発表資料)
 
Gcpug tokyo february 2016
Gcpug tokyo february 2016Gcpug tokyo february 2016
Gcpug tokyo february 2016
 
[db tech showcase Tokyo 2016] B31: Spark Summit 2016@SFに参加してきたので最新事例などを紹介しつつデ...
[db tech showcase Tokyo 2016] B31: Spark Summit 2016@SFに参加してきたので最新事例などを紹介しつつデ...[db tech showcase Tokyo 2016] B31: Spark Summit 2016@SFに参加してきたので最新事例などを紹介しつつデ...
[db tech showcase Tokyo 2016] B31: Spark Summit 2016@SFに参加してきたので最新事例などを紹介しつつデ...
 
Quick Overview of Upcoming Spark 3.0 + α
Quick Overview of Upcoming Spark 3.0 + αQuick Overview of Upcoming Spark 3.0 + α
Quick Overview of Upcoming Spark 3.0 + α
 
HDFS Router-based federation
HDFS Router-based federationHDFS Router-based federation
HDFS Router-based federation
 
HBaseとSparkでセンサーデータを有効活用 #hbasejp
HBaseとSparkでセンサーデータを有効活用 #hbasejpHBaseとSparkでセンサーデータを有効活用 #hbasejp
HBaseとSparkでセンサーデータを有効活用 #hbasejp
 
20190516_DLC10_PGStrom
20190516_DLC10_PGStrom20190516_DLC10_PGStrom
20190516_DLC10_PGStrom
 
ビッグデータ処理データベースの全体像と使い分け - 2017年 Version -
ビッグデータ処理データベースの全体像と使い分け - 2017年 Version - ビッグデータ処理データベースの全体像と使い分け - 2017年 Version -
ビッグデータ処理データベースの全体像と使い分け - 2017年 Version -
 
Apache Kafkaって本当に大丈夫?~故障検証のオーバービューと興味深い挙動の紹介~
Apache Kafkaって本当に大丈夫?~故障検証のオーバービューと興味深い挙動の紹介~Apache Kafkaって本当に大丈夫?~故障検証のオーバービューと興味深い挙動の紹介~
Apache Kafkaって本当に大丈夫?~故障検証のオーバービューと興味深い挙動の紹介~
 
Hadoop 2.6の最新機能(Cloudera World Tokyo 2014 LT講演資料)
Hadoop 2.6の最新機能(Cloudera World Tokyo 2014 LT講演資料)Hadoop 2.6の最新機能(Cloudera World Tokyo 2014 LT講演資料)
Hadoop 2.6の最新機能(Cloudera World Tokyo 2014 LT講演資料)
 
[db tech showcase Sapporo 2015] B16:ビッグデータには、なぜ列指向が有効なのか? by 日本ヒューレット・パッカード株式...
[db tech showcase Sapporo 2015] B16:ビッグデータには、なぜ列指向が有効なのか? by 日本ヒューレット・パッカード株式...[db tech showcase Sapporo 2015] B16:ビッグデータには、なぜ列指向が有効なのか? by 日本ヒューレット・パッカード株式...
[db tech showcase Sapporo 2015] B16:ビッグデータには、なぜ列指向が有効なのか? by 日本ヒューレット・パッカード株式...
 
Hadoopエコシステムのデータストア振り返り
Hadoopエコシステムのデータストア振り返りHadoopエコシステムのデータストア振り返り
Hadoopエコシステムのデータストア振り返り
 
PostgreSQLでpg_bigmを使って日本語全文検索 (MySQLとPostgreSQLの日本語全文検索勉強会 発表資料)
PostgreSQLでpg_bigmを使って日本語全文検索 (MySQLとPostgreSQLの日本語全文検索勉強会 発表資料)PostgreSQLでpg_bigmを使って日本語全文検索 (MySQLとPostgreSQLの日本語全文検索勉強会 発表資料)
PostgreSQLでpg_bigmを使って日本語全文検索 (MySQLとPostgreSQLの日本語全文検索勉強会 発表資料)
 
Apache Spark 1000 nodes NTT DATA
Apache Spark 1000 nodes NTT DATAApache Spark 1000 nodes NTT DATA
Apache Spark 1000 nodes NTT DATA
 

Similar to Multiple Dimension Spreadのご紹介

YJTC18 A-1 データセンタネットワークの取り組み
YJTC18 A-1 データセンタネットワークの取り組みYJTC18 A-1 データセンタネットワークの取り組み
YJTC18 A-1 データセンタネットワークの取り組み
Yahoo!デベロッパーネットワーク
 
Introduction to JIT Compiler in JVM
Introduction to JIT Compiler in JVMIntroduction to JIT Compiler in JVM
Introduction to JIT Compiler in JVM
Koichi Sakata
 
Participation report of data stax accelerate 2019
Participation report of data stax accelerate 2019Participation report of data stax accelerate 2019
Participation report of data stax accelerate 2019
MKT-INTHEFOREST
 
ヤフーにおけるHadoop Operations #tdtech
ヤフーにおけるHadoop Operations #tdtechヤフーにおけるHadoop Operations #tdtech
ヤフーにおけるHadoop Operations #tdtech
Yahoo!デベロッパーネットワーク
 
Apache Kafkaによるログ転送とパフォーマンスチューニング - Bonfire Backend #2 -
Apache Kafkaによるログ転送とパフォーマンスチューニング - Bonfire Backend #2 -Apache Kafkaによるログ転送とパフォーマンスチューニング - Bonfire Backend #2 -
Apache Kafkaによるログ転送とパフォーマンスチューニング - Bonfire Backend #2 -
Yahoo!デベロッパーネットワーク
 
Hadoop conferencejapan2011
Hadoop conferencejapan2011Hadoop conferencejapan2011
Hadoop conferencejapan2011Ichiro Fukuda
 
YJTC18 A-1 大規模サーバの戦略
YJTC18 A-1 大規模サーバの戦略YJTC18 A-1 大規模サーバの戦略
YJTC18 A-1 大規模サーバの戦略
Yahoo!デベロッパーネットワーク
 
Autonomous を支える技術、Oracle Database 18c デモンストレーション
Autonomous を支える技術、Oracle Database 18c デモンストレーションAutonomous を支える技術、Oracle Database 18c デモンストレーション
Autonomous を支える技術、Oracle Database 18c デモンストレーション
オラクルエンジニア通信
 
Kubernetes Cluster Adminやってました #con_rider
Kubernetes Cluster Adminやってました #con_riderKubernetes Cluster Adminやってました #con_rider
Kubernetes Cluster Adminやってました #con_rider
Yahoo!デベロッパーネットワーク
 
FPGAによる大規模データ処理の高速化
FPGAによる大規模データ処理の高速化FPGAによる大規模データ処理の高速化
FPGAによる大規模データ処理の高速化
Kazunori Sato
 
デジタル化への第一歩 「エンタープライズデータレイク構築事例のご紹介」
デジタル化への第一歩  「エンタープライズデータレイク構築事例のご紹介」デジタル化への第一歩  「エンタープライズデータレイク構築事例のご紹介」
デジタル化への第一歩 「エンタープライズデータレイク構築事例のご紹介」
BeeX.inc
 
Reconf 201901
Reconf 201901Reconf 201901
Reconf 201901
Takefumi MIYOSHI
 
オタク×Node.js勉強会
オタク×Node.js勉強会オタク×Node.js勉強会
オタク×Node.js勉強会
虎の穴 開発室
 
Yahoo! JAPANのデータパイプラインで起きた障害とチューニング - Apache Kafka Meetup Japan #5 -
Yahoo! JAPANのデータパイプラインで起きた障害とチューニング - Apache Kafka Meetup Japan #5 -Yahoo! JAPANのデータパイプラインで起きた障害とチューニング - Apache Kafka Meetup Japan #5 -
Yahoo! JAPANのデータパイプラインで起きた障害とチューニング - Apache Kafka Meetup Japan #5 -
Yahoo!デベロッパーネットワーク
 
Cloudera Impalaをサービスに組み込むときに苦労した話
Cloudera Impalaをサービスに組み込むときに苦労した話Cloudera Impalaをサービスに組み込むときに苦労した話
Cloudera Impalaをサービスに組み込むときに苦労した話
Yukinori Suda
 
drecomにおけるwinning the metrics battle
drecomにおけるwinning the metrics battledrecomにおけるwinning the metrics battle
drecomにおけるwinning the metrics battleMitsuki Kenichi
 
DeNAtechcon_DeNAのセキュリティの取り組みと、スマートフォンセキュリティ(same-origin policy)
DeNAtechcon_DeNAのセキュリティの取り組みと、スマートフォンセキュリティ(same-origin policy)DeNAtechcon_DeNAのセキュリティの取り組みと、スマートフォンセキュリティ(same-origin policy)
DeNAtechcon_DeNAのセキュリティの取り組みと、スマートフォンセキュリティ(same-origin policy)
Toshiharu Sugiyama
 
Apache Drill で JSON 形式の オープンデータを分析してみる - db tech showcase Tokyo 2015 2015/06/11
Apache Drill で JSON 形式の オープンデータを分析してみる - db tech showcase Tokyo 2015 2015/06/11Apache Drill で JSON 形式の オープンデータを分析してみる - db tech showcase Tokyo 2015 2015/06/11
Apache Drill で JSON 形式の オープンデータを分析してみる - db tech showcase Tokyo 2015 2015/06/11
MapR Technologies Japan
 
Oracle code one 2018 報告会概要
Oracle code one 2018 報告会概要Oracle code one 2018 報告会概要
Oracle code one 2018 報告会概要
Chihiro Ito
 
AI/MLシステムにおけるビッグデータとの付き合い方
AI/MLシステムにおけるビッグデータとの付き合い方AI/MLシステムにおけるビッグデータとの付き合い方
AI/MLシステムにおけるビッグデータとの付き合い方
Shota Suzuki
 

Similar to Multiple Dimension Spreadのご紹介 (20)

YJTC18 A-1 データセンタネットワークの取り組み
YJTC18 A-1 データセンタネットワークの取り組みYJTC18 A-1 データセンタネットワークの取り組み
YJTC18 A-1 データセンタネットワークの取り組み
 
Introduction to JIT Compiler in JVM
Introduction to JIT Compiler in JVMIntroduction to JIT Compiler in JVM
Introduction to JIT Compiler in JVM
 
Participation report of data stax accelerate 2019
Participation report of data stax accelerate 2019Participation report of data stax accelerate 2019
Participation report of data stax accelerate 2019
 
ヤフーにおけるHadoop Operations #tdtech
ヤフーにおけるHadoop Operations #tdtechヤフーにおけるHadoop Operations #tdtech
ヤフーにおけるHadoop Operations #tdtech
 
Apache Kafkaによるログ転送とパフォーマンスチューニング - Bonfire Backend #2 -
Apache Kafkaによるログ転送とパフォーマンスチューニング - Bonfire Backend #2 -Apache Kafkaによるログ転送とパフォーマンスチューニング - Bonfire Backend #2 -
Apache Kafkaによるログ転送とパフォーマンスチューニング - Bonfire Backend #2 -
 
Hadoop conferencejapan2011
Hadoop conferencejapan2011Hadoop conferencejapan2011
Hadoop conferencejapan2011
 
YJTC18 A-1 大規模サーバの戦略
YJTC18 A-1 大規模サーバの戦略YJTC18 A-1 大規模サーバの戦略
YJTC18 A-1 大規模サーバの戦略
 
Autonomous を支える技術、Oracle Database 18c デモンストレーション
Autonomous を支える技術、Oracle Database 18c デモンストレーションAutonomous を支える技術、Oracle Database 18c デモンストレーション
Autonomous を支える技術、Oracle Database 18c デモンストレーション
 
Kubernetes Cluster Adminやってました #con_rider
Kubernetes Cluster Adminやってました #con_riderKubernetes Cluster Adminやってました #con_rider
Kubernetes Cluster Adminやってました #con_rider
 
FPGAによる大規模データ処理の高速化
FPGAによる大規模データ処理の高速化FPGAによる大規模データ処理の高速化
FPGAによる大規模データ処理の高速化
 
デジタル化への第一歩 「エンタープライズデータレイク構築事例のご紹介」
デジタル化への第一歩  「エンタープライズデータレイク構築事例のご紹介」デジタル化への第一歩  「エンタープライズデータレイク構築事例のご紹介」
デジタル化への第一歩 「エンタープライズデータレイク構築事例のご紹介」
 
Reconf 201901
Reconf 201901Reconf 201901
Reconf 201901
 
オタク×Node.js勉強会
オタク×Node.js勉強会オタク×Node.js勉強会
オタク×Node.js勉強会
 
Yahoo! JAPANのデータパイプラインで起きた障害とチューニング - Apache Kafka Meetup Japan #5 -
Yahoo! JAPANのデータパイプラインで起きた障害とチューニング - Apache Kafka Meetup Japan #5 -Yahoo! JAPANのデータパイプラインで起きた障害とチューニング - Apache Kafka Meetup Japan #5 -
Yahoo! JAPANのデータパイプラインで起きた障害とチューニング - Apache Kafka Meetup Japan #5 -
 
Cloudera Impalaをサービスに組み込むときに苦労した話
Cloudera Impalaをサービスに組み込むときに苦労した話Cloudera Impalaをサービスに組み込むときに苦労した話
Cloudera Impalaをサービスに組み込むときに苦労した話
 
drecomにおけるwinning the metrics battle
drecomにおけるwinning the metrics battledrecomにおけるwinning the metrics battle
drecomにおけるwinning the metrics battle
 
DeNAtechcon_DeNAのセキュリティの取り組みと、スマートフォンセキュリティ(same-origin policy)
DeNAtechcon_DeNAのセキュリティの取り組みと、スマートフォンセキュリティ(same-origin policy)DeNAtechcon_DeNAのセキュリティの取り組みと、スマートフォンセキュリティ(same-origin policy)
DeNAtechcon_DeNAのセキュリティの取り組みと、スマートフォンセキュリティ(same-origin policy)
 
Apache Drill で JSON 形式の オープンデータを分析してみる - db tech showcase Tokyo 2015 2015/06/11
Apache Drill で JSON 形式の オープンデータを分析してみる - db tech showcase Tokyo 2015 2015/06/11Apache Drill で JSON 形式の オープンデータを分析してみる - db tech showcase Tokyo 2015 2015/06/11
Apache Drill で JSON 形式の オープンデータを分析してみる - db tech showcase Tokyo 2015 2015/06/11
 
Oracle code one 2018 報告会概要
Oracle code one 2018 報告会概要Oracle code one 2018 報告会概要
Oracle code one 2018 報告会概要
 
AI/MLシステムにおけるビッグデータとの付き合い方
AI/MLシステムにおけるビッグデータとの付き合い方AI/MLシステムにおけるビッグデータとの付き合い方
AI/MLシステムにおけるビッグデータとの付き合い方
 

More from Yahoo!デベロッパーネットワーク

ゼロから始める転移学習
ゼロから始める転移学習ゼロから始める転移学習
ゼロから始める転移学習
Yahoo!デベロッパーネットワーク
 
継続的なモデルモニタリングを実現するKubernetes Operator
継続的なモデルモニタリングを実現するKubernetes Operator継続的なモデルモニタリングを実現するKubernetes Operator
継続的なモデルモニタリングを実現するKubernetes Operator
Yahoo!デベロッパーネットワーク
 
ヤフーでは開発迅速性と品質のバランスをどう取ってるか
ヤフーでは開発迅速性と品質のバランスをどう取ってるかヤフーでは開発迅速性と品質のバランスをどう取ってるか
ヤフーでは開発迅速性と品質のバランスをどう取ってるか
Yahoo!デベロッパーネットワーク
 
オンプレML基盤on Kubernetes パネルディスカッション
オンプレML基盤on Kubernetes パネルディスカッションオンプレML基盤on Kubernetes パネルディスカッション
オンプレML基盤on Kubernetes パネルディスカッション
Yahoo!デベロッパーネットワーク
 
LakeTahoe
LakeTahoeLakeTahoe
オンプレML基盤on Kubernetes 〜Yahoo! JAPAN AIPF〜
オンプレML基盤on Kubernetes 〜Yahoo! JAPAN AIPF〜オンプレML基盤on Kubernetes 〜Yahoo! JAPAN AIPF〜
オンプレML基盤on Kubernetes 〜Yahoo! JAPAN AIPF〜
Yahoo!デベロッパーネットワーク
 
Persistent-memory-native Database High-availability Feature
Persistent-memory-native Database High-availability FeaturePersistent-memory-native Database High-availability Feature
Persistent-memory-native Database High-availability Feature
Yahoo!デベロッパーネットワーク
 
データの価値を最大化させるためのデザイン~データビジュアライゼーションの方法~ #devsumi 17-E-2
データの価値を最大化させるためのデザイン~データビジュアライゼーションの方法~ #devsumi 17-E-2データの価値を最大化させるためのデザイン~データビジュアライゼーションの方法~ #devsumi 17-E-2
データの価値を最大化させるためのデザイン~データビジュアライゼーションの方法~ #devsumi 17-E-2
Yahoo!デベロッパーネットワーク
 
eコマースと実店舗の相互利益を目指したデザイン #yjtc
eコマースと実店舗の相互利益を目指したデザイン #yjtceコマースと実店舗の相互利益を目指したデザイン #yjtc
eコマースと実店舗の相互利益を目指したデザイン #yjtc
Yahoo!デベロッパーネットワーク
 
ヤフーを支えるセキュリティ ~サイバー攻撃を防ぐエンジニアの仕事とは~ #yjtc
ヤフーを支えるセキュリティ ~サイバー攻撃を防ぐエンジニアの仕事とは~ #yjtcヤフーを支えるセキュリティ ~サイバー攻撃を防ぐエンジニアの仕事とは~ #yjtc
ヤフーを支えるセキュリティ ~サイバー攻撃を防ぐエンジニアの仕事とは~ #yjtc
Yahoo!デベロッパーネットワーク
 
Yahoo! JAPANのIaaSを支えるKubernetesクラスタ、アップデート自動化への挑戦 #yjtc
Yahoo! JAPANのIaaSを支えるKubernetesクラスタ、アップデート自動化への挑戦 #yjtcYahoo! JAPANのIaaSを支えるKubernetesクラスタ、アップデート自動化への挑戦 #yjtc
Yahoo! JAPANのIaaSを支えるKubernetesクラスタ、アップデート自動化への挑戦 #yjtc
Yahoo!デベロッパーネットワーク
 
ビッグデータから人々のムードを捉える #yjtc
ビッグデータから人々のムードを捉える #yjtcビッグデータから人々のムードを捉える #yjtc
ビッグデータから人々のムードを捉える #yjtc
Yahoo!デベロッパーネットワーク
 
サイエンス領域におけるMLOpsの取り組み #yjtc
サイエンス領域におけるMLOpsの取り組み #yjtcサイエンス領域におけるMLOpsの取り組み #yjtc
サイエンス領域におけるMLOpsの取り組み #yjtc
Yahoo!デベロッパーネットワーク
 
ヤフーのAIプラットフォーム紹介 ~AIテックカンパニーを支えるデータ基盤~ #yjtc
ヤフーのAIプラットフォーム紹介 ~AIテックカンパニーを支えるデータ基盤~ #yjtcヤフーのAIプラットフォーム紹介 ~AIテックカンパニーを支えるデータ基盤~ #yjtc
ヤフーのAIプラットフォーム紹介 ~AIテックカンパニーを支えるデータ基盤~ #yjtc
Yahoo!デベロッパーネットワーク
 
Yahoo! JAPAN Tech Conference 2022 Day2 Keynote #yjtc
Yahoo! JAPAN Tech Conference 2022 Day2 Keynote #yjtcYahoo! JAPAN Tech Conference 2022 Day2 Keynote #yjtc
Yahoo! JAPAN Tech Conference 2022 Day2 Keynote #yjtc
Yahoo!デベロッパーネットワーク
 
新技術を使った次世代の商品の見せ方 ~ヤフオク!のマルチビュー機能~ #yjtc
新技術を使った次世代の商品の見せ方 ~ヤフオク!のマルチビュー機能~ #yjtc新技術を使った次世代の商品の見せ方 ~ヤフオク!のマルチビュー機能~ #yjtc
新技術を使った次世代の商品の見せ方 ~ヤフオク!のマルチビュー機能~ #yjtc
Yahoo!デベロッパーネットワーク
 
PC版Yahoo!メールリニューアル ~サービスのUI/UX統合と改善プロセス~ #yjtc
PC版Yahoo!メールリニューアル ~サービスのUI/UX統合と改善プロセス~ #yjtcPC版Yahoo!メールリニューアル ~サービスのUI/UX統合と改善プロセス~ #yjtc
PC版Yahoo!メールリニューアル ~サービスのUI/UX統合と改善プロセス~ #yjtc
Yahoo!デベロッパーネットワーク
 
モブデザインによる多職種チームのコミュニケーション改善 #yjtc
モブデザインによる多職種チームのコミュニケーション改善 #yjtcモブデザインによる多職種チームのコミュニケーション改善 #yjtc
モブデザインによる多職種チームのコミュニケーション改善 #yjtc
Yahoo!デベロッパーネットワーク
 
「新しいおうち探し」のためのAIアシスト検索 #yjtc
「新しいおうち探し」のためのAIアシスト検索 #yjtc「新しいおうち探し」のためのAIアシスト検索 #yjtc
「新しいおうち探し」のためのAIアシスト検索 #yjtc
Yahoo!デベロッパーネットワーク
 
ユーザーの地域を考慮した検索入力補助機能の改善の試み #yjtc
ユーザーの地域を考慮した検索入力補助機能の改善の試み #yjtcユーザーの地域を考慮した検索入力補助機能の改善の試み #yjtc
ユーザーの地域を考慮した検索入力補助機能の改善の試み #yjtc
Yahoo!デベロッパーネットワーク
 

More from Yahoo!デベロッパーネットワーク (20)

ゼロから始める転移学習
ゼロから始める転移学習ゼロから始める転移学習
ゼロから始める転移学習
 
継続的なモデルモニタリングを実現するKubernetes Operator
継続的なモデルモニタリングを実現するKubernetes Operator継続的なモデルモニタリングを実現するKubernetes Operator
継続的なモデルモニタリングを実現するKubernetes Operator
 
ヤフーでは開発迅速性と品質のバランスをどう取ってるか
ヤフーでは開発迅速性と品質のバランスをどう取ってるかヤフーでは開発迅速性と品質のバランスをどう取ってるか
ヤフーでは開発迅速性と品質のバランスをどう取ってるか
 
オンプレML基盤on Kubernetes パネルディスカッション
オンプレML基盤on Kubernetes パネルディスカッションオンプレML基盤on Kubernetes パネルディスカッション
オンプレML基盤on Kubernetes パネルディスカッション
 
LakeTahoe
LakeTahoeLakeTahoe
LakeTahoe
 
オンプレML基盤on Kubernetes 〜Yahoo! JAPAN AIPF〜
オンプレML基盤on Kubernetes 〜Yahoo! JAPAN AIPF〜オンプレML基盤on Kubernetes 〜Yahoo! JAPAN AIPF〜
オンプレML基盤on Kubernetes 〜Yahoo! JAPAN AIPF〜
 
Persistent-memory-native Database High-availability Feature
Persistent-memory-native Database High-availability FeaturePersistent-memory-native Database High-availability Feature
Persistent-memory-native Database High-availability Feature
 
データの価値を最大化させるためのデザイン~データビジュアライゼーションの方法~ #devsumi 17-E-2
データの価値を最大化させるためのデザイン~データビジュアライゼーションの方法~ #devsumi 17-E-2データの価値を最大化させるためのデザイン~データビジュアライゼーションの方法~ #devsumi 17-E-2
データの価値を最大化させるためのデザイン~データビジュアライゼーションの方法~ #devsumi 17-E-2
 
eコマースと実店舗の相互利益を目指したデザイン #yjtc
eコマースと実店舗の相互利益を目指したデザイン #yjtceコマースと実店舗の相互利益を目指したデザイン #yjtc
eコマースと実店舗の相互利益を目指したデザイン #yjtc
 
ヤフーを支えるセキュリティ ~サイバー攻撃を防ぐエンジニアの仕事とは~ #yjtc
ヤフーを支えるセキュリティ ~サイバー攻撃を防ぐエンジニアの仕事とは~ #yjtcヤフーを支えるセキュリティ ~サイバー攻撃を防ぐエンジニアの仕事とは~ #yjtc
ヤフーを支えるセキュリティ ~サイバー攻撃を防ぐエンジニアの仕事とは~ #yjtc
 
Yahoo! JAPANのIaaSを支えるKubernetesクラスタ、アップデート自動化への挑戦 #yjtc
Yahoo! JAPANのIaaSを支えるKubernetesクラスタ、アップデート自動化への挑戦 #yjtcYahoo! JAPANのIaaSを支えるKubernetesクラスタ、アップデート自動化への挑戦 #yjtc
Yahoo! JAPANのIaaSを支えるKubernetesクラスタ、アップデート自動化への挑戦 #yjtc
 
ビッグデータから人々のムードを捉える #yjtc
ビッグデータから人々のムードを捉える #yjtcビッグデータから人々のムードを捉える #yjtc
ビッグデータから人々のムードを捉える #yjtc
 
サイエンス領域におけるMLOpsの取り組み #yjtc
サイエンス領域におけるMLOpsの取り組み #yjtcサイエンス領域におけるMLOpsの取り組み #yjtc
サイエンス領域におけるMLOpsの取り組み #yjtc
 
ヤフーのAIプラットフォーム紹介 ~AIテックカンパニーを支えるデータ基盤~ #yjtc
ヤフーのAIプラットフォーム紹介 ~AIテックカンパニーを支えるデータ基盤~ #yjtcヤフーのAIプラットフォーム紹介 ~AIテックカンパニーを支えるデータ基盤~ #yjtc
ヤフーのAIプラットフォーム紹介 ~AIテックカンパニーを支えるデータ基盤~ #yjtc
 
Yahoo! JAPAN Tech Conference 2022 Day2 Keynote #yjtc
Yahoo! JAPAN Tech Conference 2022 Day2 Keynote #yjtcYahoo! JAPAN Tech Conference 2022 Day2 Keynote #yjtc
Yahoo! JAPAN Tech Conference 2022 Day2 Keynote #yjtc
 
新技術を使った次世代の商品の見せ方 ~ヤフオク!のマルチビュー機能~ #yjtc
新技術を使った次世代の商品の見せ方 ~ヤフオク!のマルチビュー機能~ #yjtc新技術を使った次世代の商品の見せ方 ~ヤフオク!のマルチビュー機能~ #yjtc
新技術を使った次世代の商品の見せ方 ~ヤフオク!のマルチビュー機能~ #yjtc
 
PC版Yahoo!メールリニューアル ~サービスのUI/UX統合と改善プロセス~ #yjtc
PC版Yahoo!メールリニューアル ~サービスのUI/UX統合と改善プロセス~ #yjtcPC版Yahoo!メールリニューアル ~サービスのUI/UX統合と改善プロセス~ #yjtc
PC版Yahoo!メールリニューアル ~サービスのUI/UX統合と改善プロセス~ #yjtc
 
モブデザインによる多職種チームのコミュニケーション改善 #yjtc
モブデザインによる多職種チームのコミュニケーション改善 #yjtcモブデザインによる多職種チームのコミュニケーション改善 #yjtc
モブデザインによる多職種チームのコミュニケーション改善 #yjtc
 
「新しいおうち探し」のためのAIアシスト検索 #yjtc
「新しいおうち探し」のためのAIアシスト検索 #yjtc「新しいおうち探し」のためのAIアシスト検索 #yjtc
「新しいおうち探し」のためのAIアシスト検索 #yjtc
 
ユーザーの地域を考慮した検索入力補助機能の改善の試み #yjtc
ユーザーの地域を考慮した検索入力補助機能の改善の試み #yjtcユーザーの地域を考慮した検索入力補助機能の改善の試み #yjtc
ユーザーの地域を考慮した検索入力補助機能の改善の試み #yjtc
 

Recently uploaded

無形価値を守り育てる社会における「デー タ」の責務について - Atlas, Inc.
無形価値を守り育てる社会における「デー タ」の責務について - Atlas, Inc.無形価値を守り育てる社会における「デー タ」の責務について - Atlas, Inc.
無形価値を守り育てる社会における「デー タ」の責務について - Atlas, Inc.
Yuki Miyazaki
 
iMacwoSu_Gong_de_barabaranishitaHua_.pptx
iMacwoSu_Gong_de_barabaranishitaHua_.pptxiMacwoSu_Gong_de_barabaranishitaHua_.pptx
iMacwoSu_Gong_de_barabaranishitaHua_.pptx
kitamisetagayaxxx
 
ロジックから状態を分離する技術/設計ナイト2024 by わいとん @ytnobody
ロジックから状態を分離する技術/設計ナイト2024 by わいとん @ytnobodyロジックから状態を分離する技術/設計ナイト2024 by わいとん @ytnobody
ロジックから状態を分離する技術/設計ナイト2024 by わいとん @ytnobody
azuma satoshi
 
Humanoid Virtual Athletics Challenge2024 技術講習会 スライド
Humanoid Virtual Athletics Challenge2024 技術講習会 スライドHumanoid Virtual Athletics Challenge2024 技術講習会 スライド
Humanoid Virtual Athletics Challenge2024 技術講習会 スライド
tazaki1
 
ヒアラブルへの入力を想定したユーザ定義型ジェスチャ調査と IMUセンサによる耳タッチジェスチャの認識
ヒアラブルへの入力を想定したユーザ定義型ジェスチャ調査と IMUセンサによる耳タッチジェスチャの認識ヒアラブルへの入力を想定したユーザ定義型ジェスチャ調査と IMUセンサによる耳タッチジェスチャの認識
ヒアラブルへの入力を想定したユーザ定義型ジェスチャ調査と IMUセンサによる耳タッチジェスチャの認識
sugiuralab
 
生成AIがもたらすコンテンツ経済圏の新時代  The New Era of Content Economy Brought by Generative AI
生成AIがもたらすコンテンツ経済圏の新時代  The New Era of Content Economy Brought by Generative AI生成AIがもたらすコンテンツ経済圏の新時代  The New Era of Content Economy Brought by Generative AI
生成AIがもたらすコンテンツ経済圏の新時代  The New Era of Content Economy Brought by Generative AI
Osaka University
 
ハイブリッドクラウド研究会_Hyper-VとSystem Center Virtual Machine Manager セッションMM
ハイブリッドクラウド研究会_Hyper-VとSystem Center Virtual Machine Manager セッションMMハイブリッドクラウド研究会_Hyper-VとSystem Center Virtual Machine Manager セッションMM
ハイブリッドクラウド研究会_Hyper-VとSystem Center Virtual Machine Manager セッションMM
osamut
 
【JSAI2024】LLMエージェントの人間との対話における反芻的返答の親近感向上効果_v1.1.pdf
【JSAI2024】LLMエージェントの人間との対話における反芻的返答の親近感向上効果_v1.1.pdf【JSAI2024】LLMエージェントの人間との対話における反芻的返答の親近感向上効果_v1.1.pdf
【JSAI2024】LLMエージェントの人間との対話における反芻的返答の親近感向上効果_v1.1.pdf
ARISE analytics
 
協働AIがもたらす業務効率革命 -日本企業が押さえるべきポイント-Collaborative AI Revolutionizing Busines...
協働AIがもたらす業務効率革命 -日本企業が押さえるべきポイント-Collaborative AI Revolutionizing Busines...協働AIがもたらす業務効率革命 -日本企業が押さえるべきポイント-Collaborative AI Revolutionizing Busines...
協働AIがもたらす業務効率革命 -日本企業が押さえるべきポイント-Collaborative AI Revolutionizing Busines...
Osaka University
 
「進化するアプリ イマ×ミライ ~生成AIアプリへ続く道と新時代のアプリとは~」Interop24Tokyo APPS JAPAN B1-01講演
「進化するアプリ イマ×ミライ ~生成AIアプリへ続く道と新時代のアプリとは~」Interop24Tokyo APPS JAPAN B1-01講演「進化するアプリ イマ×ミライ ~生成AIアプリへ続く道と新時代のアプリとは~」Interop24Tokyo APPS JAPAN B1-01講演
「進化するアプリ イマ×ミライ ~生成AIアプリへ続く道と新時代のアプリとは~」Interop24Tokyo APPS JAPAN B1-01講演
嶋 是一 (Yoshikazu SHIMA)
 

Recently uploaded (10)

無形価値を守り育てる社会における「デー タ」の責務について - Atlas, Inc.
無形価値を守り育てる社会における「デー タ」の責務について - Atlas, Inc.無形価値を守り育てる社会における「デー タ」の責務について - Atlas, Inc.
無形価値を守り育てる社会における「デー タ」の責務について - Atlas, Inc.
 
iMacwoSu_Gong_de_barabaranishitaHua_.pptx
iMacwoSu_Gong_de_barabaranishitaHua_.pptxiMacwoSu_Gong_de_barabaranishitaHua_.pptx
iMacwoSu_Gong_de_barabaranishitaHua_.pptx
 
ロジックから状態を分離する技術/設計ナイト2024 by わいとん @ytnobody
ロジックから状態を分離する技術/設計ナイト2024 by わいとん @ytnobodyロジックから状態を分離する技術/設計ナイト2024 by わいとん @ytnobody
ロジックから状態を分離する技術/設計ナイト2024 by わいとん @ytnobody
 
Humanoid Virtual Athletics Challenge2024 技術講習会 スライド
Humanoid Virtual Athletics Challenge2024 技術講習会 スライドHumanoid Virtual Athletics Challenge2024 技術講習会 スライド
Humanoid Virtual Athletics Challenge2024 技術講習会 スライド
 
ヒアラブルへの入力を想定したユーザ定義型ジェスチャ調査と IMUセンサによる耳タッチジェスチャの認識
ヒアラブルへの入力を想定したユーザ定義型ジェスチャ調査と IMUセンサによる耳タッチジェスチャの認識ヒアラブルへの入力を想定したユーザ定義型ジェスチャ調査と IMUセンサによる耳タッチジェスチャの認識
ヒアラブルへの入力を想定したユーザ定義型ジェスチャ調査と IMUセンサによる耳タッチジェスチャの認識
 
生成AIがもたらすコンテンツ経済圏の新時代  The New Era of Content Economy Brought by Generative AI
生成AIがもたらすコンテンツ経済圏の新時代  The New Era of Content Economy Brought by Generative AI生成AIがもたらすコンテンツ経済圏の新時代  The New Era of Content Economy Brought by Generative AI
生成AIがもたらすコンテンツ経済圏の新時代  The New Era of Content Economy Brought by Generative AI
 
ハイブリッドクラウド研究会_Hyper-VとSystem Center Virtual Machine Manager セッションMM
ハイブリッドクラウド研究会_Hyper-VとSystem Center Virtual Machine Manager セッションMMハイブリッドクラウド研究会_Hyper-VとSystem Center Virtual Machine Manager セッションMM
ハイブリッドクラウド研究会_Hyper-VとSystem Center Virtual Machine Manager セッションMM
 
【JSAI2024】LLMエージェントの人間との対話における反芻的返答の親近感向上効果_v1.1.pdf
【JSAI2024】LLMエージェントの人間との対話における反芻的返答の親近感向上効果_v1.1.pdf【JSAI2024】LLMエージェントの人間との対話における反芻的返答の親近感向上効果_v1.1.pdf
【JSAI2024】LLMエージェントの人間との対話における反芻的返答の親近感向上効果_v1.1.pdf
 
協働AIがもたらす業務効率革命 -日本企業が押さえるべきポイント-Collaborative AI Revolutionizing Busines...
協働AIがもたらす業務効率革命 -日本企業が押さえるべきポイント-Collaborative AI Revolutionizing Busines...協働AIがもたらす業務効率革命 -日本企業が押さえるべきポイント-Collaborative AI Revolutionizing Busines...
協働AIがもたらす業務効率革命 -日本企業が押さえるべきポイント-Collaborative AI Revolutionizing Busines...
 
「進化するアプリ イマ×ミライ ~生成AIアプリへ続く道と新時代のアプリとは~」Interop24Tokyo APPS JAPAN B1-01講演
「進化するアプリ イマ×ミライ ~生成AIアプリへ続く道と新時代のアプリとは~」Interop24Tokyo APPS JAPAN B1-01講演「進化するアプリ イマ×ミライ ~生成AIアプリへ続く道と新時代のアプリとは~」Interop24Tokyo APPS JAPAN B1-01講演
「進化するアプリ イマ×ミライ ~生成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 • 分散ストレージ上での蓄積と分散処理 フレームワークに対応にフォーカス
  • 26. Copyright (C) 2018 Yahoo Japan Corporation. All Rights Reserved. ファイルレイアウト 26 File File Header Block-1 Block-X Block Metadata Spread-1 Spread-2 … Spread-X Block-2 Block Metadata Spread-1 … MDS形式のファイルとして認識する ための情報や読み込みに必要な設定が 含まれる。 ファイルは複数のブロックで構成され る。 ブロックはカラムの構成や統計情報を 保持するメタデータと複数の Spread で構成される。 Spread は複数の Column で構成さ れる。 Block Metadata Spread-1
  • 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
  • 32. Copyright (C) 2018 Yahoo Japan Corporation. All Rights Reserved. MDSReaderMDSWriter Write/Read 32 deserializer Message object IBlockMaker List<ColumnBinary> IColumnBinaryMaker MDSRecordWriter Spread MDS File Byte[] IBlockReader IColumnBinaryMaker List<ColumnBinary> MDSRecordReader Spread serializer Message object Byte[] ProcessingETL Spread MessageMessage Spread
  • 33. Copyright (C) 2018 Yahoo Japan Corporation. All Rights Reserved. Message のシリアライズ/デシリアライズ 33 • 同時に開発したスキーマライブラリを利用 https://github.com/yahoojapan/dataplatform-schema-lib IParser Reader Avro JSON Etc… AvroReader JsonReader Writer AvroWriter JsonWriter Avro JSON Etc… 共通のインターフェースを通じてデータのアクセスと変換を提供
  • 34. Copyright (C) 2018 Yahoo Japan Corporation. All Rights Reserved. 入力データからデータ構造を構築 34 message Spread { “col-3” : “val” } { “col-1” : “val” , “col-5” : “val” } { “col-2” : “val” , “col-4” : “val” , “col-5” : “val” } Col-3 Col-1 Col-3 Col-5 Null Null Null Col-1 Col-2 Col-3 Col-4 Col-5 Null Null Null Null Null Null Null Null Null 初期状態では何もデータ構造をもっ ていない、入力データに応じた構造 が構築される。 入力データで新規に出現したキーが ある場合には、データ構造に追加さ れる。 これによりスキーマレスな書き込み を実現。
  • 35. Copyright (C) 2018 Yahoo Japan Corporation. All Rights Reserved. カラム毎の独立したエンコーディング 35 Column Col-2 Null Null Col-1 IColumnBinaryMaker Encoder ICompressor Col-1 ColumnBinary Col-2 IColumnBinaryMaker Encoder ICompressor Col-2 ColumnBinary Column Col-1 Null Null
  • 36. Copyright (C) 2018 Yahoo Japan Corporation. All Rights Reserved. オプティマイザ 36 MDSWriter Analyzer Column IColumnAnalizeResult IOptimizer IColumnAnalizeResult IColumnBinaryMaker カラムを解析し統計情報を(rows, cardinality…)を取得する。 統計情報に応じてエンコーディング 方式を選定する。
  • 37. Copyright (C) 2018 Yahoo Japan Corporation. All Rights Reserved. 高速なファイルのマージ 37 MDS File File Header Block-1 Block-2 MDS File File Header Block-1 Block-2 MDSWriter deserializer Message object IBlockMaker List<ColumnBinary> IColumnBinaryMaker MDSRecordWriter Spread MDS File Byte[] List<ColumnBinary> ファイルのマージはメッセージ のデシリアライズ、カラムのエ ンコーディング/圧縮をスキッ プできる。 ボトルネックをディスク/ネッ トワークIOとする事により HDFS 上に数GB単位のファイ ルを作成する事が可能。
  • 38. Copyright (C) 2018 Yahoo Japan Corporation. All Rights Reserved. Splitable 38 MDS File File Header Block-1 Block-2 Block-3 Block-4 Block-5 Processing Processing Processing Processing Processing MDS はブロック単位で並列して処 理が可能。 ブロックサイズはファイルのオプ ションで設定できる。 デフォルトは128MBとなる。 128MB 128MB 128MB 128MB XMB
  • 39. Copyright (C) 2018 Yahoo Japan Corporation. All Rights Reserved. Projection Pushdown 39 MDSReader Processing [ col2 , col5] MDS File File Header Block-1 Spread-1 Col-1 Col-2 Col-3 Col-4 Col-5 List<ColumnBinary> [ col-2,col-3] Skip Read Skip Read Spread 読み込むカラムを設定 ストレージから必要なカラムのデータのみを読み込み
  • 40. Copyright (C) 2018 Yahoo Japan Corporation. All Rights Reserved. Predicate Pushdown 40 MDSReader Processing MDS File File Header Block-1 Block-2 Block-3 Spread-1 Spread-2 Spread-1 Spread-2 Spread-1 Spread-2 確実にデータが含まれない Block , Spread をスキップ Spread Col-1 < X and Col-3 = X List<ColumnBinary> Skip Skip Read Read 入力に必要なデータの条件を設定 Col-1 Col-2 Col-3 Col-4 Col-5 Skip Read Read 確実にデータが含まれない行をスキップ
  • 41. Copyright (C) 2018 Yahoo Japan Corporation. All Rights Reserved. Expand 41 timestamp (BIGINT) total_price (BIGINT) Items (STRUCT) item_id (STRING) price (BIGINT) number (INT) 1516773762 1000 I_001 300 1 1516773762 1000 I_005 350 2 1516773765 200 I_002 50 4 MDSReader Processing timestamp (BIGINT) total_price (BIGINT) Items (ARRAY) Items (Struct) item_id (STRING) price (BIGINT) number (INT) 1516773762 1000 I_001 300 1 I_005 350 2 1516773765 200 I_002 50 4 Spread Expand Spread Spread Expand ‘items’ 展開したいArray要素のカラムを設定 指定されたカラムを展開した Spread を作成
  • 42. Copyright (C) 2018 Yahoo Japan Corporation. All Rights Reserved. Flatten 42 timestamp (BIGINT) total_price (BIGINT) item_id (STRING) price (BIGINT) number (INT) 1516773762 1000 I_001 300 1 1516773762 1000 I_005 350 2 1516773765 200 I_002 50 4 MDSReader Processing Spread Flatten Spread Spread Flatten items.item_id -> item_id items.price -> price items.number -> number 平坦化したいカラムを設定 指定されたカラムを平坦化した Spread を作成 timestamp (BIGINT) total_price (BIGINT) Items (STRUCT) item_id (STRING) price (BIGINT) number (INT) 1516773762 1000 I_001 300 1 1516773762 1000 I_005 350 2 1516773765 200 I_002 50 4
  • 43. Copyright (C) 2018 Yahoo Japan Corporation. All Rights Reserved. Expand & Flatten 43 timestamp (BIGINT) total_price (BIGINT) Items (STRUCT) item_id (STRING) price (BIGINT) number (INT) 1516773762 1000 I_001 300 1 1516773762 1000 I_005 350 2 1516773765 200 I_002 50 4 MDSReader Processingtimestamp (BIGINT) total_price (BIGINT) Items (ARRAY) Items (Struct) item_id (STRING) price (BIGINT) number (INT) 1516773762 1000 I_001 300 1 I_005 350 2 1516773765 200 I_002 50 4 Spread Spread Expand , Flatten を設定 timestamp (BIGINT) total_price (BIGINT) item_id (STRING) price (BIGINT) number (INT) 1516773762 1000 I_001 300 1 1516773762 1000 I_005 350 2 1516773765 200 I_002 50 4 Expand & Flatten Spread Expand ‘items’ Flatten items.item_id -> item_id items.price -> price items.number -> number Expand Spread
  • 44. Copyright (C) 2018 Yahoo Japan Corporation. All Rights Reserved.Copyright (C) 2018 Yahoo Japan Corporation. All Rights Reserved. チュートリアル
  • 45. Copyright (C) 2018 Yahoo Japan Corporation. All Rights Reserved. 環境構築 $ git clone https://github.com/yahoojapan/multiple-dimension-spread.git $ cd multiple-dimension-spread/ $ mvn package $ bin/setup.sh
  • 46. Copyright (C) 2018 Yahoo Japan Corporation. All Rights Reserved. JSON メッセージの変換 $ bin/mds.sh create -i src/example/src/main/resources/sample_json.txt -f json -o /tmp/sample.mds $ bin/mds.sh cat -i /tmp/sample.mds -o '-' # show whole data {"summary":{"total_price":550,"total_weight":412},"number":5,"price":110 ,"name":"apple","class":"fruits"} {"summary":{"total_price":800,"total_weight":600},"number":10,"price":80 ,"name":"orange","class":"fruits"}
  • 47. Copyright (C) 2018 Yahoo Japan Corporation. All Rights Reserved. Hive テーブルの作成 47 $ hive -i jars/mds/add_jar.hql > create database test; > use test; > create external table sample_json ( summary struct<total_price: bigint, total_weight: bigint>, number bigint, price bigint, name string, class string ) ROW FORMAT SERDE 'jp.co.yahoo.dataplatform.mds.hadoop.hive.MDSSerde‘ STORED AS INPUTFORMAT 'jp.co.yahoo.dataplatform.mds.hadoop.hive.io.MDSHiveLineInputFormat‘ OUTPUTFORMAT 'jp.co.yahoo.dataplatform.mds.hadoop.hive.io.MDSHiveParserOutputFormat‘ LOCATION '/tmp/ss'; > select * from sample_json; {"total_price":550,"total_weight":412} 5 110 apple fruits {"total_price":800,"total_weight":600} 10 80 orange fruits
  • 48. Copyright (C) 2018 Yahoo Japan Corporation. All Rights Reserved.Copyright (C) 2018 Yahoo Japan Corporation. All Rights Reserved. 開発状況
  • 49. Copyright (C) 2018 Yahoo Japan Corporation. All Rights Reserved. 機能 機能 MDS ORC Row Store Text, JSON, ORC, Avro Text, Sequence, Avro Compress Data type specific ○ ○ Change by column base ○ ☓ Format GZIP,LZ4,ZSTD ZLIB, SNAPPY, LZO Splittable ○ ○ Vectorization ○ ○ Pushdown Projection ○ ○ Predication ○ ○
  • 50. Copyright (C) 2018 Yahoo Japan Corporation. All Rights Reserved. データ型 基本型 説明 Boolean true/false Byte 8ビット整数 Bytes バイト列 Short 16ビット整数 Integer 32ビット整数 Long 64ビット整数 Float 32ビット単精度浮動小数点数 Double 64ビット倍精度浮動小数点数 String 文字列 Null 欠損データ 複合型 説明 Array 配列 Map マップ Struct 構造体 Union 共用体(異なる型を保持)
  • 51. Copyright (C) 2018 Yahoo Japan Corporation. All Rights Reserved. MDSの対応エコシステム エコシステム 対応 URL Hive ○ hive.apache.org Spark △※1 spark.apache.org Presto △※1 prestodb.io Drill ☓ drill.apache.org Impala ☓ impala.apache.org Arrow ○ arrow.apache.org ※1:本資料公開時にはOSSには公開していません
  • 52. Copyright (C) 2018 Yahoo Japan Corporation. All Rights Reserved.Copyright (C) 2018 Yahoo Japan Corporation. All Rights Reserved. パフォーマンス
  • 53. Copyright (C) 2018 Yahoo Japan Corporation. All Rights Reserved. TPC-H 1000 53 TPC-H スケール1000(GB)で比較 MDS,Apache ORC,Apache parquet で比較 圧縮フォーマットは全てGZIP 各データは Hive で変換を実施
  • 54. Copyright (C) 2018 Yahoo Japan Corporation. All Rights Reserved. バージョン 54 Hive:1.2.1 Spark:2.2.0
  • 55. Copyright (C) 2018 Yahoo Japan Corporation. All Rights Reserved. TPC-H 1000 - データサイズ 55 0 50 100 150 200 250 300 MDS Apache ORC Apache parquet データサイズ(GB) Law is better
  • 56. Copyright (C) 2018 Yahoo Japan Corporation. All Rights Reserved. TPC-H 1000 - テーブル別のサイズ 56 0 20 40 60 80 100 120 140 160 180 region nation supplier part customer partsupp orders lineitem テーブル別データサイズ(GB) MDS Apache ORC Apache parquet Law is better
  • 57. Copyright (C) 2018 Yahoo Japan Corporation. All Rights Reserved. TPC-H 1000 - Hive 57 ※テーブルスキャンオペレーション(Map)のみ計測 ※q19:いずれも実行に時間がかかりすぎたため計測を断念 0 10000 20000 30000 40000 50000 60000 70000 80000 90000 100000 q6 q16 q14 q1 q15 q11 q22 q2 q12 q20 q13 q10 q4 q3 q7 q8 q5 q9 q17 q18 q21 CPU TIME(SEC) MDS Apache ORC Apache parquet Law is better
  • 58. Copyright (C) 2018 Yahoo Japan Corporation. All Rights Reserved. TPC-H 1000 - Spark 58 0 10000 20000 30000 40000 50000 60000 70000 80000 q6 q14 q12 q1 q10 q13 q3 q20 q8 q7 q5 q9 q4 q17 Executor CPU TIME(SEC) MDS Apache ORC Apache parquet ※q2,11,15,18,21,22:テーブル作成の HQL を書き換えなければいけないため断念 ※q16,19:いずれも実行に時間がかかりすぎたため計測を断念 Law is better
  • 59. Copyright (C) 2018 Yahoo Japan Corporation. All Rights Reserved. Expand&Flatten 59 社内で利用しているArrayを使って状態を表しているログを利用 元のデータ構造のまま SQL で展開して処理する場合と、利用する フィールドだけフラットにして単純な SQL を実行した場合の速度 を比較する timestamp (BIGINT) total_price (BIGINT) Items (ARRAY) Items (Struct) item_id (STRING) price (BIGINT) number (INT) 151677376 2 1000 I_001 300 1 I_005 350 2 timestamp (BIGINT) total_price (BIGINT) item_id (STRING) price (BIGINT) number (INT) 1516773762 1000 I_001 300 1 1516773762 1000 I_005 350 2 Array 展開のSQL SQL MDS File ※図は処理のイメージであり実際に利用されているログではありません。
  • 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 事象を自然なデータ構造で表現できる世界 大量のデータを柔軟に効率よく扱うための フォーマット を実現する