©2015 DataStax Confidential. Do not distribute without consent.
 1
DataStax	
  
原沢滋	
  
	
  
	
  	
  
Apache	
  Sparkがリアルタイム分析で	
  
NOSQLのApache	
  Cassandraに出会った。(ウルルン風)	
Hadoop	
  /	
  Spark	
  Conference	
  Japan	
  2016
Data	
  Science	
  at	
  Scale	
  
2009
x
Apache Cassandraとは
分散オペレーショナル・データベース
Apache	
  Cassandra	
  とは	
  
Amazon	
  Dynamo	
  の分散ハッシュ
テーブル(DHT)と、Google	
  BigTable	
  
のKVSの2つの特徴を併せ持つビッ
グデータ用分散データベース	
  
•  Amazon	
  DynamoとGoogle	
  Bigtableの良い点を持つ	
  
•  高速パフォーマンスとリニアな拡張	
  
•  SPOF(Single	
  Point	
  of	
  Failure)がない、簡単に24時間	
  x	
  365
日ダウンさせないで運用が可能	
  
•  完全な分散	
  
•  柔軟なNoSQLデータモデル(スキーマーレス!)	
  
•  シンプルな運用管理	
  
•  SQL	
  ライクな言語CQLをサポートしている	
  
•  様々な無償ツールとドライバ/コネクタを持つ	
  
•  様々な整合性を選ぶ事が可能(CAP定理,	
  BASE)	
  
+	
  
OLTP	
  
(RDBMS)	
  	
 
DWH	
 
(RDBMS)	
 
Cassandra	
  
(NOSQL)	
 
OLTP	
  
(RDBMS)	
  	
 
DWH	
 
(RDBMS)	
 
Hadoop/	
  
Spark	
 
分析・データベース	
 
オペレーショナル	
  
データベース	
 
既存システム(RDB)	
新システムへの要求	
  
*データ量	
  
*パフォマンス	
  
*柔軟性	
  
*可用性	
  
*値段	
分析・データベース	
 
オペレーショナル	
  
データベース	
 
既存システム(RDB)	
新システム(NoSQL)	
今までRDB	
  では不可能、又は実現するのに	
  
コストが膨大にかかった領域	
Cassandra(NOSQL)とHadoop/Sparkの位置付け
Spark	
  Streaming	
  
	
  
Near	
  Real-­‐Zme	
  
SparkSQL	
  
	
  
Structured	
  Data	
  
MLLib	
  
	
  
Machine	
  Learning	
  
GraphX	
  
	
  
Graph	
  Analysis	
  
Sparkは大量データをスキャンするのが得意	
  
CREATE TABLE raw_weather_data (!
wsid text, !
year int, !
month int, !
day int, !
hour int, !
temperature double, !
dewpoint double, !
pressure double, !
wind_direction int, !
wind_speed double, !
sky_condition int, !
sky_condition_text text, !
one_hour_precip double, !
six_hour_precip double, !
PRIMARY KEY ((wsid), year, month, day, hour)!
) WITH CLUSTERING ORDER BY (year DESC, month DESC, day DESC, hour DESC);!
Cassandra	
  は大量データを集めるのが得意です	
  
Spark	
  Streaming	
  
	
  
Near	
  Real-­‐Zme	
  
SparkSQL	
  
	
  
Structured	
  Data	
  
MLLib	
  
	
  
Machine	
  Learning	
  
GraphX	
  
	
  
Graph	
  Analysis	
  
Cassandra は大量データを集めるのが得意です	
Sparkは大量データをスキャンするのが得意	
  
Spark	
  Streaming	
  
	
  
Near	
  Real-­‐Zme	
  
SparkSQL	
  
	
  
Structured	
  Data	
  
MLLib	
  
	
  
Machine	
  Learning	
  
GraphX	
  
	
  
Graph	
  Analysis	
  
CREATE TABLE raw_weather_data (!
wsid text, !
year int, !
month int, !
day int, !
hour int, !
temperature double, !
dewpoint double, !
pressure double, !
wind_direction int, !
wind_speed double, !
sky_condition int, !
sky_condition_text text, !
one_hour_precip double, !
six_hour_precip double, !
PRIMARY KEY ((wsid), year, month, day, hour)!
) WITH CLUSTERING ORDER BY (year DESC, month DESC, day DESC, hour DESC);!
Spark Connector!
Cassandra と Sparkが出会った	
  
Spark	
  Streaming	
  
	
  
Near	
  Real-­‐Zme	
  
SparkSQL	
  
	
  
Structured	
  Data	
  
MLLib	
  
	
  
Machine	
  Learning	
  
GraphX	
  
	
  
Graph	
  Analysis	
  
CREATE TABLE raw_weather_data (!
wsid text, !
year int, !
month int, !
day int, !
hour int, !
temperature double, !
dewpoint double, !
pressure double, !
wind_direction int, !
wind_speed double, !
sky_condition int, !
sky_condition_text text, !
one_hour_precip double, !
six_hour_precip double, !
PRIMARY KEY ((wsid), year, month, day, hour)!
) WITH CLUSTERING ORDER BY (year DESC, month DESC, day DESC, hour DESC);!
Spark Connector!
リアルタイム	
  
分析	
オペレーショナル	
  
データ	
分析結果	
検索結果	
分析結果	
分析結果	
オペレーショナルデータ	
Apache	
  Spark	
  と Apache	
  Cassandra	
  
Store	
  a	
  ton	
  of	
  data	
   Analyze	
  a	
  ton	
  of	
  data	
  
Apache	
  Spark	
  と	
  Apache	
  Cassandra	
  
大量データをスキャンして	
  
高速に集約、分析するのが得意	
大量データをスキャンして	
  
集約、分析するのが苦手	
高速に、安全に大量のデータを	
  
集めてくるのが得意	
大量データを集めてくるのは	
  
基本はバッチ処理	
得意分野x得意分野	
不得意分野を補う
Cassandraで分散された各ノードでSparkも動く	
  
分散データを各
ノードで分析する

パラレル処理
を行う事が可能
各ノードにCassandraとSpark	
  
Apache	
  Spark	
  と	
  Apache	
  Cassandra	
  
ETL不要!!(オペレーションと分析の分離)	
  
オペレーション	
  
オペレーショナル	
  
環境	
分析環境	
双方向レプリケーション	
Apache	
  Spark	
  と	
  Apache	
  Cassandra	
  
SPARK	
  Cassandra	
  Connector	
h[ps://github.com/datastax/spark-­‐cassandra-­‐connector
©2015 DataStax Confidential. Do not distribute without consent.
ありがとうございました!	
  
Twi[er	
  account:	
  @cassandrajapanで情報発信しています	
  
 	
  

(LT)Spark and Cassandra

  • 1.
    ©2015 DataStax Confidential.Do not distribute without consent. 1 DataStax   原沢滋         Apache  Sparkがリアルタイム分析で   NOSQLのApache  Cassandraに出会った。(ウルルン風) Hadoop  /  Spark  Conference  Japan  2016
  • 2.
    Data  Science  at  Scale   2009
  • 3.
    x Apache Cassandraとは 分散オペレーショナル・データベース Apache  Cassandra  とは   Amazon  Dynamo  の分散ハッシュ テーブル(DHT)と、Google  BigTable   のKVSの2つの特徴を併せ持つビッ グデータ用分散データベース   •  Amazon  DynamoとGoogle  Bigtableの良い点を持つ   •  高速パフォーマンスとリニアな拡張   •  SPOF(Single  Point  of  Failure)がない、簡単に24時間  x  365 日ダウンさせないで運用が可能   •  完全な分散   •  柔軟なNoSQLデータモデル(スキーマーレス!)   •  シンプルな運用管理   •  SQL  ライクな言語CQLをサポートしている   •  様々な無償ツールとドライバ/コネクタを持つ   •  様々な整合性を選ぶ事が可能(CAP定理,  BASE)   +  
  • 4.
    OLTP   (RDBMS)   DWH (RDBMS) Cassandra   (NOSQL) OLTP   (RDBMS)   DWH (RDBMS) Hadoop/   Spark 分析・データベース オペレーショナル   データベース 既存システム(RDB) 新システムへの要求   *データ量   *パフォマンス   *柔軟性   *可用性   *値段 分析・データベース オペレーショナル   データベース 既存システム(RDB) 新システム(NoSQL) 今までRDB  では不可能、又は実現するのに   コストが膨大にかかった領域 Cassandra(NOSQL)とHadoop/Sparkの位置付け
  • 5.
    Spark  Streaming     Near  Real-­‐Zme   SparkSQL     Structured  Data   MLLib     Machine  Learning   GraphX     Graph  Analysis   Sparkは大量データをスキャンするのが得意  
  • 6.
    CREATE TABLE raw_weather_data(! wsid text, ! year int, ! month int, ! day int, ! hour int, ! temperature double, ! dewpoint double, ! pressure double, ! wind_direction int, ! wind_speed double, ! sky_condition int, ! sky_condition_text text, ! one_hour_precip double, ! six_hour_precip double, ! PRIMARY KEY ((wsid), year, month, day, hour)! ) WITH CLUSTERING ORDER BY (year DESC, month DESC, day DESC, hour DESC);! Cassandra  は大量データを集めるのが得意です  
  • 7.
    Spark  Streaming     Near  Real-­‐Zme   SparkSQL     Structured  Data   MLLib     Machine  Learning   GraphX     Graph  Analysis   Cassandra は大量データを集めるのが得意です Sparkは大量データをスキャンするのが得意  
  • 8.
    Spark  Streaming     Near  Real-­‐Zme   SparkSQL     Structured  Data   MLLib     Machine  Learning   GraphX     Graph  Analysis   CREATE TABLE raw_weather_data (! wsid text, ! year int, ! month int, ! day int, ! hour int, ! temperature double, ! dewpoint double, ! pressure double, ! wind_direction int, ! wind_speed double, ! sky_condition int, ! sky_condition_text text, ! one_hour_precip double, ! six_hour_precip double, ! PRIMARY KEY ((wsid), year, month, day, hour)! ) WITH CLUSTERING ORDER BY (year DESC, month DESC, day DESC, hour DESC);! Spark Connector! Cassandra と Sparkが出会った  
  • 9.
    Spark  Streaming     Near  Real-­‐Zme   SparkSQL     Structured  Data   MLLib     Machine  Learning   GraphX     Graph  Analysis   CREATE TABLE raw_weather_data (! wsid text, ! year int, ! month int, ! day int, ! hour int, ! temperature double, ! dewpoint double, ! pressure double, ! wind_direction int, ! wind_speed double, ! sky_condition int, ! sky_condition_text text, ! one_hour_precip double, ! six_hour_precip double, ! PRIMARY KEY ((wsid), year, month, day, hour)! ) WITH CLUSTERING ORDER BY (year DESC, month DESC, day DESC, hour DESC);! Spark Connector! リアルタイム   分析 オペレーショナル   データ 分析結果 検索結果 分析結果 分析結果 オペレーショナルデータ Apache  Spark  と Apache  Cassandra  
  • 10.
    Store  a  ton  of  data   Analyze  a  ton  of  data   Apache  Spark  と  Apache  Cassandra   大量データをスキャンして   高速に集約、分析するのが得意 大量データをスキャンして   集約、分析するのが苦手 高速に、安全に大量のデータを   集めてくるのが得意 大量データを集めてくるのは   基本はバッチ処理 得意分野x得意分野 不得意分野を補う
  • 11.
  • 12.
    ETL不要!!(オペレーションと分析の分離)   オペレーション   オペレーショナル   環境 分析環境 双方向レプリケーション Apache  Spark  と  Apache  Cassandra  
  • 13.
  • 14.
    ©2015 DataStax Confidential.Do not distribute without consent. ありがとうございました!   Twi[er  account:  @cassandrajapanで情報発信しています