回答:
柱状データベースはどのように機能しますか?
柱状データベースは、特定のアーキテクチャ/実装という概念です。つまり、これらのデータベースがどのように機能するかについての特定の説明はありません。実際、いくつかは従来の行指向のDBMSに基づいて構築され、情報を1つ(または多くの場合2つ)の列を持つテーブルに格納します(そして、簡単な方法で列データにアクセスするために必要なレイヤーを追加します)。
それらはリレーショナルデータベースとどう違うのですか? これらは一般的に、従来の(行指向)データベースとは...に関して異なります。
... DBMSの特定の使用例。
特に、特定のエンティティーのすべて/ほとんどの列を取得しようとするのではなく、限られた数の列で集計値を計算する場合に、これらの領域に利点があります。
インストールして遊ぶことができる円柱型データベースの試用版はありますか?(私はWindows 7を使用しています)
はい、カラムナーデータベースの商用、無料、オープンソースの実装があります。まず、 Wikipediaの記事の最後にあるリストを参照してください。
これらの実装のいくつかは、汎用の列指向のDBMS自体を提供するのではなく、特定のニーズに対応するために導入されたものです(たとえば、フットプリントが非常に小さい、データの圧縮率が非常に高い、スペアマトリックスのエミュレーションなど)。
注:いくつかの柱状DBMSの「単一目的指向」についての発言は、これらの実装に対する批判ではなく、DBMSに対するそのようなアプローチが、より「自然な」(そして確かにより広く使用されている)アプローチから逸脱しているという追加の指摘です。レコードエンティティを保存します。結果として、このアプローチは、行指向のアプローチが満足のいくものではない場合に使用されます。したがって、
a)特定の目的を対象とするb)「一般目的」、「試してみて、テスト済み」の表形式のアプローチ。
とりあえず、Entity-Attribute-Value(EAV)データモデルは、検討する必要のある代替ストレージ戦略になる場合があります。「純粋な」Columnar DBモデルとは異なりますが、EAVはColumnar DBのいくつかの特性を共有しています。
柱状データベースはどのように機能しますか? 列ストアの定義の概念は、テーブルの値が列ごとに連続して格納されることです。したがって、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が多かれ少なかれリレーショナルの原則に準拠しているのと同じように、リレーショナルかそうでないかもしれません。
列指向データベースについて理解するのに最適な候補は、HBase(Apache Hbase)を確認することです。あなたはコードをチェックアウトし、実装について調べるためにさらに探索します。
また、Columnar DBにはデータ圧縮のための組み込みのアフィニティがあり、ロードプロセスは一意です。2008年に私が書いた記事で、もう少し詳しく説明します。
また、IDCのカールオロフソンからの第3世代DBMSテクノロジに関する新しいレポートもご覧ください。コラムナー等について論じている。IDCクライアントでない場合は、当社のサイトで無料で入手できます。彼も6月16日にウェビナーを開催しています(私たちのサイトでも)。
(ところで、上記の1つのコメントにはアスタデータがリストされていますが、それらは円柱状ではないと思います)
列指向データベースとは何かを理解するには、行指向データベースと対比することをお勧めします。
行指向データベース(MS SQL ServerやSQLiteなど)は、行全体のデータを効率的に返すように設計されています。これは、行のすべての列の値を一緒に格納することによって行われます。行指向のデータベースは、OLTPシステム(小売販売、金融取引システムなど)に適しています。
列指向のデータベースは、限られた数の列のデータを効率的に返すように設計されています。これは、列のすべての値を一緒に格納することによって行われます。広く使用されている2つの列指向データベースは、Apache HbaseとGoogle BigTable(Googleが検索、分析、マップ、Gmailに使用する)です。ビッグデータプロジェクトに適しています。列指向のデータベースは、限られた数の列での読み取り操作に優れていますが、書き込み操作は行指向のデータベースに比べてコストがかかります。
商品情報。これは役立つかもしれません。これらは、Google検索で注目の製品でした。
kxは、たとえば金融セクターで使用される別の柱状データベースです。ただし、前回チェックしたときのライセンスはやや$ 5万です。KXは強力な演算子を持っているので、何のインデックスは必要ありません、必要に応じて最適化なし(Matlabの同等物:.*、kron、bsxfun、...)。