伙计们,
我目前已经开始阅读有关 NOSQL 相关数据库的信息,因为目前正在研究与数据库仓库相关的应用程序。
我有以下问题。我已经阅读了基础知识。
问题 1)当具有相同列的数据存储在一起时,如何在面向列的数据库中检索整个原始数据?
假设我们以以下格式存储数据,因此在内部它将像这样存储在面向列的数据库中。
test|test1 一起和 5|10 一起。
键 1:{名称:测试,值:5} 键 2:{名称:test1,值:10}
因此,如果我们必须检索 key1 的数据,它是如何发生的?(A和B是我的猜测)
A)如果它必须分别从每个列存储中提取数据,那么成本将非常高
B)是否有任何索引机制来获取给定原始键的所有列的数据?
问题2 )
我正在阅读一些文档,发现面向列的数据库更适合在单列上运行聚合函数,因为 I/O 会更少。
在 cassandra 和 HBASE 等 NOSQL 列式存储中,我没有找到对 SUM、AVG 等聚合函数的适当支持。(可能会有一些调整/黑客/更多代码编写,如下所示)
Apache Cassandra 如何进行聚合操作? 实时查询/聚合数百万条记录-hadoop?hbase?卡珊德拉? 如何使用hbase协处理器实现groupby?
问题 3) 连接如何在面向列的数据库中内部发生是可取的吗?