mapreduce - 使用大量读取在 Riak 中存储时间序列的最有效方法是什么

标签 mapreduce erlang nosql time-series riak

我目前的做法:

  • 我有一个领域类 - Application
  • 我系统中的每个应用程序都存储在 “applications” 存储桶中 APPLICATION_KEY
  • 除了存储在此存储桶中的应用程序元数据外,每个应用程序都有自己的名为“time_metrics/APPLICATION_KEY”的存储桶,我以某种方式存储时间序列:

    KEY - timestamp / VALUE - some attributes

我关心的是在给定应用程序的特定时间窗口内进行查询的效率。目前要从某个特定时间窗口获取时间序列并最终进行一些缩减,我必须对整个 "time_metric/APPLICATION_KEY" 存储桶进行映射/缩减,我发现这不是推荐的用例Riak Map/Reduce .

我的问题:对于这种系统,最好的数据库结构是什么以及查询它的效率如何。

最佳答案

添加到@macintux 的回答中。

Basho 有一些客户将 riak 用于时间序列指标。 边界有一个 nice tech talk关于他们如何将 Riak 与他们的网络监控软件结合使用。他们将数据汇总到不同的时间 block (1m、5m、15m)中进行分析。 他们还有一个 series of blog posts关于在实现该系统时吸取的经验教训。

Kivra 还有一个 good slide deck关于他们如何将时间序列数据与 riak 结合使用。

您可以将数据汇总到某种任意时间长度,然后通过发出常规 K/V 获取来读取您需要的范围,然后在您的应用程序中重建更大的图片/减少。

关于mapreduce - 使用大量读取在 Riak 中存储时间序列的最有效方法是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19384686/

相关文章:

javascript - 跨平台 AES 256 GCM Javascript 和 Elixir

java - OtpNode 触发 IOException

javascript - 如何让cloudantDb.search返回所有记录而不是限制25条和书签

computer-science - 什么是 SSTable?

java - 我如何在hadoop中为其各自的输入文件生成不同的输出文件

hadoop - yarn 工作内存利用率

hadoop - 如何在hadoop map reduce程序中的mapper代码中获取输入文件名

Erlang:对数组进行排序

c# - 如何在 MongoDB 中创建 "trigger"

java - Hadoop 2.0 JAR文件