BigTable

提供: miniwiki
2018/9/24/ (月) 22:55時点におけるAdmin (トーク | 投稿記録)による版 (1版 をインポートしました)
(差分) ← 古い版 | 最新版 (差分) | 新しい版 → (差分)
移動先:案内検索

BigTable(ビッグテーブル)とは、Googleの大規模なサーバ上の大量のデータを管理する為に設計されたNoSQL型のデータベースシステムである。

特徴

BigTableは、ペタバイトにも及ぶデータサイズにまでスケールすることが可能なプロプライエタリのデータベースである[1]分散データベースの一種であり、サーバの台数を増やすことで、より多くの問い合わせ ( クエリ ) を処理できるようになる[2]Google File System(GFS)やChubby Lock Service、その他のいくつかのGoogleのプログラムで構築されている。

2004年から作成され[3]、2006年には論文が公開された[4]。2015年にはGoogle Cloud Platformベータ版が公開。一般ユーザも利用できるようになった[5]

MapReduce(BigTableに格納されたデータの生成や修正にしばしば使われている)[6]、Google Reader[7]Google マップ[8]、Google Print、My Search History、Google EarthBlogger、Google Code hosting、Orkut[8]YouTube[9]のようないくつものアプリケーションを支えている。

Googleが自社でデータベースを開発した理由はコスト、スケーラビリティ、パフォーマンス特性のより良いコントロールなどであるとされる[10]

技術

テンプレート:専門的 BigTableは高速で超大規模な列指向DBMSである。行ではなく、列からの高速な読み込みに焦点を当てている。BigTableは数百から数千台のサーバのペタバイトまでのデータを扱い、システムにサーバを簡単に増設して、再設定なしにそれらのリソースを自動的に利用し始めるように設計されている[11]

各テーブルは多次元である。1つ1つのフィールドはその時点のスナップショットを持ち、バージョニングを行う事が出来る。テーブルはGFSに最適化されており、大きなテーブルは複数のTablet segment(タブレットセグメント)に自動的に分割される。分割はタブレットが200メガバイトのサイズになるように行の境界で行われる。サイズが特定の限界を超える兆候が見られた場合、テーブルはBMDiffとZippyアルゴリズムを使用して圧縮される。これらはLZWより圧縮率で劣るが、計算量で勝っている。

タブレットのGFS内の位置(サーバのIPとPort)は、「META1」タブレットと呼ばれる複数の特別なタブレットにデータベースエントリとして記録されている。META1タブレットは1つだけある「META0」タブレットを照会する事で作成される。「META0」タブレットは通常は1つのマシンを占有している。「META1」タブレットの位置に関してクライアントから頻繁に問い合わせを受けるからである。「META1」タブレットはそれ自体が、実際のデータの位置についての答えを持っている。GFSマスターサーバのように、META0は通常はボトルネックにはならない。META1の位置を発見・送信する為に必要なプロセッサ時間と帯域はごく僅かである。クライアントは積極的に位置をキャッシュして、照会を必要最低限にするからである。

他の実装

Hadoopプロジェクトは、BigTableの現在の実装を目指して改良を加えられている。HBaseと呼ばれている。

"Just as Bigtable leverages the distributed data storage provided by the Google File System, Hbase will provide Bigtable-like capabilities on top of Hadoop."

関連事項

参考文献

  1. Bigtable: A Distributed Storage System for Structured Data”. . 2018-2-4閲覧.
  2. Cloud Bigtable の概要”. . 2018-2-4閲覧.
  3. "First an overview. BigTable has been in development since early 2004 and has been in active use for about eight months (about February 2005)." Google's BigTable
  4. Bigtable: A Distributed Storage System for Structured Data”. . 2018-2-4閲覧.
  5. リリースノート”. . 2018-2-4閲覧.
  6. "Bigtable can be used with MapReduce, a framework for running large-scale parallel computations developed at Google. We have written a set of wrappers that allow a Bigtable to be used both as an input source and as an output target for MapReduce job". pg 3 of "Bigtable: A Distributed Storage System for Structured Data", 2006
  7. "Reader is using Google's BigTable in order to create a haven for what is likely to be a massive trove of items." Official Google Reader blog.
  8. 8.0 8.1 "There are currently around 100 cells for services such as Print, Search History, Maps, and Orkut." Google's BigTable
  9. "Their new solution for thumbnails is to use Google’s BigTable, which provides high performance for a large number of rows, fault tolerance, caching, etc. This is a nice (and rare?) example of actual synergy in an acquisition." YouTube Scalability Talk
  10. "We have described Bigtable, a distributed system for storing structured data at Google....Our users like the performance and high availability provided by the Bigtable implementation, and that they can scale the capacity of their clusters by simply adding more machines to the system as their resource demands change over time...Finally, we have found that there are significant advantages to building our own storage solution at Google. We have gotten a substantial amount of flexibility from designing our own data model for Bigtable." from the Conclusion of "Bigtable: A Distributed Storage System for Structured Data", 2006
  11. *"Database War Stories #7: Google File System and BigTable"

外部リンク