加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

nosql – 实时查询/聚合数百万条记录 – hadoop? HBase的?卡桑

发布时间:2020-12-13 13:31:00 所属栏目:百科 来源:网络整理
导读:我有一个可以并行化的解决方案,但我(还)没有使用hadoop / nosql的经验,而且我不确定哪种解决方案最适合我的需求.从理论上讲,如果我有无限的CPU,我的结果应该立即返回.所以,任何帮助将不胜感激.谢谢! 这就是我所拥有的: 1000s的数据集 数据集键: 所有数据
我有一个可以并行化的解决方案,但我(还)没有使用hadoop / nosql的经验,而且我不确定哪种解决方案最适合我的需求.从理论上讲,如果我有无限的CPU,我的结果应该立即返回.所以,任何帮助将不胜感激.谢谢!

这就是我所拥有的:

> 1000s的数据集
>数据集键:

>所有数据集都具有相同的键
> 100万把钥匙(后来可能是10或2000万)

>数据集列:

>每个数据集具有相同的列
> 10到20列
>大多数列是我们需要聚合的数值(avg,stddev,并使用R来计算统计数据)
>一些列是“type_id”列,因为在特定查询中我们可以
想要只包含某些type_ids

>网络应用程序

>用户可以选择他们感兴趣的数据集(从15到1000)
>应用程序需要呈现:每列的密钥和聚合结果(avg,stddev)

>数据更新:

>可以添加,删除或替换/更新整个数据集
>能够添加列很酷.但是,如果需要,可以只替换整个数据集.
>永远不要向数据集添加行/键 – 因此不需要具有大量快速写入的系统

>基础设施:

>目前有两台机器,每台机器24个核心
>最终,想要能够在亚马逊上运行这个

我无法预先计算我的聚合值,但由于每个键都是独立的,因此应该可以轻松扩展.目前,我将这些数据放在postgres数据库中,其中每个数据集都在自己的分区中.

>分区很好,因为可以轻松添加/删除/替换分区
>数据库很适合基于type_id的过滤
>编写并行查询并不容易
>数据库适用于结构化数据,而我的数据不是结构化的

作为概念证明,我尝试了hadoop:

>为特定type_id的每个数据集创建一个制表符分隔文件
>上传到hdfs
> map:检索每个键的值/列
> reduce:计算的平均值和标准差

从我粗略的概念验证中,我可以看到它可以很好地扩展,但我可以看到hadoop / hdfs有延迟我已经读过它通常不用于实时查询(即使我没有用返回结果在5秒内回复用户).

关于如何处理这个问题的任何建议?我当时正考虑尝试HBase以获得感觉.我应该看看Hive吗?卡桑德拉?伏地魔?

谢谢!

蜂巢或猪似乎不会帮助你.基本上每个都可以编译为一个或多个map / reduce作业,因此响应不能在5秒内完成

HBase可能会起作用,尽管您的基础架构有点小以获得最佳性能.我不明白为什么你不能预先计算每列的摘要统计.你应该查看计算运行平均值,这样你就不必减轻重量.

退房http://en.wikipedia.org/wiki/Standard_deviation

stddev(X)= sqrt(E [X ^ 2] – (E [X])^ 2)

这意味着你可以通过这样做获得AB的stddev

SQRT(E [AB ^ 2] – (E [AB])^ 2). E [AB ^ 2]是(和(A ^ 2)和(B ^ 2))/(| A | | B |)

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读