円柱状データベースとは何ですか?


97

私はしばらくの間倉庫で働いています。

Columnar Databasesと、データベースがデータ検索に提供する速度に興味をそそられます。

マルチパートの質問があります:

  • 柱状データベースはどのように機能しますか?
  • それらはリレーショナルデータベースとどう違うのですか?

1
回答に記載されているシークの数の削減に加えて、一部の実装(SQLサーバーの列ストアなど)はデータを圧縮します。これにより、行のフィルタリングが防止されますが、クエリのパフォーマンスをさらに向上させることができます。
2017年

回答:


49

柱状データベースはどのように機能しますか?
柱状データベースは、特定のアーキテクチャ/実装という概念です。つまり、これらのデータベースがどのように機能するかについての特定の説明はありません。実際、いくつかは従来の行指向のDBMSに基づいて構築され、情報を1つ(または多くの場合2つ)の列を持つテーブルに格納します(そして、簡単な方法で列データにアクセスするために必要なレイヤーを追加します)。

それらはリレーショナルデータベースとどう違うのですか? これらは一般的に、従来の(行指向)データベースとは...に関して異なります。

  • パフォーマンス...
  • ストレージ要件...
  • スキーマの変更の容易さ...

... DBMSの特定の使用例
特に、特定のエンティティーのすべて/ほとんどの列を取得しようとするのではなく、限られた数の列で集計値を計算する場合に、これらの領域に利点があります。

インストールして遊ぶことができる円柱型データベースの試用版はありますか?(私はWindows 7を使用しています) はい、カラムナーデータベースの商用、無料、オープンソースの実装があります。まず、 Wikipediaの記事の最後にあるリストを参照してください。
これらの実装のいくつかは、汎用の列指向のDBMS自体を提供するのではなく、特定のニーズに対応するために導入されたものです(たとえば、フットプリントが非常に小さい、データの圧縮率が非常に高い、スペアマトリックスのエミュレーションなど)。

注:いくつかの柱状DBMSの「単一目的指向」についての発言は、これらの実装に対する批判ではなく、DBMSに対するそのようなアプローチが、より「自然な」(そして確かにより広く使用されている)アプローチから逸脱しているという追加の指摘です。レコードエンティティを保存します。結果として、このアプローチは、行指向のアプローチが満足のいくものではない場合に使用されます。したがって、
a)特定の目的を対象とするb)「一般目的」、「試してみて、テスト済み」の表形式のアプローチ。

とりあえず、Entity-Attribute-Value(EAV)データモデルは、検討する必要のある代替ストレージ戦略になる場合があります。「純粋な」Columnar DBモデルとは異なりますが、EAVはColumnar DBのいくつかの特性を共有しています。


253

柱状データベースはどのように機能しますか? 列ストアの定義の概念は、テーブルの値が列ごとに連続して格納されることです。したがって、CJ Dateのサプライヤーおよび部品データベースのクラシックサプライヤーテーブルは次のとおりです。

SNO  STATUS CITY    SNAME
---  ------ ----    -----
S1       20 London  Smith
S2       10 Paris   Jones
S3       30 Paris   Blake
S4       20 London  Clark
S5       30 Athens  Adams

ディスクまたはメモリに次のように保存されます:

S1S2S3S4S5;2010302030;LondonParisParisLondonAthens;SmithJonesBlakeClarkAdams 

これは、次のようなデータを格納する従来の行ストアとは対照的です。

S120LondonSmith;S210ParisJones;S330ParisBlake;S420LondonClark;S530AthensAdams

この単純な概念から、列ストアと行ストア間のパフォーマンスの根本的な違いのすべてが流れます。たとえば、列ストアは合計や平均などの集計に優れていますが、単一の行を挿入するとコストが高くなる可能性がありますが、行ストアの場合は逆になります。これは上の図から明らかです。

それらはリレーショナルデータベースとどう違うのですか? 関係データベースは論理的な概念です。柱状データベース、または列ストアは、物理的な概念です。したがって、2つの用語は意味のある方法で比較できません。列指向のDMBSは、行指向のDBMSが多かれ少なかれリレーショナルの原則に準拠しているのと同じように、リレーショナルかそうでないかもしれません。


22
これは受け入れられた答えよりも良いようですが、私は専門家ではありません。賛成票。
Rob Grant

2
列指向のデータベースは、特定の列の集計が売上レポートのように照会される場合に使用されます。ここでのポイントは、行指向のデータベースを使用する場合、すべての行(ブロック)をメインメモリに移動する必要があります。列にのみ関心がある場合でも、ディスクからRAMにすべてのブロックを移動するには、ディスクからのシーク時間が長くなります。これは、販売レポートを提供するのに役立ちます。一方、列指向のスキームでは、列はブロックに連続して格納されます。これにより、ブロック数が少なくなるため、シークが少なくなります。したがって、列データベースはOLAPに使用され、行指向はOLTPに使用されます。
bharatj

4

列指向データベースについて理解するのに最適な候補は、HBase(Apache Hbase)を確認することです。あなたはコードをチェックアウトし、実装について調べるためにさらに探索します。


2

また、Columnar DBにはデータ圧縮のための組み込みのアフィニティがあり、ロードプロセスは一意です。2008年に私が書いた記事で、もう少し詳しく説明します。

また、IDCのカールオロフソンからの第3世代DBMSテクノロジに関する新しいレポートもご覧ください。コラムナー等について論じている。IDCクライアントでない場合は、当社のサイトで無料で入手できます。彼も6月16日にウェビナーを開催しています(私たちのサイトでも)。

(ところで、上記の1つのコメントにはアスタデータがリストされていますが、それらは円柱状ではないと思います)


IDCレポートは次の場所
kim stanick

Aster DataはMPPリレーショナルデータベースであり、カラムナーテーブルをネイティブでサポートしています。
topchef 2012

@ kimstanick、paraccel URLは無効です。
user674669 2014年

2

列指向データベースとは何かを理解するには、行指向データベースと対比することをお勧めします。

行指向データベース(MS SQL ServerやSQLiteなど)は、行全体のデータを効率的に返すように設計されています。これは、行のすべての列の値を一緒に格納することによって行われます。行指向のデータベースは、OLTPシステム(小売販売、金融取引システムなど)に適しています。

列指向のデータベースは、限られた数の列のデータを効率的に返すように設計されています。これは、列のすべての値を一緒に格納することによって行われます。広く使用されている2つの列指向データベースは、Apache HbaseとGoogle BigTable(Googleが検索、分析、マップ、Gmailに使用する)です。ビッグデータプロジェクトに適しています。列指向のデータベースは、限られた数の列での読み取り操作に優れていますが、書き込み操作は行指向のデータベースに比べてコストがかかります。

詳細:https : //en.wikipedia.org/wiki/Column-oriented_DBMS


1

商品情報。これは役立つかもしれません。これらは、Google検索で注目の製品でした。

http://www.vertica.com/

http://www.paraccel.com/

http://www.asterdata.com/index.php


Verticaについて注意すべき点の1つは、ライセンス費用が保存されたデータ1 TBあたり15万ドルであるというWeb上の参照を見たことです。だから、安くはありません。
マーク・

@マーク:コストは問題ではありません。情報が問題です。OPが情報を必要とする場合、ベンダーが可能な限り最高の情報源であることがよくあります。
S.Lott、2010年

1
Amazonは、特にコラムナーを探しているのでなければ、1テラバイトあたり年間1,000ドル未満の超高速RedShiftデータストレージを提供しています。
mevdiven

1

kxは、たとえば金融セクターで使用される別の柱状データベースです。ただし、前回チェックしたときのライセンスはやや$ 5万です。KXは強力な演算子を持っているので、何のインデックスは必要ありません、必要に応じて最適化なし(Matlabの同等物:.*kronbsxfun、...)。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.