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

OpenStack超入門シリーズ Novaのディスク周りあれこれ
OpenStack超入門シリーズ Novaのディスク周りあれこれOpenStack超入門シリーズ Novaのディスク周りあれこれ
OpenStack超入門シリーズ Novaのディスク周りあれこれ
Toru Makabe
 

What's hot (20)

Unified JVM Logging
Unified JVM LoggingUnified JVM Logging
Unified JVM Logging
 
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)
 
HDFSのスケーラビリティの限界を突破するためのさまざまな取り組み | Hadoop / Spark Conference Japan 2019 #hc...
HDFSのスケーラビリティの限界を突破するためのさまざまな取り組み | Hadoop / Spark Conference Japan 2019  #hc...HDFSのスケーラビリティの限界を突破するためのさまざまな取り組み | Hadoop / Spark Conference Japan 2019  #hc...
HDFSのスケーラビリティの限界を突破するためのさまざまな取り組み | Hadoop / Spark Conference Japan 2019 #hc...
 
PostgreSQLのリカバリ超入門(もしくはWAL、CHECKPOINT、オンラインバックアップの仕組み)
PostgreSQLのリカバリ超入門(もしくはWAL、CHECKPOINT、オンラインバックアップの仕組み)PostgreSQLのリカバリ超入門(もしくはWAL、CHECKPOINT、オンラインバックアップの仕組み)
PostgreSQLのリカバリ超入門(もしくはWAL、CHECKPOINT、オンラインバックアップの仕組み)
 
OSSプロジェクトへのコントリビューション はじめの一歩を踏み出そう!(Open Source Conference 2022 Online/Spring...
OSSプロジェクトへのコントリビューション はじめの一歩を踏み出そう!(Open Source Conference 2022 Online/Spring...OSSプロジェクトへのコントリビューション はじめの一歩を踏み出そう!(Open Source Conference 2022 Online/Spring...
OSSプロジェクトへのコントリビューション はじめの一歩を踏み出そう!(Open Source Conference 2022 Online/Spring...
 
実運用して分かったRabbit MQの良いところ・気をつけること #jjug
実運用して分かったRabbit MQの良いところ・気をつけること #jjug実運用して分かったRabbit MQの良いところ・気をつけること #jjug
実運用して分かったRabbit MQの良いところ・気をつけること #jjug
 
爆速クエリエンジン”Presto”を使いたくなる話
爆速クエリエンジン”Presto”を使いたくなる話爆速クエリエンジン”Presto”を使いたくなる話
爆速クエリエンジン”Presto”を使いたくなる話
 
Vacuum徹底解説
Vacuum徹底解説Vacuum徹底解説
Vacuum徹底解説
 
ゼロからはじめるKVM超入門
ゼロからはじめるKVM超入門ゼロからはじめるKVM超入門
ゼロからはじめるKVM超入門
 
OpenStack超入門シリーズ Novaのディスク周りあれこれ
OpenStack超入門シリーズ Novaのディスク周りあれこれOpenStack超入門シリーズ Novaのディスク周りあれこれ
OpenStack超入門シリーズ Novaのディスク周りあれこれ
 
これがCassandra
これがCassandraこれがCassandra
これがCassandra
 
超実践 Cloud Spanner 設計講座
超実践 Cloud Spanner 設計講座超実践 Cloud Spanner 設計講座
超実践 Cloud Spanner 設計講座
 
PostgreSQLのロール管理とその注意点(Open Source Conference 2022 Online/Osaka 発表資料)
PostgreSQLのロール管理とその注意点(Open Source Conference 2022 Online/Osaka 発表資料)PostgreSQLのロール管理とその注意点(Open Source Conference 2022 Online/Osaka 発表資料)
PostgreSQLのロール管理とその注意点(Open Source Conference 2022 Online/Osaka 発表資料)
 
PostgreSQL10を導入!大規模データ分析事例からみるDWHとしてのPostgreSQL活用のポイント
PostgreSQL10を導入!大規模データ分析事例からみるDWHとしてのPostgreSQL活用のポイントPostgreSQL10を導入!大規模データ分析事例からみるDWHとしてのPostgreSQL活用のポイント
PostgreSQL10を導入!大規模データ分析事例からみるDWHとしてのPostgreSQL活用のポイント
 
Hadoop/Spark で Amazon S3 を徹底的に使いこなすワザ (Hadoop / Spark Conference Japan 2019)
Hadoop/Spark で Amazon S3 を徹底的に使いこなすワザ (Hadoop / Spark Conference Japan 2019)Hadoop/Spark で Amazon S3 を徹底的に使いこなすワザ (Hadoop / Spark Conference Japan 2019)
Hadoop/Spark で Amazon S3 を徹底的に使いこなすワザ (Hadoop / Spark Conference Japan 2019)
 
マルチテナント化で知っておきたいデータベースのこと
マルチテナント化で知っておきたいデータベースのことマルチテナント化で知っておきたいデータベースのこと
マルチテナント化で知っておきたいデータベースのこと
 
AWS Black Belt Online Seminar 2016 AWS CloudFormation
AWS Black Belt Online Seminar 2016 AWS CloudFormationAWS Black Belt Online Seminar 2016 AWS CloudFormation
AWS Black Belt Online Seminar 2016 AWS CloudFormation
 
PostgreSQLでスケールアウト
PostgreSQLでスケールアウトPostgreSQLでスケールアウト
PostgreSQLでスケールアウト
 
Apache Airflow入門 (マーケティングデータ分析基盤技術勉強会)
Apache Airflow入門  (マーケティングデータ分析基盤技術勉強会)Apache Airflow入門  (マーケティングデータ分析基盤技術勉強会)
Apache Airflow入門 (マーケティングデータ分析基盤技術勉強会)
 
Hiveを高速化するLLAP
Hiveを高速化するLLAPHiveを高速化するLLAP
Hiveを高速化するLLAP
 

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

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
 
Datastax Enterpriseをはじめよう
Datastax EnterpriseをはじめようDatastax Enterpriseをはじめよう
Datastax Enterpriseをはじめよう
 
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
 

More from 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なのか?
 

Recently uploaded

2024年5月25日Serverless Meetup大阪 アプリケーションをどこで動かすべきなのか.pptx
2024年5月25日Serverless Meetup大阪 アプリケーションをどこで動かすべきなのか.pptx2024年5月25日Serverless Meetup大阪 アプリケーションをどこで動かすべきなのか.pptx
2024年5月25日Serverless Meetup大阪 アプリケーションをどこで動かすべきなのか.pptx
ssuserbefd24
 
研究紹介スライド: オフライン強化学習に基づくロボティックスワームの制御器の設計
研究紹介スライド: オフライン強化学習に基づくロボティックスワームの制御器の設計研究紹介スライド: オフライン強化学習に基づくロボティックスワームの制御器の設計
研究紹介スライド: オフライン強化学習に基づくロボティックスワームの制御器の設計
atsushi061452
 

Recently uploaded (11)

2024年5月25日Serverless Meetup大阪 アプリケーションをどこで動かすべきなのか.pptx
2024年5月25日Serverless Meetup大阪 アプリケーションをどこで動かすべきなのか.pptx2024年5月25日Serverless Meetup大阪 アプリケーションをどこで動かすべきなのか.pptx
2024年5月25日Serverless Meetup大阪 アプリケーションをどこで動かすべきなのか.pptx
 
クラウド時代におけるSREとUPWARDの取組ーUPWARD株式会社 CTO門畑
クラウド時代におけるSREとUPWARDの取組ーUPWARD株式会社 CTO門畑クラウド時代におけるSREとUPWARDの取組ーUPWARD株式会社 CTO門畑
クラウド時代におけるSREとUPWARDの取組ーUPWARD株式会社 CTO門畑
 
部内勉強会(IT用語ざっくり学習) 実施日:2024年5月17日(金) 対象者:営業部社員
部内勉強会(IT用語ざっくり学習) 実施日:2024年5月17日(金) 対象者:営業部社員部内勉強会(IT用語ざっくり学習) 実施日:2024年5月17日(金) 対象者:営業部社員
部内勉強会(IT用語ざっくり学習) 実施日:2024年5月17日(金) 対象者:営業部社員
 
論文紹介:Deep Occlusion-Aware Instance Segmentation With Overlapping BiLayers
論文紹介:Deep Occlusion-Aware Instance Segmentation With Overlapping BiLayers論文紹介:Deep Occlusion-Aware Instance Segmentation With Overlapping BiLayers
論文紹介:Deep Occlusion-Aware Instance Segmentation With Overlapping BiLayers
 
研究紹介スライド: オフライン強化学習に基づくロボティックスワームの制御器の設計
研究紹介スライド: オフライン強化学習に基づくロボティックスワームの制御器の設計研究紹介スライド: オフライン強化学習に基づくロボティックスワームの制御器の設計
研究紹介スライド: オフライン強化学習に基づくロボティックスワームの制御器の設計
 
論文紹介:ViTPose: Simple Vision Transformer Baselines for Human Pose Estimation
論文紹介:ViTPose: Simple Vision Transformer Baselines for Human Pose Estimation論文紹介:ViTPose: Simple Vision Transformer Baselines for Human Pose Estimation
論文紹介:ViTPose: Simple Vision Transformer Baselines for Human Pose Estimation
 
Amazon Cognitoで実装するパスキー (Security-JAWS【第33回】 勉強会)
Amazon Cognitoで実装するパスキー (Security-JAWS【第33回】 勉強会)Amazon Cognitoで実装するパスキー (Security-JAWS【第33回】 勉強会)
Amazon Cognitoで実装するパスキー (Security-JAWS【第33回】 勉強会)
 
5/22 第23回 Customer系エンジニア座談会のスライド 公開用 西口瑛一
5/22 第23回 Customer系エンジニア座談会のスライド 公開用 西口瑛一5/22 第23回 Customer系エンジニア座談会のスライド 公開用 西口瑛一
5/22 第23回 Customer系エンジニア座談会のスライド 公開用 西口瑛一
 
Intranet Development v1.0 (TSG LIVE! 12 LT )
Intranet Development v1.0 (TSG LIVE! 12 LT )Intranet Development v1.0 (TSG LIVE! 12 LT )
Intranet Development v1.0 (TSG LIVE! 12 LT )
 
20240523_IoTLT_vol111_kitazaki_v1___.pdf
20240523_IoTLT_vol111_kitazaki_v1___.pdf20240523_IoTLT_vol111_kitazaki_v1___.pdf
20240523_IoTLT_vol111_kitazaki_v1___.pdf
 
ロボットマニピュレーションの作業・動作計画 / rosjp_planning_for_robotic_manipulation_20240521
ロボットマニピュレーションの作業・動作計画 / rosjp_planning_for_robotic_manipulation_20240521ロボットマニピュレーションの作業・動作計画 / rosjp_planning_for_robotic_manipulation_20240521
ロボットマニピュレーションの作業・動作計画 / rosjp_planning_for_robotic_manipulation_20240521
 

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で情報発信しています