皆さん、
私は現在、データベースウェアハウス関連のアプリケーションに取り組んでいるので、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) 列指向データベースの内部で結合がどのように行われるかを教えてください。