首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >对大型动态数据集进行分析查询

对大型动态数据集进行分析查询
EN

Stack Overflow用户
提问于 2011-04-08 20:57:02
回答 2查看 416关注 0票数 1

我有一个需求,在我拥有的系统中有大量的输入数据。

该集合中的单个数据单元具有一组不变的属性+状态。状态是动态的,可以随时改变。

有关规定如下:

  1. 大型数据集可以体验状态更改。更新要快。
  2. 我应该能够聚合基于各种属性的数据。
  3. 理想情况下,应该有一种将单个数据单元与聚合结果关联起来的方法,即我希望深入研究产生某种聚合的特定事务。(我知道这里的竞争条件,比如在执行聚合后数据单元的状态会发生变化;但这是预期的)。
  4. 所有的集合都是基于时间的--即x在一天、两天、一周、一个月上的和。

我正在评估不同的技术,以满足这些用例,并希望听到您的建议。我看了一下Hive/Pig,它适合分析/聚合用例。然而,我对随时可能进入系统的大量更新感到关切。我不确定与索引数据库(sql或nosql)相比,HDFS文件是如何执行的。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-04-09 15:09:02

您可能只有通过在您的环境中对实际场景进行压力测试才能找到最佳解决方案,但以下是一些建议。首先,如果写入速度是一个瓶颈,那么将更改状态写入仅追加的存储区(与不可变数据分开)可能是有意义的,然后再次加入数据以进行查询。仅附加写入(例如,日志文件)将比更新现有记录更快,主要是因为它将磁盘查找最小化。这种策略还可以帮助解决查询期间底层数据更改的问题。您可以及时查询“快照”。例如,HBase对一条记录进行了多次时间戳更新。(数字是可配置的。)

这是称为多版本并发控制( MVCC )的持久性策略的特例。根据您的描述,MVCC可能是您执行一段时间的查询并获得一致的状态信息的最重要的底层策略,即使同时进行更新。

当然,这样对分割的数据执行连接会降低查询性能。因此,如果查询性能更重要,那么考虑写入整个记录,其中不变的数据随着状态的变化而重复。这将消耗更多的空间,作为一种权衡。

票数 0
EN

Stack Overflow用户

发布于 2011-05-08 07:11:42

您可以考虑查看Flexview。它支持为MySQL创建增量式的可刷新的物化视图。物化视图类似于查询的快照,该快照会定期使用已更改的数据进行更新。您可以使用物化视图对不同汇总表中的多个属性进行汇总,并保持这些视图在事务上的一致性。您可以找到一些描述slideshare.net功能的幻灯片。

还有碎片查询,它可以与InnoDB和MySQL分区结合使用,并支持在许多机器上传播数据。这将同时满足高更新率,并为快速聚合提供查询并行性。

当然,你可以把这两者结合在一起。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5600683

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档