Hbase-overview
HBase-概要
1970年以来、RDBMSはデータストレージとメンテナンス関連の問題の解決策です。 ビッグデータの出現後、企業はビッグデータを処理する利点を認識し、Hadoopなどのソリューションを選択し始めました。
Hadoopは、ビッグデータを保存するために分散ファイルシステムを使用し、MapReduceがそれを処理します。 Hadoopは、任意、半、または非構造化など、さまざまな形式の巨大なデータの保存と処理に優れています。
Hadoopの制限
Hadoopはバッチ処理のみを実行でき、データはシーケンシャルな方法でのみアクセスされます。 つまり、最も単純なジョブでもデータセット全体を検索する必要があります。
巨大なデータセットを処理すると、別の巨大なデータセットが生成されます。これも順次処理する必要があります。 この時点で、単一の時間単位でデータの任意のポイントにアクセスするための新しいソリューションが必要です(ランダムアクセス)。
Hadoopランダムアクセスデータベース
HBase、Cassandra、couchDB、Dynamo、MongoDBなどのアプリケーションは、膨大な量のデータを保存し、ランダムな方法でデータにアクセスするデータベースの一部です。
HBaseとは何ですか?
HBaseは、Hadoopファイルシステム上に構築された分散列指向データベースです。 これはオープンソースプロジェクトであり、水平方向に拡張可能です。
HBaseは、大量の構造化データにすばやくランダムにアクセスできるように設計されたGoogleの大きなテーブルに似たデータモデルです。 Hadoop File System(HDFS)によって提供されるフォールトトレランスを活用します。
これは、Hadoopファイルシステム内のデータへのランダムなリアルタイム読み取り/書き込みアクセスを提供するHadoopエコシステムの一部です。
HDFSに直接またはHBaseを介してデータを保存できます。 データコンシューマは、HBaseを使用してHDFSのデータをランダムに読み取り/アクセスします。 HBaseはHadoopファイルシステムの上にあり、読み取りおよび書き込みアクセスを提供します。
HBaseおよびHDFS
HDFS | HBase |
---|---|
HDFS is a distributed file system suitable for storing large files. | HBase is a database built on top of the HDFS. |
HDFS does not support fast individual record lookups. | HBase provides fast lookups for larger tables. |
It provides high latency batch processing; no concept of batch processing. | It provides low latency access to single rows from billions of records (Random access). |
It provides only sequential access of data. | HBase internally uses Hash tables and provides random access, and it stores the data in indexed HDFS files for faster lookups. |
HBaseのストレージメカニズム
HBaseは*列指向データベース*であり、その中のテーブルは行でソートされます。 テーブルスキーマは、キーと値のペアである列ファミリのみを定義します。 表には複数の列ファミリーがあり、各列ファミリーには任意の数の列を含めることができます。 後続の列値は、ディスクに連続して格納されます。 テーブルの各セル値にはタイムスタンプがあります。 要するに、HBaseで:
- テーブルは行のコレクションです。
- 行は列ファミリのコレクションです。
- 列ファミリは列のコレクションです。
- 列はキーと値のペアのコレクションです。
以下に、HBaseのテーブルのスキーマの例を示します。
ROWID
列ファミリー
列ファミリー
列ファミリー
列ファミリー
col1
col2
col3
col1
col2
col3
col1
col2
col3
col1
col2
col3
1
2
3
列方向と行方向
列指向データベースは、データの行としてではなく、データの列のセクションとしてデータテーブルを格納するデータベースです。 まもなく、それらには列ファミリがあります。
Row-Oriented Database | Column-Oriented Database |
---|---|
It is suitable for Online Transaction Process (OLTP). | It is suitable for Online Analytical Processing (OLAP). |
Such databases are designed for small number of rows and columns. | Column-oriented databases are designed for huge tables. |
次の図は、列指向データベースの列ファミリを示しています。
HBaseおよびRDBMS
HBase | RDBMS |
---|---|
HBase is schema-less, it doesn’t have the concept of fixed columns schema; defines only column families. | An RDBMS is governed by its schema, which describes the whole structure of tables. |
It is built for wide tables. HBase is horizontally scalable. | It is thin and built for small tables. Hard to scale. |
No transactions are there in HBase. | RDBMS is transactional. |
It has de-normalized data. | It will have normalized data. |
It is good for semi-structured as well as structured data. | It is good for structured data. |
HBaseの機能
- HBaseは線形にスケーラブルです。
- 自動障害サポートがあります。
- 一貫した読み取りと書き込みを提供します。
- ソースおよび宛先としてHadoopと統合します。
- クライアント用の簡単なJava APIがあります。
- クラスタ全体でデータ複製を提供します。
HBaseの使用場所
- Apache HBaseは、ビッグデータへのランダムなリアルタイムの読み取り/書き込みアクセスに使用されます。
- コモディティハードウェアのクラスターの上に非常に大きなテーブルをホストします。
- Apache HBaseは、GoogleのBigtableをモデルにした非リレーショナルデータベースです。 BigtableはGoogle File System上で動作し、同様にApache HBaseはHadoopおよびHDFS上で動作します。
HBaseのアプリケーション
- 重いアプリケーションを作成する必要がある場合に使用されます。
- HBaseは、利用可能なデータへの高速ランダムアクセスを提供する必要がある場合に使用されます。
- Facebook、Twitter、Yahoo、Adobeなどの企業はHBaseを内部的に使用しています。
HBaseの歴史
Year | Event |
---|---|
Nov 2006 | Google released the paper on BigTable. |
Feb 2007 | Initial HBase prototype was created as a Hadoop contribution. |
Oct 2007 | The first usable HBase along with Hadoop 0.15.0 was released. |
Jan 2008 | HBase became the sub project of Hadoop. |
Oct 2008 | HBase 0.18.1 was released. |
Jan 2009 | HBase 0.19.0 was released. |
Sept 2009 | HBase 0.20.0 was released. |
May 2010 | HBase became Apache top-level project. |