SlideShare uma empresa Scribd logo
1 de 39
Baixar para ler offline
Copyright©2016 NTT corp. All Rights Reserved.	
Spark  Summit  2016@SFに参加してきたので
最新事例例などを紹介しつつデータベース技術から
みたSparkの新しさを紹介
2016/7/15
⼭山室  健  @  ⽇日本電信電話株式会社
2Copyright©2016 NTT corp. All Rights Reserved.	
Who  am  I?
3Copyright©2016 NTT corp. All Rights Reserved.	
• サーバクラスタの分散メモリを活⽤用しながら効率率率的に分
散並列列処理理することが可能な汎⽤用フレームワーク
•  one-‐‑‒size-‐‑‒fits-‐‑‒ʼ’manyʼ’:  様々なAP(SQL,  Streaming,  
MLlib,  ...)が実装され,同⼀一環境で動作
Sparkとは?
4Copyright©2016 NTT corp. All Rights Reserved.	
• 不不変で並列列実⾏行行可能な分散コレクションで,Sparkにお
ける唯⼀一のデータ操作のためのAPIを実装
Spark  RDD  -‐‑‒  Resilient  Distributed  Dataset
val data = Array(1, 2, 3, 4, 5)     // Scalaのコレクション
val dataRdd = sc.parallelize(data) // 分散コレクション(RDD)へ変換
val result = dataRdd.map(_ + 1) // RDDに対する操作を定義
.fiter( _ % 2 == 0)
.reduce(_ + _)
5Copyright©2016 NTT corp. All Rights Reserved.	
• ユーザが記述したコードをDriver  Programとして実
⾏行行し、Sparkの最⼩小実⾏行行単位のTaskに分解し,
Worker  Node上に起動されたExecutorに割り当てる
ことで分散並列列実⾏行行を⾏行行う
Sparkの動作概要
引用: Cluster Overview, http://spark.apache.org/docs/1.6.2/cluster-overview.html
6Copyright©2016 NTT corp. All Rights Reserved.	
• 1.  Download  Spark  binary  v1.6.2
•  http://spark.apache.org/downloads.html
• 2.  Launch  a  Spark  shell;
•  ./<spark  dir>/bin/spark-‐‑‒shell
• 3.  Do  word-‐‑‒couting
•  scala>  val  textFile  =  sc.textFile(”hoge.txt")
•  scala>  val  counts  =  textFile.flatMap(_̲.split("  "))  
            .map(word  =>  (word,  1))
            .reduceByKey(_̲  +  _̲)
Quick  Start!
7Copyright©2016 NTT corp. All Rights Reserved.	
•  2013.6      -‐‑‒  Apache  Incubatorに
•  2014.2      -‐‑‒  Incubatorを卒業,Top-‐‑‒Levelプロジェクトに
•  2014.6      -‐‑‒  v1.0がリリース
•  2014.11  -‐‑‒  v1.1がリリース
•  2014.12  -‐‑‒  v1.2がリリース
•  2015.3      -‐‑‒  v1.3がリリース
•  2015.5      -‐‑‒  v1.4がリリース
•  2015.9      -‐‑‒  v1.5がリリース
•  2016.1      -‐‑‒  v1.6がリリース
•  2016.7      -‐‑‒  v2.0がリリース予定
Spark  Release  History
️いまここ
8Copyright©2016 NTT corp. All Rights Reserved.	
• Databrics社が主催するSpark関連の主要会議
•  2013年年から始まり今回で7回⽬目,特に昨年年の2015年年からは年年
3回のペースで実施(EU・アメリカ⻄西・東海岸)
•  来年年からオーストラリアが追加され年年4回開催の計画
Spark  Summit
Spark Summit 2016 @ SF メイン会場の様子
9Copyright©2016 NTT corp. All Rights Reserved.	
•  参加者:  2500+⼈人(720+企業からの参加)*チケットはsold-‐‑‒out
•  直近のSpark  Summit  East  2016@東海岸では1300+⼈人だったため,
2倍近い動員数
•  ⽇日本からの参加者は⽬目測で10名弱程度度
•  IBMやMSなど強⼒力力なスポンサー企業
•  その他にもColudera,HortonworksなどのHadoopベンダも後援
Spark  Summit  2016  @  SFの概要  6/6-‐‑‒6/8
KEYNOTE	
  
11%	
  
ENTERPRISE	
  
6%	
  
DEVELOPER	
  
15%	
  
DATA	
  
SCIENCE	
  
17%	
  
RESEARH	
  
18%	
  
ECOSYSTEM	
  
18%	
  
USE	
  CASE	
  
15%	
  
会議セッション内訳(全101件)	
 主要スポンサー企業(抜粋)
10Copyright©2016 NTT corp. All Rights Reserved.	
開発コミュニティの最新動向
• 今⽉月中にリリースを予定しているv2.0の話題
•  Continuous(連続性)とStructuring(構造化)
•  連続的に⼊入⼒力力されるデータを,既存のバッチ処理理と同様の処理理
⽅方法(API)で,データを構造化しながら効率率率的に処理理
Databricsのco-founder兼CTOの
Matei Zaharia氏	
Keynote”Spark 2.0”から引用	
•  各セッションではメモリ管理理やオプティ
マイザ(Catalyst)などユーザの興味が
⾼高い部分の新機能を紹介
11Copyright©2016 NTT corp. All Rights Reserved.	
セッション全体の印象
• Keynoteとセッション共にDeep  Learning(AI)に
関する取り組みの話題が散⾒見見
•  Jeff  Dean⽒氏(Google)やAndrew  Ng(Baidu)などの著名⼈人
の話を筆頭に,IBM/Yahooなど各企業の取り組み紹介
•  Sparkと直接関係ない話題も多かった
• Sparkに対する企業の関⼼心は⾮非常に⾼高く,依然としてコ
ミュニティは拡⼤大傾向にある印象
•  特に⼒力力を⼊入れているIBM(発表7件)とMicrosoft(発表5件)
•  UberやAirbnbなどでも積極的に利利⽤用
•  〜~PB/⽇日の⼤大規模データ処理理に適⽤用(The  Weather  
Company/IBM)している事例例など
12Copyright©2016 NTT corp. All Rights Reserved.	
• Spark  Streamingの事例例が多く,⼊入⼒力力としてApache  
Kafka*とともに⽤用いる場合が⾮非常に多い
• 結果の出⼒力力先としてはApache  HBaseやApache  
Cassandraが⽤用いられていたが,定番として採⽤用され
る分散ストレージはない印象
Sparkの事例例紹介
*Apache Kafka, 分散メッセージングシステム
Spark Streaming処理概要
13Copyright©2016 NTT corp. All Rights Reserved.	
Sparkの事例例紹介  -‐‑‒  Microsoft  Bing
• Top  5  Lessons  Learned  in  Building  Streaming  
Applications  at  Microsoft  Bing  Scale
•  Bingのクエリイベントを⼀一定間隔でマージする処理理
•  Kafkaから⼊入⼒力力,マージ後にKafkaに書き戻す
•  Spark  v1.6.xではAP  timeを指定してJoinするAPIが提供され
ていないため,独⾃自に記述して実現
Spark Streaming
➡️同様のことをしているユーザが多い模様
14Copyright©2016 NTT corp. All Rights Reserved.	
• Temporal  Operators  For  Spark  Streaming  And  
Its  Application  For  Office365  Service  
Monitoring
•  サービスモニタリングに利利⽤用,問題が発⽣生した場合にアラート
•  リクエストの成否,レイテンシなどを監視
•  Join/Aggregate⽤用のTemporalオペレータを独⾃自実装
Sparkの事例例紹介  -‐‑‒  Microsoft  Office365
15Copyright©2016 NTT corp. All Rights Reserved.	
• The  Internet  of  Everywhere̶—How  IBM  The  
Weather  Company  Scales
•  バッチデータと連続的に⼊入⼒力力されるデータを統合して,BI/
Visualizationツールを⽤用いてデータ分析
•  データ流流量量が~∼360PB/⽇日で,知っている中で最も⼤大規模なデー
タを取り扱った事例例
Sparkの事例例紹介  -‐‑‒  The  Weather  Company
* 図は同発表者がSpark Summit East 2016で使用したスライドから引用
16Copyright©2016 NTT corp. All Rights Reserved.	
• Online  Security  Analytics  on  Large  Scale  
Video  Surveillance  System
•  複数店舗にまたがった不不正なカードの利利⽤用の探索索,盗難があっ
た場合の過去の盗難履履歴からの顔検索索など
•  画像処理理はOpenCV,DL4j,DeepDistなどを利利⽤用
Sparkの事例例紹介  -‐‑‒  EMC
17Copyright©2016 NTT corp. All Rights Reserved.	
• Airstream:  Spark  Streaming  At  Airbnb
•  ストリーム処理理における状態管理理,複数ストリームの処理理,
バッチ系との統合などを⾏行行った事例例
•  状態管理理には性能/管理理/機能/コミュニティなどの観点を考慮し
てHBaseを採⽤用
Sparkの事例例紹介  -‐‑‒  Airbnb
18Copyright©2016 NTT corp. All Rights Reserved.	
データベース技術からみたSPARKの新しさ
19Copyright©2016 NTT corp. All Rights Reserved.	
• ⼊入出⼒力力にParquet/ORC,map/shuffle処理理を軸にし
た分散処理理,SQL/DataFrameなどのIF,関係代数に
おける問い合わせ最適化,...
• 特に問い合わせ最適化の実装は既存のDB製品と⽐比べる
と基本的なものしかない
•  例例えばコストを考慮したJoin順序の最適化はしない,この種の
最適化に関しては現在検討中(SPARK-‐‑‒16026:Cost-‐‑‒based  
optimizer  framework)
要素技術としてあまり⽬目新しくはないSpark
20Copyright©2016 NTT corp. All Rights Reserved.	
• ⼊入⼒力力クエリは⼀一連の処理理最適化の後に,内部的には
RDDを⽤用いて記述された⼿手続に変換され実⾏行行
•  適⽤用可能な最適化はDBMSのものと基本的な相違はない
• データのヒストグラムやカーディナリティなどの事前知
識識がないため,遅い実⾏行行プランを選択しがち
Catalyst:  Sparkの問い合わせ最適化
Analyzer
Optimizer
SparkPlanner
引用: “Deep Dive into Spark SQL’s Catalyst Optimizer”,
https://databricks.com/blog/2015/04/13/deep-dive-into-spark-sqls-catalyst-optimizer.html
入力クエリ
21Copyright©2016 NTT corp. All Rights Reserved.	
遅い実⾏行行プラン例例)Filter-‐‑‒>Join
クエリ例) SELECT * FROM a, b WHERE a.id == b.id AND a.value = 3;
Join Filter
• Filter処理理の結果によって最適なJoinの⽅方法は異異なる
•  1)  Filter後のテーブルaが⾮非常に⼩小さい場合
    ➡️テーブルaをすべてのExecutorに転送
•  2)  Filter後のテーブルaが⼤大きい場合
    ➡️テーブルaとテーブルbをHash-‐‑‒Join(ハッシュ分割して
      同じidを持つデータを同じExecutorに転送)
* テーブルaとテーブルbのサイズは大きい前提
22Copyright©2016 NTT corp. All Rights Reserved.	
遅い実⾏行行プラン例例)Filter-‐‑‒>Join
クエリ例) SELECT * FROM a, b WHERE a.id == b.id AND a.value = 3;
Join Filter
• Filter処理理の結果によって最適なJoinの⽅方法は異異なる
•  1)  Filter後のテーブルaが⾮非常に⼩小さい場合
    ➡️テーブルaをすべてのExecutorに転送
•  2)  Filter後のテーブルaが⼤大きい場合
    ➡️テーブルaとテーブルbをHash-‐‑‒Join(ハッシュ分割して
      同じidを持つデータを同じExecutorに転送)
入力データのカーディナリティが分からないため常に2)を選択するが
’a.value=3’の出力結果は小さくなることが多そう
* テーブルaとテーブルbのサイズは大きい前提
23Copyright©2016 NTT corp. All Rights Reserved.	
で、新しさは?
24Copyright©2016 NTT corp. All Rights Reserved.	
•   あえて⾔言えば...最適化済み実⾏行行プランを体系的な⽅方法で等価な
javaコードに変換して実⾏行行時コンパイルを⾏行行う点
データベース技術からみたSparkの新しさ
Analyzer
Optimizer
SparkPlanner
引用: “Deep Dive into Spark SQL’s Catalyst Optimizer”,
https://databricks.com/blog/2015/04/13/deep-dive-into-spark-sqls-catalyst-optimizer.html
25Copyright©2016 NTT corp. All Rights Reserved.	
• Whole-‐‑‒stage  Codegenという名前で開発
•  実⾏行行プランの部分⽊木を等価なコードブロックに変換
•    オプションʻ‘spark.sql.codegen.wholeStageʼ’でon/offの切切り
替えが可能で,次期リリースではデフォルトでon
Sparkの実⾏行行時コンパイル
最適化済みの
実行プラン
まとめて
コードブロックに変換
実行時コンパイル
26Copyright©2016 NTT corp. All Rights Reserved.	
• 従来はVolcano-‐‑‒Style(イテレータモデル)に従った
プラン処理理が⼀一般的だが,分析などの複雑なクエリほど
CPU効率率率が悪いことで有名
従来の処理理⽅方式の問題
getNext()
Volcano-Styleに従ったプラン処理
•  getNext()を呼ぶと1⾏行行のデータを返却
•  例例えば⼊入⼒力力データが100万⾏行行あった場
合,Scan➡️Filter間で100万回の関数
呼び出しが発⽣生
getNext()
getNext()
27Copyright©2016 NTT corp. All Rights Reserved.	
Cited from the article of “A Look Back at Single-Threaded CPU
Performance”, http://preshing.com/20120208/a-look-back-at-single-
threaded-cpu-performance
SPECint SPECfp
• クロック周波数は向上していないが2004年年以降降も命令令
レベル/データの並列列化を改善することでベンチマーク
による1スレッドの実性能は向上
並列列化によるCPU性能の改善
28Copyright©2016 NTT corp. All Rights Reserved.	
• 最適化が⾏行行いやすい形に変換してコンパイルすることで
CPU効率率率の⾼高いプラン処理理を実現
•  “⼗十分に賢いコンパイラ”を仮定すれば下記のforループはSIMD
でデータ並列列化されて⾮非常に効率率率的な処理理に
CPU効率率率の⾼高いプラン処理理
29Copyright©2016 NTT corp. All Rights Reserved.	
• 以下の論論⽂文を参考に実装
•  Thomas  Neumann,  Efficiently  Compiling  Efficient  Query  
Plans  for  Modern  Hardware,  VLDBʼ’11
• 各実⾏行行オペレータ(Scan,Filter,...)にproduceと
consumeの2つのIFを実装
•  produce:  データ⽣生成を依頼(⼦子のproduceを呼ぶ),部分⽊木
の葉葉であれば親のconsumeに⽣生成したデータを渡す
•  consume:受け取ったデータに各オペレータの処理理を適⽤用して,
親のconsumeに渡す
Sparkの実⾏行行時コンパイルの実装
30Copyright©2016 NTT corp. All Rights Reserved.	
Sparkの実⾏行行時コンパイルの実装の例例
consume ()
コード生成フロー概要
consume ()
consume ()
produce()
produce()
produce()
doCodegen()
γ
π
σ
- γ.produce:
γ.child.produce()
- γ.consume:
print “count += 1”
- π.produce:
π.child.produce()
- π.consume:
π.parent.consume()
- σ.produce:
σ.child.produce()
- σ.consume:
print “if (ss_item_sk == 1000) {
${σ.parent.consume()}
}”
- scan.produce:
print “for (ss_item_sk in store_sales) {
${scan.parent.consume()}
}”
31Copyright©2016 NTT corp. All Rights Reserved.	
Sparkの実⾏行行時コンパイルの実装の例例
• doCodegen()を呼ぶと以下のコードブロックを⽣生成
32Copyright©2016 NTT corp. All Rights Reserved.	
• Sparkの⽣生成したコードを確認
SPARKの実⾏行行時コンパイルの実際
scala> import org.apache.spark.sql.execution.debug._
scala> val df = sql("SELECT sqrt(a) FROM test WHERE b = 1”)
scala> df.explain
== Physical Plan ==
*Project [SQRT(cast(_1#2 as double)) AS SQRT(CAST(a AS DOUBLE))#18]
+- *Filter (_2#3 = 1)
+- LocalTableScan [_1#2, _2#3]
scala> df.debugCodegen
33Copyright©2016 NTT corp. All Rights Reserved.	
Sparkが内部で生成したコード
34Copyright©2016 NTT corp. All Rights Reserved.	
古くて新しい実⾏行行時コンパイルの歴史
•  1970年年代にIBM  SystemRが初期の実⾏行行時コンパイル導⼊入;  ⼊入⼒力力
されたクエリ(SEQUEL)を評価して事前に⽤用意したアセンブリ
と動的リンク
•  当時このアプローチはポータビリティと動的リンクした関数の呼び出
しコストが⾼高いことを理理由に⽤用いられなくなった
•  ポータビリティの問題を解決するために,1980年年代の研究では直
接アセンブリを扱うのではなく,実⾏行行時にC/Pascalのコードを⽣生
成する抽象化を提案
•  しかし今度度は実⾏行行時のコード⽣生成のコストが無視できなくなり流流⾏行行ら
なかった
•  2000年年前半に次世代のDBMSカーネル研究の⼀一環で,実⾏行行時の型
キャストのコストを減らすためにpointer  injectionを⽤用いて事
前に⽤用意した型ごとの関数を利利⽤用する⼿手法の提案
•  アプローチの妥当性はさておき,このデザインも当時あまり流流⾏行行らなかった
35Copyright©2016 NTT corp. All Rights Reserved.	
古くて新しい実⾏行行時コンパイルの歴史
•  2000年年後半にJavaのリフレクションを利利⽤用した実⾏行行時コンパイ
ル⼿手法が提案,この基本的なデザイン(抽象化)は近年年の⼿手法に⼤大
きく影響したといわれている
•  2010年年以降降にデータベース最適化技術の⼀一環として,研究界隈で
論論⽂文提案がいくつか⾏行行われた,特に他のモダンな最適化技術
(Vector-‐‑‒at-‐‑‒a-‐‑‒time実⾏行行やMicro-‐‑‒Specialization)と融合し
た評価や提案などが⾏行行われた
•  Amazon  Redshift,  SQL  Server,  Presto,  Hive,  Spark,  
Impala,  MemSQLなどモダンなSQL処理理系の多くが,(実装デ
ザインは異異なるが)実⾏行行時コンパイルを⽤用いた最適化を導⼊入
36Copyright©2016 NTT corp. All Rights Reserved.	
マイクロベンチマーク結果
•  build/sbt  "sql/test-‐‑‒only  *BenchmarkWholeStageCodegen”
37Copyright©2016 NTT corp. All Rights Reserved.	
マイクロベンチマーク結果
•  build/sbt  "sql/test-‐‑‒only  *BenchmarkWholeStageCodegen”
38Copyright©2016 NTT corp. All Rights Reserved.	
マイクロベンチマーク結果
•  build/sbt  "sql/test-‐‑‒only  *BenchmarkWholeStageCodegen”
39Copyright©2016 NTT corp. All Rights Reserved.	
TPCDSを⽤用いたベンチマーク結果
Cited from the slide of “Spark Performance: What's Next” in SPARK SUMMIT
EAST’16, http://www.slideshare.net/databricks/spark-performance-whats-next#28

Mais conteúdo relacionado

Mais procurados

(LT)Spark and Cassandra
(LT)Spark and Cassandra(LT)Spark and Cassandra
(LT)Spark and Cassandradatastaxjp
 
Hadoopエコシステムの最新動向とNTTデータの取り組み (OSC 2016 Tokyo/Spring 講演資料)
Hadoopエコシステムの最新動向とNTTデータの取り組み (OSC 2016 Tokyo/Spring 講演資料)Hadoopエコシステムの最新動向とNTTデータの取り組み (OSC 2016 Tokyo/Spring 講演資料)
Hadoopエコシステムの最新動向とNTTデータの取り組み (OSC 2016 Tokyo/Spring 講演資料)NTT DATA OSS Professional Services
 
今こそクラウドへ!データの移行、連携、統合のコツ
今こそクラウドへ!データの移行、連携、統合のコツ今こそクラウドへ!データの移行、連携、統合のコツ
今こそクラウドへ!データの移行、連携、統合のコツ株式会社クライム
 
ちょっと理解に自信がないな という皆さまに贈るHadoop/Sparkのキホン (IBM Datapalooza Tokyo 2016講演資料)
ちょっと理解に自信がないなという皆さまに贈るHadoop/Sparkのキホン (IBM Datapalooza Tokyo 2016講演資料)ちょっと理解に自信がないなという皆さまに贈るHadoop/Sparkのキホン (IBM Datapalooza Tokyo 2016講演資料)
ちょっと理解に自信がないな という皆さまに贈るHadoop/Sparkのキホン (IBM Datapalooza Tokyo 2016講演資料)hamaken
 
[db tech showcase Tokyo 2015] D13:PCIeフラッシュで、高可用性高性能データベースシステム?! by 株式会社HGSTジ...
[db tech showcase Tokyo 2015] D13:PCIeフラッシュで、高可用性高性能データベースシステム?! by 株式会社HGSTジ...[db tech showcase Tokyo 2015] D13:PCIeフラッシュで、高可用性高性能データベースシステム?! by 株式会社HGSTジ...
[db tech showcase Tokyo 2015] D13:PCIeフラッシュで、高可用性高性能データベースシステム?! by 株式会社HGSTジ...Insight Technology, Inc.
 
[db tech showcase OSS 2017] A22: NoSQL:誰のための、何のためのデータベース?その将来は?by Aerospike, ...
[db tech showcase OSS 2017] A22: NoSQL:誰のための、何のためのデータベース?その将来は?by Aerospike, ...[db tech showcase OSS 2017] A22: NoSQL:誰のための、何のためのデータベース?その将来は?by Aerospike, ...
[db tech showcase OSS 2017] A22: NoSQL:誰のための、何のためのデータベース?その将来は?by Aerospike, ...Insight Technology, Inc.
 
Apache Hadoop の現在と将来(Hadoop / Spark Conference Japan 2016 キーノート講演資料)
Apache Hadoop の現在と将来(Hadoop / Spark Conference Japan 2016 キーノート講演資料)Apache Hadoop の現在と将来(Hadoop / Spark Conference Japan 2016 キーノート講演資料)
Apache Hadoop の現在と将来(Hadoop / Spark Conference Japan 2016 キーノート講演資料)Hadoop / Spark Conference Japan
 
事例から見るNoSQLの使い方 - db tech showcase Tokyo 2015 2015/06/11
事例から見るNoSQLの使い方 - db tech showcase Tokyo 2015 2015/06/11事例から見るNoSQLの使い方 - db tech showcase Tokyo 2015 2015/06/11
事例から見るNoSQLの使い方 - db tech showcase Tokyo 2015 2015/06/11MapR Technologies Japan
 
最新版Hadoopクラスタを運用して得られたもの
最新版Hadoopクラスタを運用して得られたもの最新版Hadoopクラスタを運用して得られたもの
最新版Hadoopクラスタを運用して得られたものcyberagent
 
ビッグデータ活用を加速する!分散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 FallYusukeKuramata
 
[db tech showcase Tokyo 2017] A32: Attunity Replicate + Kafka + Hadoop マルチデータ...
[db tech showcase Tokyo 2017] A32: Attunity Replicate + Kafka + Hadoop マルチデータ...[db tech showcase Tokyo 2017] A32: Attunity Replicate + Kafka + Hadoop マルチデータ...
[db tech showcase Tokyo 2017] A32: Attunity Replicate + Kafka + Hadoop マルチデータ...Insight Technology, Inc.
 
OpenStack, Hadoop -- OSSクラウドの最新動向
OpenStack, Hadoop -- OSSクラウドの最新動向OpenStack, Hadoop -- OSSクラウドの最新動向
OpenStack, Hadoop -- OSSクラウドの最新動向 Masanori Itoh
 
[db tech showcase Tokyo 2017] E23: クラウド異種データベース(AWS)へのデータベース移行時の注意点 ~レプリケーション...
[db tech showcase Tokyo 2017] E23: クラウド異種データベース(AWS)へのデータベース移行時の注意点 ~レプリケーション...[db tech showcase Tokyo 2017] E23: クラウド異種データベース(AWS)へのデータベース移行時の注意点 ~レプリケーション...
[db tech showcase Tokyo 2017] E23: クラウド異種データベース(AWS)へのデータベース移行時の注意点 ~レプリケーション...Insight Technology, Inc.
 
Cloudera World Tokyo 2015 Oracleセッション資料 「ビッグデータ/IoTの最新事例とHadoop活用の勘所」
Cloudera World Tokyo 2015 Oracleセッション資料 「ビッグデータ/IoTの最新事例とHadoop活用の勘所」Cloudera World Tokyo 2015 Oracleセッション資料 「ビッグデータ/IoTの最新事例とHadoop活用の勘所」
Cloudera World Tokyo 2015 Oracleセッション資料 「ビッグデータ/IoTの最新事例とHadoop活用の勘所」オラクルエンジニア通信
 

Mais procurados (20)

Hadoop ecosystem NTTDATA osc15tk
Hadoop ecosystem NTTDATA osc15tkHadoop ecosystem NTTDATA osc15tk
Hadoop ecosystem NTTDATA osc15tk
 
(LT)Spark and Cassandra
(LT)Spark and Cassandra(LT)Spark and Cassandra
(LT)Spark and Cassandra
 
Hadoopエコシステムの最新動向とNTTデータの取り組み (OSC 2016 Tokyo/Spring 講演資料)
Hadoopエコシステムの最新動向とNTTデータの取り組み (OSC 2016 Tokyo/Spring 講演資料)Hadoopエコシステムの最新動向とNTTデータの取り組み (OSC 2016 Tokyo/Spring 講演資料)
Hadoopエコシステムの最新動向とNTTデータの取り組み (OSC 2016 Tokyo/Spring 講演資料)
 
今こそクラウドへ!データの移行、連携、統合のコツ
今こそクラウドへ!データの移行、連携、統合のコツ今こそクラウドへ!データの移行、連携、統合のコツ
今こそクラウドへ!データの移行、連携、統合のコツ
 
ちょっと理解に自信がないな という皆さまに贈るHadoop/Sparkのキホン (IBM Datapalooza Tokyo 2016講演資料)
ちょっと理解に自信がないなという皆さまに贈るHadoop/Sparkのキホン (IBM Datapalooza Tokyo 2016講演資料)ちょっと理解に自信がないなという皆さまに贈るHadoop/Sparkのキホン (IBM Datapalooza Tokyo 2016講演資料)
ちょっと理解に自信がないな という皆さまに贈るHadoop/Sparkのキホン (IBM Datapalooza Tokyo 2016講演資料)
 
HDFS Router-based federation
HDFS Router-based federationHDFS Router-based federation
HDFS Router-based federation
 
大規模クラスタでのHadoop課題
大規模クラスタでのHadoop課題大規模クラスタでのHadoop課題
大規模クラスタでのHadoop課題
 
[db tech showcase Tokyo 2015] D13:PCIeフラッシュで、高可用性高性能データベースシステム?! by 株式会社HGSTジ...
[db tech showcase Tokyo 2015] D13:PCIeフラッシュで、高可用性高性能データベースシステム?! by 株式会社HGSTジ...[db tech showcase Tokyo 2015] D13:PCIeフラッシュで、高可用性高性能データベースシステム?! by 株式会社HGSTジ...
[db tech showcase Tokyo 2015] D13:PCIeフラッシュで、高可用性高性能データベースシステム?! by 株式会社HGSTジ...
 
[db tech showcase OSS 2017] A22: NoSQL:誰のための、何のためのデータベース?その将来は?by Aerospike, ...
[db tech showcase OSS 2017] A22: NoSQL:誰のための、何のためのデータベース?その将来は?by Aerospike, ...[db tech showcase OSS 2017] A22: NoSQL:誰のための、何のためのデータベース?その将来は?by Aerospike, ...
[db tech showcase OSS 2017] A22: NoSQL:誰のための、何のためのデータベース?その将来は?by Aerospike, ...
 
Apache Hadoop の現在と将来(Hadoop / Spark Conference Japan 2016 キーノート講演資料)
Apache Hadoop の現在と将来(Hadoop / Spark Conference Japan 2016 キーノート講演資料)Apache Hadoop の現在と将来(Hadoop / Spark Conference Japan 2016 キーノート講演資料)
Apache Hadoop の現在と将来(Hadoop / Spark Conference Japan 2016 キーノート講演資料)
 
事例から見るNoSQLの使い方 - db tech showcase Tokyo 2015 2015/06/11
事例から見るNoSQLの使い方 - db tech showcase Tokyo 2015 2015/06/11事例から見るNoSQLの使い方 - db tech showcase Tokyo 2015 2015/06/11
事例から見るNoSQLの使い方 - db tech showcase Tokyo 2015 2015/06/11
 
オラクルのHadoopソリューションご紹介
オラクルのHadoopソリューションご紹介オラクルのHadoopソリューションご紹介
オラクルのHadoopソリューションご紹介
 
最新版Hadoopクラスタを運用して得られたもの
最新版Hadoopクラスタを運用して得られたもの最新版Hadoopクラスタを運用して得られたもの
最新版Hadoopクラスタを運用して得られたもの
 
Distributed data stores in Hadoop ecosystem
Distributed data stores in Hadoop ecosystemDistributed data stores in Hadoop ecosystem
Distributed data stores in Hadoop ecosystem
 
ビッグデータ活用を加速する!分散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
 
[db tech showcase Tokyo 2017] A32: Attunity Replicate + Kafka + Hadoop マルチデータ...
[db tech showcase Tokyo 2017] A32: Attunity Replicate + Kafka + Hadoop マルチデータ...[db tech showcase Tokyo 2017] A32: Attunity Replicate + Kafka + Hadoop マルチデータ...
[db tech showcase Tokyo 2017] A32: Attunity Replicate + Kafka + Hadoop マルチデータ...
 
OpenStack, Hadoop -- OSSクラウドの最新動向
OpenStack, Hadoop -- OSSクラウドの最新動向OpenStack, Hadoop -- OSSクラウドの最新動向
OpenStack, Hadoop -- OSSクラウドの最新動向
 
[db tech showcase Tokyo 2017] E23: クラウド異種データベース(AWS)へのデータベース移行時の注意点 ~レプリケーション...
[db tech showcase Tokyo 2017] E23: クラウド異種データベース(AWS)へのデータベース移行時の注意点 ~レプリケーション...[db tech showcase Tokyo 2017] E23: クラウド異種データベース(AWS)へのデータベース移行時の注意点 ~レプリケーション...
[db tech showcase Tokyo 2017] E23: クラウド異種データベース(AWS)へのデータベース移行時の注意点 ~レプリケーション...
 
Cloudera World Tokyo 2015 Oracleセッション資料 「ビッグデータ/IoTの最新事例とHadoop活用の勘所」
Cloudera World Tokyo 2015 Oracleセッション資料 「ビッグデータ/IoTの最新事例とHadoop活用の勘所」Cloudera World Tokyo 2015 Oracleセッション資料 「ビッグデータ/IoTの最新事例とHadoop活用の勘所」
Cloudera World Tokyo 2015 Oracleセッション資料 「ビッグデータ/IoTの最新事例とHadoop活用の勘所」
 
マルチビッグデータの活用を支える DWHの作り方
マルチビッグデータの活用を支える DWHの作り方マルチビッグデータの活用を支える DWHの作り方
マルチビッグデータの活用を支える DWHの作り方
 

Semelhante a [db tech showcase Tokyo 2016] B31: Spark Summit 2016@SFに参加してきたので最新事例などを紹介しつつデータベース技術からみたSparkの新しさを紹介 by 日本電信電話株式会社 山室 健

OpenStack Congress Deep Dive
OpenStack Congress Deep DiveOpenStack Congress Deep Dive
OpenStack Congress Deep Divemasahito12
 
OpenStack Summit Austin 2016 参加報告 - OpenStack最新情報セミナー 2016年5月
OpenStack Summit Austin 2016 参加報告 - OpenStack最新情報セミナー 2016年5月OpenStack Summit Austin 2016 参加報告 - OpenStack最新情報セミナー 2016年5月
OpenStack Summit Austin 2016 参加報告 - OpenStack最新情報セミナー 2016年5月VirtualTech Japan Inc.
 
Gmo media.inc 第9回西日本ossの普及を考える会
Gmo media.inc 第9回西日本ossの普及を考える会Gmo media.inc 第9回西日本ossの普及を考える会
Gmo media.inc 第9回西日本ossの普及を考える会Dai Utsui
 
スマートフォン×Cassandraによるハイパフォーマンス基盤の構築事例
スマートフォン×Cassandraによるハイパフォーマンス基盤の構築事例スマートフォン×Cassandraによるハイパフォーマンス基盤の構築事例
スマートフォン×Cassandraによるハイパフォーマンス基盤の構築事例terurou
 
OSSとクラウドによるコンピューティングモデルの変化
OSSとクラウドによるコンピューティングモデルの変化OSSとクラウドによるコンピューティングモデルの変化
OSSとクラウドによるコンピューティングモデルの変化Nobuyori Takahashi
 
Spring I/O 2016 報告 Test / Cloud / Other Popular Sessions
Spring I/O 2016 報告 Test / Cloud / Other Popular SessionsSpring I/O 2016 報告 Test / Cloud / Other Popular Sessions
Spring I/O 2016 報告 Test / Cloud / Other Popular SessionsTakuya Iwatsuka
 
Spark Streamingを活用したシステムの検証結果と設計時のノウハウ
Spark Streamingを活用したシステムの検証結果と設計時のノウハウSpark Streamingを活用したシステムの検証結果と設計時のノウハウ
Spark Streamingを活用したシステムの検証結果と設計時のノウハウFuture Of Data Japan
 
FPGAによる大規模データ処理の高速化
FPGAによる大規模データ処理の高速化FPGAによる大規模データ処理の高速化
FPGAによる大規模データ処理の高速化Kazunori Sato
 
クラウドの利活用
クラウドの利活用クラウドの利活用
クラウドの利活用Naoto MATSUMOTO
 
PostgreSQLによるデータ分析ことはじめ
PostgreSQLによるデータ分析ことはじめPostgreSQLによるデータ分析ことはじめ
PostgreSQLによるデータ分析ことはじめOhyama Masanori
 
ビッグデータ&データマネジメント展
ビッグデータ&データマネジメント展ビッグデータ&データマネジメント展
ビッグデータ&データマネジメント展Recruit Technologies
 
データ活用をもっともっと円滑に! ~データ処理・分析基盤編を少しだけ~
データ活用をもっともっと円滑に!~データ処理・分析基盤編を少しだけ~データ活用をもっともっと円滑に!~データ処理・分析基盤編を少しだけ~
データ活用をもっともっと円滑に! ~データ処理・分析基盤編を少しだけ~NTT DATA OSS Professional Services
 
次世代の高速メモリストレージ利用に向けたソフトウェアのモダナイゼーション
次世代の高速メモリストレージ利用に向けたソフトウェアのモダナイゼーション次世代の高速メモリストレージ利用に向けたソフトウェアのモダナイゼーション
次世代の高速メモリストレージ利用に向けたソフトウェアのモダナイゼーションNTT Software Innovation Center
 
今秋リリース予定のPostgreSQL11を徹底解説
今秋リリース予定のPostgreSQL11を徹底解説今秋リリース予定のPostgreSQL11を徹底解説
今秋リリース予定のPostgreSQL11を徹底解説Masahiko Sawada
 
Prestoで実現するインタラクティブクエリ - dbtech showcase 2014 Tokyo
Prestoで実現するインタラクティブクエリ - dbtech showcase 2014 TokyoPrestoで実現するインタラクティブクエリ - dbtech showcase 2014 Tokyo
Prestoで実現するインタラクティブクエリ - dbtech showcase 2014 TokyoTreasure Data, Inc.
 
情報爆発シンポジウム infoplosion
情報爆発シンポジウム infoplosion情報爆発シンポジウム infoplosion
情報爆発シンポジウム infoplosionRakuten Group, Inc.
 
セミナ受講レポート NRI Senju V12
セミナ受講レポート NRI Senju V12セミナ受講レポート NRI Senju V12
セミナ受講レポート NRI Senju V12Yukio Saito
 
Sparkによる GISデータを題材とした時系列データ処理 (Hadoop / Spark Conference Japan 2016 講演資料)
Sparkによる GISデータを題材とした時系列データ処理 (Hadoop / Spark Conference Japan 2016 講演資料)Sparkによる GISデータを題材とした時系列データ処理 (Hadoop / Spark Conference Japan 2016 講演資料)
Sparkによる GISデータを題材とした時系列データ処理 (Hadoop / Spark Conference Japan 2016 講演資料)Hadoop / Spark Conference Japan
 

Semelhante a [db tech showcase Tokyo 2016] B31: Spark Summit 2016@SFに参加してきたので最新事例などを紹介しつつデータベース技術からみたSparkの新しさを紹介 by 日本電信電話株式会社 山室 健 (20)

OpenStack Congress Deep Dive
OpenStack Congress Deep DiveOpenStack Congress Deep Dive
OpenStack Congress Deep Dive
 
OpenStack Summit Austin 2016 参加報告 - OpenStack最新情報セミナー 2016年5月
OpenStack Summit Austin 2016 参加報告 - OpenStack最新情報セミナー 2016年5月OpenStack Summit Austin 2016 参加報告 - OpenStack最新情報セミナー 2016年5月
OpenStack Summit Austin 2016 参加報告 - OpenStack最新情報セミナー 2016年5月
 
Gmo media.inc 第9回西日本ossの普及を考える会
Gmo media.inc 第9回西日本ossの普及を考える会Gmo media.inc 第9回西日本ossの普及を考える会
Gmo media.inc 第9回西日本ossの普及を考える会
 
スマートフォン×Cassandraによるハイパフォーマンス基盤の構築事例
スマートフォン×Cassandraによるハイパフォーマンス基盤の構築事例スマートフォン×Cassandraによるハイパフォーマンス基盤の構築事例
スマートフォン×Cassandraによるハイパフォーマンス基盤の構築事例
 
OSSとクラウドによるコンピューティングモデルの変化
OSSとクラウドによるコンピューティングモデルの変化OSSとクラウドによるコンピューティングモデルの変化
OSSとクラウドによるコンピューティングモデルの変化
 
Spring I/O 2016 報告 Test / Cloud / Other Popular Sessions
Spring I/O 2016 報告 Test / Cloud / Other Popular SessionsSpring I/O 2016 報告 Test / Cloud / Other Popular Sessions
Spring I/O 2016 報告 Test / Cloud / Other Popular Sessions
 
Spark Streamingを活用したシステムの検証結果と設計時のノウハウ
Spark Streamingを活用したシステムの検証結果と設計時のノウハウSpark Streamingを活用したシステムの検証結果と設計時のノウハウ
Spark Streamingを活用したシステムの検証結果と設計時のノウハウ
 
FPGAによる大規模データ処理の高速化
FPGAによる大規模データ処理の高速化FPGAによる大規模データ処理の高速化
FPGAによる大規模データ処理の高速化
 
クラウドの利活用
クラウドの利活用クラウドの利活用
クラウドの利活用
 
Apache spark 2.3 and beyond
Apache spark 2.3 and beyondApache spark 2.3 and beyond
Apache spark 2.3 and beyond
 
PostgreSQLによるデータ分析ことはじめ
PostgreSQLによるデータ分析ことはじめPostgreSQLによるデータ分析ことはじめ
PostgreSQLによるデータ分析ことはじめ
 
Spark SQL - The internal -
Spark SQL - The internal -Spark SQL - The internal -
Spark SQL - The internal -
 
ビッグデータ&データマネジメント展
ビッグデータ&データマネジメント展ビッグデータ&データマネジメント展
ビッグデータ&データマネジメント展
 
データ活用をもっともっと円滑に! ~データ処理・分析基盤編を少しだけ~
データ活用をもっともっと円滑に!~データ処理・分析基盤編を少しだけ~データ活用をもっともっと円滑に!~データ処理・分析基盤編を少しだけ~
データ活用をもっともっと円滑に! ~データ処理・分析基盤編を少しだけ~
 
次世代の高速メモリストレージ利用に向けたソフトウェアのモダナイゼーション
次世代の高速メモリストレージ利用に向けたソフトウェアのモダナイゼーション次世代の高速メモリストレージ利用に向けたソフトウェアのモダナイゼーション
次世代の高速メモリストレージ利用に向けたソフトウェアのモダナイゼーション
 
今秋リリース予定のPostgreSQL11を徹底解説
今秋リリース予定のPostgreSQL11を徹底解説今秋リリース予定のPostgreSQL11を徹底解説
今秋リリース予定のPostgreSQL11を徹底解説
 
Prestoで実現するインタラクティブクエリ - dbtech showcase 2014 Tokyo
Prestoで実現するインタラクティブクエリ - dbtech showcase 2014 TokyoPrestoで実現するインタラクティブクエリ - dbtech showcase 2014 Tokyo
Prestoで実現するインタラクティブクエリ - dbtech showcase 2014 Tokyo
 
情報爆発シンポジウム infoplosion
情報爆発シンポジウム infoplosion情報爆発シンポジウム infoplosion
情報爆発シンポジウム infoplosion
 
セミナ受講レポート NRI Senju V12
セミナ受講レポート NRI Senju V12セミナ受講レポート NRI Senju V12
セミナ受講レポート NRI Senju V12
 
Sparkによる GISデータを題材とした時系列データ処理 (Hadoop / Spark Conference Japan 2016 講演資料)
Sparkによる GISデータを題材とした時系列データ処理 (Hadoop / Spark Conference Japan 2016 講演資料)Sparkによる GISデータを題材とした時系列データ処理 (Hadoop / Spark Conference Japan 2016 講演資料)
Sparkによる GISデータを題材とした時系列データ処理 (Hadoop / Spark Conference Japan 2016 講演資料)
 

Mais de Insight Technology, Inc.

グラフデータベースは如何に自然言語を理解するか?
グラフデータベースは如何に自然言語を理解するか?グラフデータベースは如何に自然言語を理解するか?
グラフデータベースは如何に自然言語を理解するか?Insight Technology, Inc.
 
Great performance at scale~次期PostgreSQL12のパーティショニング性能の実力に迫る~
Great performance at scale~次期PostgreSQL12のパーティショニング性能の実力に迫る~Great performance at scale~次期PostgreSQL12のパーティショニング性能の実力に迫る~
Great performance at scale~次期PostgreSQL12のパーティショニング性能の実力に迫る~Insight Technology, Inc.
 
事例を通じて機械学習とは何かを説明する
事例を通じて機械学習とは何かを説明する事例を通じて機械学習とは何かを説明する
事例を通じて機械学習とは何かを説明するInsight Technology, Inc.
 
仮想通貨ウォレットアプリで理解するデータストアとしてのブロックチェーン
仮想通貨ウォレットアプリで理解するデータストアとしてのブロックチェーン仮想通貨ウォレットアプリで理解するデータストアとしてのブロックチェーン
仮想通貨ウォレットアプリで理解するデータストアとしてのブロックチェーンInsight Technology, Inc.
 
MBAAで覚えるDBREの大事なおしごと
MBAAで覚えるDBREの大事なおしごとMBAAで覚えるDBREの大事なおしごと
MBAAで覚えるDBREの大事なおしごとInsight Technology, Inc.
 
グラフデータベースは如何に自然言語を理解するか?
グラフデータベースは如何に自然言語を理解するか?グラフデータベースは如何に自然言語を理解するか?
グラフデータベースは如何に自然言語を理解するか?Insight Technology, Inc.
 
DBREから始めるデータベースプラットフォーム
DBREから始めるデータベースプラットフォームDBREから始めるデータベースプラットフォーム
DBREから始めるデータベースプラットフォームInsight Technology, Inc.
 
SQL Server エンジニアのためのコンテナ入門
SQL Server エンジニアのためのコンテナ入門SQL Server エンジニアのためのコンテナ入門
SQL Server エンジニアのためのコンテナ入門Insight Technology, Inc.
 
db tech showcase2019オープニングセッション @ 森田 俊哉
db tech showcase2019オープニングセッション @ 森田 俊哉 db tech showcase2019オープニングセッション @ 森田 俊哉
db tech showcase2019オープニングセッション @ 森田 俊哉 Insight Technology, Inc.
 
db tech showcase2019 オープニングセッション @ 石川 雅也
db tech showcase2019 オープニングセッション @ 石川 雅也db tech showcase2019 オープニングセッション @ 石川 雅也
db tech showcase2019 オープニングセッション @ 石川 雅也Insight Technology, Inc.
 
db tech showcase2019 オープニングセッション @ マイナー・アレン・パーカー
db tech showcase2019 オープニングセッション @ マイナー・アレン・パーカー db tech showcase2019 オープニングセッション @ マイナー・アレン・パーカー
db tech showcase2019 オープニングセッション @ マイナー・アレン・パーカー Insight Technology, Inc.
 
難しいアプリケーション移行、手軽に試してみませんか?
難しいアプリケーション移行、手軽に試してみませんか?難しいアプリケーション移行、手軽に試してみませんか?
難しいアプリケーション移行、手軽に試してみませんか?Insight Technology, Inc.
 
Attunityのソリューションと異種データベース・クラウド移行事例のご紹介
Attunityのソリューションと異種データベース・クラウド移行事例のご紹介Attunityのソリューションと異種データベース・クラウド移行事例のご紹介
Attunityのソリューションと異種データベース・クラウド移行事例のご紹介Insight Technology, Inc.
 
そのデータベース、クラウドで使ってみませんか?
そのデータベース、クラウドで使ってみませんか?そのデータベース、クラウドで使ってみませんか?
そのデータベース、クラウドで使ってみませんか?Insight Technology, Inc.
 
コモディティサーバー3台で作る高速処理 “ハイパー・コンバージド・データベース・インフラストラクチャー(HCDI)” システム『Insight Qube』...
コモディティサーバー3台で作る高速処理 “ハイパー・コンバージド・データベース・インフラストラクチャー(HCDI)” システム『Insight Qube』...コモディティサーバー3台で作る高速処理 “ハイパー・コンバージド・データベース・インフラストラクチャー(HCDI)” システム『Insight Qube』...
コモディティサーバー3台で作る高速処理 “ハイパー・コンバージド・データベース・インフラストラクチャー(HCDI)” システム『Insight Qube』...Insight Technology, Inc.
 
複数DBのバックアップ・切り戻し運用手順が異なって大変?!運用性の大幅改善、その先に。。
複数DBのバックアップ・切り戻し運用手順が異なって大変?!運用性の大幅改善、その先に。。 複数DBのバックアップ・切り戻し運用手順が異なって大変?!運用性の大幅改善、その先に。。
複数DBのバックアップ・切り戻し運用手順が異なって大変?!運用性の大幅改善、その先に。。 Insight Technology, Inc.
 
Attunity社のソリューションの日本国内外適用事例及びロードマップ紹介[ATTUNITY & インサイトテクノロジー IoT / Big Data フ...
Attunity社のソリューションの日本国内外適用事例及びロードマップ紹介[ATTUNITY & インサイトテクノロジー IoT / Big Data フ...Attunity社のソリューションの日本国内外適用事例及びロードマップ紹介[ATTUNITY & インサイトテクノロジー IoT / Big Data フ...
Attunity社のソリューションの日本国内外適用事例及びロードマップ紹介[ATTUNITY & インサイトテクノロジー IoT / Big Data フ...Insight Technology, Inc.
 
レガシーに埋もれたデータをリアルタイムでクラウドへ [ATTUNITY & インサイトテクノロジー IoT / Big Data フォーラム 2018]
レガシーに埋もれたデータをリアルタイムでクラウドへ [ATTUNITY & インサイトテクノロジー IoT / Big Data フォーラム 2018]レガシーに埋もれたデータをリアルタイムでクラウドへ [ATTUNITY & インサイトテクノロジー IoT / Big Data フォーラム 2018]
レガシーに埋もれたデータをリアルタイムでクラウドへ [ATTUNITY & インサイトテクノロジー IoT / Big Data フォーラム 2018]Insight Technology, Inc.
 

Mais de Insight Technology, Inc. (20)

グラフデータベースは如何に自然言語を理解するか?
グラフデータベースは如何に自然言語を理解するか?グラフデータベースは如何に自然言語を理解するか?
グラフデータベースは如何に自然言語を理解するか?
 
Docker and the Oracle Database
Docker and the Oracle DatabaseDocker and the Oracle Database
Docker and the Oracle Database
 
Great performance at scale~次期PostgreSQL12のパーティショニング性能の実力に迫る~
Great performance at scale~次期PostgreSQL12のパーティショニング性能の実力に迫る~Great performance at scale~次期PostgreSQL12のパーティショニング性能の実力に迫る~
Great performance at scale~次期PostgreSQL12のパーティショニング性能の実力に迫る~
 
事例を通じて機械学習とは何かを説明する
事例を通じて機械学習とは何かを説明する事例を通じて機械学習とは何かを説明する
事例を通じて機械学習とは何かを説明する
 
仮想通貨ウォレットアプリで理解するデータストアとしてのブロックチェーン
仮想通貨ウォレットアプリで理解するデータストアとしてのブロックチェーン仮想通貨ウォレットアプリで理解するデータストアとしてのブロックチェーン
仮想通貨ウォレットアプリで理解するデータストアとしてのブロックチェーン
 
MBAAで覚えるDBREの大事なおしごと
MBAAで覚えるDBREの大事なおしごとMBAAで覚えるDBREの大事なおしごと
MBAAで覚えるDBREの大事なおしごと
 
グラフデータベースは如何に自然言語を理解するか?
グラフデータベースは如何に自然言語を理解するか?グラフデータベースは如何に自然言語を理解するか?
グラフデータベースは如何に自然言語を理解するか?
 
DBREから始めるデータベースプラットフォーム
DBREから始めるデータベースプラットフォームDBREから始めるデータベースプラットフォーム
DBREから始めるデータベースプラットフォーム
 
SQL Server エンジニアのためのコンテナ入門
SQL Server エンジニアのためのコンテナ入門SQL Server エンジニアのためのコンテナ入門
SQL Server エンジニアのためのコンテナ入門
 
Lunch & Learn, AWS NoSQL Services
Lunch & Learn, AWS NoSQL ServicesLunch & Learn, AWS NoSQL Services
Lunch & Learn, AWS NoSQL Services
 
db tech showcase2019オープニングセッション @ 森田 俊哉
db tech showcase2019オープニングセッション @ 森田 俊哉 db tech showcase2019オープニングセッション @ 森田 俊哉
db tech showcase2019オープニングセッション @ 森田 俊哉
 
db tech showcase2019 オープニングセッション @ 石川 雅也
db tech showcase2019 オープニングセッション @ 石川 雅也db tech showcase2019 オープニングセッション @ 石川 雅也
db tech showcase2019 オープニングセッション @ 石川 雅也
 
db tech showcase2019 オープニングセッション @ マイナー・アレン・パーカー
db tech showcase2019 オープニングセッション @ マイナー・アレン・パーカー db tech showcase2019 オープニングセッション @ マイナー・アレン・パーカー
db tech showcase2019 オープニングセッション @ マイナー・アレン・パーカー
 
難しいアプリケーション移行、手軽に試してみませんか?
難しいアプリケーション移行、手軽に試してみませんか?難しいアプリケーション移行、手軽に試してみませんか?
難しいアプリケーション移行、手軽に試してみませんか?
 
Attunityのソリューションと異種データベース・クラウド移行事例のご紹介
Attunityのソリューションと異種データベース・クラウド移行事例のご紹介Attunityのソリューションと異種データベース・クラウド移行事例のご紹介
Attunityのソリューションと異種データベース・クラウド移行事例のご紹介
 
そのデータベース、クラウドで使ってみませんか?
そのデータベース、クラウドで使ってみませんか?そのデータベース、クラウドで使ってみませんか?
そのデータベース、クラウドで使ってみませんか?
 
コモディティサーバー3台で作る高速処理 “ハイパー・コンバージド・データベース・インフラストラクチャー(HCDI)” システム『Insight Qube』...
コモディティサーバー3台で作る高速処理 “ハイパー・コンバージド・データベース・インフラストラクチャー(HCDI)” システム『Insight Qube』...コモディティサーバー3台で作る高速処理 “ハイパー・コンバージド・データベース・インフラストラクチャー(HCDI)” システム『Insight Qube』...
コモディティサーバー3台で作る高速処理 “ハイパー・コンバージド・データベース・インフラストラクチャー(HCDI)” システム『Insight Qube』...
 
複数DBのバックアップ・切り戻し運用手順が異なって大変?!運用性の大幅改善、その先に。。
複数DBのバックアップ・切り戻し運用手順が異なって大変?!運用性の大幅改善、その先に。。 複数DBのバックアップ・切り戻し運用手順が異なって大変?!運用性の大幅改善、その先に。。
複数DBのバックアップ・切り戻し運用手順が異なって大変?!運用性の大幅改善、その先に。。
 
Attunity社のソリューションの日本国内外適用事例及びロードマップ紹介[ATTUNITY & インサイトテクノロジー IoT / Big Data フ...
Attunity社のソリューションの日本国内外適用事例及びロードマップ紹介[ATTUNITY & インサイトテクノロジー IoT / Big Data フ...Attunity社のソリューションの日本国内外適用事例及びロードマップ紹介[ATTUNITY & インサイトテクノロジー IoT / Big Data フ...
Attunity社のソリューションの日本国内外適用事例及びロードマップ紹介[ATTUNITY & インサイトテクノロジー IoT / Big Data フ...
 
レガシーに埋もれたデータをリアルタイムでクラウドへ [ATTUNITY & インサイトテクノロジー IoT / Big Data フォーラム 2018]
レガシーに埋もれたデータをリアルタイムでクラウドへ [ATTUNITY & インサイトテクノロジー IoT / Big Data フォーラム 2018]レガシーに埋もれたデータをリアルタイムでクラウドへ [ATTUNITY & インサイトテクノロジー IoT / Big Data フォーラム 2018]
レガシーに埋もれたデータをリアルタイムでクラウドへ [ATTUNITY & インサイトテクノロジー IoT / Big Data フォーラム 2018]
 

Último

NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NTT DATA Technology & Innovation
 
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineerYuki Kikuchi
 
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)UEHARA, Tetsutaro
 
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfクラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfFumieNakayama
 
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?akihisamiyanaga1
 
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...博三 太田
 
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)Hiroshi Tomioka
 
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfAWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfFumieNakayama
 

Último (8)

NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
 
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
 
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
 
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfクラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
 
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
 
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
 
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
 
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfAWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
 

[db tech showcase Tokyo 2016] B31: Spark Summit 2016@SFに参加してきたので最新事例などを紹介しつつデータベース技術からみたSparkの新しさを紹介 by 日本電信電話株式会社 山室 健

  • 1. Copyright©2016 NTT corp. All Rights Reserved. Spark  Summit  2016@SFに参加してきたので 最新事例例などを紹介しつつデータベース技術から みたSparkの新しさを紹介 2016/7/15 ⼭山室  健  @  ⽇日本電信電話株式会社
  • 2. 2Copyright©2016 NTT corp. All Rights Reserved. Who  am  I?
  • 3. 3Copyright©2016 NTT corp. All Rights Reserved. • サーバクラスタの分散メモリを活⽤用しながら効率率率的に分 散並列列処理理することが可能な汎⽤用フレームワーク •  one-‐‑‒size-‐‑‒fits-‐‑‒ʼ’manyʼ’:  様々なAP(SQL,  Streaming,   MLlib,  ...)が実装され,同⼀一環境で動作 Sparkとは?
  • 4. 4Copyright©2016 NTT corp. All Rights Reserved. • 不不変で並列列実⾏行行可能な分散コレクションで,Sparkにお ける唯⼀一のデータ操作のためのAPIを実装 Spark  RDD  -‐‑‒  Resilient  Distributed  Dataset val data = Array(1, 2, 3, 4, 5)     // Scalaのコレクション val dataRdd = sc.parallelize(data) // 分散コレクション(RDD)へ変換 val result = dataRdd.map(_ + 1) // RDDに対する操作を定義 .fiter( _ % 2 == 0) .reduce(_ + _)
  • 5. 5Copyright©2016 NTT corp. All Rights Reserved. • ユーザが記述したコードをDriver  Programとして実 ⾏行行し、Sparkの最⼩小実⾏行行単位のTaskに分解し, Worker  Node上に起動されたExecutorに割り当てる ことで分散並列列実⾏行行を⾏行行う Sparkの動作概要 引用: Cluster Overview, http://spark.apache.org/docs/1.6.2/cluster-overview.html
  • 6. 6Copyright©2016 NTT corp. All Rights Reserved. • 1.  Download  Spark  binary  v1.6.2 •  http://spark.apache.org/downloads.html • 2.  Launch  a  Spark  shell; •  ./<spark  dir>/bin/spark-‐‑‒shell • 3.  Do  word-‐‑‒couting •  scala>  val  textFile  =  sc.textFile(”hoge.txt") •  scala>  val  counts  =  textFile.flatMap(_̲.split("  "))              .map(word  =>  (word,  1))            .reduceByKey(_̲  +  _̲) Quick  Start!
  • 7. 7Copyright©2016 NTT corp. All Rights Reserved. •  2013.6      -‐‑‒  Apache  Incubatorに •  2014.2      -‐‑‒  Incubatorを卒業,Top-‐‑‒Levelプロジェクトに •  2014.6      -‐‑‒  v1.0がリリース •  2014.11  -‐‑‒  v1.1がリリース •  2014.12  -‐‑‒  v1.2がリリース •  2015.3      -‐‑‒  v1.3がリリース •  2015.5      -‐‑‒  v1.4がリリース •  2015.9      -‐‑‒  v1.5がリリース •  2016.1      -‐‑‒  v1.6がリリース •  2016.7      -‐‑‒  v2.0がリリース予定 Spark  Release  History ️いまここ
  • 8. 8Copyright©2016 NTT corp. All Rights Reserved. • Databrics社が主催するSpark関連の主要会議 •  2013年年から始まり今回で7回⽬目,特に昨年年の2015年年からは年年 3回のペースで実施(EU・アメリカ⻄西・東海岸) •  来年年からオーストラリアが追加され年年4回開催の計画 Spark  Summit Spark Summit 2016 @ SF メイン会場の様子
  • 9. 9Copyright©2016 NTT corp. All Rights Reserved. •  参加者:  2500+⼈人(720+企業からの参加)*チケットはsold-‐‑‒out •  直近のSpark  Summit  East  2016@東海岸では1300+⼈人だったため, 2倍近い動員数 •  ⽇日本からの参加者は⽬目測で10名弱程度度 •  IBMやMSなど強⼒力力なスポンサー企業 •  その他にもColudera,HortonworksなどのHadoopベンダも後援 Spark  Summit  2016  @  SFの概要  6/6-‐‑‒6/8 KEYNOTE   11%   ENTERPRISE   6%   DEVELOPER   15%   DATA   SCIENCE   17%   RESEARH   18%   ECOSYSTEM   18%   USE  CASE   15%   会議セッション内訳(全101件) 主要スポンサー企業(抜粋)
  • 10. 10Copyright©2016 NTT corp. All Rights Reserved. 開発コミュニティの最新動向 • 今⽉月中にリリースを予定しているv2.0の話題 •  Continuous(連続性)とStructuring(構造化) •  連続的に⼊入⼒力力されるデータを,既存のバッチ処理理と同様の処理理 ⽅方法(API)で,データを構造化しながら効率率率的に処理理 Databricsのco-founder兼CTOの Matei Zaharia氏 Keynote”Spark 2.0”から引用 •  各セッションではメモリ管理理やオプティ マイザ(Catalyst)などユーザの興味が ⾼高い部分の新機能を紹介
  • 11. 11Copyright©2016 NTT corp. All Rights Reserved. セッション全体の印象 • Keynoteとセッション共にDeep  Learning(AI)に 関する取り組みの話題が散⾒見見 •  Jeff  Dean⽒氏(Google)やAndrew  Ng(Baidu)などの著名⼈人 の話を筆頭に,IBM/Yahooなど各企業の取り組み紹介 •  Sparkと直接関係ない話題も多かった • Sparkに対する企業の関⼼心は⾮非常に⾼高く,依然としてコ ミュニティは拡⼤大傾向にある印象 •  特に⼒力力を⼊入れているIBM(発表7件)とMicrosoft(発表5件) •  UberやAirbnbなどでも積極的に利利⽤用 •  〜~PB/⽇日の⼤大規模データ処理理に適⽤用(The  Weather   Company/IBM)している事例例など
  • 12. 12Copyright©2016 NTT corp. All Rights Reserved. • Spark  Streamingの事例例が多く,⼊入⼒力力としてApache   Kafka*とともに⽤用いる場合が⾮非常に多い • 結果の出⼒力力先としてはApache  HBaseやApache   Cassandraが⽤用いられていたが,定番として採⽤用され る分散ストレージはない印象 Sparkの事例例紹介 *Apache Kafka, 分散メッセージングシステム Spark Streaming処理概要
  • 13. 13Copyright©2016 NTT corp. All Rights Reserved. Sparkの事例例紹介  -‐‑‒  Microsoft  Bing • Top  5  Lessons  Learned  in  Building  Streaming   Applications  at  Microsoft  Bing  Scale •  Bingのクエリイベントを⼀一定間隔でマージする処理理 •  Kafkaから⼊入⼒力力,マージ後にKafkaに書き戻す •  Spark  v1.6.xではAP  timeを指定してJoinするAPIが提供され ていないため,独⾃自に記述して実現 Spark Streaming ➡️同様のことをしているユーザが多い模様
  • 14. 14Copyright©2016 NTT corp. All Rights Reserved. • Temporal  Operators  For  Spark  Streaming  And   Its  Application  For  Office365  Service   Monitoring •  サービスモニタリングに利利⽤用,問題が発⽣生した場合にアラート •  リクエストの成否,レイテンシなどを監視 •  Join/Aggregate⽤用のTemporalオペレータを独⾃自実装 Sparkの事例例紹介  -‐‑‒  Microsoft  Office365
  • 15. 15Copyright©2016 NTT corp. All Rights Reserved. • The  Internet  of  Everywhere̶—How  IBM  The   Weather  Company  Scales •  バッチデータと連続的に⼊入⼒力力されるデータを統合して,BI/ Visualizationツールを⽤用いてデータ分析 •  データ流流量量が~∼360PB/⽇日で,知っている中で最も⼤大規模なデー タを取り扱った事例例 Sparkの事例例紹介  -‐‑‒  The  Weather  Company * 図は同発表者がSpark Summit East 2016で使用したスライドから引用
  • 16. 16Copyright©2016 NTT corp. All Rights Reserved. • Online  Security  Analytics  on  Large  Scale   Video  Surveillance  System •  複数店舗にまたがった不不正なカードの利利⽤用の探索索,盗難があっ た場合の過去の盗難履履歴からの顔検索索など •  画像処理理はOpenCV,DL4j,DeepDistなどを利利⽤用 Sparkの事例例紹介  -‐‑‒  EMC
  • 17. 17Copyright©2016 NTT corp. All Rights Reserved. • Airstream:  Spark  Streaming  At  Airbnb •  ストリーム処理理における状態管理理,複数ストリームの処理理, バッチ系との統合などを⾏行行った事例例 •  状態管理理には性能/管理理/機能/コミュニティなどの観点を考慮し てHBaseを採⽤用 Sparkの事例例紹介  -‐‑‒  Airbnb
  • 18. 18Copyright©2016 NTT corp. All Rights Reserved. データベース技術からみたSPARKの新しさ
  • 19. 19Copyright©2016 NTT corp. All Rights Reserved. • ⼊入出⼒力力にParquet/ORC,map/shuffle処理理を軸にし た分散処理理,SQL/DataFrameなどのIF,関係代数に おける問い合わせ最適化,... • 特に問い合わせ最適化の実装は既存のDB製品と⽐比べる と基本的なものしかない •  例例えばコストを考慮したJoin順序の最適化はしない,この種の 最適化に関しては現在検討中(SPARK-‐‑‒16026:Cost-‐‑‒based   optimizer  framework) 要素技術としてあまり⽬目新しくはないSpark
  • 20. 20Copyright©2016 NTT corp. All Rights Reserved. • ⼊入⼒力力クエリは⼀一連の処理理最適化の後に,内部的には RDDを⽤用いて記述された⼿手続に変換され実⾏行行 •  適⽤用可能な最適化はDBMSのものと基本的な相違はない • データのヒストグラムやカーディナリティなどの事前知 識識がないため,遅い実⾏行行プランを選択しがち Catalyst:  Sparkの問い合わせ最適化 Analyzer Optimizer SparkPlanner 引用: “Deep Dive into Spark SQL’s Catalyst Optimizer”, https://databricks.com/blog/2015/04/13/deep-dive-into-spark-sqls-catalyst-optimizer.html 入力クエリ
  • 21. 21Copyright©2016 NTT corp. All Rights Reserved. 遅い実⾏行行プラン例例)Filter-‐‑‒>Join クエリ例) SELECT * FROM a, b WHERE a.id == b.id AND a.value = 3; Join Filter • Filter処理理の結果によって最適なJoinの⽅方法は異異なる •  1)  Filter後のテーブルaが⾮非常に⼩小さい場合     ➡️テーブルaをすべてのExecutorに転送 •  2)  Filter後のテーブルaが⼤大きい場合     ➡️テーブルaとテーブルbをHash-‐‑‒Join(ハッシュ分割して       同じidを持つデータを同じExecutorに転送) * テーブルaとテーブルbのサイズは大きい前提
  • 22. 22Copyright©2016 NTT corp. All Rights Reserved. 遅い実⾏行行プラン例例)Filter-‐‑‒>Join クエリ例) SELECT * FROM a, b WHERE a.id == b.id AND a.value = 3; Join Filter • Filter処理理の結果によって最適なJoinの⽅方法は異異なる •  1)  Filter後のテーブルaが⾮非常に⼩小さい場合     ➡️テーブルaをすべてのExecutorに転送 •  2)  Filter後のテーブルaが⼤大きい場合     ➡️テーブルaとテーブルbをHash-‐‑‒Join(ハッシュ分割して       同じidを持つデータを同じExecutorに転送) 入力データのカーディナリティが分からないため常に2)を選択するが ’a.value=3’の出力結果は小さくなることが多そう * テーブルaとテーブルbのサイズは大きい前提
  • 23. 23Copyright©2016 NTT corp. All Rights Reserved. で、新しさは?
  • 24. 24Copyright©2016 NTT corp. All Rights Reserved. •   あえて⾔言えば...最適化済み実⾏行行プランを体系的な⽅方法で等価な javaコードに変換して実⾏行行時コンパイルを⾏行行う点 データベース技術からみたSparkの新しさ Analyzer Optimizer SparkPlanner 引用: “Deep Dive into Spark SQL’s Catalyst Optimizer”, https://databricks.com/blog/2015/04/13/deep-dive-into-spark-sqls-catalyst-optimizer.html
  • 25. 25Copyright©2016 NTT corp. All Rights Reserved. • Whole-‐‑‒stage  Codegenという名前で開発 •  実⾏行行プランの部分⽊木を等価なコードブロックに変換 •   オプションʻ‘spark.sql.codegen.wholeStageʼ’でon/offの切切り 替えが可能で,次期リリースではデフォルトでon Sparkの実⾏行行時コンパイル 最適化済みの 実行プラン まとめて コードブロックに変換 実行時コンパイル
  • 26. 26Copyright©2016 NTT corp. All Rights Reserved. • 従来はVolcano-‐‑‒Style(イテレータモデル)に従った プラン処理理が⼀一般的だが,分析などの複雑なクエリほど CPU効率率率が悪いことで有名 従来の処理理⽅方式の問題 getNext() Volcano-Styleに従ったプラン処理 •  getNext()を呼ぶと1⾏行行のデータを返却 •  例例えば⼊入⼒力力データが100万⾏行行あった場 合,Scan➡️Filter間で100万回の関数 呼び出しが発⽣生 getNext() getNext()
  • 27. 27Copyright©2016 NTT corp. All Rights Reserved. Cited from the article of “A Look Back at Single-Threaded CPU Performance”, http://preshing.com/20120208/a-look-back-at-single- threaded-cpu-performance SPECint SPECfp • クロック周波数は向上していないが2004年年以降降も命令令 レベル/データの並列列化を改善することでベンチマーク による1スレッドの実性能は向上 並列列化によるCPU性能の改善
  • 28. 28Copyright©2016 NTT corp. All Rights Reserved. • 最適化が⾏行行いやすい形に変換してコンパイルすることで CPU効率率率の⾼高いプラン処理理を実現 •  “⼗十分に賢いコンパイラ”を仮定すれば下記のforループはSIMD でデータ並列列化されて⾮非常に効率率率的な処理理に CPU効率率率の⾼高いプラン処理理
  • 29. 29Copyright©2016 NTT corp. All Rights Reserved. • 以下の論論⽂文を参考に実装 •  Thomas  Neumann,  Efficiently  Compiling  Efficient  Query   Plans  for  Modern  Hardware,  VLDBʼ’11 • 各実⾏行行オペレータ(Scan,Filter,...)にproduceと consumeの2つのIFを実装 •  produce:  データ⽣生成を依頼(⼦子のproduceを呼ぶ),部分⽊木 の葉葉であれば親のconsumeに⽣生成したデータを渡す •  consume:受け取ったデータに各オペレータの処理理を適⽤用して, 親のconsumeに渡す Sparkの実⾏行行時コンパイルの実装
  • 30. 30Copyright©2016 NTT corp. All Rights Reserved. Sparkの実⾏行行時コンパイルの実装の例例 consume () コード生成フロー概要 consume () consume () produce() produce() produce() doCodegen() γ π σ - γ.produce: γ.child.produce() - γ.consume: print “count += 1” - π.produce: π.child.produce() - π.consume: π.parent.consume() - σ.produce: σ.child.produce() - σ.consume: print “if (ss_item_sk == 1000) { ${σ.parent.consume()} }” - scan.produce: print “for (ss_item_sk in store_sales) { ${scan.parent.consume()} }”
  • 31. 31Copyright©2016 NTT corp. All Rights Reserved. Sparkの実⾏行行時コンパイルの実装の例例 • doCodegen()を呼ぶと以下のコードブロックを⽣生成
  • 32. 32Copyright©2016 NTT corp. All Rights Reserved. • Sparkの⽣生成したコードを確認 SPARKの実⾏行行時コンパイルの実際 scala> import org.apache.spark.sql.execution.debug._ scala> val df = sql("SELECT sqrt(a) FROM test WHERE b = 1”) scala> df.explain == Physical Plan == *Project [SQRT(cast(_1#2 as double)) AS SQRT(CAST(a AS DOUBLE))#18] +- *Filter (_2#3 = 1) +- LocalTableScan [_1#2, _2#3] scala> df.debugCodegen
  • 33. 33Copyright©2016 NTT corp. All Rights Reserved. Sparkが内部で生成したコード
  • 34. 34Copyright©2016 NTT corp. All Rights Reserved. 古くて新しい実⾏行行時コンパイルの歴史 •  1970年年代にIBM  SystemRが初期の実⾏行行時コンパイル導⼊入;  ⼊入⼒力力 されたクエリ(SEQUEL)を評価して事前に⽤用意したアセンブリ と動的リンク •  当時このアプローチはポータビリティと動的リンクした関数の呼び出 しコストが⾼高いことを理理由に⽤用いられなくなった •  ポータビリティの問題を解決するために,1980年年代の研究では直 接アセンブリを扱うのではなく,実⾏行行時にC/Pascalのコードを⽣生 成する抽象化を提案 •  しかし今度度は実⾏行行時のコード⽣生成のコストが無視できなくなり流流⾏行行ら なかった •  2000年年前半に次世代のDBMSカーネル研究の⼀一環で,実⾏行行時の型 キャストのコストを減らすためにpointer  injectionを⽤用いて事 前に⽤用意した型ごとの関数を利利⽤用する⼿手法の提案 •  アプローチの妥当性はさておき,このデザインも当時あまり流流⾏行行らなかった
  • 35. 35Copyright©2016 NTT corp. All Rights Reserved. 古くて新しい実⾏行行時コンパイルの歴史 •  2000年年後半にJavaのリフレクションを利利⽤用した実⾏行行時コンパイ ル⼿手法が提案,この基本的なデザイン(抽象化)は近年年の⼿手法に⼤大 きく影響したといわれている •  2010年年以降降にデータベース最適化技術の⼀一環として,研究界隈で 論論⽂文提案がいくつか⾏行行われた,特に他のモダンな最適化技術 (Vector-‐‑‒at-‐‑‒a-‐‑‒time実⾏行行やMicro-‐‑‒Specialization)と融合し た評価や提案などが⾏行行われた •  Amazon  Redshift,  SQL  Server,  Presto,  Hive,  Spark,   Impala,  MemSQLなどモダンなSQL処理理系の多くが,(実装デ ザインは異異なるが)実⾏行行時コンパイルを⽤用いた最適化を導⼊入
  • 36. 36Copyright©2016 NTT corp. All Rights Reserved. マイクロベンチマーク結果 •  build/sbt  "sql/test-‐‑‒only  *BenchmarkWholeStageCodegen”
  • 37. 37Copyright©2016 NTT corp. All Rights Reserved. マイクロベンチマーク結果 •  build/sbt  "sql/test-‐‑‒only  *BenchmarkWholeStageCodegen”
  • 38. 38Copyright©2016 NTT corp. All Rights Reserved. マイクロベンチマーク結果 •  build/sbt  "sql/test-‐‑‒only  *BenchmarkWholeStageCodegen”
  • 39. 39Copyright©2016 NTT corp. All Rights Reserved. TPCDSを⽤用いたベンチマーク結果 Cited from the slide of “Spark Performance: What's Next” in SPARK SUMMIT EAST’16, http://www.slideshare.net/databricks/spark-performance-whats-next#28