SlideShare a Scribd company logo
1 of 43
©2015 DataStax Confidential. Do not distribute without consent.
Apache Cassandra と Sparkの美味しい関係
1
DataStax
原沢滋
@Cassandrajapan
©2015 DataStax Confidential. Do not distribute without consent.
最初にApache Cassandraとは
©2015 DataStax Confidential. Do not distribute without consent.
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)
+
©2015 DataStax Confidential. Do not distribute without consent.
100,000+ ノード
数十ペタバイト
数百万件/秒以上オペレーション
最大クラスタのノード数1,000+
バージョンはv1.2 とv2.0を利用
(写真は昨年のもの)
©2015 DataStax Confidential. Do not distribute without consent.
ソニーにおけるApache Cassandra
•  Cassandraを6ヶ月でプロダクション
•  リニアスケーラビリティ
•  パフォーマンス
•  ダウンタイムがない
•  運用が楽
•  コスト
データスループット: Gigabytes/sec
トランザクション: >200,000/sec
データサイズ: Tens of terabytes
©2015 DataStax Confidential. Do not distribute without consent.
NetflixにおけるDataStax Enterprise(DSE)
(Apache Cassandra)
Netflix は映像ストリーミング配信会社
•  Netflix の全データベースのち95%を DSE を
利用
•  スループットは1千万トランザクション/秒
•  1日1兆トランザクションをDSE で処理
•  世界各地にある6つのデータセンターの
Oracle を置き換え、100%クラウドで実現
•  AWSの大規模の再起動の際も全く問題なく24
時間x365日のサービスをCassandraで提供
©2015 DataStax Confidential. Do not distribute without consent.
 7
©2015 DataStax Confidential. Do not distribute without consent.
 8
©2015 DataStax Confidential. Do not distribute without consent.
C*
C*
C*
C*C*
C*
Cassandra のアーキテクチャ
•  Shared Nothing (データだけでなく機能まで)
•  マスターという概念がなく、すべてのノードが完全に同じ機能を持つ
•  ハイパフォーマンスでリニアにスケールする
•  常にサービスを止めない
レプリケーション
(データのコピー)
は何台に持たせるかを決められる
Replication factor=3
7369,原沢
7369,原沢
7369,原沢
マシンが故障しても、
特定のマシンが特定の機能を
持っている訳ではないので、
他のデータのあるマシンが
同じ作業を全く問題なく処理
する事が可能
©2015 DataStax Confidential. Do not distribute without consent.
Cassandra のアーキテクチャ(マルチデータセンター)
•  複数のデータセンター内でのレプリケーションも自動で行う事が可能
•  双方向のマルチデータセンターでのレプリケーションを行う
•  どのデータセンターのどのノードを対象に対しても読み取り/書き込みが可能
•  故障時はドライバが判断して、接続できるノードに接続を行う
C*
C*
C*
C*
C*
C*
C*
C*
C*
C*
C*
C*
C*
C*
C*
C*
C*
C*
東京
大阪
クラウド
7369,原沢
7369,原沢
7369,原沢
7369,原沢
7369,原沢
7369,原沢
7369,原沢
7369,原沢
7369,原沢
©2015 DataStax Confidential. Do not distribute without consent.
Cassandra のアーキテクチャ(マルチデータセンター)
•  複数のデータセンター内でのレプリケーションも自動で行う事が可能
•  双方向のマルチデータセンターでのレプリケーションを行う
•  どのデータセンターのどのノードを対象に対しても読み取り/書き込みが可能
•  故障時はドライバが判断して、接続できるノードに接続を行う
C*
C*
C*
C*
C*
C*
C*
C*
C*
C*
C*
C*
C*
C*
C*
C*
C*
C*
東京
大阪
クラウド
7369,原沢
7369,原沢
7369,原沢
7369,原沢
7369,原沢
7369,原沢
7369,原沢
7369,原沢
7369,原沢
©2015 DataStax Confidential. Do not distribute without consent.
C*
C*
C*
C*C*
C*
Cassandra 向きのアプリケーション
7369,原沢
7369,原沢
7369,原沢
WEB
アプリケーション
Mobile, センサー
ゲーム、インターネット
IoT
リアルタイム
©2015 DataStax Confidential. Do not distribute without consent.
たとえば: 気象観測データの場合
すべての気象観測所のデータを

リアルタイムに時系列でCassandraに保持
アプリケーションは時系列でデータを取得
©2015 DataStax Confidential. Do not distribute without consent.
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);!
気象データを
• 気象観測所のIDで検索
• 気象観測所のIDと時間で検索
• 気象観測所のIDと時間の範囲で検索
たとえば: 気象観測データの場合
©2015 DataStax Confidential. Do not distribute without consent.
渋谷、東京
2015年12月9日
最高気温:17℃
最低気温:7℃
平均気温:10℃
でもちょっと統計を取ろうとすると大変
気象観測所のIDで集約統計したテーブルを用意
• 気象観測所のIDで検索
• 気象観測所のIDと時間で検索
• 気象観測所のIDと時間の範囲で検索
CREATE TABLE daily_aggregate_temperature (!
wsid text,!
year int,!
month int,!
day int,!
high double,!
low double,!
mean double,!
variance double,!
stdev double,!
PRIMARY KEY ((wsid), year, month, day)!
) WITH CLUSTERING ORDER BY (year DESC, month DESC, day DESC);!
©2015 DataStax Confidential. Do not distribute without consent.
Max, Min, Avgとか使えないの? 
使えません
基本すべてのデータに対しての集約関数はCassandraではありません
但し、最新版(CQL 3.3, Cassandra 2.2以降)では、今回のような
場合だと、気象観測所ID(WSID)がPartition Keyなので使えます。
が・・・例えば、東京23区のMax, Min, Avgはダメです
でもちょっと統計を取ろうとすると大変
©2015 DataStax Confidential. Do not distribute without consent.
どういうことか?
C*
C*
C*
C*C*
C*
7369,渋谷, 東京
7379,目黒,東京
7389,練馬,東京
分散データベースにおいて、データを複数マシンから集めて集約するのは
大変!!
東京23区のデータの
集約をしたい
7369,品川, 東京
7369,新宿, 東京
7369,世田谷, 東京
すべてのノードが処理、
各ノードで複数件レンジス
キャンする
分散オペレーショナルデータベースと
しては最悪のケース
なので
させない(できない)
!!!!
©2015 DataStax Confidential. Do not distribute without consent.
どういうことか?
C*
C*
C*
C*C*
C*
7369,渋谷, 東京
7379,目黒,東京
7389,練馬,東京
分散データベースにおいて、集約するのは推奨しない でも・・・
東京と渋谷のデータ
だけ集約したい
Partition Key(先ほど
のケースだとWSID)
のみ集約は可能 7369,品川, 東京
7369,新宿, 東京
7369,世田谷, 東京
1つのノードだけで
レンジスキャンする
分散オペレーショナルデータベースと
しては他のノードには影響を与えないので
許容する(Cassandra 2.2以降)
©2015 DataStax Confidential. Do not distribute without consent.
ちなみに
C*
C*
C*
C*C*
C*
7369,渋谷, 東京
7379,目黒,東京
7389,練馬,東京
分散データベースにおいて、Keyでデータを検索するのは最高!!
渋谷、東京の
1レコードだけ検索
7369,品川, 東京
7369,新宿, 東京
7369,世田谷, 東京
1つのノードで1レコードだけ検
索
分散オペレーショナルデータベースの為
の処理
ベスト!
しかも分散なので
複数ノードで大量に処理できる!!
✔ ✔
©2015 DataStax Confidential. Do not distribute without consent.
では、Apache Sparkとは?
©2015 DataStax Confidential. Do not distribute without consent.
Data Science at Scale
2009
©2015 DataStax Confidential. Do not distribute without consent.
Apache Sparkとは
Apache Spark is an open source cluster computing framework originally developed in the AMPLab at University of California, Berkeley but was later donated to the Apache Software Foundation where it remains today. In
contrast to Hadoop's two-stage disk-based MapReduce paradigm, Spark's multi-stage in-memory primitives provides performance up to 100 times faster for certain applications.[1] By allowing user programs to load data
into a cluster's memory and query it repeatedly, Spark is well-suited to machine learning algorithms.[2]
Spark requires a cluster manager and a distributed storage system. For cluster management, Spark supports standalone (native Spark cluster), Hadoop YARN, or Apache Mesos.[3] For distributed storage, Spark can
interface with a wide variety, including Hadoop Distributed File System (HDFS),[4] Cassandra,[5] OpenStack Swift, Amazon S3, Kudu, or a custom solution can be implemented. Spark also supports a pseudo-distributed
local mode, usually used only for development or testing purposes, where distributed storage is not required and the local file system can be used instead; in such a scenario, Spark is run on a single machine with one
executor per CPU core.
Spark had in excess of 465 contributors in 2014,[6] making it not only the most active project in the Apache Software Foundation[citation needed] but one of the most active open source big data projects.[citation needed
出典:Wikipedia https://en.wikipedia.org/wiki/Apache_Spark
•  Apache Sparkはopen Source のクラスターコンピューティングフレームワーク
•  AMPLab (UCB)が開発し、Apacheプロジェクトとなる
•  HadoopのMapReduceのMapとReduceの二回層の作りではなく、In-Memoryでのマルチ層での処理が可能
•  パフォーマンスはMapReduceの100倍?(特定のものでは・・・)
•  マシーン・ラーナニング向きであるとされる、なぜなら・・・
•  SparkはHadoopのように分散の複数のストレージを利用する(大量データ)
•  クラスターマネージメントとしては、Standalone, YARN, Mesosをサポート
•  いろいろの分散システムとのインターフェースを持つ(HDFS, Swift, S3, Kudu, CASSANDRA, etc…)
©2015 DataStax Confidential. Do not distribute without consent.
Sparkは大量データをスキャンするのが得意
Input Data
Map
Reduce
Intermediate Data
Output Data
ディスクMapReduce
©2015 DataStax Confidential. Do not distribute without consent.
メモリーを使って
Input Data
Spark Intermediate Data
Output Data
ディスク メモリー
©2015 DataStax Confidential. Do not distribute without consent.
Spark Streaming
Near Real-time
SparkSQL
Structured Data
MLLib
Machine Learning
GraphX
Graph Analysis
Sparkは大量データをスキャンするのが得意
©2015 DataStax Confidential. Do not distribute without consent.
Store a ton of data Analyze a ton of data
Cassandra と Sparkの良い関係
大量データをスキャンして
高速に集約、分析するのが得意
大量データをスキャンして
集約、分析するのが苦手
高速に、安全に大量のデータを
集めてくるのが得意
データを集めてくるのは不得意
バッチでデータを集めたりする
得意分野x得意分野
不得意分野を補う
©2015 DataStax Confidential. Do not distribute without consent.
Spark Streaming
Near Real-time
SparkSQL
Structured Data
MLLib
Machine Learning
GraphX
Graph Analysis
Cassandra と Sparkの良い関係
©2015 DataStax Confidential. Do not distribute without consent.
Spark Streaming
Near Real-time
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の良い関係
©2015 DataStax Confidential. Do not distribute without consent.
Cassandra
Cassandra +
Spark
Join, Union No Yes
データ変換
(Transformation)
Limited Yes
外部データとの連携 No Yes
計算、集計 Limited Yes
Cassandra と Sparkの良い関係
©2015 DataStax Confidential. Do not distribute without consent.
もちろんCassandraと同じレプリケーション機能がありますのでデータは
レプリケーションされる
分散データを各
ノードで分析する

パラレル処理
を行う事が可能
各ノードにCassandraとSpark
Cassandra と Sparkの良い関係
©2015 DataStax Confidential. Do not distribute without consent.
えっ!! でもちょっと待って!!
Cassandra と Sparkの良い関係
てなるって
P17で
言ったじゃ
ん!
レンジスキャン
したら
©2015 DataStax Confidential. Do not distribute without consent.
はい・・・ 正しいです。
Cassandra と Sparkの良い関係
なので・・・
©2015 DataStax Confidential. Do not distribute without consent.
Cassandra と Sparkの良い関係
こうすれば完璧です。マルチデータセンター
オペレーショナル
環境
分析環境双方向レプリケーション
©2015 DataStax Confidential. Do not distribute without consent.
ETL不要!!(リアルタイムのデータの反映)
Cassandra と Sparkの良い関係
オペレーション
©2015 DataStax Confidential. Do not distribute without consent.
リアルタイムにオペレーショナルに負担なしで分析
Cassandra と Sparkの良い関係
オペレーション
©2015 DataStax Confidential. Do not distribute without consent.
分析結果をリアルタイムでオペレーショナル環境に反映
Cassandra と Sparkの良い関係
分析結果の書き込みリアルタイムの分析
結果の検索
©2015 DataStax Confidential. Do not distribute without consent.
Executer
Master
Worker
Executer
Executer
ノード
各Cassandra+Sparkノードでは
©2015 DataStax Confidential. Do not distribute without consent.
Executer
Master
Worker
Executer
Executer
SELECT *!
FROM keyspace.table!
WHERE token(pk) > 75!
AND token(pk) <= 99!
Spark RDD
Spark Partition!
Spark Partition!
Spark Partition!
Spark Connector!
各Cassandra+Sparkノードでは
ノード
©2015 DataStax Confidential. Do not distribute without consent.
Executer
Master
Worker
Executer
Executer
Spark RDD
Spark Partition!
Spark Partition!
Spark Partition!
各Cassandra+Sparkノードでは
ノード
©2015 DataStax Confidential. Do not distribute without consent.
Cassandra
Only DC
Cassandra
+ Spark DC
Spark Jobs
Spark Streaming
Hot データ、Warm データCold データ
MapReduce
Pig
Hive/Tez
Spark
Storm
Hbase
HDFS
YARN
データレイクのように
バッチでデータを集めて分析処理
Nearリアルタイムで分析処理をSpark Streamingも可能
Cassandra と Sparkの良い関係
©2015 DataStax Confidential. Do not distribute without consent.
Spark Streaming
Near Real-time
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の良い関係
リアルタイム
分析
オペレーショナル
データ
分析結果
検索結果
分析結果
分析結果
オペレーショナルデータ
©2015 DataStax Confidential. Do not distribute without consent.
Store a ton of data Analyze a ton of data
Cassandra と Sparkの良い関係
©2015 DataStax Confidential. Do not distribute without consent.
ありがとうございました
Twitter account: @cassandrajapanで情報発信しています
 

More Related Content

What's hot

AWSにおけるバッチ処理の ベストプラクティス - Developers.IO Meetup 05
AWSにおけるバッチ処理の ベストプラクティス - Developers.IO Meetup 05AWSにおけるバッチ処理の ベストプラクティス - Developers.IO Meetup 05
AWSにおけるバッチ処理の ベストプラクティス - Developers.IO Meetup 05都元ダイスケ Miyamoto
 
大量のデータ処理や分析に使えるOSS Apache Sparkのご紹介(Open Source Conference 2020 Online/Kyoto ...
大量のデータ処理や分析に使えるOSS Apache Sparkのご紹介(Open Source Conference 2020 Online/Kyoto ...大量のデータ処理や分析に使えるOSS Apache Sparkのご紹介(Open Source Conference 2020 Online/Kyoto ...
大量のデータ処理や分析に使えるOSS Apache Sparkのご紹介(Open Source Conference 2020 Online/Kyoto ...NTT DATA Technology & Innovation
 
Apache Sparkに手を出してヤケドしないための基本 ~「Apache Spark入門より」~ (デブサミ 2016 講演資料)
Apache Sparkに手を出してヤケドしないための基本 ~「Apache Spark入門より」~ (デブサミ 2016 講演資料)Apache Sparkに手を出してヤケドしないための基本 ~「Apache Spark入門より」~ (デブサミ 2016 講演資料)
Apache Sparkに手を出してヤケドしないための基本 ~「Apache Spark入門より」~ (デブサミ 2016 講演資料)NTT DATA OSS Professional Services
 
え、まって。その並列分散処理、Kafkaのしくみでもできるの? Apache Kafkaの機能を利用した大規模ストリームデータの並列分散処理
え、まって。その並列分散処理、Kafkaのしくみでもできるの? Apache Kafkaの機能を利用した大規模ストリームデータの並列分散処理え、まって。その並列分散処理、Kafkaのしくみでもできるの? Apache Kafkaの機能を利用した大規模ストリームデータの並列分散処理
え、まって。その並列分散処理、Kafkaのしくみでもできるの? Apache Kafkaの機能を利用した大規模ストリームデータの並列分散処理NTT DATA Technology & Innovation
 
大規模データ活用向けストレージレイヤソフトのこれまでとこれから(NTTデータ テクノロジーカンファレンス 2019 講演資料、2019/09/05)
大規模データ活用向けストレージレイヤソフトのこれまでとこれから(NTTデータ テクノロジーカンファレンス 2019 講演資料、2019/09/05)大規模データ活用向けストレージレイヤソフトのこれまでとこれから(NTTデータ テクノロジーカンファレンス 2019 講演資料、2019/09/05)
大規模データ活用向けストレージレイヤソフトのこれまでとこれから(NTTデータ テクノロジーカンファレンス 2019 講演資料、2019/09/05)NTT DATA Technology & Innovation
 
KafkaとAWS Kinesisの比較
KafkaとAWS Kinesisの比較KafkaとAWS Kinesisの比較
KafkaとAWS Kinesisの比較Yoshiyasu SAEKI
 
AWSで作る分析基盤
AWSで作る分析基盤AWSで作る分析基盤
AWSで作る分析基盤Yu Otsubo
 
JVMのGCアルゴリズムとチューニング
JVMのGCアルゴリズムとチューニングJVMのGCアルゴリズムとチューニング
JVMのGCアルゴリズムとチューニング佑哉 廣岡
 
Hive on Spark の設計指針を読んでみた
Hive on Spark の設計指針を読んでみたHive on Spark の設計指針を読んでみた
Hive on Spark の設計指針を読んでみたRecruit Technologies
 
Apache Arrow - データ処理ツールの次世代プラットフォーム
Apache Arrow - データ処理ツールの次世代プラットフォームApache Arrow - データ処理ツールの次世代プラットフォーム
Apache Arrow - データ処理ツールの次世代プラットフォームKouhei Sutou
 
ポスト・ラムダアーキテクチャの切り札? Apache Hudi(NTTデータ テクノロジーカンファレンス 2020 発表資料)
ポスト・ラムダアーキテクチャの切り札? Apache Hudi(NTTデータ テクノロジーカンファレンス 2020 発表資料)ポスト・ラムダアーキテクチャの切り札? Apache Hudi(NTTデータ テクノロジーカンファレンス 2020 発表資料)
ポスト・ラムダアーキテクチャの切り札? Apache Hudi(NTTデータ テクノロジーカンファレンス 2020 発表資料)NTT DATA Technology & Innovation
 
Azure Database for PostgreSQL 入門 (PostgreSQL Conference Japan 2021)
Azure Database for PostgreSQL 入門 (PostgreSQL Conference Japan 2021)Azure Database for PostgreSQL 入門 (PostgreSQL Conference Japan 2021)
Azure Database for PostgreSQL 入門 (PostgreSQL Conference Japan 2021)Keisuke Takahashi
 
Datastax Enterpriseをはじめよう
Datastax EnterpriseをはじめようDatastax Enterpriseをはじめよう
Datastax EnterpriseをはじめようYuki Morishita
 
Hadoopのシステム設計・運用のポイント
Hadoopのシステム設計・運用のポイントHadoopのシステム設計・運用のポイント
Hadoopのシステム設計・運用のポイントCloudera Japan
 
40分でわかるHadoop徹底入門 (Cloudera World Tokyo 2014 講演資料)
40分でわかるHadoop徹底入門 (Cloudera World Tokyo 2014 講演資料) 40分でわかるHadoop徹底入門 (Cloudera World Tokyo 2014 講演資料)
40分でわかるHadoop徹底入門 (Cloudera World Tokyo 2014 講演資料) hamaken
 
MongoDBが遅いときの切り分け方法
MongoDBが遅いときの切り分け方法MongoDBが遅いときの切り分け方法
MongoDBが遅いときの切り分け方法Tetsutaro Watanabe
 
トランザクションをSerializableにする4つの方法
トランザクションをSerializableにする4つの方法トランザクションをSerializableにする4つの方法
トランザクションをSerializableにする4つの方法Kumazaki Hiroki
 
爆速クエリエンジン”Presto”を使いたくなる話
爆速クエリエンジン”Presto”を使いたくなる話爆速クエリエンジン”Presto”を使いたくなる話
爆速クエリエンジン”Presto”を使いたくなる話Kentaro Yoshida
 

What's hot (20)

AWSにおけるバッチ処理の ベストプラクティス - Developers.IO Meetup 05
AWSにおけるバッチ処理の ベストプラクティス - Developers.IO Meetup 05AWSにおけるバッチ処理の ベストプラクティス - Developers.IO Meetup 05
AWSにおけるバッチ処理の ベストプラクティス - Developers.IO Meetup 05
 
大量のデータ処理や分析に使えるOSS Apache Sparkのご紹介(Open Source Conference 2020 Online/Kyoto ...
大量のデータ処理や分析に使えるOSS Apache Sparkのご紹介(Open Source Conference 2020 Online/Kyoto ...大量のデータ処理や分析に使えるOSS Apache Sparkのご紹介(Open Source Conference 2020 Online/Kyoto ...
大量のデータ処理や分析に使えるOSS Apache Sparkのご紹介(Open Source Conference 2020 Online/Kyoto ...
 
NetflixにおけるPresto/Spark活用事例
NetflixにおけるPresto/Spark活用事例NetflixにおけるPresto/Spark活用事例
NetflixにおけるPresto/Spark活用事例
 
Apache Sparkに手を出してヤケドしないための基本 ~「Apache Spark入門より」~ (デブサミ 2016 講演資料)
Apache Sparkに手を出してヤケドしないための基本 ~「Apache Spark入門より」~ (デブサミ 2016 講演資料)Apache Sparkに手を出してヤケドしないための基本 ~「Apache Spark入門より」~ (デブサミ 2016 講演資料)
Apache Sparkに手を出してヤケドしないための基本 ~「Apache Spark入門より」~ (デブサミ 2016 講演資料)
 
え、まって。その並列分散処理、Kafkaのしくみでもできるの? Apache Kafkaの機能を利用した大規模ストリームデータの並列分散処理
え、まって。その並列分散処理、Kafkaのしくみでもできるの? Apache Kafkaの機能を利用した大規模ストリームデータの並列分散処理え、まって。その並列分散処理、Kafkaのしくみでもできるの? Apache Kafkaの機能を利用した大規模ストリームデータの並列分散処理
え、まって。その並列分散処理、Kafkaのしくみでもできるの? Apache Kafkaの機能を利用した大規模ストリームデータの並列分散処理
 
大規模データ活用向けストレージレイヤソフトのこれまでとこれから(NTTデータ テクノロジーカンファレンス 2019 講演資料、2019/09/05)
大規模データ活用向けストレージレイヤソフトのこれまでとこれから(NTTデータ テクノロジーカンファレンス 2019 講演資料、2019/09/05)大規模データ活用向けストレージレイヤソフトのこれまでとこれから(NTTデータ テクノロジーカンファレンス 2019 講演資料、2019/09/05)
大規模データ活用向けストレージレイヤソフトのこれまでとこれから(NTTデータ テクノロジーカンファレンス 2019 講演資料、2019/09/05)
 
KafkaとAWS Kinesisの比較
KafkaとAWS Kinesisの比較KafkaとAWS Kinesisの比較
KafkaとAWS Kinesisの比較
 
AWSで作る分析基盤
AWSで作る分析基盤AWSで作る分析基盤
AWSで作る分析基盤
 
JVMのGCアルゴリズムとチューニング
JVMのGCアルゴリズムとチューニングJVMのGCアルゴリズムとチューニング
JVMのGCアルゴリズムとチューニング
 
Hive on Spark の設計指針を読んでみた
Hive on Spark の設計指針を読んでみたHive on Spark の設計指針を読んでみた
Hive on Spark の設計指針を読んでみた
 
At least onceってぶっちゃけ問題の先送りだったよね #kafkajp
At least onceってぶっちゃけ問題の先送りだったよね #kafkajpAt least onceってぶっちゃけ問題の先送りだったよね #kafkajp
At least onceってぶっちゃけ問題の先送りだったよね #kafkajp
 
Apache Arrow - データ処理ツールの次世代プラットフォーム
Apache Arrow - データ処理ツールの次世代プラットフォームApache Arrow - データ処理ツールの次世代プラットフォーム
Apache Arrow - データ処理ツールの次世代プラットフォーム
 
ポスト・ラムダアーキテクチャの切り札? Apache Hudi(NTTデータ テクノロジーカンファレンス 2020 発表資料)
ポスト・ラムダアーキテクチャの切り札? Apache Hudi(NTTデータ テクノロジーカンファレンス 2020 発表資料)ポスト・ラムダアーキテクチャの切り札? Apache Hudi(NTTデータ テクノロジーカンファレンス 2020 発表資料)
ポスト・ラムダアーキテクチャの切り札? Apache Hudi(NTTデータ テクノロジーカンファレンス 2020 発表資料)
 
Azure Database for PostgreSQL 入門 (PostgreSQL Conference Japan 2021)
Azure Database for PostgreSQL 入門 (PostgreSQL Conference Japan 2021)Azure Database for PostgreSQL 入門 (PostgreSQL Conference Japan 2021)
Azure Database for PostgreSQL 入門 (PostgreSQL Conference Japan 2021)
 
Datastax Enterpriseをはじめよう
Datastax EnterpriseをはじめようDatastax Enterpriseをはじめよう
Datastax Enterpriseをはじめよう
 
Hadoopのシステム設計・運用のポイント
Hadoopのシステム設計・運用のポイントHadoopのシステム設計・運用のポイント
Hadoopのシステム設計・運用のポイント
 
40分でわかるHadoop徹底入門 (Cloudera World Tokyo 2014 講演資料)
40分でわかるHadoop徹底入門 (Cloudera World Tokyo 2014 講演資料) 40分でわかるHadoop徹底入門 (Cloudera World Tokyo 2014 講演資料)
40分でわかるHadoop徹底入門 (Cloudera World Tokyo 2014 講演資料)
 
MongoDBが遅いときの切り分け方法
MongoDBが遅いときの切り分け方法MongoDBが遅いときの切り分け方法
MongoDBが遅いときの切り分け方法
 
トランザクションをSerializableにする4つの方法
トランザクションをSerializableにする4つの方法トランザクションをSerializableにする4つの方法
トランザクションをSerializableにする4つの方法
 
爆速クエリエンジン”Presto”を使いたくなる話
爆速クエリエンジン”Presto”を使いたくなる話爆速クエリエンジン”Presto”を使いたくなる話
爆速クエリエンジン”Presto”を使いたくなる話
 

Similar to SparkとCassandraの美味しい関係

Cassandra Meetup Tokyo, 2016 Spring
Cassandra Meetup Tokyo, 2016 SpringCassandra Meetup Tokyo, 2016 Spring
Cassandra Meetup Tokyo, 2016 Springdatastaxjp
 
Cassandra Meetup Tokyo, 2016 Spring
Cassandra Meetup Tokyo, 2016 SpringCassandra Meetup Tokyo, 2016 Spring
Cassandra Meetup Tokyo, 2016 SpringShigeru Harasawa
 
Guide to Cassandra for Production Deployments
Guide to Cassandra for Production DeploymentsGuide to Cassandra for Production Deployments
Guide to Cassandra for Production Deploymentssmdkk
 
[db tech showcase Tokyo 2015] E35: Web, IoT, モバイル時代のデータベース、Apache Cassandraを学ぼう
[db tech showcase Tokyo 2015] E35: Web, IoT, モバイル時代のデータベース、Apache Cassandraを学ぼう[db tech showcase Tokyo 2015] E35: Web, IoT, モバイル時代のデータベース、Apache Cassandraを学ぼう
[db tech showcase Tokyo 2015] E35: Web, IoT, モバイル時代のデータベース、Apache Cassandraを学ぼうdatastaxjp
 
(LT)Spark and Cassandra
(LT)Spark and Cassandra(LT)Spark and Cassandra
(LT)Spark and Cassandradatastaxjp
 
事例で学ぶApache Cassandra
事例で学ぶApache Cassandra事例で学ぶApache Cassandra
事例で学ぶApache CassandraYuki Morishita
 
PHP開発者のためのNoSQL入門
PHP開発者のためのNoSQL入門PHP開発者のためのNoSQL入門
PHP開発者のためのNoSQL入門じゅん なかざ
 
スマートフォン×Cassandraによるハイパフォーマンス基盤の構築事例
スマートフォン×Cassandraによるハイパフォーマンス基盤の構築事例スマートフォン×Cassandraによるハイパフォーマンス基盤の構築事例
スマートフォン×Cassandraによるハイパフォーマンス基盤の構築事例terurou
 
20161027 hadoop summit Generating Recommendations at Amazon Scale with Apach...
20161027 hadoop summit  Generating Recommendations at Amazon Scale with Apach...20161027 hadoop summit  Generating Recommendations at Amazon Scale with Apach...
20161027 hadoop summit Generating Recommendations at Amazon Scale with Apach...Amazon Web Services Japan
 
Spark Summit 2014 の報告と最近の取り組みについて
Spark Summit 2014 の報告と最近の取り組みについてSpark Summit 2014 の報告と最近の取り組みについて
Spark Summit 2014 の報告と最近の取り組みについてRecruit Technologies
 
Apache Spark超入門 (Hadoop / Spark Conference Japan 2016 講演資料)
Apache Spark超入門 (Hadoop / Spark Conference Japan 2016 講演資料)Apache Spark超入門 (Hadoop / Spark Conference Japan 2016 講演資料)
Apache Spark超入門 (Hadoop / Spark Conference Japan 2016 講演資料)NTT DATA OSS Professional Services
 
Couchbase introduction-20150611
Couchbase introduction-20150611Couchbase introduction-20150611
Couchbase introduction-20150611Couchbase Japan KK
 
[db tech showcase Tokyo 2014] L32: Apache Cassandraに注目!!(IoT, Bigdata、NoSQLのバ...
[db tech showcase Tokyo 2014] L32: Apache Cassandraに注目!!(IoT, Bigdata、NoSQLのバ...[db tech showcase Tokyo 2014] L32: Apache Cassandraに注目!!(IoT, Bigdata、NoSQLのバ...
[db tech showcase Tokyo 2014] L32: Apache Cassandraに注目!!(IoT, Bigdata、NoSQLのバ...Insight Technology, Inc.
 
AWS初心者向けWebinar AWSでBig Data活用
AWS初心者向けWebinar AWSでBig Data活用AWS初心者向けWebinar AWSでBig Data活用
AWS初心者向けWebinar AWSでBig Data活用Amazon Web Services Japan
 
Accelerating AdTech on AWS #AWSAdTechJP
Accelerating AdTech on AWS #AWSAdTechJPAccelerating AdTech on AWS #AWSAdTechJP
Accelerating AdTech on AWS #AWSAdTechJPEiji Shinohara
 
【de:code 2020】 Azure Synapse Analytics 技術編 ~ 最新の統合分析プラットフォームによる新しい価値の創出(前編)
【de:code 2020】 Azure Synapse Analytics 技術編 ~ 最新の統合分析プラットフォームによる新しい価値の創出(前編)【de:code 2020】 Azure Synapse Analytics 技術編 ~ 最新の統合分析プラットフォームによる新しい価値の創出(前編)
【de:code 2020】 Azure Synapse Analytics 技術編 ~ 最新の統合分析プラットフォームによる新しい価値の創出(前編)日本マイクロソフト株式会社
 
Developers.IO 2019 Effective Datalake
Developers.IO 2019 Effective DatalakeDevelopers.IO 2019 Effective Datalake
Developers.IO 2019 Effective DatalakeSatoru Ishikawa
 
【ウェブセミナー】マネージドな 100% OSS アナリティクス プラットフォーム HDInsight の最新事情
【ウェブセミナー】マネージドな 100% OSS アナリティクス プラットフォーム HDInsight の最新事情【ウェブセミナー】マネージドな 100% OSS アナリティクス プラットフォーム HDInsight の最新事情
【ウェブセミナー】マネージドな 100% OSS アナリティクス プラットフォーム HDInsight の最新事情Hideo Takagi
 

Similar to SparkとCassandraの美味しい関係 (20)

Cassandra Meetup Tokyo, 2016 Spring
Cassandra Meetup Tokyo, 2016 SpringCassandra Meetup Tokyo, 2016 Spring
Cassandra Meetup Tokyo, 2016 Spring
 
Cassandra Meetup Tokyo, 2016 Spring
Cassandra Meetup Tokyo, 2016 SpringCassandra Meetup Tokyo, 2016 Spring
Cassandra Meetup Tokyo, 2016 Spring
 
Guide to Cassandra for Production Deployments
Guide to Cassandra for Production DeploymentsGuide to Cassandra for Production Deployments
Guide to Cassandra for Production Deployments
 
AWS re:Invent2017で見た AWSの強さとは
AWS re:Invent2017で見た AWSの強さとは AWS re:Invent2017で見た AWSの強さとは
AWS re:Invent2017で見た AWSの強さとは
 
[db tech showcase Tokyo 2015] E35: Web, IoT, モバイル時代のデータベース、Apache Cassandraを学ぼう
[db tech showcase Tokyo 2015] E35: Web, IoT, モバイル時代のデータベース、Apache Cassandraを学ぼう[db tech showcase Tokyo 2015] E35: Web, IoT, モバイル時代のデータベース、Apache Cassandraを学ぼう
[db tech showcase Tokyo 2015] E35: Web, IoT, モバイル時代のデータベース、Apache Cassandraを学ぼう
 
(LT)Spark and Cassandra
(LT)Spark and Cassandra(LT)Spark and Cassandra
(LT)Spark and Cassandra
 
事例で学ぶApache Cassandra
事例で学ぶApache Cassandra事例で学ぶApache Cassandra
事例で学ぶApache Cassandra
 
PHP開発者のためのNoSQL入門
PHP開発者のためのNoSQL入門PHP開発者のためのNoSQL入門
PHP開発者のためのNoSQL入門
 
スマートフォン×Cassandraによるハイパフォーマンス基盤の構築事例
スマートフォン×Cassandraによるハイパフォーマンス基盤の構築事例スマートフォン×Cassandraによるハイパフォーマンス基盤の構築事例
スマートフォン×Cassandraによるハイパフォーマンス基盤の構築事例
 
20161027 hadoop summit Generating Recommendations at Amazon Scale with Apach...
20161027 hadoop summit  Generating Recommendations at Amazon Scale with Apach...20161027 hadoop summit  Generating Recommendations at Amazon Scale with Apach...
20161027 hadoop summit Generating Recommendations at Amazon Scale with Apach...
 
Spark Summit 2014 の報告と最近の取り組みについて
Spark Summit 2014 の報告と最近の取り組みについてSpark Summit 2014 の報告と最近の取り組みについて
Spark Summit 2014 の報告と最近の取り組みについて
 
Apache Spark超入門 (Hadoop / Spark Conference Japan 2016 講演資料)
Apache Spark超入門 (Hadoop / Spark Conference Japan 2016 講演資料)Apache Spark超入門 (Hadoop / Spark Conference Japan 2016 講演資料)
Apache Spark超入門 (Hadoop / Spark Conference Japan 2016 講演資料)
 
Couchbase introduction-20150611
Couchbase introduction-20150611Couchbase introduction-20150611
Couchbase introduction-20150611
 
[db tech showcase Tokyo 2014] L32: Apache Cassandraに注目!!(IoT, Bigdata、NoSQLのバ...
[db tech showcase Tokyo 2014] L32: Apache Cassandraに注目!!(IoT, Bigdata、NoSQLのバ...[db tech showcase Tokyo 2014] L32: Apache Cassandraに注目!!(IoT, Bigdata、NoSQLのバ...
[db tech showcase Tokyo 2014] L32: Apache Cassandraに注目!!(IoT, Bigdata、NoSQLのバ...
 
Azure Datalake 大全
Azure Datalake 大全Azure Datalake 大全
Azure Datalake 大全
 
AWS初心者向けWebinar AWSでBig Data活用
AWS初心者向けWebinar AWSでBig Data活用AWS初心者向けWebinar AWSでBig Data活用
AWS初心者向けWebinar AWSでBig Data活用
 
Accelerating AdTech on AWS #AWSAdTechJP
Accelerating AdTech on AWS #AWSAdTechJPAccelerating AdTech on AWS #AWSAdTechJP
Accelerating AdTech on AWS #AWSAdTechJP
 
【de:code 2020】 Azure Synapse Analytics 技術編 ~ 最新の統合分析プラットフォームによる新しい価値の創出(前編)
【de:code 2020】 Azure Synapse Analytics 技術編 ~ 最新の統合分析プラットフォームによる新しい価値の創出(前編)【de:code 2020】 Azure Synapse Analytics 技術編 ~ 最新の統合分析プラットフォームによる新しい価値の創出(前編)
【de:code 2020】 Azure Synapse Analytics 技術編 ~ 最新の統合分析プラットフォームによる新しい価値の創出(前編)
 
Developers.IO 2019 Effective Datalake
Developers.IO 2019 Effective DatalakeDevelopers.IO 2019 Effective Datalake
Developers.IO 2019 Effective Datalake
 
【ウェブセミナー】マネージドな 100% OSS アナリティクス プラットフォーム HDInsight の最新事情
【ウェブセミナー】マネージドな 100% OSS アナリティクス プラットフォーム HDInsight の最新事情【ウェブセミナー】マネージドな 100% OSS アナリティクス プラットフォーム HDInsight の最新事情
【ウェブセミナー】マネージドな 100% OSS アナリティクス プラットフォーム HDInsight の最新事情
 

More from datastaxjp

Db tech showcase 2016
Db tech showcase 2016Db tech showcase 2016
Db tech showcase 2016datastaxjp
 
Cassandra Meetup Tokyo, 2016 Spring 2
Cassandra Meetup Tokyo, 2016 Spring 2Cassandra Meetup Tokyo, 2016 Spring 2
Cassandra Meetup Tokyo, 2016 Spring 2datastaxjp
 
検索エンジンPatheeがAzureとCassandraをどう利用しているのか
検索エンジンPatheeがAzureとCassandraをどう利用しているのか検索エンジンPatheeがAzureとCassandraをどう利用しているのか
検索エンジンPatheeがAzureとCassandraをどう利用しているのかdatastaxjp
 
Cassandra v3.0 at Rakuten meet-up on 12/2/2015
Cassandra v3.0 at Rakuten meet-up on 12/2/2015Cassandra v3.0 at Rakuten meet-up on 12/2/2015
Cassandra v3.0 at Rakuten meet-up on 12/2/2015datastaxjp
 
Investigation of Transactions in Cassandra
Investigation of Transactions in CassandraInvestigation of Transactions in Cassandra
Investigation of Transactions in Cassandradatastaxjp
 
Cassandra summit 2015 レポート
Cassandra summit 2015 レポートCassandra summit 2015 レポート
Cassandra summit 2015 レポートdatastaxjp
 
Cassandra Meetup Tokyo, 2015 Summer
Cassandra Meetup Tokyo, 2015 SummerCassandra Meetup Tokyo, 2015 Summer
Cassandra Meetup Tokyo, 2015 Summerdatastaxjp
 
Cassandra and Spark
Cassandra and Spark Cassandra and Spark
Cassandra and Spark datastaxjp
 
[Cassandra summit Tokyo, 2015] Apache Cassandra日本人コミッターが伝える、"Apache Cassandra...
[Cassandra summit Tokyo, 2015] Apache Cassandra日本人コミッターが伝える、"Apache Cassandra...[Cassandra summit Tokyo, 2015] Apache Cassandra日本人コミッターが伝える、"Apache Cassandra...
[Cassandra summit Tokyo, 2015] Apache Cassandra日本人コミッターが伝える、"Apache Cassandra...datastaxjp
 
[Cassandra summit Tokyo, 2015] Cassandra 2015 最新情報 by ジョナサン・エリス(Jonathan Ellis)
[Cassandra summit Tokyo, 2015] Cassandra 2015 最新情報 by ジョナサン・エリス(Jonathan Ellis)[Cassandra summit Tokyo, 2015] Cassandra 2015 最新情報 by ジョナサン・エリス(Jonathan Ellis)
[Cassandra summit Tokyo, 2015] Cassandra 2015 最新情報 by ジョナサン・エリス(Jonathan Ellis)datastaxjp
 
[db tech showcase Tokyo 2015] A27: RDBエンジニアの為のNOSQL, 今どうしてNOSQLなのか?
[db tech showcase Tokyo 2015] A27: RDBエンジニアの為のNOSQL, 今どうしてNOSQLなのか?[db tech showcase Tokyo 2015] A27: RDBエンジニアの為のNOSQL, 今どうしてNOSQLなのか?
[db tech showcase Tokyo 2015] A27: RDBエンジニアの為のNOSQL, 今どうしてNOSQLなのか?datastaxjp
 

More from datastaxjp (11)

Db tech showcase 2016
Db tech showcase 2016Db tech showcase 2016
Db tech showcase 2016
 
Cassandra Meetup Tokyo, 2016 Spring 2
Cassandra Meetup Tokyo, 2016 Spring 2Cassandra Meetup Tokyo, 2016 Spring 2
Cassandra Meetup Tokyo, 2016 Spring 2
 
検索エンジンPatheeがAzureとCassandraをどう利用しているのか
検索エンジンPatheeがAzureとCassandraをどう利用しているのか検索エンジンPatheeがAzureとCassandraをどう利用しているのか
検索エンジンPatheeがAzureとCassandraをどう利用しているのか
 
Cassandra v3.0 at Rakuten meet-up on 12/2/2015
Cassandra v3.0 at Rakuten meet-up on 12/2/2015Cassandra v3.0 at Rakuten meet-up on 12/2/2015
Cassandra v3.0 at Rakuten meet-up on 12/2/2015
 
Investigation of Transactions in Cassandra
Investigation of Transactions in CassandraInvestigation of Transactions in Cassandra
Investigation of Transactions in Cassandra
 
Cassandra summit 2015 レポート
Cassandra summit 2015 レポートCassandra summit 2015 レポート
Cassandra summit 2015 レポート
 
Cassandra Meetup Tokyo, 2015 Summer
Cassandra Meetup Tokyo, 2015 SummerCassandra Meetup Tokyo, 2015 Summer
Cassandra Meetup Tokyo, 2015 Summer
 
Cassandra and Spark
Cassandra and Spark Cassandra and Spark
Cassandra and Spark
 
[Cassandra summit Tokyo, 2015] Apache Cassandra日本人コミッターが伝える、"Apache Cassandra...
[Cassandra summit Tokyo, 2015] Apache Cassandra日本人コミッターが伝える、"Apache Cassandra...[Cassandra summit Tokyo, 2015] Apache Cassandra日本人コミッターが伝える、"Apache Cassandra...
[Cassandra summit Tokyo, 2015] Apache Cassandra日本人コミッターが伝える、"Apache Cassandra...
 
[Cassandra summit Tokyo, 2015] Cassandra 2015 最新情報 by ジョナサン・エリス(Jonathan Ellis)
[Cassandra summit Tokyo, 2015] Cassandra 2015 最新情報 by ジョナサン・エリス(Jonathan Ellis)[Cassandra summit Tokyo, 2015] Cassandra 2015 最新情報 by ジョナサン・エリス(Jonathan Ellis)
[Cassandra summit Tokyo, 2015] Cassandra 2015 最新情報 by ジョナサン・エリス(Jonathan Ellis)
 
[db tech showcase Tokyo 2015] A27: RDBエンジニアの為のNOSQL, 今どうしてNOSQLなのか?
[db tech showcase Tokyo 2015] A27: RDBエンジニアの為のNOSQL, 今どうしてNOSQLなのか?[db tech showcase Tokyo 2015] A27: RDBエンジニアの為のNOSQL, 今どうしてNOSQLなのか?
[db tech showcase Tokyo 2015] A27: RDBエンジニアの為のNOSQL, 今どうしてNOSQLなのか?
 

SparkとCassandraの美味しい関係

  • 1. ©2015 DataStax Confidential. Do not distribute without consent. Apache Cassandra と Sparkの美味しい関係 1 DataStax 原沢滋 @Cassandrajapan
  • 2. ©2015 DataStax Confidential. Do not distribute without consent. 最初にApache Cassandraとは
  • 3. ©2015 DataStax Confidential. Do not distribute without consent. 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. ©2015 DataStax Confidential. Do not distribute without consent. 100,000+ ノード 数十ペタバイト 数百万件/秒以上オペレーション 最大クラスタのノード数1,000+ バージョンはv1.2 とv2.0を利用 (写真は昨年のもの)
  • 5. ©2015 DataStax Confidential. Do not distribute without consent. ソニーにおけるApache Cassandra •  Cassandraを6ヶ月でプロダクション •  リニアスケーラビリティ •  パフォーマンス •  ダウンタイムがない •  運用が楽 •  コスト データスループット: Gigabytes/sec トランザクション: >200,000/sec データサイズ: Tens of terabytes
  • 6. ©2015 DataStax Confidential. Do not distribute without consent. NetflixにおけるDataStax Enterprise(DSE) (Apache Cassandra) Netflix は映像ストリーミング配信会社 •  Netflix の全データベースのち95%を DSE を 利用 •  スループットは1千万トランザクション/秒 •  1日1兆トランザクションをDSE で処理 •  世界各地にある6つのデータセンターの Oracle を置き換え、100%クラウドで実現 •  AWSの大規模の再起動の際も全く問題なく24 時間x365日のサービスをCassandraで提供
  • 7. ©2015 DataStax Confidential. Do not distribute without consent. 7
  • 8. ©2015 DataStax Confidential. Do not distribute without consent. 8
  • 9. ©2015 DataStax Confidential. Do not distribute without consent. C* C* C* C*C* C* Cassandra のアーキテクチャ •  Shared Nothing (データだけでなく機能まで) •  マスターという概念がなく、すべてのノードが完全に同じ機能を持つ •  ハイパフォーマンスでリニアにスケールする •  常にサービスを止めない レプリケーション (データのコピー) は何台に持たせるかを決められる Replication factor=3 7369,原沢 7369,原沢 7369,原沢 マシンが故障しても、 特定のマシンが特定の機能を 持っている訳ではないので、 他のデータのあるマシンが 同じ作業を全く問題なく処理 する事が可能
  • 10. ©2015 DataStax Confidential. Do not distribute without consent. Cassandra のアーキテクチャ(マルチデータセンター) •  複数のデータセンター内でのレプリケーションも自動で行う事が可能 •  双方向のマルチデータセンターでのレプリケーションを行う •  どのデータセンターのどのノードを対象に対しても読み取り/書き込みが可能 •  故障時はドライバが判断して、接続できるノードに接続を行う C* C* C* C* C* C* C* C* C* C* C* C* C* C* C* C* C* C* 東京 大阪 クラウド 7369,原沢 7369,原沢 7369,原沢 7369,原沢 7369,原沢 7369,原沢 7369,原沢 7369,原沢 7369,原沢
  • 11. ©2015 DataStax Confidential. Do not distribute without consent. Cassandra のアーキテクチャ(マルチデータセンター) •  複数のデータセンター内でのレプリケーションも自動で行う事が可能 •  双方向のマルチデータセンターでのレプリケーションを行う •  どのデータセンターのどのノードを対象に対しても読み取り/書き込みが可能 •  故障時はドライバが判断して、接続できるノードに接続を行う C* C* C* C* C* C* C* C* C* C* C* C* C* C* C* C* C* C* 東京 大阪 クラウド 7369,原沢 7369,原沢 7369,原沢 7369,原沢 7369,原沢 7369,原沢 7369,原沢 7369,原沢 7369,原沢
  • 12. ©2015 DataStax Confidential. Do not distribute without consent. C* C* C* C*C* C* Cassandra 向きのアプリケーション 7369,原沢 7369,原沢 7369,原沢 WEB アプリケーション Mobile, センサー ゲーム、インターネット IoT リアルタイム
  • 13. ©2015 DataStax Confidential. Do not distribute without consent. たとえば: 気象観測データの場合 すべての気象観測所のデータを
 リアルタイムに時系列でCassandraに保持 アプリケーションは時系列でデータを取得
  • 14. ©2015 DataStax Confidential. Do not distribute without consent. 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);! 気象データを • 気象観測所のIDで検索 • 気象観測所のIDと時間で検索 • 気象観測所のIDと時間の範囲で検索 たとえば: 気象観測データの場合
  • 15. ©2015 DataStax Confidential. Do not distribute without consent. 渋谷、東京 2015年12月9日 最高気温:17℃ 最低気温:7℃ 平均気温:10℃ でもちょっと統計を取ろうとすると大変 気象観測所のIDで集約統計したテーブルを用意 • 気象観測所のIDで検索 • 気象観測所のIDと時間で検索 • 気象観測所のIDと時間の範囲で検索 CREATE TABLE daily_aggregate_temperature (! wsid text,! year int,! month int,! day int,! high double,! low double,! mean double,! variance double,! stdev double,! PRIMARY KEY ((wsid), year, month, day)! ) WITH CLUSTERING ORDER BY (year DESC, month DESC, day DESC);!
  • 16. ©2015 DataStax Confidential. Do not distribute without consent. Max, Min, Avgとか使えないの?  使えません 基本すべてのデータに対しての集約関数はCassandraではありません 但し、最新版(CQL 3.3, Cassandra 2.2以降)では、今回のような 場合だと、気象観測所ID(WSID)がPartition Keyなので使えます。 が・・・例えば、東京23区のMax, Min, Avgはダメです でもちょっと統計を取ろうとすると大変
  • 17. ©2015 DataStax Confidential. Do not distribute without consent. どういうことか? C* C* C* C*C* C* 7369,渋谷, 東京 7379,目黒,東京 7389,練馬,東京 分散データベースにおいて、データを複数マシンから集めて集約するのは 大変!! 東京23区のデータの 集約をしたい 7369,品川, 東京 7369,新宿, 東京 7369,世田谷, 東京 すべてのノードが処理、 各ノードで複数件レンジス キャンする 分散オペレーショナルデータベースと しては最悪のケース なので させない(できない) !!!!
  • 18. ©2015 DataStax Confidential. Do not distribute without consent. どういうことか? C* C* C* C*C* C* 7369,渋谷, 東京 7379,目黒,東京 7389,練馬,東京 分散データベースにおいて、集約するのは推奨しない でも・・・ 東京と渋谷のデータ だけ集約したい Partition Key(先ほど のケースだとWSID) のみ集約は可能 7369,品川, 東京 7369,新宿, 東京 7369,世田谷, 東京 1つのノードだけで レンジスキャンする 分散オペレーショナルデータベースと しては他のノードには影響を与えないので 許容する(Cassandra 2.2以降)
  • 19. ©2015 DataStax Confidential. Do not distribute without consent. ちなみに C* C* C* C*C* C* 7369,渋谷, 東京 7379,目黒,東京 7389,練馬,東京 分散データベースにおいて、Keyでデータを検索するのは最高!! 渋谷、東京の 1レコードだけ検索 7369,品川, 東京 7369,新宿, 東京 7369,世田谷, 東京 1つのノードで1レコードだけ検 索 分散オペレーショナルデータベースの為 の処理 ベスト! しかも分散なので 複数ノードで大量に処理できる!! ✔ ✔
  • 20. ©2015 DataStax Confidential. Do not distribute without consent. では、Apache Sparkとは?
  • 21. ©2015 DataStax Confidential. Do not distribute without consent. Data Science at Scale 2009
  • 22. ©2015 DataStax Confidential. Do not distribute without consent. Apache Sparkとは Apache Spark is an open source cluster computing framework originally developed in the AMPLab at University of California, Berkeley but was later donated to the Apache Software Foundation where it remains today. In contrast to Hadoop's two-stage disk-based MapReduce paradigm, Spark's multi-stage in-memory primitives provides performance up to 100 times faster for certain applications.[1] By allowing user programs to load data into a cluster's memory and query it repeatedly, Spark is well-suited to machine learning algorithms.[2] Spark requires a cluster manager and a distributed storage system. For cluster management, Spark supports standalone (native Spark cluster), Hadoop YARN, or Apache Mesos.[3] For distributed storage, Spark can interface with a wide variety, including Hadoop Distributed File System (HDFS),[4] Cassandra,[5] OpenStack Swift, Amazon S3, Kudu, or a custom solution can be implemented. Spark also supports a pseudo-distributed local mode, usually used only for development or testing purposes, where distributed storage is not required and the local file system can be used instead; in such a scenario, Spark is run on a single machine with one executor per CPU core. Spark had in excess of 465 contributors in 2014,[6] making it not only the most active project in the Apache Software Foundation[citation needed] but one of the most active open source big data projects.[citation needed 出典:Wikipedia https://en.wikipedia.org/wiki/Apache_Spark •  Apache Sparkはopen Source のクラスターコンピューティングフレームワーク •  AMPLab (UCB)が開発し、Apacheプロジェクトとなる •  HadoopのMapReduceのMapとReduceの二回層の作りではなく、In-Memoryでのマルチ層での処理が可能 •  パフォーマンスはMapReduceの100倍?(特定のものでは・・・) •  マシーン・ラーナニング向きであるとされる、なぜなら・・・ •  SparkはHadoopのように分散の複数のストレージを利用する(大量データ) •  クラスターマネージメントとしては、Standalone, YARN, Mesosをサポート •  いろいろの分散システムとのインターフェースを持つ(HDFS, Swift, S3, Kudu, CASSANDRA, etc…)
  • 23. ©2015 DataStax Confidential. Do not distribute without consent. Sparkは大量データをスキャンするのが得意 Input Data Map Reduce Intermediate Data Output Data ディスクMapReduce
  • 24. ©2015 DataStax Confidential. Do not distribute without consent. メモリーを使って Input Data Spark Intermediate Data Output Data ディスク メモリー
  • 25. ©2015 DataStax Confidential. Do not distribute without consent. Spark Streaming Near Real-time SparkSQL Structured Data MLLib Machine Learning GraphX Graph Analysis Sparkは大量データをスキャンするのが得意
  • 26. ©2015 DataStax Confidential. Do not distribute without consent. Store a ton of data Analyze a ton of data Cassandra と Sparkの良い関係 大量データをスキャンして 高速に集約、分析するのが得意 大量データをスキャンして 集約、分析するのが苦手 高速に、安全に大量のデータを 集めてくるのが得意 データを集めてくるのは不得意 バッチでデータを集めたりする 得意分野x得意分野 不得意分野を補う
  • 27. ©2015 DataStax Confidential. Do not distribute without consent. Spark Streaming Near Real-time SparkSQL Structured Data MLLib Machine Learning GraphX Graph Analysis Cassandra と Sparkの良い関係
  • 28. ©2015 DataStax Confidential. Do not distribute without consent. Spark Streaming Near Real-time 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の良い関係
  • 29. ©2015 DataStax Confidential. Do not distribute without consent. Cassandra Cassandra + Spark Join, Union No Yes データ変換 (Transformation) Limited Yes 外部データとの連携 No Yes 計算、集計 Limited Yes Cassandra と Sparkの良い関係
  • 30. ©2015 DataStax Confidential. Do not distribute without consent. もちろんCassandraと同じレプリケーション機能がありますのでデータは レプリケーションされる 分散データを各 ノードで分析する
 パラレル処理 を行う事が可能 各ノードにCassandraとSpark Cassandra と Sparkの良い関係
  • 31. ©2015 DataStax Confidential. Do not distribute without consent. えっ!! でもちょっと待って!! Cassandra と Sparkの良い関係 てなるって P17で 言ったじゃ ん! レンジスキャン したら
  • 32. ©2015 DataStax Confidential. Do not distribute without consent. はい・・・ 正しいです。 Cassandra と Sparkの良い関係 なので・・・
  • 33. ©2015 DataStax Confidential. Do not distribute without consent. Cassandra と Sparkの良い関係 こうすれば完璧です。マルチデータセンター オペレーショナル 環境 分析環境双方向レプリケーション
  • 34. ©2015 DataStax Confidential. Do not distribute without consent. ETL不要!!(リアルタイムのデータの反映) Cassandra と Sparkの良い関係 オペレーション
  • 35. ©2015 DataStax Confidential. Do not distribute without consent. リアルタイムにオペレーショナルに負担なしで分析 Cassandra と Sparkの良い関係 オペレーション
  • 36. ©2015 DataStax Confidential. Do not distribute without consent. 分析結果をリアルタイムでオペレーショナル環境に反映 Cassandra と Sparkの良い関係 分析結果の書き込みリアルタイムの分析 結果の検索
  • 37. ©2015 DataStax Confidential. Do not distribute without consent. Executer Master Worker Executer Executer ノード 各Cassandra+Sparkノードでは
  • 38. ©2015 DataStax Confidential. Do not distribute without consent. Executer Master Worker Executer Executer SELECT *! FROM keyspace.table! WHERE token(pk) > 75! AND token(pk) <= 99! Spark RDD Spark Partition! Spark Partition! Spark Partition! Spark Connector! 各Cassandra+Sparkノードでは ノード
  • 39. ©2015 DataStax Confidential. Do not distribute without consent. Executer Master Worker Executer Executer Spark RDD Spark Partition! Spark Partition! Spark Partition! 各Cassandra+Sparkノードでは ノード
  • 40. ©2015 DataStax Confidential. Do not distribute without consent. Cassandra Only DC Cassandra + Spark DC Spark Jobs Spark Streaming Hot データ、Warm データCold データ MapReduce Pig Hive/Tez Spark Storm Hbase HDFS YARN データレイクのように バッチでデータを集めて分析処理 Nearリアルタイムで分析処理をSpark Streamingも可能 Cassandra と Sparkの良い関係
  • 41. ©2015 DataStax Confidential. Do not distribute without consent. Spark Streaming Near Real-time 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の良い関係 リアルタイム 分析 オペレーショナル データ 分析結果 検索結果 分析結果 分析結果 オペレーショナルデータ
  • 42. ©2015 DataStax Confidential. Do not distribute without consent. Store a ton of data Analyze a ton of data Cassandra と Sparkの良い関係
  • 43. ©2015 DataStax Confidential. Do not distribute without consent. ありがとうございました Twitter account: @cassandrajapanで情報発信しています