实时版本化大量数据

时间:2016-02-29 11:14:49

标签: sql database hadoop versioning bigdata

我正在寻找有关如何最好地处理我正在处理的应用程序的数据版本控制的输入。

摘要

我有基于行的数据,每秒更改一次。一些数据是静态的,一些是高度可变的,一些是中间的。我想存储所有增量,以便我可以回到任何时间点并捕获值。 每个州都同样重要。我希望能够搜索和评估状态,例如“给我所有的时间X有价值Y”。

类比:汽车

我将用汽车作为类比来解释我的问题:

  • 我想保存汽车的所有可能属性(=大量数据)
  • 汽车可以是静态的(=少量更新),或移动(=多次更新)
  • 汽车可能会重新粉刷(=某些值可能看起来是静态的,但它们不是)
  • 我不在乎汽车的驶向或来自(=所有州同样重要)
  • 我想检查它停在哪里(=按属性询问状态)
  • 我想计算状态之间的距离驱动(=询问和比较状态)
  • 如果有人偷了车,我想马上知道(=实时更新)

我们正在谈论每辆车的数据,以及大量不同的汽车。 我还想在以后的指针上比较汽车彼此(例如,粉红色的汽车被盗少吗?),所以更多的汽车=更多的数据。

图片时间

我绘制了一个快速图表来可视化更新:Picture。一旦我得到10个代表,我会嵌入它。

问题

保存数据的最佳方法是什么?我正在考虑某种稀疏数据库解决方案,对重复值的开销很低。 我对任何数据库引擎或解决方案都是开放的。

1 个答案:

答案 0 :(得分:0)

存储到达事实的最佳方式是完全。您只能首先查看数据,并且它们到达的速度越快,就越能够快速安全地保护数据。

华尔街在半个世纪的大部分时间里都在做这种事情。将缓慢移动的东西 - 名称,地址 - 保存在一个表格中,将短暂的东西 - 通常是价格 - 保存在另一个表格中。不要过于担心重复&#34 ;;首先应用KISS原则。在管理三角洲时,很容易搞砸,更容易淹没你的储蓄"与delta-bookkeeping开销。此外,如果您将所有内容保存在整齐的行中,任何SQL DBMS都将以高度自信的方式回答时间点查询。