【问题标题】:Non-trivial analytics on timeseries时间序列的非平凡分析
【发布时间】:2015-11-17 12:12:04
【问题描述】:

我想知道,OpenTSDB 上将比聚合更复杂的功能应用于数据的机制是什么?例如,如果我想计算移动平均线,我该怎么做?理想情况下,我想要一种机制来(通过 OpenTSDB)在 HBase 级别(example)上运行自定义聚合器,但我认为这可能不太容易实现。或者,在 OpenTSDB 级别上运行的东西会很好。我认为这在概念上可能接近于 issue 546/Pull 562 谈论的内容。

【问题讨论】:

    标签: opentsdb


    【解决方案1】:

    您可以在数据库前面放置一个石墨网络应用程序并使用它的功能:http://graphite.readthedocs.org/en/latest/functions.html

    【讨论】:

    • 谢谢,我看到了方向。当我在上面说“聚合”时,我主要指的是聚合器提供的功能(请参阅“可用聚合器”here。我想将所有这些数据从 HBase 和 OpenTSDB 带到 Graphite 成本太高了。
    • 是的,graphite-web 作为客户端执行所有计算。要直接在数据库中运行自定义函数,它必须通过您可以在 REST API 中按名称引用的 UDF 或通过 SQL 层来支持这种类型的扩展。移动平均线并不是一个复杂函数的好例子,TSDB 需要开箱即用地支持各种 MA。
    • 对于 MA,您的意思是它们很常见,应该开箱即用,对吧?是的——我只是想提一个很多人可能会联想到的例子。我更新了问题以反映您之前的评论。我理解这种要求的复杂性。只是如果你运行例如在 20 台服务器上,但你不能进行分布式计算,你还没有那么可扩展或分布式。如果您需要分布式计算,您希望将计算带入数据 - 而不是相反。
    • 我认为通过协处理器将自定义代码引入 HBase 并不是最好的主意。每当用户更改其代码时,您都必须关闭区域服务器。如果协处理器不是一个选项,那么根据您的定义它是不可扩展的,因为您必须聚合客户端上的所有行。无论是 Java 应用程序中的 HTable 实例还是 Java 应用程序中的石墨网络 - 都是一样的。我仍然认为将自定义逻辑下推到区域服务器的正确操作方法是通过 SQL 层。对于定制和复杂 - 总有 Spark。
    • chapter 4 of "Time Series Databases"中有一些相关信息
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-01-09
    • 1970-01-01
    • 2021-06-12
    • 1970-01-01
    相关资源
    最近更新 更多