SlideShare a Scribd company logo
1 of 67
Download to read offline
CassandraとHBaseの比較
  をして入門するNoSQL


           HN : 豊月(Yutuki)
         Twitter : @yutuki_r



                               1
中の人。

• 本スライド:Ver1.3

• HN : 豊月(Yutuki)
• Twitter : @yutuki_r
• Wiki : http://lunarium.info/arc/

• 今日のハッシュタグ : #casstudy10th
• Google Group : Cassandra勉強会


                                     2
改訂履歴

• 1.1 公開
• 1.2 誤記修正 Chunk→Tablet
• 1.3 内容を追記、修正しました。
   –   CAP定理が証明論文が公開
   –   Cassandraを利用したアプリ「PARTAKE」が公開
   –   Cassandra勉強会グループと日本Cassandraユーザ会が統合
   –   Cassandra0.7で実装されるのはVersionedClock
   –   その他、わかりにくい箇所に説明追加等の修正




                                             3
AGENDA

• NoSQLって何?
• NoSQLとRDBの関係は?
• どうしてNoSQLが必要になったの?

• Database種類多すぎ!わからないよ!
• じゃどんなNoSQLが出てきたの?

• どんな構造をしてるの?
   – HBaseについて
   – Cassandraについて
   – 障害への対応
• 結局どっちを使えばいいの?


                          4
NoSQLって何?

ABOUT NOSQL


              5
NoSQLとは

• Not Only SQLの略称です。
• 意訳:「SQLだけじゃないぜ!」

• 意味1:SQLを利用しないデータベースの事
• 意味2:上記の様なデータベースを積極的に使っていこう
  という動き、運動を指す。




                               6
NoSQLはこんなにたくさんあります

   BigTable       HBase       SimpleDB      Dynamo
   (Google)      (Yahoo!)     (Amazon)     (Amazon)


    ROMA        Cassandra                     Kai
                              CouchDB
     (楽天)       (FaceBook)                   (goo)


  BerkeleyDB      Flare
                              MongoDB       Kumofs
   (Oracle)       (Gree)


                                               WAS
  TokyoTyrant    Velocity     Voldemort
                                          eXtremeScale
    (mixi)      (Microsoft)   (Linkdin)
                                             (IBM)

                                                         7
NoSQLの特徴



                 ノード数に   ノード数に
• RDBと比べて利用目的や   素直に比    比例しない
  利用範囲を絞っている     例する性能   運用コスト

• RDBが搭載している機能
  を省いている
                 伸縮自在    障害耐性




                                 8
NoSQLとRDBの関係は?

DATA STORE CONCEPT


                     9
DataStore




Database               FileSystem




                                    10
DataStore



                         【FileSystem】

                             NTFS
                             ext4
                             XFS
Database                     UDF

                       Google FileSystem

                       Hadoop Distributed
                          FileSystem



                                            11
DataStore
Database
                    SQL

         【RDB】
         Oracle
          DB2
         MySQL
                          FS
         SQLite
       SQL Server
       PostgreSQL
        JavaDB



                               12
DataStore
                    Database
【NoSQL】                              SQL
KeyValueStore
列指向型 Database
Document Database


                               RDB         FS




                                                13
DataStore
                    Database
NoSQL                                SQL

    【KeyValueStore】
          Dynamo
        Memcached                  RDB
         Voldemort
                                           FS

  【列指向型Database】
         BigTable

         HBase
        Cassandra


                                                14
狭義のKVS、広義のKVS

• KVSの構造




           Key   Value




                         15
狭義のKVS、広義のKVS

• 列指向型Databaseの構造


Key CF Column TS          Value

            これらをKEYと見なす


 Key / CF / Column / TS   Value
この為、列志向型DBは広義のKVSに含まれる事が多い
                                  16
DataStore
              Database
NoSQL                          SQL
 KeyValueStore
                                     FileSystem
    列指向型
                         RDB
   Database

  Document
  Dataabse




                                                  17
従来のアプリケーションの範囲




                 18
最近のアプリケーションの範囲(Google、Amazon、Facebook等)




     ユビキタス 双方向サービス
     AJAX  Hadoop


                                          19
どうしてNoSQLが必要になったの?

EVOLUTION OF WEB


                     20
Web1.0 と Web2.0

■Web1.0
  • 基本的に情報は一方通行
  • 通信回数は基本的に一回
  • 更新頻度が低い静的HTML


■Web2.0
  •   双方向通信
  •   複数通信~常時通信 AJAX通信
  •   コンテンツはDB上、毎度読み出して動的表示
  •   ユーザ毎に違うページ

                              21
Databaseの進化 (ディスクでの応答からメモリでの応答へ)

                     Memory (20GB/秒)   Disk (0.2GB/秒)

Web1.0 Write

Web1.0 Read

Web2.0 Write


Web2.0 Read         Memcached


Cassandra / HBase
Write
                                       非同期書込
Cassandra / HBase
Read
                                                        22
Database種類多すぎ!わからないよ!

BREWER'S CAP THEOREM


                        23
ブリュワーのCAP定理

とあるシステムでは           可用性
・一貫性
・可用性
・NW分断耐性
                          ネットワー
の内、二つまでしか     一貫性         ク分断耐
満たす事が出来ない
                            性

証明された訳ではないので「CAP原則」と呼んだ方が正確ではある
証明された様です→CAP定理の証明論文(PDF)
各種DBの特性を説明するのに非常に役立つ
                                  24
CAP定理 一貫性 (Consistency)

• 一貫性がある
  – ZEROか100か
  – YESかNOか
  – 白か黒か
  – 生か死か

• 重要なのは、「何も出来ない状態」も一貫性が担保された状態である事
• 中途半端な状態が存在しない




                                     25
CAP定理 可用性 (Availability)

• 文字通り、そのサービスが利用出来る事
• そのサービスが動いていた所で利用出来なければ意味がない
• Webで言えば、混雑していてもキチンと応答が返ってくる事
   – ■残念な例
   – iPhone4発売時のSoftBankとか
   – W杯の時のTwitterとか
   – ラピュタが放映してる時の2chとか

  –   ■良い例
  –   Amazon、Google、Facebookとか
  –   新商品発売時のAppleStoreとか
  –   最近のmixiとか
  –   モバゲーとか

                                 26
CAP定理 分割耐性(Partition Tolerance)

• CAP定理の中でも一番難しいポイント
• 「全面的なネットワーク障害以外のネットワーク障害が発生しても、システム
  全体が間違った結果を返さない」


• よくこのPの部分を間違って「分散しやすい」と理解している人がいますが、そ
  れは誤解であり違います




                                         27
RDBをCAP定理で理解する

• RDBは高い一貫性を最大の特徴とする
  – 厳密なトランザクション
• 可用性も基本的に高い
• ネットワーク分断耐性は低い
  – 分散化は可能である。しかし技術的に難易度が高い
• 故にスケールアウトよりもスケールアップ
  – Exadataの登場等

• ネットワーク分断耐性(P)を犠牲にして一貫性(C)と可用性(A)を
  とるCA型



                                      28
CAP定理によるデータベースの分類


    Oracle                           Dynamo
    MySQL                            Voldemort
                    可用性              KAI
    PostgreSQL
    AsterData                        TokyoCabinet
    Greenplum                        Cassandra
    Vertica                          SimpleDB

                           ネットワーク
            一貫性
                           分断耐性           RDB
                                          KVS
                                          列指向
         BigTable MongoDB BerkeleyDB      ドキュメント
         HBase     Terrastone Memcached
         Hypertable Scalaris  Redis

                                                    29
じゃどんなNoSQLが出てきたの?

BIRTH OF NOSQL


                    30
Google BigTable

• Googleの持つ分散ファイルシステム
  「Google FileSystem(GFS)」の
  上で動作する列指向DB
• 2006年に論文が公開される

• GFSは大きめのファイルを保存する
  のが得意
• GFSが苦手な小型ファイル(データ)
  を取り扱う為に開発される




                              31
Google BigTable

• Googleの本業はWebのクロールとIndex化
• 複数クローラによる書込とMapReduceによる大規模分散並列Batch処理

                  大量のデータ


効率的な処理が                 分散並列処理が   Errorや読込遅
             分散並列処理が
  必要                              延は別のデータを
             必要(じゃないと   しやすいデータ
                                  処理する事で隠
              終わらない)
                                       蔽


 可用性(A) を犠牲にして、一貫性(C)とNW分断耐性(P)を選択
 CP型

                                              32
Amazon Dynamo

• 自社のEコマース基盤の為に開発されたKVS
• 2007年に論文公開される

• Amazonが自社サービスに特化
   – 過去の情報を統計分析した結果に基づく
   – 一意のKeyのみでやり取りが出来る
   – データサイズは1MB以下




                          33
Amazon Dynamo

• 本業はEコマース
  – 大量の商品情報の表示、大量のユーザからのリクエスト
• 殆どのデータや処理が独立している
  – 基本的には新規登録、追加のみ
  – 購入行為は1ユーザで完結(例外:在庫)
• Web応答速度の遅延は売り上げ低下に直結
  – 応答速度が0.1秒遅延すると、1%の売り上げを逃す→blog

• 大量データに対する大量アクセス x ダウンタイムなし

 一貫性(C)を犠牲にして、可用性(A)とNW分断耐性(P)を選択
 AP型

                                     34
NoSQLの系譜(BigTable族、Dynamo族)

   Google   クローン                         Amazon
 FileSystem    Apache                      S3
   Google      Hadoop        Amazon         派生
MapReduce                    Dynamo
   Google
  BigTable       派生                     Amazon
                                        SimpleDB

     クローン              混合
                                  クローン
             Apache   Facebook
              HBase   Cassandra

                             Linkedin     goo
HyperTable
                            Voldemort     Kai
                                                  35
どんな構造をしてるの?

ARCHITECTURE


               36
基本的な構造


         BigTable   HBase     Cassandra   Dynamo

 CAP       CP         CP         AP         AP

 データ
分散方法
             シャーディング          コンシステントハッシング法

データモデル                列志向                 KeyValue

                   MemTable
ストレージ                                      MySQL
                CommitLog / SSTable


                                                     37
Architecture.1

SHARDING


                 38
シャーディング(BigTable、HBase)

• ある一定の範囲でデータベース
  を分割する事
• 分割方向は縦だったり横だったり
  する
• 分割したデータを複数のノードに
  割り当てて分散管理

• 【問題】どのノードにどのデータが
                          BigTable
  あるか別個管理する必要がある
                           Tablet

                          HBase
                          Region

                                     39
Architecture.2

CONSISTENT HASHING


                     40
コンシステントハッシング法(Cassandra、Dynamo)

• ハッシュ値を元に円を作成し、その上に              複製を保存
                         保存
  ノードを配置
• データのKeyからハッシュ値を作り、担
  当するノードへ保存
• 複製ルールに従い別ノードへデータをコ
  ピーする

• 【問題】Keyによってはある特定の範
  囲だけ肥大化 = 特定ノードへデータ
  集中



                         DATA
                                          41
Architecture.3

COMMITLOG / MEMTABLE /
SSTABLE

                         42
CommitLog / Memtable / SSTable

                                         Memory
                          MemTable
                                      MemTable
読込はメモリで応答


                                           3.一定サイズに
            2.メモリへ展開                       なったらDisk保存


                                         SSTable

                         CommitLog
                                      SSTable

  1.まず                                   SSTable
CommitLog                                   Disk
                        4.Disk保存したら
                       CommitLog削除
                                                    43
CommitLog / Memtable / SSTable

【データ復旧時】                             Memory
                      MemTable
                                  MemTable


                                        メモリへ展開
    Disk保存されてな
       い分を読込
                                     SSTable

                      CommitLog
                                  SSTable
                                     SSTable
                                        Disk

                                                 44
もっとHBaseについて詳しく!

ARCHITECTURE OF HBASE


                        45
HBaseの構成要素

• HBaseMaster (HM)
  – リージョンファイルのロードバランシング   H
• HRegionServer (RS)      M
  – リージョンファイルの保持
  – 読込書込                  RS
                                          RS
• ZooKeeper (ZK)               RS    RS
  – Rootテーブルの位置情報保持
  – HBaseMasterの情報保持
• Hadoop Distributed
  FileSystem (HDFS)
  – 分散ファイルシステム                      Cli
  – ここでデータの複製保存


                                               46
root / meta / UserTableの関係

                      root


   meta     meta     meta     meta           meta


    UT1-a    UT2-a    UT3-a   UT4-a          UT5-a
    UT1-b    UT2-b    UT3-b   UT4-a
                               UT4-a
    UT1-c             UT3-c     UT4-a
                                  UT4-a
                                    UT4-a
                      UT3-d          UT4-z

                      UT3-e
 データはシャーディング
 して複数ノードで保持

                                                     47
HBaseの読み出し / 書き込み

                          Cli           ZK
1. ZKからrootテーブル持つノードを知
   る
2. rootから目的のmetaテーブルを保
   持するノードを知る                    root    RS
3. Metaテーブルから目的のテーブルの
   Regionを持つノードをしる
4. 目的のデータの取得する                  meta    RS

・途中で取得した情報はClientがキャッシュ
・この仕組みを利用する事で、ノードがどれだけ
                            UserTable    RS
増加しても同一の手順数でデータ取得が可能
である


                                              48
もっとCassandraについて詳しく!

ARCHITECTURE OF CASSANDRA


                            49
Cassandra

• 全ノードが同一機能を有する
• 1Hopで接続
• 各ノードが保持するデータが巧く分散
  するかはKey次第

• データは複製されて複数のノードが保
  持している

• 「結果整合性」を採用
• 「一貫性強度の選択」による操作     Cli




                            50
結果整合性

• 「データが一時的に矛盾した状態になるが、結果的には整合性
  の取れたデータになる」

• Cassandraが犠牲にした一貫性を補完する為の技術
   – Gossip Protocol
      • ノード同士が常に行う状態確認。データの整合性も確認する
   – Read Repair
      • 読み出したデータが一致しない場合、データを修正する
   – Hinted HandOff
      • 本来データを保持すべきノードが応答しない時、データを預かる
   – Consistency Level(一貫性強度の選択)
      • 速度優先か、一貫性優先かを選ぶことが出来る


                                        51
一貫性強度の選択 (複製数3の場合)
                                        B
• 「幾つの複製データに処理を施すか」の選択
   Aという値をBに書き換え、読み出す処理の例

    B                       B
                                    A   A       B
                B
Write
                                        B
A   A   B   A   B   B   A   B   B
    Read                                B
    A           A           B


W:書込数 R:読込数 N:複製数                   B   B       B
W+R>N
の時、「強い一貫性」を得られる                             B
                                                    52
Cassandraの読み出し / 書き込み



1. まずノードに接続
2. ハッシュ表からデータを持つノードに
   要求を投げる
3. 必要な数のノードから応答があっ
   た時点で、クライアントに値を返す




                        Cli


                              53
CassandraとHBaseとの違いをもっと分かり易く!

THE DIFFERENCE BETWEEN
CASSANDRA AND HBASE

                                54
仕様的な差異

              HBase         Cassandra
SPoF          HDFSにあり       なし
同一行(同一データ)に
              単独ノード         複数ノード
対する読込/書込
ロック単位         Row           Column

データ競合解消方法     競合発生なし        時間解決 (Gossip)

データ分散方法       自動分散          手動分散

CAS操作         可能            不可能 (0.7から可能)
データ複製実行層      ディスク層(HDFS)   メモリ層

Hop数          1~3           1
                                            55
障害発生時(ノードのダウン)

              HBase          Cassandra
欠落ノードが持つデータ   自動で別ノードへ       欠落

欠落ノードが持つデータへの 別ノードへのデータ移動    別ノードが受け付け
読込/書込         が終わるまで待たされる    データ読込不可の可能性
                             一貫性強度の低下
残存ノードへの影響     処理能力低下         複製数の減少
                             データの消失
              待たされるがErrorは
ユーザからみた動作                    Errorが返ってくる事がある
              返ってこない

分断した島の動作      小さい方が自動ダウン     それぞれ動作

多重ネットワーク障害                   復旧時間の長期化
              全体クラッシュの可能性
(後述)                         データ不整合の可能性
                                               56
復旧作業

        HBase   Cassandra
                追加方法を選択
                 ・同一Tokenで復帰
                 ・新規Tokenで復帰
ノード復旧   ノード追加
                 ・新規ノードとしてToken指定追加
                 ・新規ノードとして新規Tokenで追加
                v0.6.8で改善された




                                       57
多重ネットワーク障害が起きるとどうなるの?

THE HAZARD


                        58
HBaseの多重ネットワーク分断

• HBaseでネットワーク分断が起きると、
  ZKが「自分の所属する島が多数側か
  少数側か」を判断し、少数側が「自殺」
  する事で一貫性の確保を図る                                  RS
                                           RS
• ならばもし短時間に連続して分断が発                                  RS
                                RS
  生し、多重分断状態に陥り、全員が「
  少数側である」と判断をしたら・・・?
                           RS         RS
                                                      RS
• root / metaテーブルが壊れる可能性
  がある。壊れると全体データに問題が発             RS             RS
  生する可能性が高まる                                              RS



                                                               59
Cassandraの多重ネットワーク分断

• 分断されまくって1ノードに追いやられて
  も動作する
• ノードに繋がる限り書き込み処理は可
  能(HintedHandOff)
• 但し読込は失敗する可能性有り

• 分断解消後はデータを自動でMerge
  する。但し場合に依ってはデータに不整
  合が発生する可能性がある
  – 0.7 VersionedClockで回避出来そ
    う?




                               60
HBaseとCassandra、結局どっちを使えばいいの?

RIGHT OPERATION IN THE
RIGHT DATABASE

                                61
選定基準


 結果整合性の
                      想定データ規模
  許容度

       Cassandraは予想
                       HBaseの安定稼働
       以上に古いデータを
                        は5ノード以上?
           とってくる


       受容して問題ない
            Or
                      0.6.4でかなり改善?
         アプリで防げる

                                     62
得意分野(得手不得手であって出来る出来ないではない)

                          ■Webフロント寄り
 ■トランザクション処理               商品情報
  金融分野         可用性         ユーザ情報
  在庫管理                     権限情報
  マスター原本                   各種Log
                           OLTP
                     ネットワーク
         一貫性
                     分断耐性


         ■バックエンド / Batch処理
          給与計算     会計計算
          各種BI Hadoop OLAP
                                       63
だからこそ敢えて

Cassandra、HBaseを利用したアプリケーションを考えている場合、
まず本番の前に調査として
    「最も苦手とする機能を作ってみる」
事を提案します。

           • 回避策を発見出来ます。
           • 地雷原を発見出来ます。
              • 事前に地雷を踏みまくれ!
           • 技術力もつきます。
           • 勉強会での発表のネタが出来ます。


                                        64
苦手機能の例

• @mayahjp氏作成イベント参加者管理アプリ
• 「PARTAKE」

• 要求される機能はどれもCassandraが苦手とする機能
  – 一定数で締め切らなければならない
  – 参加者数の正確なカウント
  – 登録順序の管理


• この辺りを詳しく知りたい方は@mayahjp氏のスライド
    「CassandraでWebAppを」を見てみてください。



                                    65
以上。

ご静聴閲覧有り難う御座いました


                  66
Powered by & Special Thanks!


               •   @mayahjp氏
               •   @ashato氏
               •   @2t3氏
               •   日本Cassandraユーザー会
               •   Hadoopソースコードリーディング




                                        67

More Related Content

What's hot

Kubernetesでの性能解析 ~なんとなく遅いからの脱却~(Kubernetes Meetup Tokyo #33 発表資料)
Kubernetesでの性能解析 ~なんとなく遅いからの脱却~(Kubernetes Meetup Tokyo #33 発表資料)Kubernetesでの性能解析 ~なんとなく遅いからの脱却~(Kubernetes Meetup Tokyo #33 発表資料)
Kubernetesでの性能解析 ~なんとなく遅いからの脱却~(Kubernetes Meetup Tokyo #33 発表資料)NTT DATA Technology & Innovation
 
Apache BigtopによるHadoopエコシステムのパッケージング(Open Source Conference 2021 Online/Osaka...
Apache BigtopによるHadoopエコシステムのパッケージング(Open Source Conference 2021 Online/Osaka...Apache BigtopによるHadoopエコシステムのパッケージング(Open Source Conference 2021 Online/Osaka...
Apache BigtopによるHadoopエコシステムのパッケージング(Open Source Conference 2021 Online/Osaka...NTT DATA Technology & Innovation
 
PostgreSQLクエリ実行の基礎知識 ~Explainを読み解こう~
PostgreSQLクエリ実行の基礎知識 ~Explainを読み解こう~PostgreSQLクエリ実行の基礎知識 ~Explainを読み解こう~
PostgreSQLクエリ実行の基礎知識 ~Explainを読み解こう~Miki Shimogai
 
PostgreSQLのパラレル化に向けた取り組み@第30回(仮名)PostgreSQL勉強会
PostgreSQLのパラレル化に向けた取り組み@第30回(仮名)PostgreSQL勉強会PostgreSQLのパラレル化に向けた取り組み@第30回(仮名)PostgreSQL勉強会
PostgreSQLのパラレル化に向けた取り組み@第30回(仮名)PostgreSQL勉強会Shigeru Hanada
 
Apache Avro vs Protocol Buffers
Apache Avro vs Protocol BuffersApache Avro vs Protocol Buffers
Apache Avro vs Protocol BuffersSeiya Mizuno
 
ただいまHadoop勉強中
ただいまHadoop勉強中ただいまHadoop勉強中
ただいまHadoop勉強中Satoshi Noto
 
Dockerfile を書くためのベストプラクティス解説編
Dockerfile を書くためのベストプラクティス解説編Dockerfile を書くためのベストプラクティス解説編
Dockerfile を書くためのベストプラクティス解説編Masahito Zembutsu
 
インフラエンジニアのためのcassandra入門
インフラエンジニアのためのcassandra入門インフラエンジニアのためのcassandra入門
インフラエンジニアのためのcassandra入門Akihiro Kuwano
 
PostgreSQLアーキテクチャ入門(INSIGHT OUT 2011)
PostgreSQLアーキテクチャ入門(INSIGHT OUT 2011)PostgreSQLアーキテクチャ入門(INSIGHT OUT 2011)
PostgreSQLアーキテクチャ入門(INSIGHT OUT 2011)Uptime Technologies LLC (JP)
 
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)Noritaka Sekiyama
 
Kinesis→Redshift連携を、KCLからFirehoseに切り替えたお話
Kinesis→Redshift連携を、KCLからFirehoseに切り替えたお話Kinesis→Redshift連携を、KCLからFirehoseに切り替えたお話
Kinesis→Redshift連携を、KCLからFirehoseに切り替えたお話Hajime Sano
 
RDB技術者のためのNoSQLガイド NoSQLの必要性と位置づけ
RDB技術者のためのNoSQLガイド NoSQLの必要性と位置づけRDB技術者のためのNoSQLガイド NoSQLの必要性と位置づけ
RDB技術者のためのNoSQLガイド NoSQLの必要性と位置づけRecruit Technologies
 
PostgreSQLのリカバリ超入門(もしくはWAL、CHECKPOINT、オンラインバックアップの仕組み)
PostgreSQLのリカバリ超入門(もしくはWAL、CHECKPOINT、オンラインバックアップの仕組み)PostgreSQLのリカバリ超入門(もしくはWAL、CHECKPOINT、オンラインバックアップの仕組み)
PostgreSQLのリカバリ超入門(もしくはWAL、CHECKPOINT、オンラインバックアップの仕組み)Hironobu Suzuki
 
PostgreSQL10を導入!大規模データ分析事例からみるDWHとしてのPostgreSQL活用のポイント
PostgreSQL10を導入!大規模データ分析事例からみるDWHとしてのPostgreSQL活用のポイントPostgreSQL10を導入!大規模データ分析事例からみるDWHとしてのPostgreSQL活用のポイント
PostgreSQL10を導入!大規模データ分析事例からみるDWHとしてのPostgreSQL活用のポイントNTT DATA OSS Professional Services
 
最近のストリーム処理事情振り返り
最近のストリーム処理事情振り返り最近のストリーム処理事情振り返り
最近のストリーム処理事情振り返りSotaro Kimura
 

What's hot (20)

Kubernetesでの性能解析 ~なんとなく遅いからの脱却~(Kubernetes Meetup Tokyo #33 発表資料)
Kubernetesでの性能解析 ~なんとなく遅いからの脱却~(Kubernetes Meetup Tokyo #33 発表資料)Kubernetesでの性能解析 ~なんとなく遅いからの脱却~(Kubernetes Meetup Tokyo #33 発表資料)
Kubernetesでの性能解析 ~なんとなく遅いからの脱却~(Kubernetes Meetup Tokyo #33 発表資料)
 
Apache BigtopによるHadoopエコシステムのパッケージング(Open Source Conference 2021 Online/Osaka...
Apache BigtopによるHadoopエコシステムのパッケージング(Open Source Conference 2021 Online/Osaka...Apache BigtopによるHadoopエコシステムのパッケージング(Open Source Conference 2021 Online/Osaka...
Apache BigtopによるHadoopエコシステムのパッケージング(Open Source Conference 2021 Online/Osaka...
 
PostgreSQLクエリ実行の基礎知識 ~Explainを読み解こう~
PostgreSQLクエリ実行の基礎知識 ~Explainを読み解こう~PostgreSQLクエリ実行の基礎知識 ~Explainを読み解こう~
PostgreSQLクエリ実行の基礎知識 ~Explainを読み解こう~
 
PostgreSQLのパラレル化に向けた取り組み@第30回(仮名)PostgreSQL勉強会
PostgreSQLのパラレル化に向けた取り組み@第30回(仮名)PostgreSQL勉強会PostgreSQLのパラレル化に向けた取り組み@第30回(仮名)PostgreSQL勉強会
PostgreSQLのパラレル化に向けた取り組み@第30回(仮名)PostgreSQL勉強会
 
Apache Avro vs Protocol Buffers
Apache Avro vs Protocol BuffersApache Avro vs Protocol Buffers
Apache Avro vs Protocol Buffers
 
Vacuum徹底解説
Vacuum徹底解説Vacuum徹底解説
Vacuum徹底解説
 
ただいまHadoop勉強中
ただいまHadoop勉強中ただいまHadoop勉強中
ただいまHadoop勉強中
 
Java8でRDBMS作ったよ
Java8でRDBMS作ったよJava8でRDBMS作ったよ
Java8でRDBMS作ったよ
 
Dockerfile を書くためのベストプラクティス解説編
Dockerfile を書くためのベストプラクティス解説編Dockerfile を書くためのベストプラクティス解説編
Dockerfile を書くためのベストプラクティス解説編
 
At least onceってぶっちゃけ問題の先送りだったよね #kafkajp
At least onceってぶっちゃけ問題の先送りだったよね #kafkajpAt least onceってぶっちゃけ問題の先送りだったよね #kafkajp
At least onceってぶっちゃけ問題の先送りだったよね #kafkajp
 
インフラエンジニアのためのcassandra入門
インフラエンジニアのためのcassandra入門インフラエンジニアのためのcassandra入門
インフラエンジニアのためのcassandra入門
 
MapReduce/YARNの仕組みを知る
MapReduce/YARNの仕組みを知るMapReduce/YARNの仕組みを知る
MapReduce/YARNの仕組みを知る
 
PostgreSQLアーキテクチャ入門(INSIGHT OUT 2011)
PostgreSQLアーキテクチャ入門(INSIGHT OUT 2011)PostgreSQLアーキテクチャ入門(INSIGHT OUT 2011)
PostgreSQLアーキテクチャ入門(INSIGHT OUT 2011)
 
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)
 
Kinesis→Redshift連携を、KCLからFirehoseに切り替えたお話
Kinesis→Redshift連携を、KCLからFirehoseに切り替えたお話Kinesis→Redshift連携を、KCLからFirehoseに切り替えたお話
Kinesis→Redshift連携を、KCLからFirehoseに切り替えたお話
 
WiredTigerを詳しく説明
WiredTigerを詳しく説明WiredTigerを詳しく説明
WiredTigerを詳しく説明
 
RDB技術者のためのNoSQLガイド NoSQLの必要性と位置づけ
RDB技術者のためのNoSQLガイド NoSQLの必要性と位置づけRDB技術者のためのNoSQLガイド NoSQLの必要性と位置づけ
RDB技術者のためのNoSQLガイド NoSQLの必要性と位置づけ
 
PostgreSQLのリカバリ超入門(もしくはWAL、CHECKPOINT、オンラインバックアップの仕組み)
PostgreSQLのリカバリ超入門(もしくはWAL、CHECKPOINT、オンラインバックアップの仕組み)PostgreSQLのリカバリ超入門(もしくはWAL、CHECKPOINT、オンラインバックアップの仕組み)
PostgreSQLのリカバリ超入門(もしくはWAL、CHECKPOINT、オンラインバックアップの仕組み)
 
PostgreSQL10を導入!大規模データ分析事例からみるDWHとしてのPostgreSQL活用のポイント
PostgreSQL10を導入!大規模データ分析事例からみるDWHとしてのPostgreSQL活用のポイントPostgreSQL10を導入!大規模データ分析事例からみるDWHとしてのPostgreSQL活用のポイント
PostgreSQL10を導入!大規模データ分析事例からみるDWHとしてのPostgreSQL活用のポイント
 
最近のストリーム処理事情振り返り
最近のストリーム処理事情振り返り最近のストリーム処理事情振り返り
最近のストリーム処理事情振り返り
 

Viewers also liked

Cassandra導入事例と現場視点での苦労したポイント cassandra summit2014jpn
Cassandra導入事例と現場視点での苦労したポイント cassandra summit2014jpnCassandra導入事例と現場視点での苦労したポイント cassandra summit2014jpn
Cassandra導入事例と現場視点での苦労したポイント cassandra summit2014jpnhaketa
 
Cassandraのしくみ データの読み書き編
Cassandraのしくみ データの読み書き編Cassandraのしくみ データの読み書き編
Cassandraのしくみ データの読み書き編Yuki Morishita
 
Apache HBase 入門 (第1回)
Apache HBase 入門 (第1回)Apache HBase 入門 (第1回)
Apache HBase 入門 (第1回)tatsuya6502
 
スケーラブルなシステムのためのHBaseスキーマ設計 #hcj13w
スケーラブルなシステムのためのHBaseスキーマ設計 #hcj13wスケーラブルなシステムのためのHBaseスキーマ設計 #hcj13w
スケーラブルなシステムのためのHBaseスキーマ設計 #hcj13wCloudera Japan
 
Apache HBase 入門 (第2回)
Apache HBase 入門 (第2回)Apache HBase 入門 (第2回)
Apache HBase 入門 (第2回)tatsuya6502
 
HBase活用事例 #hbase_ca
HBase活用事例 #hbase_caHBase活用事例 #hbase_ca
HBase活用事例 #hbase_caCloudera Japan
 
HBaseとSparkでセンサーデータを有効活用 #hbasejp
HBaseとSparkでセンサーデータを有効活用 #hbasejpHBaseとSparkでセンサーデータを有効活用 #hbasejp
HBaseとSparkでセンサーデータを有効活用 #hbasejpFwardNetwork
 
HBaseサポート最前線 #hbase_ca
HBaseサポート最前線 #hbase_caHBaseサポート最前線 #hbase_ca
HBaseサポート最前線 #hbase_caCloudera Japan
 
CAPとBASE、ACIDの呪縛
CAPとBASE、ACIDの呪縛CAPとBASE、ACIDの呪縛
CAPとBASE、ACIDの呪縛Kazuki Aranami
 
CAPとBASEとEventually Consistent
CAPとBASEとEventually ConsistentCAPとBASEとEventually Consistent
CAPとBASEとEventually ConsistentYohei Yamamoto
 
Goでヤフーの分散オブジェクトストレージを作った話 Go Conference 2017 Spring
Goでヤフーの分散オブジェクトストレージを作った話 Go Conference 2017 SpringGoでヤフーの分散オブジェクトストレージを作った話 Go Conference 2017 Spring
Goでヤフーの分散オブジェクトストレージを作った話 Go Conference 2017 SpringYahoo!デベロッパーネットワーク
 
CDHの歴史とCDH5新機能概要 #at_tokuben
CDHの歴史とCDH5新機能概要 #at_tokubenCDHの歴史とCDH5新機能概要 #at_tokuben
CDHの歴史とCDH5新機能概要 #at_tokubenCloudera Japan
 
Lars George HBase Seminar with O'REILLY Oct.12 2012
Lars George HBase Seminar with O'REILLY Oct.12 2012Lars George HBase Seminar with O'REILLY Oct.12 2012
Lars George HBase Seminar with O'REILLY Oct.12 2012Cloudera Japan
 
HBase スキーマ設計のポイント
HBase スキーマ設計のポイントHBase スキーマ設計のポイント
HBase スキーマ設計のポイントdaisuke-a-matsui
 
刊行記念セミナー「HBase徹底入門」
刊行記念セミナー「HBase徹底入門」刊行記念セミナー「HBase徹底入門」
刊行記念セミナー「HBase徹底入門」cyberagent
 
Osc2012 spring HBase Report
Osc2012 spring HBase ReportOsc2012 spring HBase Report
Osc2012 spring HBase ReportSeiichiro Ishida
 
Tokyo HBase Meetup - Realtime Big Data at Facebook with Hadoop and HBase (ja)
Tokyo HBase Meetup - Realtime Big Data at Facebook with Hadoop and HBase (ja)Tokyo HBase Meetup - Realtime Big Data at Facebook with Hadoop and HBase (ja)
Tokyo HBase Meetup - Realtime Big Data at Facebook with Hadoop and HBase (ja)tatsuya6502
 
qpstudy 2013.07 NoSQL
qpstudy 2013.07 NoSQLqpstudy 2013.07 NoSQL
qpstudy 2013.07 NoSQLAkihiro Okuno
 
HBaseとRedisを使った100億超/日メッセージを処理するLINEのストレージ
HBaseとRedisを使った100億超/日メッセージを処理するLINEのストレージHBaseとRedisを使った100億超/日メッセージを処理するLINEのストレージ
HBaseとRedisを使った100億超/日メッセージを処理するLINEのストレージLINE Corporation
 

Viewers also liked (20)

Cassandra導入事例と現場視点での苦労したポイント cassandra summit2014jpn
Cassandra導入事例と現場視点での苦労したポイント cassandra summit2014jpnCassandra導入事例と現場視点での苦労したポイント cassandra summit2014jpn
Cassandra導入事例と現場視点での苦労したポイント cassandra summit2014jpn
 
Cassandraのしくみ データの読み書き編
Cassandraのしくみ データの読み書き編Cassandraのしくみ データの読み書き編
Cassandraのしくみ データの読み書き編
 
Apache HBase 入門 (第1回)
Apache HBase 入門 (第1回)Apache HBase 入門 (第1回)
Apache HBase 入門 (第1回)
 
スケーラブルなシステムのためのHBaseスキーマ設計 #hcj13w
スケーラブルなシステムのためのHBaseスキーマ設計 #hcj13wスケーラブルなシステムのためのHBaseスキーマ設計 #hcj13w
スケーラブルなシステムのためのHBaseスキーマ設計 #hcj13w
 
Apache HBase 入門 (第2回)
Apache HBase 入門 (第2回)Apache HBase 入門 (第2回)
Apache HBase 入門 (第2回)
 
HBase活用事例 #hbase_ca
HBase活用事例 #hbase_caHBase活用事例 #hbase_ca
HBase活用事例 #hbase_ca
 
HBaseとSparkでセンサーデータを有効活用 #hbasejp
HBaseとSparkでセンサーデータを有効活用 #hbasejpHBaseとSparkでセンサーデータを有効活用 #hbasejp
HBaseとSparkでセンサーデータを有効活用 #hbasejp
 
HBaseサポート最前線 #hbase_ca
HBaseサポート最前線 #hbase_caHBaseサポート最前線 #hbase_ca
HBaseサポート最前線 #hbase_ca
 
CAPとBASE、ACIDの呪縛
CAPとBASE、ACIDの呪縛CAPとBASE、ACIDの呪縛
CAPとBASE、ACIDの呪縛
 
これがCassandra
これがCassandraこれがCassandra
これがCassandra
 
CAPとBASEとEventually Consistent
CAPとBASEとEventually ConsistentCAPとBASEとEventually Consistent
CAPとBASEとEventually Consistent
 
Goでヤフーの分散オブジェクトストレージを作った話 Go Conference 2017 Spring
Goでヤフーの分散オブジェクトストレージを作った話 Go Conference 2017 SpringGoでヤフーの分散オブジェクトストレージを作った話 Go Conference 2017 Spring
Goでヤフーの分散オブジェクトストレージを作った話 Go Conference 2017 Spring
 
CDHの歴史とCDH5新機能概要 #at_tokuben
CDHの歴史とCDH5新機能概要 #at_tokubenCDHの歴史とCDH5新機能概要 #at_tokuben
CDHの歴史とCDH5新機能概要 #at_tokuben
 
Lars George HBase Seminar with O'REILLY Oct.12 2012
Lars George HBase Seminar with O'REILLY Oct.12 2012Lars George HBase Seminar with O'REILLY Oct.12 2012
Lars George HBase Seminar with O'REILLY Oct.12 2012
 
HBase スキーマ設計のポイント
HBase スキーマ設計のポイントHBase スキーマ設計のポイント
HBase スキーマ設計のポイント
 
刊行記念セミナー「HBase徹底入門」
刊行記念セミナー「HBase徹底入門」刊行記念セミナー「HBase徹底入門」
刊行記念セミナー「HBase徹底入門」
 
Osc2012 spring HBase Report
Osc2012 spring HBase ReportOsc2012 spring HBase Report
Osc2012 spring HBase Report
 
Tokyo HBase Meetup - Realtime Big Data at Facebook with Hadoop and HBase (ja)
Tokyo HBase Meetup - Realtime Big Data at Facebook with Hadoop and HBase (ja)Tokyo HBase Meetup - Realtime Big Data at Facebook with Hadoop and HBase (ja)
Tokyo HBase Meetup - Realtime Big Data at Facebook with Hadoop and HBase (ja)
 
qpstudy 2013.07 NoSQL
qpstudy 2013.07 NoSQLqpstudy 2013.07 NoSQL
qpstudy 2013.07 NoSQL
 
HBaseとRedisを使った100億超/日メッセージを処理するLINEのストレージ
HBaseとRedisを使った100億超/日メッセージを処理するLINEのストレージHBaseとRedisを使った100億超/日メッセージを処理するLINEのストレージ
HBaseとRedisを使った100億超/日メッセージを処理するLINEのストレージ
 

Similar to Cassandraとh baseの比較して入門するno sql

Cassandra(no sql)によるシステム提案と開発
Cassandra(no sql)によるシステム提案と開発Cassandra(no sql)によるシステム提案と開発
Cassandra(no sql)によるシステム提案と開発kishimotosc
 
Db tech showcase 2016
Db tech showcase 2016Db tech showcase 2016
Db tech showcase 2016datastaxjp
 
NoSQL Bigtable and Azure Table
NoSQL Bigtable and Azure TableNoSQL Bigtable and Azure Table
NoSQL Bigtable and Azure TableTakekazu Omi
 
PHP開発者のためのNoSQL入門
PHP開発者のためのNoSQL入門PHP開発者のためのNoSQL入門
PHP開発者のためのNoSQL入門じゅん なかざ
 
20210127 AWS Black Belt Online Seminar Amazon Redshift 運用管理
20210127 AWS Black Belt Online Seminar Amazon Redshift 運用管理20210127 AWS Black Belt Online Seminar Amazon Redshift 運用管理
20210127 AWS Black Belt Online Seminar Amazon Redshift 運用管理Amazon Web Services Japan
 
もうSQLとNoSQLを選ぶ必要はない!? ~両者を備えたスケールアウトデータベースGridDB~
もうSQLとNoSQLを選ぶ必要はない!? ~両者を備えたスケールアウトデータベースGridDB~もうSQLとNoSQLを選ぶ必要はない!? ~両者を備えたスケールアウトデータベースGridDB~
もうSQLとNoSQLを選ぶ必要はない!? ~両者を備えたスケールアウトデータベースGridDB~griddb
 
SQL Server エンジニア のための コンテナ入門(k8s編)
SQL Server エンジニア のための コンテナ入門(k8s編)SQL Server エンジニア のための コンテナ入門(k8s編)
SQL Server エンジニア のための コンテナ入門(k8s編)Tomoyuki Oota
 
SQL Server コンテナ入門(Kubernetes編)
SQL Server コンテナ入門(Kubernetes編)SQL Server コンテナ入門(Kubernetes編)
SQL Server コンテナ入門(Kubernetes編)Tomoyuki Oota
 
Devsumi2013【15-e-5】NoSQLの野心的な使い方 ~Apache Cassandra編~
Devsumi2013【15-e-5】NoSQLの野心的な使い方 ~Apache Cassandra編~Devsumi2013【15-e-5】NoSQLの野心的な使い方 ~Apache Cassandra編~
Devsumi2013【15-e-5】NoSQLの野心的な使い方 ~Apache Cassandra編~kishimotosc
 
DBワークロードのAWS化とデータベースサービス関連最新情報
DBワークロードのAWS化とデータベースサービス関連最新情報DBワークロードのAWS化とデータベースサービス関連最新情報
DBワークロードのAWS化とデータベースサービス関連最新情報Amazon Web Services Japan
 
A 1-3 awsのクラウドデザインパターンをwindows-azureに持ってきてみた
A 1-3 awsのクラウドデザインパターンをwindows-azureに持ってきてみたA 1-3 awsのクラウドデザインパターンをwindows-azureに持ってきてみた
A 1-3 awsのクラウドデザインパターンをwindows-azureに持ってきてみたGoAzure
 
大規模ソーシャルゲーム開発から学んだPHP&MySQL実践テクニック
大規模ソーシャルゲーム開発から学んだPHP&MySQL実践テクニック大規模ソーシャルゲーム開発から学んだPHP&MySQL実践テクニック
大規模ソーシャルゲーム開発から学んだPHP&MySQL実践テクニックinfinite_loop
 
ビッグデータ×IoT時代のデータベースのアーキテクチャとメカニズムの比較
ビッグデータ×IoT時代のデータベースのアーキテクチャとメカニズムの比較ビッグデータ×IoT時代のデータベースのアーキテクチャとメカニズムの比較
ビッグデータ×IoT時代のデータベースのアーキテクチャとメカニズムの比較griddb
 
初心者向け負荷軽減のはなし
初心者向け負荷軽減のはなし初心者向け負荷軽減のはなし
初心者向け負荷軽減のはなしOonishi Takaaki
 
事例から見るNoSQLの使い方 - db tech showcase Tokyo 2015 2015/06/11
事例から見るNoSQLの使い方 - db tech showcase Tokyo 2015 2015/06/11事例から見るNoSQLの使い方 - db tech showcase Tokyo 2015 2015/06/11
事例から見るNoSQLの使い方 - db tech showcase Tokyo 2015 2015/06/11MapR Technologies Japan
 

Similar to Cassandraとh baseの比較して入門するno sql (20)

About NoSQL
About NoSQLAbout NoSQL
About NoSQL
 
Cassandra(no sql)によるシステム提案と開発
Cassandra(no sql)によるシステム提案と開発Cassandra(no sql)によるシステム提案と開発
Cassandra(no sql)によるシステム提案と開発
 
Db tech showcase 2016
Db tech showcase 2016Db tech showcase 2016
Db tech showcase 2016
 
NoSQL Bigtable and Azure Table
NoSQL Bigtable and Azure TableNoSQL Bigtable and Azure Table
NoSQL Bigtable and Azure Table
 
AWS Blackbelt 2015シリーズ RDS
AWS Blackbelt 2015シリーズ RDSAWS Blackbelt 2015シリーズ RDS
AWS Blackbelt 2015シリーズ RDS
 
PHP開発者のためのNoSQL入門
PHP開発者のためのNoSQL入門PHP開発者のためのNoSQL入門
PHP開発者のためのNoSQL入門
 
20120508 aws meister-rds-public
20120508 aws meister-rds-public20120508 aws meister-rds-public
20120508 aws meister-rds-public
 
20120409 aws meister-reloaded-dynamo-db
20120409 aws meister-reloaded-dynamo-db20120409 aws meister-reloaded-dynamo-db
20120409 aws meister-reloaded-dynamo-db
 
20210127 AWS Black Belt Online Seminar Amazon Redshift 運用管理
20210127 AWS Black Belt Online Seminar Amazon Redshift 運用管理20210127 AWS Black Belt Online Seminar Amazon Redshift 運用管理
20210127 AWS Black Belt Online Seminar Amazon Redshift 運用管理
 
もうSQLとNoSQLを選ぶ必要はない!? ~両者を備えたスケールアウトデータベースGridDB~
もうSQLとNoSQLを選ぶ必要はない!? ~両者を備えたスケールアウトデータベースGridDB~もうSQLとNoSQLを選ぶ必要はない!? ~両者を備えたスケールアウトデータベースGridDB~
もうSQLとNoSQLを選ぶ必要はない!? ~両者を備えたスケールアウトデータベースGridDB~
 
SQL Server エンジニア のための コンテナ入門(k8s編)
SQL Server エンジニア のための コンテナ入門(k8s編)SQL Server エンジニア のための コンテナ入門(k8s編)
SQL Server エンジニア のための コンテナ入門(k8s編)
 
SQL Server コンテナ入門(Kubernetes編)
SQL Server コンテナ入門(Kubernetes編)SQL Server コンテナ入門(Kubernetes編)
SQL Server コンテナ入門(Kubernetes編)
 
Devsumi2013【15-e-5】NoSQLの野心的な使い方 ~Apache Cassandra編~
Devsumi2013【15-e-5】NoSQLの野心的な使い方 ~Apache Cassandra編~Devsumi2013【15-e-5】NoSQLの野心的な使い方 ~Apache Cassandra編~
Devsumi2013【15-e-5】NoSQLの野心的な使い方 ~Apache Cassandra編~
 
DBワークロードのAWS化とデータベースサービス関連最新情報
DBワークロードのAWS化とデータベースサービス関連最新情報DBワークロードのAWS化とデータベースサービス関連最新情報
DBワークロードのAWS化とデータベースサービス関連最新情報
 
A 1-3 awsのクラウドデザインパターンをwindows-azureに持ってきてみた
A 1-3 awsのクラウドデザインパターンをwindows-azureに持ってきてみたA 1-3 awsのクラウドデザインパターンをwindows-azureに持ってきてみた
A 1-3 awsのクラウドデザインパターンをwindows-azureに持ってきてみた
 
大規模ソーシャルゲーム開発から学んだPHP&MySQL実践テクニック
大規模ソーシャルゲーム開発から学んだPHP&MySQL実践テクニック大規模ソーシャルゲーム開発から学んだPHP&MySQL実践テクニック
大規模ソーシャルゲーム開発から学んだPHP&MySQL実践テクニック
 
ビッグデータ×IoT時代のデータベースのアーキテクチャとメカニズムの比較
ビッグデータ×IoT時代のデータベースのアーキテクチャとメカニズムの比較ビッグデータ×IoT時代のデータベースのアーキテクチャとメカニズムの比較
ビッグデータ×IoT時代のデータベースのアーキテクチャとメカニズムの比較
 
初心者向け負荷軽減のはなし
初心者向け負荷軽減のはなし初心者向け負荷軽減のはなし
初心者向け負荷軽減のはなし
 
事例から見るNoSQLの使い方 - db tech showcase Tokyo 2015 2015/06/11
事例から見るNoSQLの使い方 - db tech showcase Tokyo 2015 2015/06/11事例から見るNoSQLの使い方 - db tech showcase Tokyo 2015 2015/06/11
事例から見るNoSQLの使い方 - db tech showcase Tokyo 2015 2015/06/11
 
HBase at LINE
HBase at LINEHBase at LINE
HBase at LINE
 

Recently uploaded

Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。iPride Co., Ltd.
 
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略Ryo Sasaki
 
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムスマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムsugiuralab
 
20240412_HCCJP での Windows Server 2025 Active Directory
20240412_HCCJP での Windows Server 2025 Active Directory20240412_HCCJP での Windows Server 2025 Active Directory
20240412_HCCJP での Windows Server 2025 Active Directoryosamut
 
PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000Shota Ito
 
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。
新人研修のまとめ       2024/04/12の勉強会で発表されたものです。新人研修のまとめ       2024/04/12の勉強会で発表されたものです。
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。iPride Co., Ltd.
 
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By DanielPostman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Danieldanielhu54
 
IoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptxIoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptxAtomu Hidaka
 
UPWARD_share_company_information_20240415.pdf
UPWARD_share_company_information_20240415.pdfUPWARD_share_company_information_20240415.pdf
UPWARD_share_company_information_20240415.pdffurutsuka
 

Recently uploaded (9)

Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
 
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
 
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムスマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システム
 
20240412_HCCJP での Windows Server 2025 Active Directory
20240412_HCCJP での Windows Server 2025 Active Directory20240412_HCCJP での Windows Server 2025 Active Directory
20240412_HCCJP での Windows Server 2025 Active Directory
 
PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000
 
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。
新人研修のまとめ       2024/04/12の勉強会で発表されたものです。新人研修のまとめ       2024/04/12の勉強会で発表されたものです。
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。
 
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By DanielPostman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Daniel
 
IoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptxIoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptx
 
UPWARD_share_company_information_20240415.pdf
UPWARD_share_company_information_20240415.pdfUPWARD_share_company_information_20240415.pdf
UPWARD_share_company_information_20240415.pdf
 

Cassandraとh baseの比較して入門するno sql

  • 1. CassandraとHBaseの比較 をして入門するNoSQL HN : 豊月(Yutuki) Twitter : @yutuki_r 1
  • 2. 中の人。 • 本スライド:Ver1.3 • HN : 豊月(Yutuki) • Twitter : @yutuki_r • Wiki : http://lunarium.info/arc/ • 今日のハッシュタグ : #casstudy10th • Google Group : Cassandra勉強会 2
  • 3. 改訂履歴 • 1.1 公開 • 1.2 誤記修正 Chunk→Tablet • 1.3 内容を追記、修正しました。 – CAP定理が証明論文が公開 – Cassandraを利用したアプリ「PARTAKE」が公開 – Cassandra勉強会グループと日本Cassandraユーザ会が統合 – Cassandra0.7で実装されるのはVersionedClock – その他、わかりにくい箇所に説明追加等の修正 3
  • 4. AGENDA • NoSQLって何? • NoSQLとRDBの関係は? • どうしてNoSQLが必要になったの? • Database種類多すぎ!わからないよ! • じゃどんなNoSQLが出てきたの? • どんな構造をしてるの? – HBaseについて – Cassandraについて – 障害への対応 • 結局どっちを使えばいいの? 4
  • 6. NoSQLとは • Not Only SQLの略称です。 • 意訳:「SQLだけじゃないぜ!」 • 意味1:SQLを利用しないデータベースの事 • 意味2:上記の様なデータベースを積極的に使っていこう という動き、運動を指す。 6
  • 7. NoSQLはこんなにたくさんあります BigTable HBase SimpleDB Dynamo (Google) (Yahoo!) (Amazon) (Amazon) ROMA Cassandra Kai CouchDB (楽天) (FaceBook) (goo) BerkeleyDB Flare MongoDB Kumofs (Oracle) (Gree) WAS TokyoTyrant Velocity Voldemort eXtremeScale (mixi) (Microsoft) (Linkdin) (IBM) 7
  • 8. NoSQLの特徴 ノード数に ノード数に • RDBと比べて利用目的や 素直に比 比例しない 利用範囲を絞っている 例する性能 運用コスト • RDBが搭載している機能 を省いている 伸縮自在 障害耐性 8
  • 10. DataStore Database FileSystem 10
  • 11. DataStore 【FileSystem】 NTFS ext4 XFS Database UDF Google FileSystem Hadoop Distributed FileSystem 11
  • 12. DataStore Database SQL 【RDB】 Oracle DB2 MySQL FS SQLite SQL Server PostgreSQL JavaDB 12
  • 13. DataStore Database 【NoSQL】 SQL KeyValueStore 列指向型 Database Document Database RDB FS 13
  • 14. DataStore Database NoSQL SQL 【KeyValueStore】 Dynamo Memcached RDB Voldemort FS 【列指向型Database】 BigTable HBase Cassandra 14
  • 16. 狭義のKVS、広義のKVS • 列指向型Databaseの構造 Key CF Column TS Value これらをKEYと見なす Key / CF / Column / TS Value この為、列志向型DBは広義のKVSに含まれる事が多い 16
  • 17. DataStore Database NoSQL SQL KeyValueStore FileSystem 列指向型 RDB Database Document Dataabse 17
  • 19. 最近のアプリケーションの範囲(Google、Amazon、Facebook等) ユビキタス 双方向サービス AJAX Hadoop 19
  • 21. Web1.0 と Web2.0 ■Web1.0 • 基本的に情報は一方通行 • 通信回数は基本的に一回 • 更新頻度が低い静的HTML ■Web2.0 • 双方向通信 • 複数通信~常時通信 AJAX通信 • コンテンツはDB上、毎度読み出して動的表示 • ユーザ毎に違うページ 21
  • 22. Databaseの進化 (ディスクでの応答からメモリでの応答へ) Memory (20GB/秒) Disk (0.2GB/秒) Web1.0 Write Web1.0 Read Web2.0 Write Web2.0 Read Memcached Cassandra / HBase Write 非同期書込 Cassandra / HBase Read 22
  • 24. ブリュワーのCAP定理 とあるシステムでは 可用性 ・一貫性 ・可用性 ・NW分断耐性 ネットワー の内、二つまでしか 一貫性 ク分断耐 満たす事が出来ない 性 証明された訳ではないので「CAP原則」と呼んだ方が正確ではある 証明された様です→CAP定理の証明論文(PDF) 各種DBの特性を説明するのに非常に役立つ 24
  • 25. CAP定理 一貫性 (Consistency) • 一貫性がある – ZEROか100か – YESかNOか – 白か黒か – 生か死か • 重要なのは、「何も出来ない状態」も一貫性が担保された状態である事 • 中途半端な状態が存在しない 25
  • 26. CAP定理 可用性 (Availability) • 文字通り、そのサービスが利用出来る事 • そのサービスが動いていた所で利用出来なければ意味がない • Webで言えば、混雑していてもキチンと応答が返ってくる事 – ■残念な例 – iPhone4発売時のSoftBankとか – W杯の時のTwitterとか – ラピュタが放映してる時の2chとか – ■良い例 – Amazon、Google、Facebookとか – 新商品発売時のAppleStoreとか – 最近のmixiとか – モバゲーとか 26
  • 27. CAP定理 分割耐性(Partition Tolerance) • CAP定理の中でも一番難しいポイント • 「全面的なネットワーク障害以外のネットワーク障害が発生しても、システム 全体が間違った結果を返さない」 • よくこのPの部分を間違って「分散しやすい」と理解している人がいますが、そ れは誤解であり違います 27
  • 28. RDBをCAP定理で理解する • RDBは高い一貫性を最大の特徴とする – 厳密なトランザクション • 可用性も基本的に高い • ネットワーク分断耐性は低い – 分散化は可能である。しかし技術的に難易度が高い • 故にスケールアウトよりもスケールアップ – Exadataの登場等 • ネットワーク分断耐性(P)を犠牲にして一貫性(C)と可用性(A)を とるCA型 28
  • 29. CAP定理によるデータベースの分類 Oracle Dynamo MySQL Voldemort 可用性 KAI PostgreSQL AsterData TokyoCabinet Greenplum Cassandra Vertica SimpleDB ネットワーク 一貫性 分断耐性 RDB KVS 列指向 BigTable MongoDB BerkeleyDB ドキュメント HBase Terrastone Memcached Hypertable Scalaris Redis 29
  • 31. Google BigTable • Googleの持つ分散ファイルシステム 「Google FileSystem(GFS)」の 上で動作する列指向DB • 2006年に論文が公開される • GFSは大きめのファイルを保存する のが得意 • GFSが苦手な小型ファイル(データ) を取り扱う為に開発される 31
  • 32. Google BigTable • Googleの本業はWebのクロールとIndex化 • 複数クローラによる書込とMapReduceによる大規模分散並列Batch処理 大量のデータ 効率的な処理が 分散並列処理が Errorや読込遅 分散並列処理が 必要 延は別のデータを 必要(じゃないと しやすいデータ 処理する事で隠 終わらない) 蔽 可用性(A) を犠牲にして、一貫性(C)とNW分断耐性(P)を選択 CP型 32
  • 33. Amazon Dynamo • 自社のEコマース基盤の為に開発されたKVS • 2007年に論文公開される • Amazonが自社サービスに特化 – 過去の情報を統計分析した結果に基づく – 一意のKeyのみでやり取りが出来る – データサイズは1MB以下 33
  • 34. Amazon Dynamo • 本業はEコマース – 大量の商品情報の表示、大量のユーザからのリクエスト • 殆どのデータや処理が独立している – 基本的には新規登録、追加のみ – 購入行為は1ユーザで完結(例外:在庫) • Web応答速度の遅延は売り上げ低下に直結 – 応答速度が0.1秒遅延すると、1%の売り上げを逃す→blog • 大量データに対する大量アクセス x ダウンタイムなし 一貫性(C)を犠牲にして、可用性(A)とNW分断耐性(P)を選択 AP型 34
  • 35. NoSQLの系譜(BigTable族、Dynamo族) Google クローン Amazon FileSystem Apache S3 Google Hadoop Amazon 派生 MapReduce Dynamo Google BigTable 派生 Amazon SimpleDB クローン 混合 クローン Apache Facebook HBase Cassandra Linkedin goo HyperTable Voldemort Kai 35
  • 37. 基本的な構造 BigTable HBase Cassandra Dynamo CAP CP CP AP AP データ 分散方法 シャーディング コンシステントハッシング法 データモデル 列志向 KeyValue MemTable ストレージ MySQL CommitLog / SSTable 37
  • 39. シャーディング(BigTable、HBase) • ある一定の範囲でデータベース を分割する事 • 分割方向は縦だったり横だったり する • 分割したデータを複数のノードに 割り当てて分散管理 • 【問題】どのノードにどのデータが BigTable あるか別個管理する必要がある Tablet HBase Region 39
  • 41. コンシステントハッシング法(Cassandra、Dynamo) • ハッシュ値を元に円を作成し、その上に 複製を保存 保存 ノードを配置 • データのKeyからハッシュ値を作り、担 当するノードへ保存 • 複製ルールに従い別ノードへデータをコ ピーする • 【問題】Keyによってはある特定の範 囲だけ肥大化 = 特定ノードへデータ 集中 DATA 41
  • 43. CommitLog / Memtable / SSTable Memory MemTable MemTable 読込はメモリで応答 3.一定サイズに 2.メモリへ展開 なったらDisk保存 SSTable CommitLog SSTable 1.まず SSTable CommitLog Disk 4.Disk保存したら CommitLog削除 43
  • 44. CommitLog / Memtable / SSTable 【データ復旧時】 Memory MemTable MemTable メモリへ展開 Disk保存されてな い分を読込 SSTable CommitLog SSTable SSTable Disk 44
  • 46. HBaseの構成要素 • HBaseMaster (HM) – リージョンファイルのロードバランシング H • HRegionServer (RS) M – リージョンファイルの保持 – 読込書込 RS RS • ZooKeeper (ZK) RS RS – Rootテーブルの位置情報保持 – HBaseMasterの情報保持 • Hadoop Distributed FileSystem (HDFS) – 分散ファイルシステム Cli – ここでデータの複製保存 46
  • 47. root / meta / UserTableの関係 root meta meta meta meta meta UT1-a UT2-a UT3-a UT4-a UT5-a UT1-b UT2-b UT3-b UT4-a UT4-a UT1-c UT3-c UT4-a UT4-a UT4-a UT3-d UT4-z UT3-e データはシャーディング して複数ノードで保持 47
  • 48. HBaseの読み出し / 書き込み Cli ZK 1. ZKからrootテーブル持つノードを知 る 2. rootから目的のmetaテーブルを保 持するノードを知る root RS 3. Metaテーブルから目的のテーブルの Regionを持つノードをしる 4. 目的のデータの取得する meta RS ・途中で取得した情報はClientがキャッシュ ・この仕組みを利用する事で、ノードがどれだけ UserTable RS 増加しても同一の手順数でデータ取得が可能 である 48
  • 50. Cassandra • 全ノードが同一機能を有する • 1Hopで接続 • 各ノードが保持するデータが巧く分散 するかはKey次第 • データは複製されて複数のノードが保 持している • 「結果整合性」を採用 • 「一貫性強度の選択」による操作 Cli 50
  • 51. 結果整合性 • 「データが一時的に矛盾した状態になるが、結果的には整合性 の取れたデータになる」 • Cassandraが犠牲にした一貫性を補完する為の技術 – Gossip Protocol • ノード同士が常に行う状態確認。データの整合性も確認する – Read Repair • 読み出したデータが一致しない場合、データを修正する – Hinted HandOff • 本来データを保持すべきノードが応答しない時、データを預かる – Consistency Level(一貫性強度の選択) • 速度優先か、一貫性優先かを選ぶことが出来る 51
  • 52. 一貫性強度の選択 (複製数3の場合) B • 「幾つの複製データに処理を施すか」の選択 Aという値をBに書き換え、読み出す処理の例 B B A A B B Write B A A B A B B A B B Read B A A B W:書込数 R:読込数 N:複製数 B B B W+R>N の時、「強い一貫性」を得られる B 52
  • 53. Cassandraの読み出し / 書き込み 1. まずノードに接続 2. ハッシュ表からデータを持つノードに 要求を投げる 3. 必要な数のノードから応答があっ た時点で、クライアントに値を返す Cli 53
  • 55. 仕様的な差異 HBase Cassandra SPoF HDFSにあり なし 同一行(同一データ)に 単独ノード 複数ノード 対する読込/書込 ロック単位 Row Column データ競合解消方法 競合発生なし 時間解決 (Gossip) データ分散方法 自動分散 手動分散 CAS操作 可能 不可能 (0.7から可能) データ複製実行層 ディスク層(HDFS) メモリ層 Hop数 1~3 1 55
  • 56. 障害発生時(ノードのダウン) HBase Cassandra 欠落ノードが持つデータ 自動で別ノードへ 欠落 欠落ノードが持つデータへの 別ノードへのデータ移動 別ノードが受け付け 読込/書込 が終わるまで待たされる データ読込不可の可能性 一貫性強度の低下 残存ノードへの影響 処理能力低下 複製数の減少 データの消失 待たされるがErrorは ユーザからみた動作 Errorが返ってくる事がある 返ってこない 分断した島の動作 小さい方が自動ダウン それぞれ動作 多重ネットワーク障害 復旧時間の長期化 全体クラッシュの可能性 (後述) データ不整合の可能性 56
  • 57. 復旧作業 HBase Cassandra 追加方法を選択 ・同一Tokenで復帰 ・新規Tokenで復帰 ノード復旧 ノード追加 ・新規ノードとしてToken指定追加 ・新規ノードとして新規Tokenで追加 v0.6.8で改善された 57
  • 59. HBaseの多重ネットワーク分断 • HBaseでネットワーク分断が起きると、 ZKが「自分の所属する島が多数側か 少数側か」を判断し、少数側が「自殺」 する事で一貫性の確保を図る RS RS • ならばもし短時間に連続して分断が発 RS RS 生し、多重分断状態に陥り、全員が「 少数側である」と判断をしたら・・・? RS RS RS • root / metaテーブルが壊れる可能性 がある。壊れると全体データに問題が発 RS RS 生する可能性が高まる RS 59
  • 60. Cassandraの多重ネットワーク分断 • 分断されまくって1ノードに追いやられて も動作する • ノードに繋がる限り書き込み処理は可 能(HintedHandOff) • 但し読込は失敗する可能性有り • 分断解消後はデータを自動でMerge する。但し場合に依ってはデータに不整 合が発生する可能性がある – 0.7 VersionedClockで回避出来そ う? 60
  • 62. 選定基準 結果整合性の 想定データ規模 許容度 Cassandraは予想 HBaseの安定稼働 以上に古いデータを は5ノード以上? とってくる 受容して問題ない Or 0.6.4でかなり改善? アプリで防げる 62
  • 63. 得意分野(得手不得手であって出来る出来ないではない) ■Webフロント寄り ■トランザクション処理 商品情報 金融分野 可用性 ユーザ情報 在庫管理 権限情報 マスター原本 各種Log OLTP ネットワーク 一貫性 分断耐性 ■バックエンド / Batch処理 給与計算 会計計算 各種BI Hadoop OLAP 63
  • 64. だからこそ敢えて Cassandra、HBaseを利用したアプリケーションを考えている場合、 まず本番の前に調査として 「最も苦手とする機能を作ってみる」 事を提案します。 • 回避策を発見出来ます。 • 地雷原を発見出来ます。 • 事前に地雷を踏みまくれ! • 技術力もつきます。 • 勉強会での発表のネタが出来ます。 64
  • 65. 苦手機能の例 • @mayahjp氏作成イベント参加者管理アプリ • 「PARTAKE」 • 要求される機能はどれもCassandraが苦手とする機能 – 一定数で締め切らなければならない – 参加者数の正確なカウント – 登録順序の管理 • この辺りを詳しく知りたい方は@mayahjp氏のスライド 「CassandraでWebAppを」を見てみてください。 65
  • 67. Powered by & Special Thanks! • @mayahjp氏 • @ashato氏 • @2t3氏 • 日本Cassandraユーザー会 • Hadoopソースコードリーディング 67