More Related Content
Similar to Db tech showcase 2016 (20)
Db tech showcase 2016
- 3. ©2015 DataStax Confidential. Do not distribute without consent.
OLTP
(RDBMS)
DWH
(RDBMS)
NoSQL
OLTP
(RDBMS)
DWH
(RDBMS)
Hadoop
分析・データベース
オペレーショナル
データベース
既存システム(RDB)
新システムへの要求
*データ量
*パフォマンス
*柔軟性
*可用性
*値段
分析・データベース
オペレーショナル
データベース
既存システム(RDB)
新システム(NoSQL)
今までRDB では不可能、又は実現するのに
コストが膨大にかかった領域
データベース業界に今起きていること
- 4. ©2015 DataStax Confidential. Do not distribute without consent.
オペレーショナル DB vs. 分析 DB
Operational Database:(オペレーショナル)
オンライントランザクション処理に代表される、日々のトラ
ンザクション処理を取り扱うデータベース:
例:
POSシステム
Webの入力システム
ATM 等
Analytic Database:(分析)
オペレーショナルで集めたデータを一カ所に集約させ
、データ分析を行う
例:データマイニング、
スコアリング
BIOperational
Database
オペレーショナルの世
界で最近になってやっ
と新技術が必要な事が
認識され始めた
(2006&2007 Google BigTable論文と
Amazon Dynamo論文)
NoSQL
Analytic
Database
分析データベースの世
界は実は10年前から
新技術がどんどん出て
きていた。
(2003&2004
Google GFS, MapReduce論文)
DWH, Hadoop等
- 5. ©2015 DataStax Confidential. Do not distribute without consent.
Non-RDB
DB-ENGINESのランキ
ングで トップ15のう
ち6つがNon-RDB
逆を言えば、まだ9
個はRDB, かつ
Top3(Oracle, MySQL,
SQL Server)は不動
特出すべき点は、
PostgreSQLより
MongoDBがすでに上
にあること
- 9. ©2016 DataStax Confidential. Do not distribute without consent.
• 高可用性
• High Availabilityの意味って分かっています?
アプリケーションから見たら、サーバー切替中なんて
High Availabilityじゃないんです
• パフォーマンス
• パフォーマンスは何を持って高パフォーマンスって言いますか?
TPC-xx? 違います。アーキテクチャーをちゃんと理解しましょ
う。。。
• スケーラビリティ
• Oracle RACとか、DB2 Purescale??
アーキテクチャーはちゃんと理解しましょう。。。
Cassandra の強み
- 19. ©2016 DataStax Confidential. Do not distribute without consent.
• Windows版Cassandra
• JSON Support
• ストレージエンジン(圧縮1/10)
• DTCS
• Mview
• Hinted Handoff
• Roleでの権限管理
• User Defined Aggregation & User Defined Function(UDF)
Cassandra 3.0
- 20. ©2016 DataStax Confidential. Do not distribute without consent.
• Javaなので動くのですが、Apache Cassandraとして
正式にWindows版Supportとなる
Windows版 Cassandra
- 21. ©2016 DataStax Confidential. Do not distribute without consent.
• ???
• (そんなもん、MongoDBに任せればいいのに・・・ボソ)
• RDBMSでJSONサポートしました??
• (そんなもん、MongoDBに任せればいいのに・・・再度!)
JSON Support
CREATE TABLE users (
id uuid PRIMARY KEY,
name text,
state text,
birth_date int
);
INSERT INTO users (id, name, state,
birth_date)
VALUES(now(), 'Joe User', 'TX', 1982);
又は
INSERT INTO users JSON
'{"id": "1a4f88e2-6dc8-4edd-9e16-
a7ba9c941f8d",
"name": "Joe User",
"state": "TX",
"birth_date": 1982}';
- 22. ©2016 DataStax Confidential. Do not distribute without consent.
JSON Support
User Defined Typeでも使えます
CREATE TYPE address (number int, street
text);
CREATE TABLE users (
id int PRIMARY KEY,
street_address frozen<address>);
INSERT INTO users (id, street_address)
VALUES (1, {number: 123, street: 'Cassandra
Ave'});
INSERT INTO users JSON
'{"id": 1,
"street_address": {"number": 1,
"street": "Cassandra Ave"}}';
Nestingでも使えます
CREATE TYPE address (
street text, city text, zip_code int,
phones set<text>);
CREATE TABLE users (
id uuid PRIMARY KEY, name text,
addresses map<text, frozen<address>>);
INSERT INTO users JSON
'{"id": "0514e410-2a9f-11e5-a2cb-
0800200c9a66","name": "jellis",
"addresses": {"home": {"street": "9920
Cassandra Ave","city": "Austin","zip_code":
78700,"phones": ["1238614789"]}}}';
- 23. ©2016 DataStax Confidential. Do not distribute without consent.
ストレージエンジン(圧縮が1/10)
• すべてのカラムのカラム名をレコードと一緒に保存していた
• それをしないで、必要なレコードだけを保持するようにしただけ
- 24. ©2016 DataStax Confidential. Do not distribute without consent.
DTCS(DateTieredCompactionStrategy)
• SizeTieiredCompactionStrategy(STCS):似たようなサイズをくっつける(デフォルト)
• LeveledCompactionStrategy(LCS):レベル分けしてSSTableをくっつける
• DateTieredCompacationStrategu(DCSC): 時間でSSTableを分けてまとめる(NEW)
DTCS
STCS
LCS
- 25. ©2016 DataStax Confidential. Do not distribute without consent.
Matelialized View(Mview)
RDBのMviewとは全く違います
Cassandra
CassandraCassandra
Cassandra
Cassandra
Cassandra
- 26. ©2016 DataStax Confidential. Do not distribute without consent.
Matelialized View(Mview)
RDBのMviewとは全く違います
CassandraのIndexは別ノードを全て見てしまいます
Cassandra
CassandraCassandra
Cassandra
Cassandra
Cassandraユーザ
Index
Index
Index
Index
Index
Index
- 27. ©2016 DataStax Confidential. Do not distribute without consent.
Matelialized View(Mview)
RDBのMviewとは全く違います
CassandraのIndexは別ノードを全て見てしまいます
MviewはKeyを含むので、必要なノードにのみ
アクセスします
Cassandra
CassandraCassandra
Cassandra
Cassandra
Cassandraユーザ
Mview
- 28. ©2016 DataStax Confidential. Do not distribute without consent.
SASI (さっしー? サジー??)
SSTable Attached Secondary Index(SASI)というインデックスを
Apache CassandraにAPPLEがコントリビューションした新機能が入っています
V3.5以降、 Cassandraで Like検索ができるようになっています
- 29. ©2016 DataStax Confidential. Do not distribute without consent.
Hinted Hndoff
通常、3つのノードにデータをレプリケーションとして
持っている場合、
Cassandra
CassandraCassandra
Cassandra
Cassandra
Cassandraユーザ
データ
データ
データ
- 30. ©2016 DataStax Confidential. Do not distribute without consent.
Hinted Hndoff
通常、3つのノードにデータをレプリケーションとして
持っている場合、
あるノードがDownしていた場合でも、
Cassandraの他のノードは独立して動いているので、
全く問題なく動きます。
Cassandra
CassandraCassandra
Cassandra
Cassandra
Cassandraユーザ
データ
データ
x
- 31. ©2016 DataStax Confidential. Do not distribute without consent.
Hinted Hndoff
通常、3つのノードにデータをレプリケーションとして
持っている場合、
あるノードがDownしていた場合でも、
Cassandraの他のノードは独立して動いているので、
全く問題なく動きます。
その場合、データをHintsとして
コーディネータはファイルに一定期間保持し、
ノードが復活した時に、最適用を自動的に実行します
Cassandra
CassandraCassandra
Cassandra
Cassandra
Cassandraユーザ
データ
データ
データ
○
- 32. ©2016 DataStax Confidential. Do not distribute without consent.
Roleでの権限管理
CREATE ROLE accounting;
GRANT all ON invoices TO accounting;
GRANT select ON expenses TO accounting;
GRANT select ON payroll TO accounting;
GRANT accounting TO josie;
GRANT accounting TO jay;
RDBMSみたい・・・
- 33. ©2016 DataStax Confidential. Do not distribute without consent.
UDA&UDF
User defined Aggregation, User Defined Functionを書けるます。
中身はJava
CREATE FUNCTION my_sin(input double)
RETURNS double LANGUAGE java
AS ’
return input == null
? null
: Double.valueOf(Math.sin(input.doubleValue()));
’;
SELECT key, my_sin(value) FROM my_table WHERE key IN (1, 2, 3);
- 35. ©2016 DataStax Confidential. Do not distribute without consent.
• Apache Cassandraをベースに、いつでも稼働、分散、高パフォーマン
ス、スケーラビリティを備えるクラウドアプリケーション向けの商用版
• キーバリュー、表形式、
• JSON/ドキュメント、グラフのようなマルチなデータモデルを
Cassandraをデータストアとしてサポート
• 商用版として、Apache Cassandraのサポートはもちろん、Open Source
のソフトをQ&Aし、エンタープライズのお客様
に安心して利用いただける
DataStax Enterprise(DSE)とは
- 40. ©2016 DataStax
• Apache TinkerPop – 業界スタンダードのGraphフレームワークと言語をサ
ポート
• Cassandraとインテグレート – Cassandraの強みを継承(パフォーマンス、
スケール、マルチデータセンター、高可用性)
• TitanDB – オープンソースのGraphDBであるから移行も容易
• エンタープライズ向け – 分析、検索、自動ワークロード・マネージメント、
セキュリティ、管理、GUI, ドライバ、サポート等エンタープライズ向けの
DSEの強みを全て継承
• マルチモデル – キーバリュー、Tabular、JSON/ドキュメント、Graphを一つの
プラットフォームでサポート
•
DataStax Enterprise Graphとは
- 41. • レコメンデーション/パーフォナライゼーション – インフルエンサーになるお客様がどの製
品を購入して、早く他のユーザにレコメンドするのに最も効率的になのは?
• セキュリティと不正 – どのレコード、トランザクション、処理が不正であるかを早く見つ
け出す
• IoT / ネットワーク- 様々なディバイス、場所から収集するデータがどのような特徴を持
ち、関係があるのかを簡単に見つけ出す
• マスターデータマネージメントとプロファイル - 各ビジネスユニットにあるデータの関係と
分析と顧客の全体像を理解し分析する
©2016 DataStax Confidential. Do not distribute without consent.
ビジネスで使えるGraph
- 54. ©2016 DataStax
• DSE Graph をサポートします
• Graph データベースのコンフィギュのサポート
• エンタープライズ向けのクライアントツール
• SNMPのサポート
• Integration with Graphite monitoring tool.
OpsCenter 6.0