Database 数据库和大型时间序列-下采样-OpenTSDB InflowXDB Google数据流

Database 数据库和大型时间序列-下采样-OpenTSDB InflowXDB Google数据流,database,time-series,google-cloud-dataflow,influxdb,opentsdb,Database,Time Series,Google Cloud Dataflow,Influxdb,Opentsdb,我有一个项目,我们每秒采样“大量”数据。一些操作以过滤等方式执行,然后需要以秒、分钟、小时或日间隔访问 我们目前使用一个基于SQL的系统和一个更新不同表(日平均值、小时平均值等)的软件来完成此过程 我们目前正在寻找其他解决方案是否能满足我们的需求,我曾尝试过几种解决方案,如开放tsdb、谷歌云数据流和influxdb 所有这些似乎都满足了timeseries的需求,但很难获得有关内部的信息。opentsdb确实提供了下采样,但没有明确说明如何进行下采样 这是因为我们可以查询大量数据,例如一年,如

我有一个项目,我们每秒采样“大量”数据。一些操作以过滤等方式执行,然后需要以秒、分钟、小时或日间隔访问

我们目前使用一个基于SQL的系统和一个更新不同表(日平均值、小时平均值等)的软件来完成此过程

我们目前正在寻找其他解决方案是否能满足我们的需求,我曾尝试过几种解决方案,如开放tsdb、谷歌云数据流和influxdb

所有这些似乎都满足了timeseries的需求,但很难获得有关内部的信息。opentsdb确实提供了下采样,但没有明确说明如何进行下采样

这是因为我们可以查询大量数据,例如一年,如果数据库在查询时减少采样并且没有预先计算,那么可能需要很长时间

此外,当添加“延迟”数据点时,需要“更新”下采样

除此之外,在数据到达时,我们执行一些处理(大纲视图过滤器、校准),这些操作不应写入磁盘,可以使用几种解决方案,如基于Ram的DB,但可能存在一些更优雅的解决方案,可以与以前的规范一起使用

我相信这个应用程序并不是什么“奢侈”的东西,它必须存在一些工具来实现这一点,我想到的是股票行情、监控等等

也许您会对我应该关注哪些技术/DB提出一些好的建议


谢谢。

使用谷歌云数据流,您可以非常轻松地完成此类用例。数据预处理和优化查询是云数据流的主要场景之一

我们不提供内置的“下采样”原语,但您可以轻松编写此类数据转换。如果您只是想删除不必要的数据,那么可以使用一个。对于非常简单的情况,primitive可以更简单

或者,如果您正在考虑将多个数据点合并为一个数据点,那么一个常见的模式是将
PCollection
根据时间戳进行细分。然后,您可以使用来合并每个窗口的元素

您提到的附加处理可以很容易地连接到相同的数据处理管道


就比较而言,云数据流实际上无法与数据库进行比较。数据库主要是具有处理能力的存储解决方案。云数据流主要是一个数据处理解决方案,它连接到其他产品以满足其存储需求。您应该期望基于云数据流的解决方案具有更大的可扩展性和灵活性,但这也带来了更高的总体成本。

数据流用于数据输入时的内联处理。如果您只对摘要和计算感兴趣,那么数据流是您的最佳选择

如果您想稍后获取该数据并通过时间(时间序列)访问它,例如图形,那么XDB是一个很好的解决方案,尽管它对它可以包含多少数据有限制

如果您对大型数据集的2-25秒延迟没有问题,那么您可以将BigQuery与数据流一起使用。数据流将接收、汇总和处理您的数字。然后将结果提交到BigQuery中。提示,将表格按天划分,以减少成本并使重新计算更容易

我们每晚处理187 GB的数据。这相当于约11512台设备的478439634个单独数据点(每个数据点大约有15个指标,每个设备平均有43000行)

BigQuery的秘密: 限制您的列选择。如果你能帮忙的话,千万不要做选择


)()

对于时间序列数据库,周期聚合(也称为下采样、平均、汇总等)是标准用例之一。他们都非常擅长,至少在基本方面是如此——平均值、最小值、最大值、百分位数、第一个/最后一个,等等。例如,opentsdb读取原始数据并返回聚合,然后将这些聚合排队以供重用。上次我检查时就是这样的。