10

我正在尝试确定存储 100 个 25 Hz 浮点数据通道的可能方法。这将导致每年 78,840,000,000 个数据点

理想情况下,所有这些数据都可以有效地用于网站和工具,例如 Sql Server 报告服务。我们知道关系数据库在处理这种规模的时间序列方面很差,但尚未确定一个令人信服的时间序列特定数据库。

关键问题是压缩以实现高效存储,同时还提供简单高效的查询、报告和数据挖掘。

  • 您将如何处理这些数据?

  • Sql Server 中是否有可以处理如此大量时间序列数据的功能或表设计?

  • 如果没有,Sql server 是否有任何第三方扩展来有效处理庞大的时间序列?

  • 如果没有,是否有专门处理此类数据但通过 Sql、.Net 和 Sql Reporting 服务提供自然访问的时间序列数据库?

谢谢!

4

8 回答 8

1

您描述的功能集用于分析多维数据集。如果您身处科技界,请查看 Microsoft 的分析服务:

http://msdn.microsoft.com/en-us/library/ms175609(SQL.90).aspx

就您所描述的模型而言,您需要实现具有时间维度的 Kimball 模型(标准数据仓库模型)。不久前我在存储媒体日志文件时遇到了这个问题。

祝你好运。

于 2009-06-04T17:07:51.507 回答
1

我认为您可以查看 Infobright 社区版或企业版。它是面向列的存储,专为分析目的而设计,具有大数据(正如他们所说,现有安装现在高达 30 TB)和良好的压缩率。

数据加载器也非常快,并且存在用于 ETL 工具(Talend、kettle 等)的连接器。

社区版在 GNU GPL 条款下免费提供,但仅允许通过本机加载程序添加数据。企业版支持通过 DML 单行添加/更新。

您可以将它与支持 MySQL 连接的所有工具一起使用的另一个好处。

列方向允许您在每个需要的聚合级别(我使用日期、周数、月份和 qtr)上为日期组件添加列,以获得更好的性能,但没有它也很好。

我将它用于相对较少(但)数量的业务交易数据用于分析目的,使用 R 作为数据分析工具,通过 mysql 接口和 python (numpy) 脚本作为某种 ETL。

缺点:缺乏官方的 utf-8 支持,按函数值聚合(选择月份(日期来自 ...))尚未实现(计划:2009 年 7 月,AFAIK),但我为此使用 ETL。

链接: http: //www.infobright.org/Download/ICE/

于 2009-06-15T19:59:45.747 回答
1

我会按日期对表进行分区,以将数据分成216,000,000每一行的微小位。

如果您不需要全年的统计数据,那么这很容易通过索引提供。

比如说,像“给我一个给定小时的平均值”这样的查询将只需要几秒钟。

于 2009-06-04T16:51:10.543 回答
1

我想您需要随机访问数据系列。我已经用于降雨数据表的想法是将整个数据集细分为更小的部分,每隔几分钟甚至一分钟创建一个条目。然后你可以从数据库中弹出这个仍然很大的数组并直接访问所需的部分,你可以找到时间偏移和字节偏移之间的直接相关性。

于 2009-06-04T17:02:39.970 回答
0

你有

A. 365 x 24 x 100 = 每年 876,000 个每小时信号(所有频道)

B. 每个信号包含 3600 * 25 = 90,000个数据点

如果您将数据存储为每个信号一行,当前支持的用例的摘要/查询统计列以及blob未来的压缩信号的列,怎么样?

于 2009-06-05T15:40:12.343 回答
0

您是否考虑过时间序列数据库,例如http://opentsdb.net

于 2011-10-25T18:56:43.803 回答
0

如果它只是浮点数据,TSDB 将为您提供更好的性能。时间序列压缩算法不同,因此您可以获得更好的存储和查询率。

于 2017-07-01T10:29:03.040 回答
0

您是否考虑过 HBASE 或 Open TSDB。你也可以看看 Cassandra

于 2015-09-07T09:26:26.983 回答