[db tech showcase tokyo 2014] l32: apache cassandraに注目!!(iot,...
DESCRIPTION
本セッションでは、現在、注目されている 'IoT', 少し使い古された間のある'Bigdata'、そして分析基盤と言われて久しいHadoop等の 'バズワード' がどのように繋がり、どうデータベースと結びつくのか、また、なぜNoSQLというものが存在し、そしてその言葉がなぜ、もてはやされているのかを説明したいと思います。 またタイトルになっておりますが、セッションの中では、Bigdataに限らずDataの扱いにおいて、正しい分散データベースというものがApache Cassandraでどのように実現されていて、なぜ、米国において多くの会社が採用しているのかをお話いたします。TRANSCRIPT
©2014 DataStax Confidential. Do not distribute without consent.
DataStax !原沢 滋!
Apache Cassandraに注目!! (IoT, Bigdata, NoSQLのバズワードに振り回されるな! 大手企業が大規模運用するホンモノの実力)!
©2014 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で提供!Cassandra (C*)! Chaos Monkey!
©2014 DataStax Confidential. Do not distribute without consent.
+!x!
ではそのApache Cassandraとはなんぞや?!
Apache CassandraとはIoT向けデータベース
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)!
©2014 DataStax Confidential. Do not distribute without consent.
繋がるネット時代の新技術!
LAN/WAN
クライアント/サーバー
リレーショナルDBMS(RDBMS)
SNA
階層DB
Terminal
NoSQL DBMS
オープンシステム時代(Oracle,Informix,
Sybase等)
メインフレーム時代(IMS,DB2等)
もののインターネット(IoT)時代(クラウド、ネットワーク、分散)!(Bigdata, Hadoop, Open Source)!
1970 年代!1990 年代!
2010年以降!
IoT, コンテンツの時代!
クラウド
アプリケーションの時代!大きなコンピューターの時代!
©2014 DataStax Confidential. Do not distribute without consent.
繋がるネット時代の新技術!
オープンシステム時代(Oracle,Informix,
Sybase等)
メインフレーム時代(IMS,DB2等)
もののインターネット(IoT)時代(クラウド、ネットワーク、分散、IoT)!(Bigdata, Hadoop, Open Source)!
1970 年代!1990 年代!
2010年以降!
IoT, コンテンツの時代!アプリケーションの時代!
大きなコンピューターの時代!
リレーショナルDBMS(RDBMS)
階層DB
NoSQL DBMS
シンプルな作りと単純な業務の置き換え、記録のためのデータベース!!
アプリケーション構造を中心としたリレーショナルデータモデルのデータベース!
コンテンツ、データを中心にしたデータセントリック・データベース!
©2014 DataStax Confidential. Do not distribute without consent.
NoSQL = Not Only SQL?!Database = RDBMS!
orPost Relational!
と考えてください?!
CassandraってNoSQLらしいけど、そもそも Relational と NoSQLって何?!Relational? NoSQLって何?!
©2014 DataStax Confidential. Do not distribute without consent.
オペレーショナル DB vs. 分析 DB!
Operational Database:(オペレーショナル)!オンライントランザクション処理に代表される、日々のトランザクション処理を取り扱うデータベース:!例:!POSシステム!Webの入力システム!ATM 等!
Analytic Database:(分析)!オペレーショナルで集めたデータを一カ所に集約させ、データ分析を行う! 例:データマイニング、! スコアリング ! BI!Operational !
Database!!
オペレーショナルの世界で最近になってやっと新技術が必要な事が認識され始めた!
(2006&2007 Google BigTable論文とAmazon Dynamo論文)!
!NoSQL!
Analytic!Database!
!分析データベースの世界は実は10年前から新技術がどんどん出て
きていた。! (2003&2004 !
Google GFS, MapReduce論文)!!
DWH, Hadoop等!
©2014 DataStax Confidential. Do not distribute without consent.
オペレーショナル DB vs. 分析 DB (relational vs. Non-relationalも)!
http://blogs.the451group.com/information_management/2012/11/02/updated-database-landscape-graphic/!
©2014 DataStax Confidential. Do not distribute without consent.
Relational にするか 最も適したDBにするか?!
EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO 7369 SMITH CLERK 7902 80-12-17 800 20 7499 ALLEN SALESMAN 7698 81-02-20 1600 300 30 7521 WARD SALESMAN 7698 81-02-22 1250 500 30 7566 JONES MANAGER 7839 82-04-02 2975 20 7654 MARTIN SALESMAN 7698 81-09-28 1240 1400 30 7698 BLAKE MANAGER 7839 81-05-01 2850 30 7782 CLARK MANAGER 7839 81-06-09 2450 10 7788 SCOTT ANALYST 7566 87-04-19 3000 20 7839 KING President 81-11-17 5000 10 7844 TURNER SALESMAN 7698 81-09-08 1500 0 30 7876 ADAMS CLERK 7788 87-05-23 1100 20 7900 JAMES CLERK 7698 81-12-03 950 30 7902 FORD ANALYST 7566 81-12-03 3000 20 7934 MILLER CLERK 7782 82-01-23 1300 10
DEPTNO DNAME LOC 10 ACCOUNTING NEW YORK 20 RESEARCH DALLAS 30 SALES CHICAGO 40 OPERATIONS BOSTON
Relationalの場合:データモデル→アプリケーション→SQL!EMP表!
DEPT表!
select !e.empno, e.ename, e.job, e2.ename Mgr, e.hiredate, e.sal, e.comm, e.deptno, d.dname, d.loc !from emp e, emp e2, dept d !where empno=7369 and!e.mgr=e2.empno and e.deptno=d.deptno!
7369,‘SMITH’,‘CLERK’,‘FORD’,’80-12-17’,800,NULL,20,’RESEARCH’,’DALLAS’!
©2014 DataStax Confidential. Do not distribute without consent.
Relational にするか NoSQL最も適したDBにするか?!コンテンツ、データを中心とした場合:データ→ データモデル→データベース !
INSERT INTO EMPLOYEE (EMPNO,ENAME,JOB,MGR,HIREDATE,SAL,COMM,DEPTNO,DNAME,LOC) !Values (7369,‘SMITH’,‘CLERK’,‘FORD’,’80-12-17’,800,NULL,20,’RESEARCH’,’DALLAS’)!
C*!C*!
C*!C*!
C*!
C*!
EMPLOYEE表!
SELECT !EMPNO,ENAME,JOB,MGR,HIREDATE,SAL,COMM,DEPTNO,DNAME,LOC!FROM EMPLOYEE !WHERE EMPNO=7369;!
EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO DNAME LOC 7369 SMITH CLERK FORD 80-12-17 800 20 RESEARCH DALLAS
©2014 DataStax Confidential. Do not distribute without consent.
オペレーショナル・データベース!
トラディショナル! モノのインターネット(IOT)!
RDBMS!Non!RDBMS!
どちらでも!よいケース!
©2014 DataStax Confidential. Do not distribute without consent.
オペレーショナル・データベースの現状!
トラディショナル! モノのインターネット(IOT)!
RDBMS!実はEarly AdapterがNonRDBMSに0.1%?存在!
©2014 DataStax Confidential. Do not distribute without consent.
トラディショナル! モノのインターネット(IOT)!
オペレーショナル・データベース!
RDBMS!Non!RDBMS!
どちらでも!よいケース!
まずはここをちゃんと!やりましょう!
©2014 DataStax Confidential. Do not distribute without consent.
Cassandraの特徴!• Amazon DynamoとGoogle Bigtableの良い点を持つ!• 高速パフォーマンスとリニアな拡張!• SPOF(Single Point of Failure)がない!• 完全な分散!• 柔軟なNoSQLデータモデル!• シンプルな運用管理!
• SQL ライクな言語CQLをサポートしている!• 様々な無償ツールとドライバ/コネクタを持つ!• 結果整合性を持つ(Eventual Consistency)、Strong Consistencyも可能!
©2014 DataStax Confidential. Do not distribute without consent.
高速なパフォーマンスとリニアな拡張!「スケーラビリティの点では、我々の実験全体を通して明白な勝者がいます。すべての実験において、Cassandra は最大のノード数でリニアに増加する最高のスループットを達成しました」!!Solving Big Data Challenges for Enterprise Application Performance Management, Tilman Rable, et al., August 2013, p. 10. Benchmark paper presented at the Very Large Database Conference, 2013. http://vldb.org/pvldb/vol5/p1724_tilmannrabl_vldb2013.pdf!
http://techblog.netflix.com/2011/11/benchmarking-cassandra-scalability-on.html!
最高のスループット・・・!
最小のレイテンシ・・・!
Netflix 社によるクラウド上でのベンチマーク・・・! End Point 社による第三者 NoSQL ベンチマーク!
©2014 DataStax Confidential. Do not distribute without consent.
C*!
C*!C*!
C*!C*!
C*!
Cassandra のアーキテクチャ(完全な分散+KVS)!• Master, Slaveという関係がない!• Name node, gatekeeperといった特別なノードの機能を持つノードがない!• すべてのノード(マシン)が完全に同じ機能を持つ!
クラスター!!
データベース!
=!
この場合、6台で!1つのデータベースとなる!
レプリケーション!(データのコピー)!は何台に持たせるかを決められる!Replication factor=3!
7369,SMITH!
7369,SMITH!
7369,SMITH!
©2014 DataStax Confidential. Do not distribute without consent.
C*!
C*!B!
C*!A!
C!
C*!
C*!B!
C*!A!
C!
C*!
C*!B!
C*!A!
C!
Cassandra のアーキテクチャ(完全な分散+KVS)!
17
• 6台のマシンでデータベースを作成!• レプリケーション(データのコピー)を3台で設定!• EMPNO=7369, ENAME=SMITHさんをINSERTします(KEY=EMPNO)!
7369,SMITH!
7369,SMITH!
7369,SMITH!
7369,SMITH!
7369,SMITH!
7369,SMITH!
7369,SMITH!
7369,SMITH!
7369,SMITH!
7369,SMITH!
7369,SMITH!
7369,SMITH!
• どこに接続して作業をしても結果は同じ!
Machine Aに接続した場合!違うMachineに接続した場合でも!Machine Bに接続した場合!
©2014 DataStax Confidential. Do not distribute without consent.
C*!
C*!C*!
C*!C*!
C*!
Cassandra のアーキテクチャ(完全な分散+KVS)!
18
• 6台のマシンでデータベースを作成(前のページと一緒)!• レプリケーション(データのコピー)を3台で設定(前のページと一緒)!• 3台マシンが壊れたとします!
7369,SMITH!
7369,SMITH!
7369,SMITH!x!x!x!
• どこに接続してもデータが残っているのでサービス提供が可能!
©2014 DataStax Confidential. Do not distribute without consent.
Cassandra のアーキテクチャ(さらに強固に)!• Cassandra は、システムやハードウェアは障害が生じるものだという前提で設計され。!• 複数のデータセンター内でのレプリケーションも自動で行います(設定すれば)!• 任意のノードを対象に読み取り/書き込みができます。!
C*!
C*!
C*!C*!
C*!
C*!
C*!
C*!
C*!C*!
C*!
C*!
C*!
C*!
C*!C*!
C*!
C*!
トランザクション!トランザクション!
東京! インド!
クラウド!
©2014 DataStax Confidential. Do not distribute without consent.
Cassandra のアーキテクチャ(さらに強固に)!• Cassandra は、システムやハードウェアは障害が生じるものだという前提で設計され。!• 複数のデータセンター内でのレプリケーションも自動で行います(設定すれば)!• 任意のノードを対象に読み取り/書き込みができます。!
C*!
C*!
C*!C*!
C*!
C*!
C*!
C*!
C*!C*!
C*!
C*!
C*!
C*!
C*!C*!
C*!
C*!
トランザクション!トランザクション!
トランザクション!
トランザクション!
東京! インド!
クラウド!
©2014 DataStax Confidential. Do not distribute without consent.
Cassandra のアーキテクチャ(スピード)!
21
• 各ノードでは、書き込みがあると、それをコミットログにとらえます。これにより、データの永続性が保証されます。!
• データはまた、インメモリ構造(memtable)にも書き込まれ、これがいっぱいになるとディスク(SStable)に書き込まれます。!
トランザクション!
メモリ
ディスク コミット ログ
Memtable!
SStable!
Write !Request!
OK!
C*!
C*!
C*!C*!
C*!
C*!
©2014 DataStax Confidential. Do not distribute without consent.
柔軟なNoSQLデータモデル!• Cassandra が使用するデータモデルは、Google Bigtable に基づいた、行指向の列(カラム)構造です。!
• キースペース(keyspace)は、 RDBMS のデータベースに相当します。!• テーブル(table)は、RDBMS のテーブルに似ていますが、より柔軟で動的です!• スキーマレスで、カラムを制限なく拡張できます!
HumanResourceキースペース!EMPLOYEE!EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO DNAME LOC 7369 SMITH CLERK FORD 80-12-17 800 20 RESEARCH DALLAS 7499 ALLEN SALESMAN BLAKE 81-02-20 1600 300 30 SALES CHICAGO 46
AGE Gender M
ATTENDANCE_RECORDS! MONTHLY_SALARY_HIST!
etc.!
©2014 DataStax Confidential. Do not distribute without consent.
トランザクションの扱い!RDBMS では・・・ Cassandraでは・・・!! Atomic 原子性!! Isolated 独立性!! Durable 永続性!! Consistent 一貫性(FK/RI:外部キー/参照整合性)!
! Atomic 原子性!! Isolated 独立性!! Durable 永続性!! Consistent 一貫性(調整可能)!
結果整合性!(イベンチュアル)!
強力な整合性!(Strong Consistency)!
!「軽量トランザクション」(rightweight Transaction)もサポート。!
©2014 DataStax Confidential. Do not distribute without consent.
Cassandra Query Language(CQL)!• RDBMS の SQL によく似た構文!• DDL を使用してオブジェクトを作成(例:CREATE…) !• GRANT/REVOKE によりセキュリティを確保!• 基本的な DML コマンドをサポート:INSERT、UPDATE、DELETE!• SELECT を使用してデータを検索!• コマンドラインツール、GUI ツール!
©2014 DataStax Confidential. Do not distribute without consent.
Cassandra Query Language(CQL)!RDBMS では SQL・・・ Cassandraでは CQL・・・!
と、より柔軟なデータモデルがあります。!
©2014 DataStax Confidential. Do not distribute without consent.
Cassandra の主要機能のまとめ!• 書き込み/読み取りがどこでも可能な設計のマスタレスアーキテクチャ!• 単一障害点のない継続的な可用性!• マルチデータセンター及びクラウドを含めてのシステム設計が可能な究極の対応!• 時系列データやその他のデータに最適な柔軟データモデル!• 稼働させたままで拡張可能なリニアなパフォーマンススケーラビリティ!• 認証と権限設定によるセキュリティ!• 運用管理がシンプル!• SQL に似た言語 ― CQL!• 組込みのデータ圧縮!• 一般的なセキュリティ機能!
©2014 DataStax Confidential. Do not distribute without consent.
Apache Cassandra
©2014 DataStax Confidential. Do not distribute without consent.
Twitter account: @cassandrajapanで情報発信しています ありがとうございました!!