2012-11-13 33 views
-1

我目前有很多我想分析和计算的财务数据。我已经构建了一个从平面文件中读取数据的系统,并执行了一些体面的智能缓存来保持我想要的性能。但我开始有这个系统的数据量...面向列的财务数据分析数据库

目前我想使用的Postgres和具有模式有点像这样:

Table: Things 
Fields: T_id, Row, Sub-Row, Column, Resolution, Readable-Name, Meta 

Table: Data 
Fields: d_id, T_id, timestamp, value 

我在想,如果Postgres的是高性能与上面的模式,如果我的数据表有数十亿行。

我的另一个想法是使用了一个面向列的数据库,但我似乎无法找到任何开源的开源代码。卡桑德拉真的不是因为这种情况而制造的,因为我读得比写作要多得多。

+1

这听起来像你有一个OLAP的工作量(HTTP:// EN。 wikipedia.org/wiki/Online_analytical_processing)。如果是这样,请阅读http://en.wikipedia.org/wiki/Star_schema。 –

回答

1

取决于您的期望 - PostgreSQL可能可以在您的模式上处理这些查询,但可能需要几分钟或几小时的查询 - 取决于已处理的行 - 但列存储数据库可能会更快10倍 - 只是PostgreSQL是关系型OLTP数据库和您的架构不正常,可能您更喜欢OLAP。

有一些开源列存储数据库,如MonetDB或LucidDB,但他们不是从PostgreSQL的空间。只有商业数据库Vertica。你可以看一下MySQL的引擎http://www.mysqlperformanceblog.com/2010/08/16/testing-mysql-column-stores/

0

答案取决于你的预算。

这里是我们用实践(从便宜到昂贵的)解决方案的列表:

MongoDB的 PostgreSQL的 InfiniDB KDB +