datastax enterpriseをはじめよう
TRANSCRIPT
スピーカー
森下雄貴
DataStaxソリューションアーキテクト/時々エンジニア: 2011年11月-
Apache Cassandraコミッター: 2012年5月-
© DataStax, All Rights Reserved.2
DataStaxはどんな会社?
“The power behind the moment.”
• Apache Cassandra のサポート会社?
• Apache Cassandraコミッター 15名 (2017年6月)
• 80%以上のコード貢献
• 豊富なオンラインマテリアル
それだけではありません。
© DataStax, All Rights Reserved.3
DataStax
Enterprise
Apache Cassandraを中核にした製品
+ サポート
+ プロフェッショナルサービス
+ トレーニング
© DataStax, All Rights Reserved.4
あなたの日常を支えるApache Cassandra
• 通勤中は、iPhone から Spotify を起動して音楽をストリーミング。
• と同時に、Instagram のコメントチェック。
• 会社についてPC起動したら、まず Yahoo! Japan。
• そのあと仕事は Office365で。
• 夜は寝そべって、Netflix で”House of Cards”を見る。
• 休日は、PlayStation 4 でゲーム Overwatchのオンラインプレイ。
© DataStax, All Rights Reserved.5
あなたの日常を支えるApache Cassandra
• 通勤中は、iPhone から Spotify を起動して音楽をストリーミング。
• と同時に、Instagram のコメントチェック。
• 会社についてPC起動したら、まず Yahoo! Japan。
• そのあと仕事は Office365で。
• 夜は寝そべって、Netflix で”House of Cards”を見る。
• 休日は、PlayStation 4 でゲーム Overwatchのオンラインプレイ。
© DataStax, All Rights Reserved.6
なぜ選ばれるのか
7
簡単にスケール
常にオン● どんな障害にも耐えうる設計
● どんなデータも見逃さずに取り込む
● ビジネスにフォーカス
即座に分析● アプリケーションに分析機能を組み込み、次のアクションにすぐにつなげる
© DataStax, All Rights Reserved.
DSEの入手とインストール
https://academy.datastax.com
• ユーザー登録後ダウンロード
• 充実したトレーニングコース
• 無償で評価可能
• インストール
• tar.gz (要Java)
• RPM
• deb
© DataStax, All Rights Reserved.9
デモ: Docker
本日のデモはすべてDockerを利用して行います。
DataStaxオフィシャルイメージは準備中。
> docker pull luketillman/datastax-enterprise:5.1.1
© DataStax, All Rights Reserved.10
Apache Cassandra™
• DSEのコア
• オープンソースの分散データベース
– 大量のデータの中から目的のデータに素早くアクセス
– ハイスケーラビリティ
– 高可用性
• 世界中で豊富な利用実績
– Apple
– Spotify
– Sony Playstation
– など多数
© DataStax, All Rights Reserved.11
分散データベース?
• 複数のノードで一つのデータベースを構成
• すべてのノードがマスターノード
• トランザクション数、データ数の増加に応じてスケールアウト
© DataStax, All Rights Reserved.12
複数のノードでデータベースを構成
• ノード: 単独のインスタンス
• ラック: ノードの論理的なグループ(省略可)
• データセンター: ラックまたはノードの論理的なグループ
• クラスター: データセンターの論理的なグループ
© DataStax, All Rights Reserved.13
DC1 DC2
RAC2
RAC1
クラスターを構築
• ノードはゴシッププロトコルを用いて互いに通信しあう
• 設定ファイルで最初にコンタクトするノード(Seed/シード)を指定
© DataStax, All Rights Reserved.15
# any class that implements the SeedProvider interface and has a
# constructor that takes a Map<String, String> of parameters will do.
seed_provider:
# Addresses of hosts that are deemed contact points.
# Cassandra nodes use this list of hosts to find each other and learn
# the topology of the ring. You must change this if you are running
# multiple nodes!
- class_name: org.apache.cassandra.locator.SimpleSeedProvider
parameters:
# seeds is actually a comma-delimited list of addresses.
# Ex: "<ip1>,<ip2>,<ip3>"
- seeds: "127.0.0.1"
読み書きはどこからでも
• ユーザーは任意のデータセンターの任意のノードに接続してデータの読み書きが可能
• 書き込みは全て自動的に均等に分散され、クラスター全体の中で自動的にレプリケートされる
© DataStax, All Rights Reserved.16
10
50
3070
80
40
20
60
Client
それでも他の2つのノードからデータが取得可能
ノードが一時的に障害またはダウン
単一障害点がない
• 優れた耐障害性
• レプリケーションは自動的に処理
• スケールしても運用はシンプル
© DataStax, All Rights Reserved.17
マルチデータセンター対応
• データセンターやアベイラビリティゾーンをまたいでデータをレプリケート
• ダウンよるビジネスの中断はない
• グローバルでの低レイテンシーのパフォーマンス
© DataStax, All Rights Reserved.18
10
50
3070
80
40
20
60
Clie
nt
15
55
3575
85
45
25
65
West Data CenterEast Data Center
Outage
10
50
3070
80
40
20
60
Client
リニアなスケーラビリティ
• データはクラスター内の全ノードで分割
• リニアなスケーラビリティ(パフォーマンス、ストレージ)
© DataStax, All Rights Reserved.19
50,000 trans/sec
500 GB 100,000 trans/sec
1 TB
200,000 trans/sec
2 TB
Cassandraのデータモデル
• パーティションキーとそれに紐づいたカラムファミリー
• キースペース:
RDBMSのデータベースに相当
• テーブル:
RDBMSのテーブルに似ているが、より柔軟で動的
– テーブル内の行は、キーに基づいてインデックス付けされる
– 他のカラムもインデックス付け可能
© DataStax, All Rights Reserved.20
ID Name SSN DOB
Portfolio キースペース
Customer テーブル
Cassandra Query Language (CQL)
• RDBMSのSQLに類似
• DDLを使ってオブジェクト作成CREATE, DROP, GRANT, REVOKE
• INSERT, UPDATE, DELETE,
SELECT, WHERE
• ユーザー定義関数
• 簡単な集計機能
• JOINはサポートしない
© DataStax, All Rights Reserved.21
CQL Example
CREATE TABLE market_prices (
symbol TEXT,
date TIMESTAMP,
price DECIMAL,
side INT,
PRIMARY KEY (symbol, date)
) WITH CLUSTERING ORDER BY
(date DESC);
アプリケーションからのアクセス
© DataStax, All Rights Reserved.24
ドライバー
• DSEドライバーおよびCassandraドライバー
• ODBC/JDBC (サードパーティー)
デモ: DataStax Java Driver
• DataStax EnterpriseおよびApache CassandraへJavaアプリケーションからつなぐためのドライバー
• 分散データベースであるDSE/Cassandraの様々な特徴をサポート
• 自動フェイルオーバー
• クエリの自動ルーティング
• DSE DriverはグラフDBもサポート
© DataStax, All Rights Reserved.25
自由度の高いデプロイ
• クラウドのみ:クラウドの伸縮性とグローバルで利用できる点を最大限に活用。
• ハイブリッド:1つのクラスターで、オンプレミスとクラウドにまたがって配備可能
• ハブ&スポーク: 中央のハブと、そこから伸びるスポークの構成も可能。通信が不安定な環境や、コンプライアンス、場所に合わせた最適化が必要な時に。
© DataStax, All Rights Reserved.26
DSE Search
強力な検索機能をもったインデックスエンジン
• データ書き込み時の自動インデックス作成
• 高スループット
• 分散クエリーの最適化
外部検索機能との比較:
• 別に検索用クラスターを管理する必要なし
• ハードウェア費用の削減
• インデックスとデータの整合性
• ETLやデータ同期の必要なし
• アプリケーションレベルでのデータ管理の必要なし
Search
+
Cassandra
アプリケーション
CQL
© DataStax, All Rights Reserved.29
KillrVideo
DataStax Enterpriseデモアプリケーション
– https://killrvideo.github.io
– オープンソース
– gRPCを用いたスケーラブルなマイクロサービスアーキテクチャ
• Node.js/C#/Javaでの実装
– データベース層はDSE/Apache Cassandra
• データモデリングのサンプル
• DataStaxドライバーの利用サンプル
– DSE Searchを用いた全文検索
31 © DataStax, All Rights Reserved.
KillrVideo
デモ環境
32
KillrVideo Web
アプリケーション
KillrVideo
マイクロサービス DataStax Enterprise
1ノードDSE SearchAndAnalytics
etcd: サービスディスカバリー
サンプルデータ生成アプリ
© DataStax, All Rights Reserved.
KillrVideo
機能に合わせたデータモデリング
– 非正規化
– クエリからデータモデルを考える
– KillrVideoスキーマ
• https://github.com/KillrVideo/killrvideo-dse-docker/blob/master/lib/killrvideo-
data/schema.cql
DataStaxドライバーからのアクセス
33 © DataStax, All Rights Reserved.
KillrVideo – DSE Search
DSE Searchを用いた全文検索
– Solrリソースの作成
• dsetool create_core killrvideo.videos
– スキーマなどの自動生成が可能
– DataStaxドライバーからのシームレスな検索実行
•
35 © DataStax, All Rights Reserved.
DSE Analytics
38
アプリケーション
リアルタイム操作Cassandra
Analytics
分析
クエリ
アナリティクスリアルタイムレプリケーション
単一のDSEクラスター
ストリーミング、アドホック、
バッチ分析
• ハイパフォーマンス
• ワークロード管理
• SQLレポート
外部機能との比較:
• ETLの必要なし
• Zookeeperを使わないHA
© DataStax, All Rights Reserved.
KillrVideo – DSE Analytics
DSE Analyticsを用いた分析
– データベースに対するSparkジョブ(リコメンデーション作成など)の実行
• dse spark
• dse spark-submit
– Apache Sparkプロジェクトの様々な機能を利用
• Spark Streaming
• MLlib
– 外部の分析ツールとの連携
• Spark連携機能をもつBIツール
• Apache Zeppelin
• dse spark-sql / dse sparkR
39 © DataStax, All Rights Reserved.
DSE Graph
スケーラブルな分散グラフデータベース。複雑なグラフデータをリアルタイムに格納、探索および問い合わせできる。
• データ間の関係に注目
• DSE AnalyticsおよびSearchへ統合
• Customer360、レコメンド、不正検知に最適
© DataStax, All Rights Reserved.42
Apache Tinkerpop™
オープンソースのグラフ計算フレームワーク
• Gremlinグラフトラバーサル言語
• Tinkerpop対応グラフデータベース
• JanusGraph (TitanDB)
• Azure CosmosDB
• DSE Graph
• …
© DataStax, All Rights Reserved.43
デモ: gremlin-console
DSEは Apache Tinkerpopの gremlin-console を同梱
> dse gremlin-console
© DataStax, All Rights Reserved.45
DataStax Studio
DSE GraphおよびCQLのビジュアル開発プラットフォーム
DataStax is a registered trademark of DataStax, Inc. and its subsidiaries in the United States
and/or other countries.47
DataStaxサブスクリプション
© DataStax, All Rights Reserved.49
DSE Standard DSE Max
Data Platform
Certified Apache Cassandra™ ✓ ✓
Advanced Security ✓ ✓
Automatic Management Services ✓ ✓
Advanced Replication ✓ ✓
Tiered Storage ✓ ✓
Multi-Instance ✓ ✓
In-Memory ✓
Search ✓
Analytics ✓
Graph Option Option
Management and Development Solutions
DataStax OpsCenter ✓ ✓
DataStax Studio ✓ ✓
DSE MAX
様々な要求に対応したオールインワン
データプラットフォーム
DSE STANDARD
開発が容易で、スケーラビリティが必要なチーム向け
DMC (DataStax Managed Cloud)
DataStax is a registered trademark of DataStax, Inc. and its subsidiaries in the United States
and/or other countries.50
OpsCenter 運用サービス DMC
クラウド上でのDataStax Enterprise運用管理サービス
オンプレミスで自社運用
DataStax
による運用管理
エキスパートサポート
• 営業時間内から24x7x365までのSLA
• 本番環境および非本番環境のサポート
• アーキテクチャ設計やチューニングの定期的なサポート
• ソフトウェアを最新に保つための認定サービスパック
• 緊急時のホットフィックスの提供
DataStax is a registered trademark of DataStax, Inc. and its subsidiaries in the United States
and/or other countries.51
プロフェッショナルサポート
• Project Methodology
• Accelerator Packages
• Architecture Design
• Production Readiness
DataStax is a registered trademark of DataStax, Inc. and its subsidiaries in the United States
and/or other countries.52