datastax enterpriseをはじめよう

53
DataStax Enterpriseをはじめよう 2017/06/06

Upload: yuki-morishita

Post on 21-Jan-2018

650 views

Category:

Software


2 download

TRANSCRIPT

DataStax Enterpriseをはじめよう

2017/06/06

スピーカー

森下雄貴

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.

© DataStax, All Rights Reserved.8

DSEをはじめよう

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

起動してみよう

• DSEのメインツール: dse

例えばノードの起動

© DataStax, All Rights Reserved.14

クラスターを構築

• ノードはゴシッププロトコルを用いて互いに通信しあう

• 設定ファイルで最初にコンタクトするノード(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);

デモ: CQLSH

• テーブルの定義

• キースペースの作成

• テーブルの作成

• データの読み書き

© DataStax, All Rights Reserved.22

CQLと内部データモデル

© DataStax, All Rights Reserved.23

アプリケーションからのアクセス

© 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

決定的瞬間を支える機能

© DataStax, All Rights Reserved.27

Search Analytics Graph

© DataStax, All Rights Reserved.28

DSE Search

DSE Search

強力な検索機能をもったインデックスエンジン

• データ書き込み時の自動インデックス作成

• 高スループット

• 分散クエリーの最適化

外部検索機能との比較:

• 別に検索用クラスターを管理する必要なし

• ハードウェア費用の削減

• インデックスとデータの整合性

• ETLやデータ同期の必要なし

• アプリケーションレベルでのデータ管理の必要なし

Search

+

Cassandra

アプリケーション

CQL

© DataStax, All Rights Reserved.29

KillrVideo

30 © DataStax, All Rights Reserved.

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

34 © DataStax, All Rights Reserved.

KillrVideo – DSE Search

DSE Searchを用いた全文検索

– Solrリソースの作成

• dsetool create_core killrvideo.videos

– スキーマなどの自動生成が可能

– DataStaxドライバーからのシームレスな検索実行

35 © DataStax, All Rights Reserved.

KillrVideo – Solr Admin UI

36 © DataStax, All Rights Reserved.

© DataStax, All Rights Reserved.37

DSE Analytics

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 Analytics

CassandraテーブルのJOIN

> dse spark-sql

40 © DataStax, All Rights Reserved.

© DataStax, All Rights Reserved.41

DSE Graph

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グラフトラバーサル言語

© DataStax, All Rights Reserved.44

デモ: gremlin-console

DSEは Apache Tinkerpopの gremlin-console を同梱

> dse gremlin-console

© DataStax, All Rights Reserved.45

© DataStax, All Rights Reserved.46

DataStax Studio

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サブスクリプション

© 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

ありがとうございました