SlideShare una empresa de Scribd logo
1 de 61
GoogleのBig TableとAzure Tableの特性比較
         と失敗しない使い方

  株式会社リード・レックス
        開発部 インターネットソリューショングループ
                       部長 近江 武一



            株式会社リード・レックス
概要

NoSQLの中でGoogle App Engine
Datastore(以下 GAE Datastore)とWindows
Azure TableはACIDトランザクションのサ
ポート、PaaSでのサービスなどの面で似た
ような立ち位置にある。その比較と、事例
を通じ失敗しない使い方を紹介する


2012/5/10     (C) ReedRex Co,. LTD.   2
TRENDS

2012/5/10   (C) ReedRex Co,. LTD.   3
ここ20年ほどの間の流れ

1. ここ20年の間で、データの永続化手段は、
   RDBMSとファイルシステムの2つに集約
2. 扱うデータ量が急激に増えた。100万超のサービ
   スの通常化、20年前ならYahoo Japanクラスがゴ
   ロゴロしている
3. コモディティ化されたハードウェアによって急
   激な単価低下(CPU、Memory、HDD)が起きた
4. クラウドの台頭(安価なハードウェアを大量に
   用意するタイプのパブリッククラウド)
2012/5/10   (C) ReedRex Co,. LTD.   4
永続化ストレージの2極化


            コスト                    構造化データ(関係モデル)
ファイルシステム




            大容量                                 トランザクション

                                                柔軟な問い合わせ




                                                           SQL
            単純さ                                データの一貫性
            扱い易さ       セキュリティ
                                                  スループット
            スケーラビリティ       可用性



2012/5/10              (C) ReedRex Co,. LTD.                     5
JPIX Backplane のトラフィック遷移 2002-
2012




2012/5/10      (C) ReedRex Co,. LTD.   6
ハードウェアのコモディティ化

•     1992年
      Windows 3.1, OS/2 2.0, 486 DX2 66MHz, HDD
      100MB

•     2012年
      Windows 7, Mac OSX, Linux, 2GHz Multi Core, HDD
      数100MB~

•     パブリッククラウド -- Amazon, Google, Azure
      コモディティ化された低価格なハードウェアを大量
      に用意してサービスを提供
2012/5/10               (C) ReedRex Co,. LTD.           7
2012/5/10   (C) ReedRex Co,. LTD.   8
Gapの増大

• 永続化ストレージモデルの停滞

• 処理データ量の増大

• ハードウェアのコモディティ化

2012/5/10   (C) ReedRex Co,. LTD.   9
SQL AlternativeとしてのNoSQL

   狭間を埋めるNoSQL

2012/5/10              (C) ReedRex Co,. LTD.   10
Gapを埋めるNoSQL
                                                    NoSQL A


            コスト         構造化データ(関係モデル)
ファイルシステム




                            トランザクション
              NoSQL C
            大容量
                             柔軟な問い合わせ




                                                       SQL
            単純さ
                              データの一貫性
            扱い易さ            セキュリティ

            スケーラビリティ            可用性 B
                                 NoSQL



2012/5/10                   (C) ReedRex Co,. LTD.             11
SQL vs NoSQL ?

•       「SQL」→SQLを問い合わせに使うRDBMS
•       現在の関係データベース管理システムRDBMSは機能が豊富
    •       関係モデル
        •    Codd's 12 Rules
    •       Transaction 処理
        •    ACID トランザクション、並行処理時での分離
    •       Query の最適化
    •       データの完全性
    •       物理・論理データの独立性
    •       セキュリティ
    •       リカバリー


2012/5/10                      (C) ReedRex Co,. LTD.   12
Alternative SQL としてのNoSQL

• 用途を限定すれば、SQLの全機能はいら
  ないのでは?
• 使わない機能に払っている隠れたコスト
  がある

NoSQLは、SQL以外の代替手段を考えよう
というムーブメント

2012/5/10     (C) ReedRex Co,. LTD.   13
NoSQLもいろいろある

•       Write Opの同期性
    •       DISKやReplication先に同期で書くか、
•       ジャーナルログを持つか
    •       耐障害性
•       トランザクションのレベル
•       複数同時アクセス時の一貫性があるか
•       Queryの柔軟性がどこまであるのか
•       可用性、対障害性をどう考えるか
•       スケーラビリティをどう担保するか
2012/5/10               (C) ReedRex Co,. LTD.   14
Gapを埋めるNoSQL
            構造化データ(関係モデル)
                                                     コスト
            柔軟な問い合わせ              パフォーマンス

                                    単純さ
                                         MongoDB
             セキュリティ


                       SQL
                                    スケーラビリティ

                                           大容量
                          Bigtable/Azure Table可用性
                       データの一貫性
                                           扱い易さ
                       トランザクション


2012/5/10                    (C) ReedRex Co,. LTD.         15
典型的な例

•       Bigtable-like
    •       動機:Googleの検索、gmail など
    •       Pros:大量データの保持、トランザクション
    •       Cons:高レイテンシー、
•       Casandra
    •       動機:Facebook で検索のために開発
    •       Pros:大量データの保持、リアルタイムな更新、結果整合性
    •       Cons:一貫性、トランザクション
•       MongoDB
    •       動機:DoubleClick のメンバーが中心となって開発
    •       Pros:Read パフォーマンス、柔軟なIndex,Query柔軟性
    •       Cons:一貫性、トランザクション


2012/5/10                  (C) ReedRex Co,. LTD.   16
例: Bigtable/Azure Table

分散ストレージ、トランザクション処理、K/V Store
1. 複数エンティティのトランザクション処理
2. 高いスケーラビリティ
3. 高いコンカレンシー
4. 貧弱なQuery
5. 書き込みはDISKと同期、replication 先も同様
6. レイテンシー 読み書きは、20-30msのレイテン
   シー

2012/5/10         (C) ReedRex Co,. LTD.   17
例:MongoDB

読み込み性能に特化したドキュメント指向のNoSQL
1. 読み込みは、memcachedなみ
2. 柔軟なQuery (Indexあり)
3. 書き込みは、Disk と同期しない
4. 書き込みは、同時実行1
5. リプリケーションは非同期のみ
6. トランザクションは、同一ドキュメントのみ
7. Shading は、migrate コストが高い
8. ShadeをまたがったQueryはできない。
2012/5/10   (C) ReedRex Co,. LTD.   18
注目すべき特性

   GAE Datastore/Azure Table

2012/5/10     (C) ReedRex Co,. LTD.   19
Bigtable-like / GAE Datastore, HBase, Azure
Table

とても似てる
• GAE Datastore
   •        Google App Engine Datastore, Bigtableがベース
• Windows Azure Table
   •        Microsoft の実装のBigtable
• HBase
   •        Bigtable clone、Apache HBase
2012/5/10                  (C) ReedRex Co,. LTD.    20
GAE Datastore/Azure Table 共通の特徴(1)

1. 分散データストア
2. Key/Value Store
3. トランザクション(制限あり)
4. 追記型(LSM-tree)
5. 複数ストレージへの書き込みでバックアッ
   プを作成している
6. データセンターを跨ったリプリケーション
   をしている

2012/5/10      (C) ReedRex Co,. LTD.   21
GAE Datastore/Azure Table 共通の特徴(2)

1. 複数エンティティのトランザクション処理
2. 高いコンカレンシー
3. 書き込みはDISKと同期、replication 先も同
   様
4. 高いスケーラビリティ
5. 高いレイテンシー
6. 制限されたQuery
2012/5/10      (C) ReedRex Co,. LTD.   22
Bigtable と Azure Table の基本の比較

基本構成
Azure Table は、 Bigtable とGFS の組み合わせに類似し
ている。

(1) GFS ではレプリカ間の緩やかな整合性が許可され、
    すべてのレプリカのビット単位の同一性を保証して
    いないが、Azure Table はこれを保証
(2) Bigtable はtabletの書き込みの コミット ログを2 つ
    の GFS ファイルに並行して書き込むことで GFS の
    障害を回避。Azure Tableでは Stream Layerの
    Journaling で耐障害性を担保
2012/5/10       (C) ReedRex Co,. LTD.   23
2012/5/10   (C) ReedRex Co,. LTD.   24
ポイント

• 分散ストレージ vs.トランザクション
  同一ロケーションのトランザクションが基
  本
  分散トランザクションはコストが高い
  (☓Azure Table)
• 高コンカレンシー vs. 高レイテンシー
  複数のリクエストを同時に発行して処理全
  体の時間を短縮

2012/5/10   (C) ReedRex Co,. LTD.   25
トランザクション

どちらも、Entity Group Transaction と呼ばれ
るトランザクションをサポート
• GAE Datastore
  同一 Entity Group に属する複数のEntity をト
  ランザクション処理可能
• Azure Table
  同一 Table, PartitionKeyのデータは、 トラン
  ザクション処理可能
2012/5/10     (C) ReedRex Co,. LTD.   26
Data Location – 配置

データの配置のモデルが重要
分散ストレージにどのようにデータを配置するか。分散トランザク
ションにしないため、同じロケーションであることが必要

• Bigtable
エンティティ作成時に親となるエンティティを決めて、Entity Group
を作成。同一Entity Groupは、同じロケーションに配置される。

• Azure Table
エンティティ、作成時に、Table, PartitionKey で指定。両者が同じエ
ンティティは、同じロケーションに置かれる。



2012/5/10        (C) ReedRex Co,. LTD.       27
重要

ロケーションが違うと、一貫性の欠如の問題が
発生する(結果整合)
• GAE Datastore
  結果整合になっても機能を提供す
   •        secondary index, cross group transaction
• Azure Table
  Case by case なので、アプリケーションで
  実装してもらう。
2012/5/10                    (C) ReedRex Co,. LTD.     28
Google App Engine Datastoreと、Azure Tableの違い

   相違点

2012/5/10                (C) ReedRex Co,. LTD.   29
5つの違い

1.     Secondary index
       別記
2.     Cross group transaction
       GAE Datastoreだけにある。参加できるグループは5つまで
3.     3. Backup/restore
       GAE Datastoreだけにある。
4.     4. Transactional Task Enqueuing
       GAE Datastoreだけにある
       https://developers.google.com/appengine/docs/go/datastore/transactions?
       hl=ja#Transactional_Task_Enqueuing
5.     分離と整合性
       別記

2012/5/10                        (C) ReedRex Co,. LTD.                       30
Propertyで検索

GAE Datastoreではカラムの属性で検索する場合に
Indexが作成されるが、Azure Tableではストレージ
でIndexを作成する機能は無い
• GAE Datastore
   トランザクションに癖がある
   https://developers.google.com/appengine/articles/
   transaction_isolation
• Windows Azure
   自作が必要。作ってみるとGAE Datastoreと同じ
   ような制限が出てしまう。

2012/5/10            (C) ReedRex Co,. LTD.         31
Entity Group 内の並列性

• GAE Datastore
  同一Entity Group内では同時には1つのトラ
  ンザクションしか実行されない。同一Group
  内は分離レベルSERIALIZABLE
• Azure Table
  同一 Table, Partition Key 内のトランザク
  ションはスナップショットアイソレーショ
  ンで実行。分離レベルREAD COMMITTED

2012/5/10     (C) ReedRex Co,. LTD.   32
事例

2012/5/10   (C) ReedRex Co,. LTD.   33
某社スマートフォン向けID/
課金管理 プラットフォーム

1000万ユーザーを越えるスケール
を想定してID/課金管理のシステム
をWindows Azure Tableで構築
クラウド環境の利点を生かして、
上記想定スケールでのパフォーマ
ンステストを実施

2012/5/10   (C) ReedRex Co,. LTD.   34
Azure Table3つの魅力

1.    PaaS(Platform as a Service)
     使った分だけ従量制で課金、インストール、運用の手間が無い
     必要に応じて任意のスケールテストが可能
     常時3台のバックアップと自動フェイルオーバー
2.    一貫性保障の構造化データストア
     トランザクション処理をサポート
     高いスケーラビリティ
3.    低コスト
     ¥0.88/ストレージ トランザクション 10,000 回
     ¥10.93/GB/月



                        © Reed Rex Corp.   35
データモデル ー 方針

単一テーブルに複数クラスを入れる
    Table Name   内容
    MetaData     オブジェクトのメタデータ(予約)
    Data         オブジェクトのデータ
    Index        インデックス
    Log          APIログなどのデータ


2012/5/10             (C) ReedRex Co,. LTD.   36
データモデル ー データの格納

• Person, Friends, Paymentsなどのアプリケーショ
  ンのファーストクラスオブジェクトはDataに入る
• Data内には複数のClassのインスタンスが入るの
  で、Typeで区別を付ける(Typeは、Rowkeyの
  prefixに)
• Indexには、Entity Groupを跨ったsecondary
  indexを入れる。
  注:同一Entity Group 内に入るIndexはDataへ
• Logは、APIのログなどログデータを年月をキー
  にして入れる。
2012/5/10      (C) ReedRex Co,. LTD.   37
Entity Group とは?

• 関連性の高いデータが同一Entity Group にな
  るようにする。
• Entity Group=分散の単位
• Entity Groupが大きいと上手く分散されない
• Entity Groupが小さすぎると、分散トランザ
  クションが頻発してパフォーマンスが出な
  い
• Entity Groupの決め方が重要
2012/5/10      (C) ReedRex Co,. LTD.   38
Entity Group

• Entity Group=同一テーブル、Partitionkey
• ユーザー毎にPartitionkeyを決めて、
  「Table」Dataに入れる
• ユーザー内の処理はトランザクションで処
  理、ユーザー間の処理は分散トランザク
  ションで処理
※コンシューマー向けのシステムでは最初に検
討すべきパターン
2012/5/10      (C) ReedRex Co,. LTD.   39
SQL との違い

この使い方では、Azure Tableの「Table」は、
SQLでいうとtablespace (file group)に似た
扱い
同一領域(Data)に複数のクラスをシリア
ライズすることが可能(スキーマレス)
Table と partitionkey が同じときだけトラン
ザクションが可能
2012/5/10    (C) ReedRex Co,. LTD.   40
疑問

•       パーティションを分けることで分散スト
        レージとして利用できる


                   ?
•       どれぐらいパーテーションを分割しても
        大丈夫なのか
2012/5/10     (C) ReedRex Co,. LTD.   41
スケーラビリティ

• 大量のパーティションを作成してもパ
  フォーマンスは変わらない
• 4億件ほど作成して確認
• ユーザー毎にパーティションを作れば、
  ユーザーデータのレスポンスは、ユー
  ザー数が増えても変わらない

           © Reed Rex Corp.   42
データ件数と処理時間遷移
            100                                                                           2000

            90                                                                            1800

            80                                                                            1600

             70                                                                           1400




                                                                                                 Throughput [Entities/s]
            60                                                                            1200
 Avg [ms]




            50                                                                            1000

            40                                                                            800
                                                                       Avg
             30                                                                           600

                                                                       Throughput
            20                                                                            400

             10                                                                           200

             0                                                                            0
                  0   50   100   150          200          250   300         350    400
                                  Data Count In Storage [x106]

                                       © Reed Rex Corp.                                                                    43
実装上の工夫

•       パーティションを跨いだ処理
        ユーザー毎にパーティションを分けると、月次の売上処理が遅く
        なる。
    •    多くのパーティションをまたぐので
•       別テーブルを作る
        売上用の月次、日時で、パーティションを切ったテーブルを別途
        用意して書き込む
•       別トランザクションにする
        Azure Queueを使って別途行う。
    •    パーティションを跨いだトランザクションはサポートされていない
    •    集計データなので同期で書きこむ必要はない(=レスポンスを早く返せ
         る)



                     © Reed Rex Corp.   44
2012/5/10   (C) ReedRex Co,. LTD.   45
ポイント

• Azure Tableは大量のパーティションを扱う
  ことができる
• パーテーションを分散することで、パ
  フォーマンス劣化無しで、大量データが扱
  える
• コストは、トランザクション単価+スト
  レージ使用料の従量制
• パーティションを跨いだ処理は別途データ
  を用意する
           © Reed Rex Corp.   46
mixi xmas 2011

                                   日本最大規模のソーシャルイベン
                                   ト
                                   11/30 ~ 12/25 の期間に利用可能
                                   な、アプリ上でくつしたを飾っ
                                   て、友人のベルを鳴らし合った
                                   り、イベントに参加したりするこ
                                   とでレベルアップ、プレゼントに
                                   応募できる仕組み
                                   また、mixi の決済機能を用いて、
                                   友人へギフトを送ったりすること
                                   ができる機能もある

                                   2009/2010は、GAE
                                   2011は、Windows Azure でサービ
                                   ス提供

2012/5/10        (C) ReedRex Co,. LTD.                    47
スケール

11/30 サービススタート後、 49時間で100万人
に到達。
12/20 時点で 250 万ユーザーが利用しました。
12/16~18 にはテレビ CM と連動したキャン
ペーンが展開され、Windows Azure の拡張性
を活用して柔軟にスケールアウトさせることに
より、突発的なアクセス増加にも対応していま
す
2012/5/10   (C) ReedRex Co,. LTD.   48
課題

1. ストレージへのピーク時のアクセスの軽減
   •        ピーク時の想定アクセス数からストレージへのア
            クセス頻度を計算するとAzure Storageのパ
            フォーマンス目標値を超える
2. レスポンスの改善
   •        必要な、mixi api のアクセス、ストレージのアク
            エス数からレスポンスタイムを計算すると規定の
            時間を超える
2012/5/10            (C) ReedRex Co,. LTD.   49
対策(1) memcachedの利用

• memcachedと、K/V Sは相性が良い
• Readは、どちらもKeyでValueを持ってくるだけ
• Writeは、Keyを使って、Valueを更新するので書
  き込みをフックしてmemcached側をメンテする
  ことが可能
• SQLだとselectや、updateが柔軟すぎてエンティ
  ティのキャッシュは難しく、Query(SQL文)を
  キーにして結果をcacheすることになる。更新側
  をフックしてcacheをメンテするのも難しいの
  で、cacheの有効性が低くなりがち。
2012/5/10    (C) ReedRex Co,. LTD.   50
対策(2) ストレージ系チューニングの小技

• 複数パーテーションに対するQueryは同
  時に実行する
• LINQ式は、IQueryable を有効利用
• 実際投げられているhttp requestをログに
  書いて確認


2012/5/10   (C) ReedRex Co,. LTD.   51
2012/5/10   (C) ReedRex Co,. LTD.   52
ポイント

• Windows Azure Storage にはパフォーマン
  ス上限がある
• memcached を使うことでストレージへのア
  クセスが減らせる
• K/V Sは、memcached と相性が良く、同期
  が取りやすい
• Storageのチューニングはrequestを見てやる
  のが基本
2012/5/10    (C) ReedRex Co,. LTD.   53
sociobridge

                               Facebookページ統合運用管理ツール

                               投稿管理
                               「内容作成」「公開承認」など運用管理
                               フロー内での作業範囲に合わせて、各担
                               当者別に権限を設定可能

                               投稿監視
                               管理画面上でタスクの依頼も設定でき、
                               担当者間の連携が可能

                               オリジナルページ
                               ユーザーとのコミュニケーションを活性
                               化させるオリジナルページの生成が可能

                               Windows Azure Platformを利用


2012/5/10     (C) ReedRex Co,. LTD.                        54
ストレージへの要求

• 国内1,000万、全世界で8億を超える
  Facebook ユーザーの負荷に耐えられるス
  ケーラビリティ
• 投稿管理、ワークフローを実装するトラ
  ンザクション処理



2012/5/10   (C) ReedRex Co,. LTD.   55
Windows Azure Table/Blobを利用

• パーテーション
   • サブスクリプション毎に分割
   • Entity Group Transactionが必要なデータは、
     同一Tableに保存
• Secondary Indexは自前で実装



2012/5/10        (C) ReedRex Co,. LTD.   56
レイテンシー問題

• 一回のTableの読み書きは、最低でも
  20msかかる
• ページの表示は、3秒以内で行う



• ページを分割して、ajaxで並列化

2012/5/10   (C) ReedRex Co,. LTD.   57
2012/5/10   (C) ReedRex Co,. LTD.   58
モデル ー マルチテナント

• テナント毎にパーテーションを分割
  Entity Group が Subscription になるよう
  に
• 不特定多数のユーザーからのアクセス
  は、Blobで担保



2012/5/10      (C) ReedRex Co,. LTD.   59
トランザクション

• 一括書き込みのパフォーマンス向上にBatch
  Requestを多用
• Azure TableのEntity Group Transaction は、http
  POSTの content-type multipart/mixed。
• 2つの特性がある
   1. ACIDトランザクションで実行
   2. ラウドトリップタイムの削減
• 複数のSaveChanges()を集約することで、リクエ
  スト数を少なくしてパフォーマンスが向上
2012/5/10          (C) ReedRex Co,. LTD.        60
End

            ご清聴ありがとうございました。



2012/5/10        (C) ReedRex Co,. LTD.   61

Más contenido relacionado

La actualidad más candente

【より深く知ろう】活用最先端!データベースとアプリケーション開発をシンプルに、高速化するテクニック
【より深く知ろう】活用最先端!データベースとアプリケーション開発をシンプルに、高速化するテクニック【より深く知ろう】活用最先端!データベースとアプリケーション開発をシンプルに、高速化するテクニック
【より深く知ろう】活用最先端!データベースとアプリケーション開発をシンプルに、高速化するテクニックオラクルエンジニア通信
 
ほんとに使える?Big Data SQL検証結果から見る、その有益性(性能編)
ほんとに使える?Big Data SQL検証結果から見る、その有益性(性能編)ほんとに使える?Big Data SQL検証結果から見る、その有益性(性能編)
ほんとに使える?Big Data SQL検証結果から見る、その有益性(性能編)オラクルエンジニア通信
 
20170714_MySQLドキュメントストア JSONデータ型&JSON関数 by 日本オラクル株式会社 MySQL GBU 山﨑由章
20170714_MySQLドキュメントストア JSONデータ型&JSON関数 by 日本オラクル株式会社 MySQL GBU 山﨑由章20170714_MySQLドキュメントストア JSONデータ型&JSON関数 by 日本オラクル株式会社 MySQL GBU 山﨑由章
20170714_MySQLドキュメントストア JSONデータ型&JSON関数 by 日本オラクル株式会社 MySQL GBU 山﨑由章Insight Technology, Inc.
 
[20171019 三木会] データベース・マイグレーションについて by 株式会社シー・エス・イー 藤井 元雄 氏
[20171019 三木会] データベース・マイグレーションについて by 株式会社シー・エス・イー 藤井 元雄 氏[20171019 三木会] データベース・マイグレーションについて by 株式会社シー・エス・イー 藤井 元雄 氏
[20171019 三木会] データベース・マイグレーションについて by 株式会社シー・エス・イー 藤井 元雄 氏Insight Technology, Inc.
 
[db tech showcase Tokyo 2015] C17:MySQL Cluster ユーザー事例紹介~JR東日本情報システム様における導入事例...
[db tech showcase Tokyo 2015] C17:MySQL Cluster ユーザー事例紹介~JR東日本情報システム様における導入事例...[db tech showcase Tokyo 2015] C17:MySQL Cluster ユーザー事例紹介~JR東日本情報システム様における導入事例...
[db tech showcase Tokyo 2015] C17:MySQL Cluster ユーザー事例紹介~JR東日本情報システム様における導入事例...Insight Technology, Inc.
 
Data Scientists Love SQL Server
Data Scientists Love SQL ServerData Scientists Love SQL Server
Data Scientists Love SQL ServerTomoyuki Oota
 
[db tech showcase Tokyo 2017] E24: 流行りに乗っていれば幸せになれますか?数あるデータベースの中から敢えて今Db2が選ば...
[db tech showcase Tokyo 2017] E24: 流行りに乗っていれば幸せになれますか?数あるデータベースの中から敢えて今Db2が選ば...[db tech showcase Tokyo 2017] E24: 流行りに乗っていれば幸せになれますか?数あるデータベースの中から敢えて今Db2が選ば...
[db tech showcase Tokyo 2017] E24: 流行りに乗っていれば幸せになれますか?数あるデータベースの中から敢えて今Db2が選ば...Insight Technology, Inc.
 
[db tech showcase Tokyo 2015] B16:最新版PostgreSQLのパフォーマンスを引き出すためのポイント by Postgr...
[db tech showcase Tokyo 2015] B16:最新版PostgreSQLのパフォーマンスを引き出すためのポイント by Postgr...[db tech showcase Tokyo 2015] B16:最新版PostgreSQLのパフォーマンスを引き出すためのポイント by Postgr...
[db tech showcase Tokyo 2015] B16:最新版PostgreSQLのパフォーマンスを引き出すためのポイント by Postgr...Insight Technology, Inc.
 
SQL Server エンジニア のための コンテナ入門(k8s編)
SQL Server エンジニア のための コンテナ入門(k8s編)SQL Server エンジニア のための コンテナ入門(k8s編)
SQL Server エンジニア のための コンテナ入門(k8s編)Tomoyuki Oota
 
Oracle Data Guard basics and how to create manually 18c plus
Oracle Data Guard basics and how to create manually 18c plusOracle Data Guard basics and how to create manually 18c plus
Oracle Data Guard basics and how to create manually 18c plusAkira Kusakabe
 
[db tech showcase Tokyo 2015] D33:Superdome X 上の SQL Server 2014 OLTP 検証結果と S...
[db tech showcase Tokyo 2015] D33:Superdome X 上の SQL Server 2014 OLTP 検証結果と S...[db tech showcase Tokyo 2015] D33:Superdome X 上の SQL Server 2014 OLTP 検証結果と S...
[db tech showcase Tokyo 2015] D33:Superdome X 上の SQL Server 2014 OLTP 検証結果と S...Insight Technology, Inc.
 
C32 DB Performance on Cloud by 安藤賀章
C32 DB Performance on Cloud by 安藤賀章C32 DB Performance on Cloud by 安藤賀章
C32 DB Performance on Cloud by 安藤賀章Insight Technology, Inc.
 
[db tech showcase Tokyo 2015] D23:MySQLはドキュメントデータベースになり、HTTPもしゃべる - MySQL Lab...
[db tech showcase Tokyo 2015] D23:MySQLはドキュメントデータベースになり、HTTPもしゃべる - MySQL Lab...[db tech showcase Tokyo 2015] D23:MySQLはドキュメントデータベースになり、HTTPもしゃべる - MySQL Lab...
[db tech showcase Tokyo 2015] D23:MySQLはドキュメントデータベースになり、HTTPもしゃべる - MySQL Lab...Insight Technology, Inc.
 
はじめてのOracle Cloud Infrastructure (Oracle Cloudウェビナーシリーズ: 2021年9月22日)
はじめてのOracle Cloud Infrastructure (Oracle Cloudウェビナーシリーズ: 2021年9月22日)はじめてのOracle Cloud Infrastructure (Oracle Cloudウェビナーシリーズ: 2021年9月22日)
はじめてのOracle Cloud Infrastructure (Oracle Cloudウェビナーシリーズ: 2021年9月22日)オラクルエンジニア通信
 
PHP開発者のためのNoSQL入門
PHP開発者のためのNoSQL入門PHP開発者のためのNoSQL入門
PHP開発者のためのNoSQL入門じゅん なかざ
 
性能問題を起こしにくい信頼されるクラウド RDB のつくりかた
性能問題を起こしにくい信頼されるクラウド RDB のつくりかた性能問題を起こしにくい信頼されるクラウド RDB のつくりかた
性能問題を起こしにくい信頼されるクラウド RDB のつくりかたTomoyuki Oota
 
【テクニカルレポート】VMware vSphere の Oracle RAC 向け Datrium DVX ソリューション
【テクニカルレポート】VMware vSphere の Oracle RAC 向け Datrium  DVX ソリューション【テクニカルレポート】VMware vSphere の Oracle RAC 向け Datrium  DVX ソリューション
【テクニカルレポート】VMware vSphere の Oracle RAC 向け Datrium DVX ソリューションdatriumjapan
 

La actualidad más candente (19)

【より深く知ろう】活用最先端!データベースとアプリケーション開発をシンプルに、高速化するテクニック
【より深く知ろう】活用最先端!データベースとアプリケーション開発をシンプルに、高速化するテクニック【より深く知ろう】活用最先端!データベースとアプリケーション開発をシンプルに、高速化するテクニック
【より深く知ろう】活用最先端!データベースとアプリケーション開発をシンプルに、高速化するテクニック
 
ほんとに使える?Big Data SQL検証結果から見る、その有益性(性能編)
ほんとに使える?Big Data SQL検証結果から見る、その有益性(性能編)ほんとに使える?Big Data SQL検証結果から見る、その有益性(性能編)
ほんとに使える?Big Data SQL検証結果から見る、その有益性(性能編)
 
20170714_MySQLドキュメントストア JSONデータ型&JSON関数 by 日本オラクル株式会社 MySQL GBU 山﨑由章
20170714_MySQLドキュメントストア JSONデータ型&JSON関数 by 日本オラクル株式会社 MySQL GBU 山﨑由章20170714_MySQLドキュメントストア JSONデータ型&JSON関数 by 日本オラクル株式会社 MySQL GBU 山﨑由章
20170714_MySQLドキュメントストア JSONデータ型&JSON関数 by 日本オラクル株式会社 MySQL GBU 山﨑由章
 
[20171019 三木会] データベース・マイグレーションについて by 株式会社シー・エス・イー 藤井 元雄 氏
[20171019 三木会] データベース・マイグレーションについて by 株式会社シー・エス・イー 藤井 元雄 氏[20171019 三木会] データベース・マイグレーションについて by 株式会社シー・エス・イー 藤井 元雄 氏
[20171019 三木会] データベース・マイグレーションについて by 株式会社シー・エス・イー 藤井 元雄 氏
 
[db tech showcase Tokyo 2015] C17:MySQL Cluster ユーザー事例紹介~JR東日本情報システム様における導入事例...
[db tech showcase Tokyo 2015] C17:MySQL Cluster ユーザー事例紹介~JR東日本情報システム様における導入事例...[db tech showcase Tokyo 2015] C17:MySQL Cluster ユーザー事例紹介~JR東日本情報システム様における導入事例...
[db tech showcase Tokyo 2015] C17:MySQL Cluster ユーザー事例紹介~JR東日本情報システム様における導入事例...
 
Data Scientists Love SQL Server
Data Scientists Love SQL ServerData Scientists Love SQL Server
Data Scientists Love SQL Server
 
[db tech showcase Tokyo 2017] E24: 流行りに乗っていれば幸せになれますか?数あるデータベースの中から敢えて今Db2が選ば...
[db tech showcase Tokyo 2017] E24: 流行りに乗っていれば幸せになれますか?数あるデータベースの中から敢えて今Db2が選ば...[db tech showcase Tokyo 2017] E24: 流行りに乗っていれば幸せになれますか?数あるデータベースの中から敢えて今Db2が選ば...
[db tech showcase Tokyo 2017] E24: 流行りに乗っていれば幸せになれますか?数あるデータベースの中から敢えて今Db2が選ば...
 
About NoSQL
About NoSQLAbout NoSQL
About NoSQL
 
[db tech showcase Tokyo 2015] B16:最新版PostgreSQLのパフォーマンスを引き出すためのポイント by Postgr...
[db tech showcase Tokyo 2015] B16:最新版PostgreSQLのパフォーマンスを引き出すためのポイント by Postgr...[db tech showcase Tokyo 2015] B16:最新版PostgreSQLのパフォーマンスを引き出すためのポイント by Postgr...
[db tech showcase Tokyo 2015] B16:最新版PostgreSQLのパフォーマンスを引き出すためのポイント by Postgr...
 
SQL Server エンジニア のための コンテナ入門(k8s編)
SQL Server エンジニア のための コンテナ入門(k8s編)SQL Server エンジニア のための コンテナ入門(k8s編)
SQL Server エンジニア のための コンテナ入門(k8s編)
 
Oracle Data Guard basics and how to create manually 18c plus
Oracle Data Guard basics and how to create manually 18c plusOracle Data Guard basics and how to create manually 18c plus
Oracle Data Guard basics and how to create manually 18c plus
 
[db tech showcase Tokyo 2015] D33:Superdome X 上の SQL Server 2014 OLTP 検証結果と S...
[db tech showcase Tokyo 2015] D33:Superdome X 上の SQL Server 2014 OLTP 検証結果と S...[db tech showcase Tokyo 2015] D33:Superdome X 上の SQL Server 2014 OLTP 検証結果と S...
[db tech showcase Tokyo 2015] D33:Superdome X 上の SQL Server 2014 OLTP 検証結果と S...
 
C32 DB Performance on Cloud by 安藤賀章
C32 DB Performance on Cloud by 安藤賀章C32 DB Performance on Cloud by 安藤賀章
C32 DB Performance on Cloud by 安藤賀章
 
20191218_オラクル_Blockchain登壇資料
20191218_オラクル_Blockchain登壇資料20191218_オラクル_Blockchain登壇資料
20191218_オラクル_Blockchain登壇資料
 
[db tech showcase Tokyo 2015] D23:MySQLはドキュメントデータベースになり、HTTPもしゃべる - MySQL Lab...
[db tech showcase Tokyo 2015] D23:MySQLはドキュメントデータベースになり、HTTPもしゃべる - MySQL Lab...[db tech showcase Tokyo 2015] D23:MySQLはドキュメントデータベースになり、HTTPもしゃべる - MySQL Lab...
[db tech showcase Tokyo 2015] D23:MySQLはドキュメントデータベースになり、HTTPもしゃべる - MySQL Lab...
 
はじめてのOracle Cloud Infrastructure (Oracle Cloudウェビナーシリーズ: 2021年9月22日)
はじめてのOracle Cloud Infrastructure (Oracle Cloudウェビナーシリーズ: 2021年9月22日)はじめてのOracle Cloud Infrastructure (Oracle Cloudウェビナーシリーズ: 2021年9月22日)
はじめてのOracle Cloud Infrastructure (Oracle Cloudウェビナーシリーズ: 2021年9月22日)
 
PHP開発者のためのNoSQL入門
PHP開発者のためのNoSQL入門PHP開発者のためのNoSQL入門
PHP開発者のためのNoSQL入門
 
性能問題を起こしにくい信頼されるクラウド RDB のつくりかた
性能問題を起こしにくい信頼されるクラウド RDB のつくりかた性能問題を起こしにくい信頼されるクラウド RDB のつくりかた
性能問題を起こしにくい信頼されるクラウド RDB のつくりかた
 
【テクニカルレポート】VMware vSphere の Oracle RAC 向け Datrium DVX ソリューション
【テクニカルレポート】VMware vSphere の Oracle RAC 向け Datrium  DVX ソリューション【テクニカルレポート】VMware vSphere の Oracle RAC 向け Datrium  DVX ソリューション
【テクニカルレポート】VMware vSphere の Oracle RAC 向け Datrium DVX ソリューション
 

Destacado

Table storage&sql azure jazug
Table storage&sql azure jazugTable storage&sql azure jazug
Table storage&sql azure jazugSurf174
 
Welcome to Hour of Code 20151202
Welcome to Hour of Code 20151202Welcome to Hour of Code 20151202
Welcome to Hour of Code 20151202Ayako Omori
 
JAZUG Nagoya Bar Azure #2 Japan DC 20140331
JAZUG Nagoya Bar Azure #2 Japan DC 20140331JAZUG Nagoya Bar Azure #2 Japan DC 20140331
JAZUG Nagoya Bar Azure #2 Japan DC 20140331Ayako Omori
 
JAZUG Nagoya Windows Azure Update 20140301
JAZUG Nagoya Windows Azure Update 20140301JAZUG Nagoya Windows Azure Update 20140301
JAZUG Nagoya Windows Azure Update 20140301Ayako Omori
 
JAWSUG & JAZUG Sendai Azure Update 20140517
JAWSUG & JAZUG Sendai Azure Update 20140517JAWSUG & JAZUG Sendai Azure Update 20140517
JAWSUG & JAZUG Sendai Azure Update 20140517Ayako Omori
 
TDC Presentation Basics 20131108
TDC Presentation Basics 20131108TDC Presentation Basics 20131108
TDC Presentation Basics 20131108Ayako Omori
 
PHPの仕事と学びin仙台_WindowsAzure概説_20130921
PHPの仕事と学びin仙台_WindowsAzure概説_20130921PHPの仕事と学びin仙台_WindowsAzure概説_20130921
PHPの仕事と学びin仙台_WindowsAzure概説_20130921Ayako Omori
 
Azure Data Factory – Data Management für die Cloud
Azure Data Factory – Data Management für die CloudAzure Data Factory – Data Management für die Cloud
Azure Data Factory – Data Management für die Cloudinovex GmbH
 
JAZUG Nagoya Azure Update 20140607
JAZUG Nagoya Azure Update 20140607JAZUG Nagoya Azure Update 20140607
JAZUG Nagoya Azure Update 20140607Ayako Omori
 
JAZUG Sendai Windows Azure Update 20131109
JAZUG Sendai Windows Azure Update 20131109JAZUG Sendai Windows Azure Update 20131109
JAZUG Sendai Windows Azure Update 20131109Ayako Omori
 
Microsoft Azure Update 20151112
Microsoft Azure Update 20151112Microsoft Azure Update 20151112
Microsoft Azure Update 20151112Ayako Omori
 
Go azure おばかIoT シンポジウム
Go azure おばかIoT シンポジウムGo azure おばかIoT シンポジウム
Go azure おばかIoT シンポジウムKeiichi Hashimoto
 
20150421 QCon Tokyo 2015 Azureが切り開く新時代のソフトウェア開発・設計
20150421 QCon Tokyo 2015 Azureが切り開く新時代のソフトウェア開発・設計20150421 QCon Tokyo 2015 Azureが切り開く新時代のソフトウェア開発・設計
20150421 QCon Tokyo 2015 Azureが切り開く新時代のソフトウェア開発・設計貴志 上坂
 
KIXS Vol.000: Microsoft Cognitive Services 入門 & Azure サーバー管理ツール
KIXS Vol.000: Microsoft Cognitive Services 入門 & Azure サーバー管理ツールKIXS Vol.000: Microsoft Cognitive Services 入門 & Azure サーバー管理ツール
KIXS Vol.000: Microsoft Cognitive Services 入門 & Azure サーバー管理ツールAyako Omori
 
Microsoft Azure で スマホからIoTまで
Microsoft AzureでスマホからIoTまでMicrosoft AzureでスマホからIoTまで
Microsoft Azure で スマホからIoTまで Masaki Yamamoto
 
Microsoft Azure EventHubで始めるIoT
Microsoft Azure EventHubで始めるIoTMicrosoft Azure EventHubで始めるIoT
Microsoft Azure EventHubで始めるIoTKeiichi Hashimoto
 
OSS/linux on Azureの活用方法と勘所
OSS/linux on Azureの活用方法と勘所OSS/linux on Azureの活用方法と勘所
OSS/linux on Azureの活用方法と勘所Kuniteru Asami
 
AWS IoT を使う上での Next Step!!
AWS IoT を使う上での Next Step!!AWS IoT を使う上での Next Step!!
AWS IoT を使う上での Next Step!!Satoshi Nakada
 
渋谷モノ系ミートアップ Watanabe p
渋谷モノ系ミートアップ Watanabe p渋谷モノ系ミートアップ Watanabe p
渋谷モノ系ミートアップ Watanabe pNoboru Watanabe
 

Destacado (20)

Table storage&sql azure jazug
Table storage&sql azure jazugTable storage&sql azure jazug
Table storage&sql azure jazug
 
Welcome to Hour of Code 20151202
Welcome to Hour of Code 20151202Welcome to Hour of Code 20151202
Welcome to Hour of Code 20151202
 
JAZUG Nagoya Bar Azure #2 Japan DC 20140331
JAZUG Nagoya Bar Azure #2 Japan DC 20140331JAZUG Nagoya Bar Azure #2 Japan DC 20140331
JAZUG Nagoya Bar Azure #2 Japan DC 20140331
 
JAZUG Nagoya Windows Azure Update 20140301
JAZUG Nagoya Windows Azure Update 20140301JAZUG Nagoya Windows Azure Update 20140301
JAZUG Nagoya Windows Azure Update 20140301
 
JAWSUG & JAZUG Sendai Azure Update 20140517
JAWSUG & JAZUG Sendai Azure Update 20140517JAWSUG & JAZUG Sendai Azure Update 20140517
JAWSUG & JAZUG Sendai Azure Update 20140517
 
TDC Presentation Basics 20131108
TDC Presentation Basics 20131108TDC Presentation Basics 20131108
TDC Presentation Basics 20131108
 
PHPの仕事と学びin仙台_WindowsAzure概説_20130921
PHPの仕事と学びin仙台_WindowsAzure概説_20130921PHPの仕事と学びin仙台_WindowsAzure概説_20130921
PHPの仕事と学びin仙台_WindowsAzure概説_20130921
 
Azure Data Factory – Data Management für die Cloud
Azure Data Factory – Data Management für die CloudAzure Data Factory – Data Management für die Cloud
Azure Data Factory – Data Management für die Cloud
 
JAZUG Nagoya Azure Update 20140607
JAZUG Nagoya Azure Update 20140607JAZUG Nagoya Azure Update 20140607
JAZUG Nagoya Azure Update 20140607
 
JAZUG Sendai Windows Azure Update 20131109
JAZUG Sendai Windows Azure Update 20131109JAZUG Sendai Windows Azure Update 20131109
JAZUG Sendai Windows Azure Update 20131109
 
Microsoft Azure Update 20151112
Microsoft Azure Update 20151112Microsoft Azure Update 20151112
Microsoft Azure Update 20151112
 
Go azure おばかIoT シンポジウム
Go azure おばかIoT シンポジウムGo azure おばかIoT シンポジウム
Go azure おばかIoT シンポジウム
 
20150421 QCon Tokyo 2015 Azureが切り開く新時代のソフトウェア開発・設計
20150421 QCon Tokyo 2015 Azureが切り開く新時代のソフトウェア開発・設計20150421 QCon Tokyo 2015 Azureが切り開く新時代のソフトウェア開発・設計
20150421 QCon Tokyo 2015 Azureが切り開く新時代のソフトウェア開発・設計
 
IoTのIを考えてみる話
IoTのIを考えてみる話IoTのIを考えてみる話
IoTのIを考えてみる話
 
KIXS Vol.000: Microsoft Cognitive Services 入門 & Azure サーバー管理ツール
KIXS Vol.000: Microsoft Cognitive Services 入門 & Azure サーバー管理ツールKIXS Vol.000: Microsoft Cognitive Services 入門 & Azure サーバー管理ツール
KIXS Vol.000: Microsoft Cognitive Services 入門 & Azure サーバー管理ツール
 
Microsoft Azure で スマホからIoTまで
Microsoft AzureでスマホからIoTまでMicrosoft AzureでスマホからIoTまで
Microsoft Azure で スマホからIoTまで
 
Microsoft Azure EventHubで始めるIoT
Microsoft Azure EventHubで始めるIoTMicrosoft Azure EventHubで始めるIoT
Microsoft Azure EventHubで始めるIoT
 
OSS/linux on Azureの活用方法と勘所
OSS/linux on Azureの活用方法と勘所OSS/linux on Azureの活用方法と勘所
OSS/linux on Azureの活用方法と勘所
 
AWS IoT を使う上での Next Step!!
AWS IoT を使う上での Next Step!!AWS IoT を使う上での Next Step!!
AWS IoT を使う上での Next Step!!
 
渋谷モノ系ミートアップ Watanabe p
渋谷モノ系ミートアップ Watanabe p渋谷モノ系ミートアップ Watanabe p
渋谷モノ系ミートアップ Watanabe p
 

Similar a NoSQL Bigtable and Azure Table

Cassandraとh baseの比較して入門するno sql
Cassandraとh baseの比較して入門するno sqlCassandraとh baseの比較して入門するno sql
Cassandraとh baseの比較して入門するno sqlYutuki r
 
Microsoft Azure Workshop day2
Microsoft Azure Workshop day2Microsoft Azure Workshop day2
Microsoft Azure Workshop day2Miho Yamamoto
 
[MW11] OSS on Azure で構築する ウェブアプリケーション
[MW11] OSS on Azure で構築する ウェブアプリケーション[MW11] OSS on Azure で構築する ウェブアプリケーション
[MW11] OSS on Azure で構築する ウェブアプリケーションde:code 2017
 
Okuyama説明資料 20120119 ss
Okuyama説明資料 20120119 ssOkuyama説明資料 20120119 ss
Okuyama説明資料 20120119 ssTakahiro Iwase
 
Data consistency 入門 data partitioning ガイダンス
Data consistency 入門 data partitioning ガイダンスData consistency 入門 data partitioning ガイダンス
Data consistency 入門 data partitioning ガイダンスMasayuki Ozawa
 
【de:code 2020】 Azure Synapse Analytics 技術編 ~ 最新の統合分析プラットフォームによる新しい価値の創出(前編)
【de:code 2020】 Azure Synapse Analytics 技術編 ~ 最新の統合分析プラットフォームによる新しい価値の創出(前編)【de:code 2020】 Azure Synapse Analytics 技術編 ~ 最新の統合分析プラットフォームによる新しい価値の創出(前編)
【de:code 2020】 Azure Synapse Analytics 技術編 ~ 最新の統合分析プラットフォームによる新しい価値の創出(前編)日本マイクロソフト株式会社
 
ビッグデータ処理データベースの全体像と使い分け - 2017年 Version -
ビッグデータ処理データベースの全体像と使い分け - 2017年 Version - ビッグデータ処理データベースの全体像と使い分け - 2017年 Version -
ビッグデータ処理データベースの全体像と使い分け - 2017年 Version - Tetsutaro Watanabe
 
【旧版】Oracle Exadata Cloud Service:サービス概要のご紹介 [2021年7月版]
【旧版】Oracle Exadata Cloud Service:サービス概要のご紹介 [2021年7月版]【旧版】Oracle Exadata Cloud Service:サービス概要のご紹介 [2021年7月版]
【旧版】Oracle Exadata Cloud Service:サービス概要のご紹介 [2021年7月版]オラクルエンジニア通信
 
[db tech showcase Tokyo 2017] A32: Attunity Replicate + Kafka + Hadoop マルチデータ...
[db tech showcase Tokyo 2017] A32: Attunity Replicate + Kafka + Hadoop マルチデータ...[db tech showcase Tokyo 2017] A32: Attunity Replicate + Kafka + Hadoop マルチデータ...
[db tech showcase Tokyo 2017] A32: Attunity Replicate + Kafka + Hadoop マルチデータ...Insight Technology, Inc.
 
MySQLドキュメントストアとCTE
MySQLドキュメントストアとCTEMySQLドキュメントストアとCTE
MySQLドキュメントストアとCTEyoyamasaki
 
[INSIGHT OUT 2011] b21 ひとつのデータベース技術では生き残れない part2 no sql, hadoop
[INSIGHT OUT 2011] b21 ひとつのデータベース技術では生き残れない part2 no sql, hadoop[INSIGHT OUT 2011] b21 ひとつのデータベース技術では生き残れない part2 no sql, hadoop
[INSIGHT OUT 2011] b21 ひとつのデータベース技術では生き残れない part2 no sql, hadoopInsight Technology, Inc.
 
ビッグデータやIoTシステムを支えるデータベース 『GridDB』
ビッグデータやIoTシステムを支えるデータベース 『GridDB』ビッグデータやIoTシステムを支えるデータベース 『GridDB』
ビッグデータやIoTシステムを支えるデータベース 『GridDB』griddb
 
[de:code 2017] 使わないのはもったいない! プラネット スケールの NoSQL サービス「Azure Cosmos DB」を使いこなそう
[de:code 2017] 使わないのはもったいない! プラネット スケールの NoSQL サービス「Azure Cosmos DB」を使いこなそう[de:code 2017] 使わないのはもったいない! プラネット スケールの NoSQL サービス「Azure Cosmos DB」を使いこなそう
[de:code 2017] 使わないのはもったいない! プラネット スケールの NoSQL サービス「Azure Cosmos DB」を使いこなそうNaoki (Neo) SATO
 
[DI04] 使わないのはもったいない! プラネット スケールの NoSQL サービス「Azure Cosmos DB」を使いこなそう
[DI04] 使わないのはもったいない! プラネット スケールの NoSQL サービス「Azure Cosmos DB」を使いこなそう[DI04] 使わないのはもったいない! プラネット スケールの NoSQL サービス「Azure Cosmos DB」を使いこなそう
[DI04] 使わないのはもったいない! プラネット スケールの NoSQL サービス「Azure Cosmos DB」を使いこなそうde:code 2017
 
脱Excelで部門のデータ管理業務を 効率化するデータ活用クラウド
脱Excelで部門のデータ管理業務を効率化するデータ活用クラウド脱Excelで部門のデータ管理業務を効率化するデータ活用クラウド
脱Excelで部門のデータ管理業務を 効率化するデータ活用クラウドオラクルエンジニア通信
 

Similar a NoSQL Bigtable and Azure Table (20)

Cassandraとh baseの比較して入門するno sql
Cassandraとh baseの比較して入門するno sqlCassandraとh baseの比較して入門するno sql
Cassandraとh baseの比較して入門するno sql
 
Microsoft Azure Workshop day2
Microsoft Azure Workshop day2Microsoft Azure Workshop day2
Microsoft Azure Workshop day2
 
Oracle GoldenGate入門
Oracle GoldenGate入門Oracle GoldenGate入門
Oracle GoldenGate入門
 
[MW11] OSS on Azure で構築する ウェブアプリケーション
[MW11] OSS on Azure で構築する ウェブアプリケーション[MW11] OSS on Azure で構築する ウェブアプリケーション
[MW11] OSS on Azure で構築する ウェブアプリケーション
 
Okuyama説明資料 20120119 ss
Okuyama説明資料 20120119 ssOkuyama説明資料 20120119 ss
Okuyama説明資料 20120119 ss
 
Data consistency 入門 data partitioning ガイダンス
Data consistency 入門 data partitioning ガイダンスData consistency 入門 data partitioning ガイダンス
Data consistency 入門 data partitioning ガイダンス
 
【de:code 2020】 Azure Synapse Analytics 技術編 ~ 最新の統合分析プラットフォームによる新しい価値の創出(前編)
【de:code 2020】 Azure Synapse Analytics 技術編 ~ 最新の統合分析プラットフォームによる新しい価値の創出(前編)【de:code 2020】 Azure Synapse Analytics 技術編 ~ 最新の統合分析プラットフォームによる新しい価値の創出(前編)
【de:code 2020】 Azure Synapse Analytics 技術編 ~ 最新の統合分析プラットフォームによる新しい価値の創出(前編)
 
ビッグデータ処理データベースの全体像と使い分け - 2017年 Version -
ビッグデータ処理データベースの全体像と使い分け - 2017年 Version - ビッグデータ処理データベースの全体像と使い分け - 2017年 Version -
ビッグデータ処理データベースの全体像と使い分け - 2017年 Version -
 
【旧版】Oracle Exadata Cloud Service:サービス概要のご紹介 [2021年7月版]
【旧版】Oracle Exadata Cloud Service:サービス概要のご紹介 [2021年7月版]【旧版】Oracle Exadata Cloud Service:サービス概要のご紹介 [2021年7月版]
【旧版】Oracle Exadata Cloud Service:サービス概要のご紹介 [2021年7月版]
 
[db tech showcase Tokyo 2017] A32: Attunity Replicate + Kafka + Hadoop マルチデータ...
[db tech showcase Tokyo 2017] A32: Attunity Replicate + Kafka + Hadoop マルチデータ...[db tech showcase Tokyo 2017] A32: Attunity Replicate + Kafka + Hadoop マルチデータ...
[db tech showcase Tokyo 2017] A32: Attunity Replicate + Kafka + Hadoop マルチデータ...
 
MySQLドキュメントストアとCTE
MySQLドキュメントストアとCTEMySQLドキュメントストアとCTE
MySQLドキュメントストアとCTE
 
Oracle Big Data SQL3.1のご紹介
Oracle Big Data SQL3.1のご紹介Oracle Big Data SQL3.1のご紹介
Oracle Big Data SQL3.1のご紹介
 
[INSIGHT OUT 2011] b21 ひとつのデータベース技術では生き残れない part2 no sql, hadoop
[INSIGHT OUT 2011] b21 ひとつのデータベース技術では生き残れない part2 no sql, hadoop[INSIGHT OUT 2011] b21 ひとつのデータベース技術では生き残れない part2 no sql, hadoop
[INSIGHT OUT 2011] b21 ひとつのデータベース技術では生き残れない part2 no sql, hadoop
 
OCI Data Catalog Overview 2021年5月版
OCI Data Catalog Overview 2021年5月版OCI Data Catalog Overview 2021年5月版
OCI Data Catalog Overview 2021年5月版
 
0151209 Oracle DDD OracleとHadoop連携の勘所
0151209 Oracle DDD OracleとHadoop連携の勘所0151209 Oracle DDD OracleとHadoop連携の勘所
0151209 Oracle DDD OracleとHadoop連携の勘所
 
ビッグデータやIoTシステムを支えるデータベース 『GridDB』
ビッグデータやIoTシステムを支えるデータベース 『GridDB』ビッグデータやIoTシステムを支えるデータベース 『GridDB』
ビッグデータやIoTシステムを支えるデータベース 『GridDB』
 
[de:code 2017] 使わないのはもったいない! プラネット スケールの NoSQL サービス「Azure Cosmos DB」を使いこなそう
[de:code 2017] 使わないのはもったいない! プラネット スケールの NoSQL サービス「Azure Cosmos DB」を使いこなそう[de:code 2017] 使わないのはもったいない! プラネット スケールの NoSQL サービス「Azure Cosmos DB」を使いこなそう
[de:code 2017] 使わないのはもったいない! プラネット スケールの NoSQL サービス「Azure Cosmos DB」を使いこなそう
 
[DI04] 使わないのはもったいない! プラネット スケールの NoSQL サービス「Azure Cosmos DB」を使いこなそう
[DI04] 使わないのはもったいない! プラネット スケールの NoSQL サービス「Azure Cosmos DB」を使いこなそう[DI04] 使わないのはもったいない! プラネット スケールの NoSQL サービス「Azure Cosmos DB」を使いこなそう
[DI04] 使わないのはもったいない! プラネット スケールの NoSQL サービス「Azure Cosmos DB」を使いこなそう
 
Vsug ef
Vsug efVsug ef
Vsug ef
 
脱Excelで部門のデータ管理業務を 効率化するデータ活用クラウド
脱Excelで部門のデータ管理業務を効率化するデータ活用クラウド脱Excelで部門のデータ管理業務を効率化するデータ活用クラウド
脱Excelで部門のデータ管理業務を 効率化するデータ活用クラウド
 

Más de Takekazu Omi

jazug34 Container Apps Key Vault
jazug34 Container Apps Key Vaultjazug34 Container Apps Key Vault
jazug34 Container Apps Key VaultTakekazu Omi
 
Bicep + VS Code で楽々Azure Deploy
Bicep + VS Code で楽々Azure DeployBicep + VS Code で楽々Azure Deploy
Bicep + VS Code で楽々Azure DeployTakekazu Omi
 
Bicep 入門 MySQL編
Bicep 入門 MySQL編Bicep 入門 MySQL編
Bicep 入門 MySQL編Takekazu Omi
 
//Build 2021 FASTER 紹介
//Build 2021 FASTER 紹介//Build 2021 FASTER 紹介
//Build 2021 FASTER 紹介Takekazu Omi
 
//build 2021 bicep 0.4
//build 2021 bicep 0.4//build 2021 bicep 0.4
//build 2021 bicep 0.4Takekazu Omi
 
bicep dev container
bicep dev containerbicep dev container
bicep dev containerTakekazu Omi
 
Introduction of Azure Docker Integration
Introduction of Azure Docker IntegrationIntroduction of Azure Docker Integration
Introduction of Azure Docker IntegrationTakekazu Omi
 
Cosmos DB Consistency Levels and Introduction of TLA+
Cosmos DB Consistency Levels and Introduction of TLA+ Cosmos DB Consistency Levels and Introduction of TLA+
Cosmos DB Consistency Levels and Introduction of TLA+ Takekazu Omi
 
20180421 Azure Architecture Cloud Design Patterns
20180421 Azure Architecture Cloud Design Patterns20180421 Azure Architecture Cloud Design Patterns
20180421 Azure Architecture Cloud Design PatternsTakekazu Omi
 
Azure Application Insights とか
Azure Application Insights とかAzure Application Insights とか
Azure Application Insights とかTakekazu Omi
 
第8回 Tokyo Jazug Night Ignite 2017 落穂拾い Storage編
第8回 Tokyo Jazug Night Ignite 2017 落穂拾い Storage編第8回 Tokyo Jazug Night Ignite 2017 落穂拾い Storage編
第8回 Tokyo Jazug Night Ignite 2017 落穂拾い Storage編Takekazu Omi
 
Cosmos DB 入門 multi model multi API編
Cosmos DB 入門 multi model multi API編Cosmos DB 入門 multi model multi API編
Cosmos DB 入門 multi model multi API編Takekazu Omi
 
Global Azure Bootcamp 2017 DocumentDB Deep Dive
Global Azure Bootcamp 2017  DocumentDB Deep DiveGlobal Azure Bootcamp 2017  DocumentDB Deep Dive
Global Azure Bootcamp 2017 DocumentDB Deep DiveTakekazu Omi
 
Azure Storage Partition Internals
Azure Storage Partition  Internals Azure Storage Partition  Internals
Azure Storage Partition Internals Takekazu Omi
 
Azure Service Fabric Cluster の作成
Azure  Service Fabric Cluster の作成Azure  Service Fabric Cluster の作成
Azure Service Fabric Cluster の作成Takekazu Omi
 
Azure Service Fabric Actor
Azure Service  Fabric ActorAzure Service  Fabric Actor
Azure Service Fabric ActorTakekazu Omi
 
祝GA、 Service Fabric 概要
祝GA、 Service Fabric 概要祝GA、 Service Fabric 概要
祝GA、 Service Fabric 概要Takekazu Omi
 

Más de Takekazu Omi (20)

jazug34 Container Apps Key Vault
jazug34 Container Apps Key Vaultjazug34 Container Apps Key Vault
jazug34 Container Apps Key Vault
 
bicep 0.5 pre
bicep 0.5 prebicep 0.5 pre
bicep 0.5 pre
 
Bicep + VS Code で楽々Azure Deploy
Bicep + VS Code で楽々Azure DeployBicep + VS Code で楽々Azure Deploy
Bicep + VS Code で楽々Azure Deploy
 
Bicep 入門 MySQL編
Bicep 入門 MySQL編Bicep 入門 MySQL編
Bicep 入門 MySQL編
 
//Build 2021 FASTER 紹介
//Build 2021 FASTER 紹介//Build 2021 FASTER 紹介
//Build 2021 FASTER 紹介
 
//build 2021 bicep 0.4
//build 2021 bicep 0.4//build 2021 bicep 0.4
//build 2021 bicep 0.4
 
bicep 紹介
bicep 紹介bicep 紹介
bicep 紹介
 
bicep dev container
bicep dev containerbicep dev container
bicep dev container
 
Introduction of Azure Docker Integration
Introduction of Azure Docker IntegrationIntroduction of Azure Docker Integration
Introduction of Azure Docker Integration
 
Cosmos DB Consistency Levels and Introduction of TLA+
Cosmos DB Consistency Levels and Introduction of TLA+ Cosmos DB Consistency Levels and Introduction of TLA+
Cosmos DB Consistency Levels and Introduction of TLA+
 
20180421 Azure Architecture Cloud Design Patterns
20180421 Azure Architecture Cloud Design Patterns20180421 Azure Architecture Cloud Design Patterns
20180421 Azure Architecture Cloud Design Patterns
 
Azure Application Insights とか
Azure Application Insights とかAzure Application Insights とか
Azure Application Insights とか
 
第8回 Tokyo Jazug Night Ignite 2017 落穂拾い Storage編
第8回 Tokyo Jazug Night Ignite 2017 落穂拾い Storage編第8回 Tokyo Jazug Night Ignite 2017 落穂拾い Storage編
第8回 Tokyo Jazug Night Ignite 2017 落穂拾い Storage編
 
life with posh
life with poshlife with posh
life with posh
 
Cosmos DB 入門 multi model multi API編
Cosmos DB 入門 multi model multi API編Cosmos DB 入門 multi model multi API編
Cosmos DB 入門 multi model multi API編
 
Global Azure Bootcamp 2017 DocumentDB Deep Dive
Global Azure Bootcamp 2017  DocumentDB Deep DiveGlobal Azure Bootcamp 2017  DocumentDB Deep Dive
Global Azure Bootcamp 2017 DocumentDB Deep Dive
 
Azure Storage Partition Internals
Azure Storage Partition  Internals Azure Storage Partition  Internals
Azure Storage Partition Internals
 
Azure Service Fabric Cluster の作成
Azure  Service Fabric Cluster の作成Azure  Service Fabric Cluster の作成
Azure Service Fabric Cluster の作成
 
Azure Service Fabric Actor
Azure Service  Fabric ActorAzure Service  Fabric Actor
Azure Service Fabric Actor
 
祝GA、 Service Fabric 概要
祝GA、 Service Fabric 概要祝GA、 Service Fabric 概要
祝GA、 Service Fabric 概要
 

NoSQL Bigtable and Azure Table

  • 1. GoogleのBig TableとAzure Tableの特性比較 と失敗しない使い方 株式会社リード・レックス 開発部 インターネットソリューショングループ 部長 近江 武一 株式会社リード・レックス
  • 2. 概要 NoSQLの中でGoogle App Engine Datastore(以下 GAE Datastore)とWindows Azure TableはACIDトランザクションのサ ポート、PaaSでのサービスなどの面で似た ような立ち位置にある。その比較と、事例 を通じ失敗しない使い方を紹介する 2012/5/10 (C) ReedRex Co,. LTD. 2
  • 3. TRENDS 2012/5/10 (C) ReedRex Co,. LTD. 3
  • 4. ここ20年ほどの間の流れ 1. ここ20年の間で、データの永続化手段は、 RDBMSとファイルシステムの2つに集約 2. 扱うデータ量が急激に増えた。100万超のサービ スの通常化、20年前ならYahoo Japanクラスがゴ ロゴロしている 3. コモディティ化されたハードウェアによって急 激な単価低下(CPU、Memory、HDD)が起きた 4. クラウドの台頭(安価なハードウェアを大量に 用意するタイプのパブリッククラウド) 2012/5/10 (C) ReedRex Co,. LTD. 4
  • 5. 永続化ストレージの2極化 コスト 構造化データ(関係モデル) ファイルシステム 大容量 トランザクション 柔軟な問い合わせ SQL 単純さ データの一貫性 扱い易さ セキュリティ スループット スケーラビリティ 可用性 2012/5/10 (C) ReedRex Co,. LTD. 5
  • 6. JPIX Backplane のトラフィック遷移 2002- 2012 2012/5/10 (C) ReedRex Co,. LTD. 6
  • 7. ハードウェアのコモディティ化 • 1992年 Windows 3.1, OS/2 2.0, 486 DX2 66MHz, HDD 100MB • 2012年 Windows 7, Mac OSX, Linux, 2GHz Multi Core, HDD 数100MB~ • パブリッククラウド -- Amazon, Google, Azure コモディティ化された低価格なハードウェアを大量 に用意してサービスを提供 2012/5/10 (C) ReedRex Co,. LTD. 7
  • 8. 2012/5/10 (C) ReedRex Co,. LTD. 8
  • 9. Gapの増大 • 永続化ストレージモデルの停滞 • 処理データ量の増大 • ハードウェアのコモディティ化 2012/5/10 (C) ReedRex Co,. LTD. 9
  • 10. SQL AlternativeとしてのNoSQL 狭間を埋めるNoSQL 2012/5/10 (C) ReedRex Co,. LTD. 10
  • 11. Gapを埋めるNoSQL NoSQL A コスト 構造化データ(関係モデル) ファイルシステム トランザクション NoSQL C 大容量 柔軟な問い合わせ SQL 単純さ データの一貫性 扱い易さ セキュリティ スケーラビリティ 可用性 B NoSQL 2012/5/10 (C) ReedRex Co,. LTD. 11
  • 12. SQL vs NoSQL ? • 「SQL」→SQLを問い合わせに使うRDBMS • 現在の関係データベース管理システムRDBMSは機能が豊富 • 関係モデル • Codd's 12 Rules • Transaction 処理 • ACID トランザクション、並行処理時での分離 • Query の最適化 • データの完全性 • 物理・論理データの独立性 • セキュリティ • リカバリー 2012/5/10 (C) ReedRex Co,. LTD. 12
  • 13. Alternative SQL としてのNoSQL • 用途を限定すれば、SQLの全機能はいら ないのでは? • 使わない機能に払っている隠れたコスト がある NoSQLは、SQL以外の代替手段を考えよう というムーブメント 2012/5/10 (C) ReedRex Co,. LTD. 13
  • 14. NoSQLもいろいろある • Write Opの同期性 • DISKやReplication先に同期で書くか、 • ジャーナルログを持つか • 耐障害性 • トランザクションのレベル • 複数同時アクセス時の一貫性があるか • Queryの柔軟性がどこまであるのか • 可用性、対障害性をどう考えるか • スケーラビリティをどう担保するか 2012/5/10 (C) ReedRex Co,. LTD. 14
  • 15. Gapを埋めるNoSQL 構造化データ(関係モデル) コスト 柔軟な問い合わせ パフォーマンス 単純さ MongoDB セキュリティ SQL スケーラビリティ 大容量 Bigtable/Azure Table可用性 データの一貫性 扱い易さ トランザクション 2012/5/10 (C) ReedRex Co,. LTD. 15
  • 16. 典型的な例 • Bigtable-like • 動機:Googleの検索、gmail など • Pros:大量データの保持、トランザクション • Cons:高レイテンシー、 • Casandra • 動機:Facebook で検索のために開発 • Pros:大量データの保持、リアルタイムな更新、結果整合性 • Cons:一貫性、トランザクション • MongoDB • 動機:DoubleClick のメンバーが中心となって開発 • Pros:Read パフォーマンス、柔軟なIndex,Query柔軟性 • Cons:一貫性、トランザクション 2012/5/10 (C) ReedRex Co,. LTD. 16
  • 17. 例: Bigtable/Azure Table 分散ストレージ、トランザクション処理、K/V Store 1. 複数エンティティのトランザクション処理 2. 高いスケーラビリティ 3. 高いコンカレンシー 4. 貧弱なQuery 5. 書き込みはDISKと同期、replication 先も同様 6. レイテンシー 読み書きは、20-30msのレイテン シー 2012/5/10 (C) ReedRex Co,. LTD. 17
  • 18. 例:MongoDB 読み込み性能に特化したドキュメント指向のNoSQL 1. 読み込みは、memcachedなみ 2. 柔軟なQuery (Indexあり) 3. 書き込みは、Disk と同期しない 4. 書き込みは、同時実行1 5. リプリケーションは非同期のみ 6. トランザクションは、同一ドキュメントのみ 7. Shading は、migrate コストが高い 8. ShadeをまたがったQueryはできない。 2012/5/10 (C) ReedRex Co,. LTD. 18
  • 19. 注目すべき特性 GAE Datastore/Azure Table 2012/5/10 (C) ReedRex Co,. LTD. 19
  • 20. Bigtable-like / GAE Datastore, HBase, Azure Table とても似てる • GAE Datastore • Google App Engine Datastore, Bigtableがベース • Windows Azure Table • Microsoft の実装のBigtable • HBase • Bigtable clone、Apache HBase 2012/5/10 (C) ReedRex Co,. LTD. 20
  • 21. GAE Datastore/Azure Table 共通の特徴(1) 1. 分散データストア 2. Key/Value Store 3. トランザクション(制限あり) 4. 追記型(LSM-tree) 5. 複数ストレージへの書き込みでバックアッ プを作成している 6. データセンターを跨ったリプリケーション をしている 2012/5/10 (C) ReedRex Co,. LTD. 21
  • 22. GAE Datastore/Azure Table 共通の特徴(2) 1. 複数エンティティのトランザクション処理 2. 高いコンカレンシー 3. 書き込みはDISKと同期、replication 先も同 様 4. 高いスケーラビリティ 5. 高いレイテンシー 6. 制限されたQuery 2012/5/10 (C) ReedRex Co,. LTD. 22
  • 23. Bigtable と Azure Table の基本の比較 基本構成 Azure Table は、 Bigtable とGFS の組み合わせに類似し ている。 (1) GFS ではレプリカ間の緩やかな整合性が許可され、 すべてのレプリカのビット単位の同一性を保証して いないが、Azure Table はこれを保証 (2) Bigtable はtabletの書き込みの コミット ログを2 つ の GFS ファイルに並行して書き込むことで GFS の 障害を回避。Azure Tableでは Stream Layerの Journaling で耐障害性を担保 2012/5/10 (C) ReedRex Co,. LTD. 23
  • 24. 2012/5/10 (C) ReedRex Co,. LTD. 24
  • 25. ポイント • 分散ストレージ vs.トランザクション 同一ロケーションのトランザクションが基 本 分散トランザクションはコストが高い (☓Azure Table) • 高コンカレンシー vs. 高レイテンシー 複数のリクエストを同時に発行して処理全 体の時間を短縮 2012/5/10 (C) ReedRex Co,. LTD. 25
  • 26. トランザクション どちらも、Entity Group Transaction と呼ばれ るトランザクションをサポート • GAE Datastore 同一 Entity Group に属する複数のEntity をト ランザクション処理可能 • Azure Table 同一 Table, PartitionKeyのデータは、 トラン ザクション処理可能 2012/5/10 (C) ReedRex Co,. LTD. 26
  • 27. Data Location – 配置 データの配置のモデルが重要 分散ストレージにどのようにデータを配置するか。分散トランザク ションにしないため、同じロケーションであることが必要 • Bigtable エンティティ作成時に親となるエンティティを決めて、Entity Group を作成。同一Entity Groupは、同じロケーションに配置される。 • Azure Table エンティティ、作成時に、Table, PartitionKey で指定。両者が同じエ ンティティは、同じロケーションに置かれる。 2012/5/10 (C) ReedRex Co,. LTD. 27
  • 28. 重要 ロケーションが違うと、一貫性の欠如の問題が 発生する(結果整合) • GAE Datastore 結果整合になっても機能を提供す • secondary index, cross group transaction • Azure Table Case by case なので、アプリケーションで 実装してもらう。 2012/5/10 (C) ReedRex Co,. LTD. 28
  • 29. Google App Engine Datastoreと、Azure Tableの違い 相違点 2012/5/10 (C) ReedRex Co,. LTD. 29
  • 30. 5つの違い 1. Secondary index 別記 2. Cross group transaction GAE Datastoreだけにある。参加できるグループは5つまで 3. 3. Backup/restore GAE Datastoreだけにある。 4. 4. Transactional Task Enqueuing GAE Datastoreだけにある https://developers.google.com/appengine/docs/go/datastore/transactions? hl=ja#Transactional_Task_Enqueuing 5. 分離と整合性 別記 2012/5/10 (C) ReedRex Co,. LTD. 30
  • 31. Propertyで検索 GAE Datastoreではカラムの属性で検索する場合に Indexが作成されるが、Azure Tableではストレージ でIndexを作成する機能は無い • GAE Datastore トランザクションに癖がある https://developers.google.com/appengine/articles/ transaction_isolation • Windows Azure 自作が必要。作ってみるとGAE Datastoreと同じ ような制限が出てしまう。 2012/5/10 (C) ReedRex Co,. LTD. 31
  • 32. Entity Group 内の並列性 • GAE Datastore 同一Entity Group内では同時には1つのトラ ンザクションしか実行されない。同一Group 内は分離レベルSERIALIZABLE • Azure Table 同一 Table, Partition Key 内のトランザク ションはスナップショットアイソレーショ ンで実行。分離レベルREAD COMMITTED 2012/5/10 (C) ReedRex Co,. LTD. 32
  • 33. 事例 2012/5/10 (C) ReedRex Co,. LTD. 33
  • 34. 某社スマートフォン向けID/ 課金管理 プラットフォーム 1000万ユーザーを越えるスケール を想定してID/課金管理のシステム をWindows Azure Tableで構築 クラウド環境の利点を生かして、 上記想定スケールでのパフォーマ ンステストを実施 2012/5/10 (C) ReedRex Co,. LTD. 34
  • 35. Azure Table3つの魅力 1. PaaS(Platform as a Service) 使った分だけ従量制で課金、インストール、運用の手間が無い 必要に応じて任意のスケールテストが可能 常時3台のバックアップと自動フェイルオーバー 2. 一貫性保障の構造化データストア トランザクション処理をサポート 高いスケーラビリティ 3. 低コスト ¥0.88/ストレージ トランザクション 10,000 回 ¥10.93/GB/月 © Reed Rex Corp. 35
  • 36. データモデル ー 方針 単一テーブルに複数クラスを入れる Table Name 内容 MetaData オブジェクトのメタデータ(予約) Data オブジェクトのデータ Index インデックス Log APIログなどのデータ 2012/5/10 (C) ReedRex Co,. LTD. 36
  • 37. データモデル ー データの格納 • Person, Friends, Paymentsなどのアプリケーショ ンのファーストクラスオブジェクトはDataに入る • Data内には複数のClassのインスタンスが入るの で、Typeで区別を付ける(Typeは、Rowkeyの prefixに) • Indexには、Entity Groupを跨ったsecondary indexを入れる。 注:同一Entity Group 内に入るIndexはDataへ • Logは、APIのログなどログデータを年月をキー にして入れる。 2012/5/10 (C) ReedRex Co,. LTD. 37
  • 38. Entity Group とは? • 関連性の高いデータが同一Entity Group にな るようにする。 • Entity Group=分散の単位 • Entity Groupが大きいと上手く分散されない • Entity Groupが小さすぎると、分散トランザ クションが頻発してパフォーマンスが出な い • Entity Groupの決め方が重要 2012/5/10 (C) ReedRex Co,. LTD. 38
  • 39. Entity Group • Entity Group=同一テーブル、Partitionkey • ユーザー毎にPartitionkeyを決めて、 「Table」Dataに入れる • ユーザー内の処理はトランザクションで処 理、ユーザー間の処理は分散トランザク ションで処理 ※コンシューマー向けのシステムでは最初に検 討すべきパターン 2012/5/10 (C) ReedRex Co,. LTD. 39
  • 40. SQL との違い この使い方では、Azure Tableの「Table」は、 SQLでいうとtablespace (file group)に似た 扱い 同一領域(Data)に複数のクラスをシリア ライズすることが可能(スキーマレス) Table と partitionkey が同じときだけトラン ザクションが可能 2012/5/10 (C) ReedRex Co,. LTD. 40
  • 41. 疑問 • パーティションを分けることで分散スト レージとして利用できる ? • どれぐらいパーテーションを分割しても 大丈夫なのか 2012/5/10 (C) ReedRex Co,. LTD. 41
  • 42. スケーラビリティ • 大量のパーティションを作成してもパ フォーマンスは変わらない • 4億件ほど作成して確認 • ユーザー毎にパーティションを作れば、 ユーザーデータのレスポンスは、ユー ザー数が増えても変わらない © Reed Rex Corp. 42
  • 43. データ件数と処理時間遷移 100 2000 90 1800 80 1600 70 1400 Throughput [Entities/s] 60 1200 Avg [ms] 50 1000 40 800 Avg 30 600 Throughput 20 400 10 200 0 0 0 50 100 150 200 250 300 350 400 Data Count In Storage [x106] © Reed Rex Corp. 43
  • 44. 実装上の工夫 • パーティションを跨いだ処理 ユーザー毎にパーティションを分けると、月次の売上処理が遅く なる。 • 多くのパーティションをまたぐので • 別テーブルを作る 売上用の月次、日時で、パーティションを切ったテーブルを別途 用意して書き込む • 別トランザクションにする Azure Queueを使って別途行う。 • パーティションを跨いだトランザクションはサポートされていない • 集計データなので同期で書きこむ必要はない(=レスポンスを早く返せ る) © Reed Rex Corp. 44
  • 45. 2012/5/10 (C) ReedRex Co,. LTD. 45
  • 46. ポイント • Azure Tableは大量のパーティションを扱う ことができる • パーテーションを分散することで、パ フォーマンス劣化無しで、大量データが扱 える • コストは、トランザクション単価+スト レージ使用料の従量制 • パーティションを跨いだ処理は別途データ を用意する © Reed Rex Corp. 46
  • 47. mixi xmas 2011 日本最大規模のソーシャルイベン ト 11/30 ~ 12/25 の期間に利用可能 な、アプリ上でくつしたを飾っ て、友人のベルを鳴らし合った り、イベントに参加したりするこ とでレベルアップ、プレゼントに 応募できる仕組み また、mixi の決済機能を用いて、 友人へギフトを送ったりすること ができる機能もある 2009/2010は、GAE 2011は、Windows Azure でサービ ス提供 2012/5/10 (C) ReedRex Co,. LTD. 47
  • 48. スケール 11/30 サービススタート後、 49時間で100万人 に到達。 12/20 時点で 250 万ユーザーが利用しました。 12/16~18 にはテレビ CM と連動したキャン ペーンが展開され、Windows Azure の拡張性 を活用して柔軟にスケールアウトさせることに より、突発的なアクセス増加にも対応していま す 2012/5/10 (C) ReedRex Co,. LTD. 48
  • 49. 課題 1. ストレージへのピーク時のアクセスの軽減 • ピーク時の想定アクセス数からストレージへのア クセス頻度を計算するとAzure Storageのパ フォーマンス目標値を超える 2. レスポンスの改善 • 必要な、mixi api のアクセス、ストレージのアク エス数からレスポンスタイムを計算すると規定の 時間を超える 2012/5/10 (C) ReedRex Co,. LTD. 49
  • 50. 対策(1) memcachedの利用 • memcachedと、K/V Sは相性が良い • Readは、どちらもKeyでValueを持ってくるだけ • Writeは、Keyを使って、Valueを更新するので書 き込みをフックしてmemcached側をメンテする ことが可能 • SQLだとselectや、updateが柔軟すぎてエンティ ティのキャッシュは難しく、Query(SQL文)を キーにして結果をcacheすることになる。更新側 をフックしてcacheをメンテするのも難しいの で、cacheの有効性が低くなりがち。 2012/5/10 (C) ReedRex Co,. LTD. 50
  • 51. 対策(2) ストレージ系チューニングの小技 • 複数パーテーションに対するQueryは同 時に実行する • LINQ式は、IQueryable を有効利用 • 実際投げられているhttp requestをログに 書いて確認 2012/5/10 (C) ReedRex Co,. LTD. 51
  • 52. 2012/5/10 (C) ReedRex Co,. LTD. 52
  • 53. ポイント • Windows Azure Storage にはパフォーマン ス上限がある • memcached を使うことでストレージへのア クセスが減らせる • K/V Sは、memcached と相性が良く、同期 が取りやすい • Storageのチューニングはrequestを見てやる のが基本 2012/5/10 (C) ReedRex Co,. LTD. 53
  • 54. sociobridge Facebookページ統合運用管理ツール 投稿管理 「内容作成」「公開承認」など運用管理 フロー内での作業範囲に合わせて、各担 当者別に権限を設定可能 投稿監視 管理画面上でタスクの依頼も設定でき、 担当者間の連携が可能 オリジナルページ ユーザーとのコミュニケーションを活性 化させるオリジナルページの生成が可能 Windows Azure Platformを利用 2012/5/10 (C) ReedRex Co,. LTD. 54
  • 55. ストレージへの要求 • 国内1,000万、全世界で8億を超える Facebook ユーザーの負荷に耐えられるス ケーラビリティ • 投稿管理、ワークフローを実装するトラ ンザクション処理 2012/5/10 (C) ReedRex Co,. LTD. 55
  • 56. Windows Azure Table/Blobを利用 • パーテーション • サブスクリプション毎に分割 • Entity Group Transactionが必要なデータは、 同一Tableに保存 • Secondary Indexは自前で実装 2012/5/10 (C) ReedRex Co,. LTD. 56
  • 57. レイテンシー問題 • 一回のTableの読み書きは、最低でも 20msかかる • ページの表示は、3秒以内で行う • ページを分割して、ajaxで並列化 2012/5/10 (C) ReedRex Co,. LTD. 57
  • 58. 2012/5/10 (C) ReedRex Co,. LTD. 58
  • 59. モデル ー マルチテナント • テナント毎にパーテーションを分割 Entity Group が Subscription になるよう に • 不特定多数のユーザーからのアクセス は、Blobで担保 2012/5/10 (C) ReedRex Co,. LTD. 59
  • 60. トランザクション • 一括書き込みのパフォーマンス向上にBatch Requestを多用 • Azure TableのEntity Group Transaction は、http POSTの content-type multipart/mixed。 • 2つの特性がある 1. ACIDトランザクションで実行 2. ラウドトリップタイムの削減 • 複数のSaveChanges()を集約することで、リクエ スト数を少なくしてパフォーマンスが向上 2012/5/10 (C) ReedRex Co,. LTD. 60
  • 61. End ご清聴ありがとうございました。 2012/5/10 (C) ReedRex Co,. LTD. 61