gpt4 book ai didi

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

转载 作者:可可西里 更新时间:2023-11-01 16:21:09 26 4
gpt4 key购买 nike

我有一个要求,我有大量传入数据到我拥有的系统中。

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

要求如下——

  1. 大型数据集可能会经历状态变化。更新需要快速。
  2. 我应该能够聚合基于各种属性的数据。
  3. 理想情况下 - 应该有一种方法可以将单个数据单元与聚合结果相关联,即我想深入了解产生特定聚合的特定交易。(我知道这里的竞争条件,比如在执行聚合后数据单元的状态发生变化;但这是预料之中的)。
  4. 所有聚合都是基于时间的 - 即一天、两天、一周、一个月等期间 x 在轴心 y 上的总和。

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

最佳答案

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

这是持久性策略的一个特例,称为多版本并发控制 - MVCC。根据您的描述,MVCC 可能是最重要的底层策略,可以让您及时执行查询并获得一致的状态信息返回,即使更新同时发生也是如此。

当然,像这样对拆分数据进行连接会降低查询性能。因此,如果查询性能更重要,则考虑写入整个记录,其中不可变数据随着状态的变化而重复。作为权衡,这将占用更多空间。

关于hadoop - 对大型动态数据集进行分析查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5600683/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com