0

皆さん、

私は現在、データベースウェアハウス関連のアプリケーションに取り組んでいるので、NOSQL 関連の DB について読み始めました。

以下の質問があります。私はすでに基本を読みました。

質問 1) 同じ列のデータが一緒に格納されているため、列指向データベースで raw 全体がどのように取得されますか?

次の形式でデータを保存するとします。内部的には、列指向の DB にこのように保存されます。

test|test1 を一緒に、5|10 を一緒に。

キー 1 : { 名前 : テスト、値 : 5 } キー 2 : { 名前 : テスト 1 、値 : 10 }

では、key1 のデータを取得する必要がある場合、どうすればよいのでしょうか? (AとBは私の推測です)

A)各列ストレージから個別にデータを選択する必要がある場合、非常にコストがかかります

B) 指定された生キーのすべての列に対してこのデータを取得するためのインデックス作成メカニズムはありますか?

質問2 )

私はいくつかのドキュメントを読んでいて、I/Oが少なくなるため、列指向のデータベースが単一の列で集計関数を実行するのにより適していることがわかりました。

Cassandra や HBASE などの NOSQL 列指向ストアで、SUM、AVG などの集計関数の適切なサポートが見つかりませんでした。(以下のような微調整/ハッキング/より多くのコード記述がある可能性があります)

Apache Cassandra はどのように集計操作を行いますか? 何百万ものレコードをリアルタイムでクエリ/集約する - Hadoop? hbase? カサンドラ? hbase コプロセッサを使用して groupby を実装するには?

質問 3) 列指向データベースの内部で結合がどのように行われるかを教えてください。

4

1 に答える 1

0

良い質問です。1) Cassandra で cqlsh を使用している場合、mysql またはその他の rdbms ストアにデータを保存するように見えます。

Connected to Test Cluster at localhost:9160.
[cqlsh 3.1.7 | Cassandra 1.2.9 | CQL spec 3.0.0 | Thrift protocol 19.36.0]
Use HELP for help.
cqlsh> create keyspace test with replication={'class':'SimpleStrategy', 'replication_factor': 1
         <value>  
cqlsh> create keyspace test with replication={'class':'SimpleStrategy', replication_factor': 1};
cqlsh> USE test ;
cqlsh:test> create table entry(key text PRIMARY KEY, name text, value int );
cqlsh:test> INSERT INTO entry (key, name , value ) VALUES ( 'key1', 'test',5);
cqlsh:test> INSERT INTO entry (key, name , value ) VALUES ( 'key2', 'test1',10);
cqlsh:test> select * from entry;

 key  | name  | value
------+-------+-------
 key1 |  test |     5
 key2 | test1 |    10

cqlsh:テスト>

注:-キーを使用して行を選択するか、セカンダリ インデックスを使用して他の列の基準を使用することができます。

しかし、hbase では、構造は次のようになります。

rowkey | column family | column | value
key1   | entry         | name   | test
key1   | entry         | value  | 5
key2   | entry         | name   | test1
key2   | entry         | value  | 10

注:-キーまたは任意の列の値を使用して各行を選択するのは非常に簡単です。

2) はい、nosqls は DML のみのバッチ操作もサポートしています。

3) 結合は、どの nosqls データストアでもサポートされていません。それらは結合用ではありません。

それがあなたを助けることを願っています。

于 2014-06-06T16:15:44.077 に答える