有几个SO questions about time series databases,但没有一个可以解决我的具体问题,尽管this one最接近,它已经3岁了。
要求:
数据行为:
收藏:
OpenTSBD基于HBase,TempoDB不会在成本/性能基础上工作,Redis,Mongo,CouchDB等似乎都会扼杀这一数据量,我们不知道我们是不是做梦。如果我低估任何提到的系统(或他们同时代的人),请纠正我。 是否存在这样的事情?如果没有,我们是否可以通过仅仅列出一项列出的要求或愿望来完成工作?
答案 0 :(得分:2)
我使用hdf文件作为基础,在Python中为时间序列数据编写了一个不可变数据库。
所有这些可能都不是超快,但您可以从这段代码中获得想法
def write_series(self, group, name, series):
assert (group in self.groups)
if not name in self.series(group):
self.__create_table(group, name)
table_hdf = self.__group__(group, name)
times = [row["time"] for row in table_hdf]
if not times:
add = series.index
else:
add = series.index[series.index > max(times)]
if len(add) > 0:
add = sorted(add)
table_hdf.append([x for x in it.izip(add, series[add])])
table_hdf.flush()
现在所有这些都在Pandas开箱即用。 我的代码位于:
https://github.com/tschm/pycta
虽然我还没读过,但还有一本有趣的小书
快乐存储数据 托马斯
答案 1 :(得分:2)
你试过SciDB吗?它专为处理大规模科学数据而设计。此外,MonetDB的SciQL也声称支持这样的功能,但我还没有使用过MonetDB。
在您的情况下,SciDB中您需要的所有内容称为“窗口聚合”,它允许滑动窗口沿时间维度移动,并为每个窗口快照计算一些聚合统计信息。 SciDB可能对您有吸引力的原因如下:
安装单主机版本非常简单。如果你不想在设置中遇到任何问题,它已经安装在EC2上。
SciDB主要支持两个接口:AFL和AQL。前者是一种函数式语言,后者是一种类似SQL的语言。两者都是非常高级和声明性的。此外,SciDB还有一个支持R语言的SciDB-R变体。
SciDB支持用户定义的功能,因此您可以自定义ad-hoc聚合功能。
SciDB是一个开源软件,因此完全免费。
答案 2 :(得分:2)
收藏:
=>来自http://kx.com的kdb +就是你要找的。