web-dev-qa-db-ja.com

スパースデータ/データストア/データベースとはどういう意味ですか?

最近HadoopとHBaseについて読んでいて、この用語に出くわしました-

HBaseは、オープンソースの分散型sparse、列指向ストアです。

スパースとはどういう意味ですか? スパース行列 と関係がありますか?効率的に保存できるデータ型の性質だと思いますので、もっと知りたいと思います。

17
Jai

通常のデータベースでは、行はまばらですが、列はまばらではありません。行が作成されると、そのフィールド(行と列の共通部分に割り当てられたストレージであるフィールド)に値が存在するかどうかに関係なく、すべての列にストレージが割り当てられます。

これにより、固定長の行により、読み取りおよび書き込み時間が大幅に改善されます。可変長データ型は、ポインターの類似物で処理されます。

スパース列はパフォーマンスの低下を招き、NULLを示すために必要なスペースは、非常に大きな非連続したストレージ。

ストレージは安いです。パフォーマンスはそうではありません。

19
Peter Wone

ストレージレベルでは、すべてのデータがキーと値のペアとして保存されます。各ストレージファイルにはインデックスが含まれているため、各Key-Valueの開始位置と長さがわかります。

この結果、非常に長いキー(完全なURLなど)があり、そのキーに関連付けられている列が多い場合、スペースを無駄にする可能性があります。これは、圧縮をオンにすることでいくらか改善されます。

参照: http://www.larsgeorge.com/2009/10/hbase-architecture-101-storage.html

hBaseストレージの詳細については

4
David

HBaseに関するスパースは、実際、スパース行列と同じコンテキストで使用されます。これは基本的に、nullのフィールドが(スペースの観点から)自由に格納できることを意味します。

このテーマについてもう少し詳しく触れているブログ投稿をいくつか見つけました。

http://blog.rapleaf.com/dev/2008/03/11/matching-impedance-when-to-use-hbase/

http://jimbojw.com/wiki/index.php?title=Understanding_Hbase_and_BigTable

3
Donald Miner

私が見た中で最高の記事で、多くのデータベース用語も説明しています。

> http://jimbojw.com/#understanding%20hbase

1
Kh.Taheri

テーブルにデータを格納する方法は2つあり、スパースデータとデンスデータのいずれかになります。スパースデータの例。

2015年1月から2015年11月までの従業員によるトランザクションの売上データを含むテーブルで操作を実行する必要があるとします。クエリをトリガーした後、従業員がトランザクションを行わなかった場合、上記のタイムスタンプ条件を満たすデータを取得し、行全体が返されます。ブランク

例えば。 EMPNo名前製品日付数量

 1234  Mike    Hbase    2014/12/01     1
 5678                                        
 3454  Jole    Flume    2015/09/12   3

empno5678の行にはデータがなく、残りの行にはデータが含まれています。空白の行と入力された行を含むテーブル全体を考慮すると、スパースデータと呼ぶことができます。

入力されたデータのみを取得する場合、それは高密度データと呼ばれます。

0
Ashish Singh