SlideShare ist ein Scribd-Unternehmen logo
1 von 67
Downloaden Sie, um offline zu lesen
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

Weitere ähnliche Inhalte

Was ist angesagt?

機械学習の定番プラットフォームSparkの紹介
機械学習の定番プラットフォームSparkの紹介機械学習の定番プラットフォームSparkの紹介
機械学習の定番プラットフォームSparkの紹介Cloudera Japan
 
HDFSのスケーラビリティの限界を突破するためのさまざまな取り組み | Hadoop / Spark Conference Japan 2019 #hc...
HDFSのスケーラビリティの限界を突破するためのさまざまな取り組み | Hadoop / Spark Conference Japan 2019  #hc...HDFSのスケーラビリティの限界を突破するためのさまざまな取り組み | Hadoop / Spark Conference Japan 2019  #hc...
HDFSのスケーラビリティの限界を突破するためのさまざまな取り組み | Hadoop / Spark Conference Japan 2019 #hc...Yahoo!デベロッパーネットワーク
 
Dockerからcontainerdへの移行
Dockerからcontainerdへの移行Dockerからcontainerdへの移行
Dockerからcontainerdへの移行Kohei Tokunaga
 
Apache Avro vs Protocol Buffers
Apache Avro vs Protocol BuffersApache Avro vs Protocol Buffers
Apache Avro vs Protocol BuffersSeiya Mizuno
 
DockerとPodmanの比較
DockerとPodmanの比較DockerとPodmanの比較
DockerとPodmanの比較Akihiro Suda
 
PostgreSQLアンチパターン
PostgreSQLアンチパターンPostgreSQLアンチパターン
PostgreSQLアンチパターンSoudai Sone
 
実運用して分かったRabbit MQの良いところ・気をつけること #jjug
実運用して分かったRabbit MQの良いところ・気をつけること #jjug実運用して分かったRabbit MQの良いところ・気をつけること #jjug
実運用して分かったRabbit MQの良いところ・気をつけること #jjugYahoo!デベロッパーネットワーク
 
爆速クエリエンジン”Presto”を使いたくなる話
爆速クエリエンジン”Presto”を使いたくなる話爆速クエリエンジン”Presto”を使いたくなる話
爆速クエリエンジン”Presto”を使いたくなる話Kentaro Yoshida
 
Redisの特徴と活用方法について
Redisの特徴と活用方法についてRedisの特徴と活用方法について
Redisの特徴と活用方法についてYuji Otani
 
アーキテクチャから理解するPostgreSQLのレプリケーション
アーキテクチャから理解するPostgreSQLのレプリケーションアーキテクチャから理解するPostgreSQLのレプリケーション
アーキテクチャから理解するPostgreSQLのレプリケーションMasahiko Sawada
 
Apache Sparkに手を出してヤケドしないための基本 ~「Apache Spark入門より」~ (デブサミ 2016 講演資料)
Apache Sparkに手を出してヤケドしないための基本 ~「Apache Spark入門より」~ (デブサミ 2016 講演資料)Apache Sparkに手を出してヤケドしないための基本 ~「Apache Spark入門より」~ (デブサミ 2016 講演資料)
Apache Sparkに手を出してヤケドしないための基本 ~「Apache Spark入門より」~ (デブサミ 2016 講演資料)NTT DATA OSS Professional Services
 
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
 
マイクロにしすぎた結果がこれだよ!
マイクロにしすぎた結果がこれだよ!マイクロにしすぎた結果がこれだよ!
マイクロにしすぎた結果がこれだよ!mosa siru
 
Python 3.9からの新定番zoneinfoを使いこなそう
Python 3.9からの新定番zoneinfoを使いこなそうPython 3.9からの新定番zoneinfoを使いこなそう
Python 3.9からの新定番zoneinfoを使いこなそうRyuji Tsutsui
 
コンテナの作り方「Dockerは裏方で何をしているのか?」
コンテナの作り方「Dockerは裏方で何をしているのか?」コンテナの作り方「Dockerは裏方で何をしているのか?」
コンテナの作り方「Dockerは裏方で何をしているのか?」Masahito Zembutsu
 
webエンジニアのためのはじめてのredis
webエンジニアのためのはじめてのrediswebエンジニアのためのはじめてのredis
webエンジニアのためのはじめてのredisnasa9084
 
Apache Kuduを使った分析システムの裏側
Apache Kuduを使った分析システムの裏側Apache Kuduを使った分析システムの裏側
Apache Kuduを使った分析システムの裏側Cloudera Japan
 
初心者向けMongoDBのキホン!
初心者向けMongoDBのキホン!初心者向けMongoDBのキホン!
初心者向けMongoDBのキホン!Tetsutaro Watanabe
 
YugabyteDBを使ってみよう - part2 -(NewSQL/分散SQLデータベースよろず勉強会 #2 発表資料)
YugabyteDBを使ってみよう - part2 -(NewSQL/分散SQLデータベースよろず勉強会 #2 発表資料)YugabyteDBを使ってみよう - part2 -(NewSQL/分散SQLデータベースよろず勉強会 #2 発表資料)
YugabyteDBを使ってみよう - part2 -(NewSQL/分散SQLデータベースよろず勉強会 #2 発表資料)NTT DATA Technology & Innovation
 

Was ist angesagt? (20)

機械学習の定番プラットフォームSparkの紹介
機械学習の定番プラットフォームSparkの紹介機械学習の定番プラットフォームSparkの紹介
機械学習の定番プラットフォームSparkの紹介
 
HDFSのスケーラビリティの限界を突破するためのさまざまな取り組み | Hadoop / Spark Conference Japan 2019 #hc...
HDFSのスケーラビリティの限界を突破するためのさまざまな取り組み | Hadoop / Spark Conference Japan 2019  #hc...HDFSのスケーラビリティの限界を突破するためのさまざまな取り組み | Hadoop / Spark Conference Japan 2019  #hc...
HDFSのスケーラビリティの限界を突破するためのさまざまな取り組み | Hadoop / Spark Conference Japan 2019 #hc...
 
Dockerからcontainerdへの移行
Dockerからcontainerdへの移行Dockerからcontainerdへの移行
Dockerからcontainerdへの移行
 
Apache Avro vs Protocol Buffers
Apache Avro vs Protocol BuffersApache Avro vs Protocol Buffers
Apache Avro vs Protocol Buffers
 
DockerとPodmanの比較
DockerとPodmanの比較DockerとPodmanの比較
DockerとPodmanの比較
 
PostgreSQLアンチパターン
PostgreSQLアンチパターンPostgreSQLアンチパターン
PostgreSQLアンチパターン
 
実運用して分かったRabbit MQの良いところ・気をつけること #jjug
実運用して分かったRabbit MQの良いところ・気をつけること #jjug実運用して分かったRabbit MQの良いところ・気をつけること #jjug
実運用して分かったRabbit MQの良いところ・気をつけること #jjug
 
爆速クエリエンジン”Presto”を使いたくなる話
爆速クエリエンジン”Presto”を使いたくなる話爆速クエリエンジン”Presto”を使いたくなる話
爆速クエリエンジン”Presto”を使いたくなる話
 
NetflixにおけるPresto/Spark活用事例
NetflixにおけるPresto/Spark活用事例NetflixにおけるPresto/Spark活用事例
NetflixにおけるPresto/Spark活用事例
 
Redisの特徴と活用方法について
Redisの特徴と活用方法についてRedisの特徴と活用方法について
Redisの特徴と活用方法について
 
アーキテクチャから理解するPostgreSQLのレプリケーション
アーキテクチャから理解するPostgreSQLのレプリケーションアーキテクチャから理解するPostgreSQLのレプリケーション
アーキテクチャから理解するPostgreSQLのレプリケーション
 
Apache Sparkに手を出してヤケドしないための基本 ~「Apache Spark入門より」~ (デブサミ 2016 講演資料)
Apache Sparkに手を出してヤケドしないための基本 ~「Apache Spark入門より」~ (デブサミ 2016 講演資料)Apache Sparkに手を出してヤケドしないための基本 ~「Apache Spark入門より」~ (デブサミ 2016 講演資料)
Apache Sparkに手を出してヤケドしないための基本 ~「Apache Spark入門より」~ (デブサミ 2016 講演資料)
 
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)
 
マイクロにしすぎた結果がこれだよ!
マイクロにしすぎた結果がこれだよ!マイクロにしすぎた結果がこれだよ!
マイクロにしすぎた結果がこれだよ!
 
Python 3.9からの新定番zoneinfoを使いこなそう
Python 3.9からの新定番zoneinfoを使いこなそうPython 3.9からの新定番zoneinfoを使いこなそう
Python 3.9からの新定番zoneinfoを使いこなそう
 
コンテナの作り方「Dockerは裏方で何をしているのか?」
コンテナの作り方「Dockerは裏方で何をしているのか?」コンテナの作り方「Dockerは裏方で何をしているのか?」
コンテナの作り方「Dockerは裏方で何をしているのか?」
 
webエンジニアのためのはじめてのredis
webエンジニアのためのはじめてのrediswebエンジニアのためのはじめてのredis
webエンジニアのためのはじめてのredis
 
Apache Kuduを使った分析システムの裏側
Apache Kuduを使った分析システムの裏側Apache Kuduを使った分析システムの裏側
Apache Kuduを使った分析システムの裏側
 
初心者向けMongoDBのキホン!
初心者向けMongoDBのキホン!初心者向けMongoDBのキホン!
初心者向けMongoDBのキホン!
 
YugabyteDBを使ってみよう - part2 -(NewSQL/分散SQLデータベースよろず勉強会 #2 発表資料)
YugabyteDBを使ってみよう - part2 -(NewSQL/分散SQLデータベースよろず勉強会 #2 発表資料)YugabyteDBを使ってみよう - part2 -(NewSQL/分散SQLデータベースよろず勉強会 #2 発表資料)
YugabyteDBを使ってみよう - part2 -(NewSQL/分散SQLデータベースよろず勉強会 #2 発表資料)
 

Andere mochten auch

Cassandra導入事例と現場視点での苦労したポイント cassandra summit2014jpn
Cassandra導入事例と現場視点での苦労したポイント cassandra summit2014jpnCassandra導入事例と現場視点での苦労したポイント cassandra summit2014jpn
Cassandra導入事例と現場視点での苦労したポイント cassandra summit2014jpnhaketa
 
RDB技術者のためのNoSQLガイド NoSQLの必要性と位置づけ
RDB技術者のためのNoSQLガイド NoSQLの必要性と位置づけRDB技術者のためのNoSQLガイド NoSQLの必要性と位置づけ
RDB技術者のためのNoSQLガイド NoSQLの必要性と位置づけRecruit Technologies
 
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
 
ビッグデータ処理データベースの全体像と使い分け
ビッグデータ処理データベースの全体像と使い分けビッグデータ処理データベースの全体像と使い分け
ビッグデータ処理データベースの全体像と使い分けRecruit Technologies
 
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
 

Andere mochten auch (20)

Cassandra導入事例と現場視点での苦労したポイント cassandra summit2014jpn
Cassandra導入事例と現場視点での苦労したポイント cassandra summit2014jpnCassandra導入事例と現場視点での苦労したポイント cassandra summit2014jpn
Cassandra導入事例と現場視点での苦労したポイント cassandra summit2014jpn
 
RDB技術者のためのNoSQLガイド NoSQLの必要性と位置づけ
RDB技術者のためのNoSQLガイド NoSQLの必要性と位置づけRDB技術者のためのNoSQLガイド NoSQLの必要性と位置づけ
RDB技術者のためのNoSQLガイド NoSQLの必要性と位置づけ
 
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)
 

Ähnlich wie 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
 

Ähnlich wie 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
 

Kürzlich hochgeladen

CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?akihisamiyanaga1
 
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfAWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfFumieNakayama
 
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NTT DATA Technology & Innovation
 
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineerYuki Kikuchi
 
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)Hiroshi Tomioka
 
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)UEHARA, Tetsutaro
 
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfクラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfFumieNakayama
 
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...博三 太田
 

Kürzlich hochgeladen (8)

CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
 
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfAWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
 
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
 
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
 
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
 
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
 
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfクラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
 
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
 

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