PostgreSQL,用于大量交易和数据仓库


11

对PostgreSQL来说是个新手,我以前从未使用它进行过大规模部署。但是,我在企业解决方案方面有丰富的经验,我想尝试应用一些我在PostgreSQL中学到的知识。

我有一个可以处理大量数据和流量的站点。该基础设施将使用EC2实例和EBS卷在亚马逊(AWS)上构建。

该设计应具有两个数据库,一个主要的事务数据库和一个处理分析和报告的数据仓库。

主要交易数据库

将用于实时网站,该网站建立在多个节点上以扩大并发用户。主要是因为我们要求这种情况下的数据库在读取操作中要非常快,我们希望数据大于100GB,并且每年以30%的速度增长。此时,我们计划使用两台EC2服务器(并在以后根据需要添加更多服务器)。

我的问题是,上述要求的推荐设置是什么?另外,有没有一种方法可以管理表和卷分区?有使用AWS设置的建议吗?

数据仓库数据库

将主要用于在时间维度上捕获来自主事务数据库的所有数据。因此,即使从主数据库中删除的记录也将被捕获在DWH中。因此,数据将非常庞大,增长将更大。如果需要,我们还将使用几个EC2实例或更多实例。

在这种情况下,推荐的设置是什么?由于持续写入(ETL),因此需要快速写入操作。我们可以在PostgreSQL中构建OLAP多维数据集吗?如果是,有没有人尝试过?

连接数据库

Web服务器将连接到主数据库以进行查询和写入。我们目前正在使用django开发应用程序,该应用程序使用本机库进行连接。是否建议使用相同的基本方法?还是应该配置pgpool?

数据仓库(ETL)

建立ETL流程以从主数据库读取并加载到数据仓库的推荐方法是什么?有什么工具吗?遵循的方法?PostgreSQL是否在构建ETL流程中提供了任何有用的功能/工具?


关于缩放,你可能需要阅读此:stackoverflow.com/questions/10256923/...
a_horse_with_no_name

Answers:


3

基础架构/数据库服务

您可能应该阅读此内容,以概述在带有EBS的AWS上运行的高容量站点。他们已移至临时存储,但必须创建一些冗余以能够(重新)存储数据。

http://blog.reddit.com/2012/01/january-2012-state-of-servers.html

数据仓库/ ETL

我过去曾经使用过Pentaho。不直接使用postgres,但我发现它对于OLAP(蒙德里安)和ETL(水壶)都是不错的解决方案

http://www.pentaho.com/

编辑:“社区版”可以在这里找到

http://mondrian.pentaho.com/

http://kettle.pentaho.com/

连接

这些人似乎真的很喜欢pgbouncer。/programming/1125504/django-persistent-database-connection

不过,我没有任何经验。显然,Disqus使用它。


0

您的设置类似于我为大学开发的设置。该数据库虽然不庞大,但相当大,大约有300GB的大小,最大的表包含约5亿条记录。而且还在增长。

为此目的,使用了两个非常强大的服务器(真正的铁器,未虚拟化),其中一个专用于处理来自网站的数据,另一个用于统计计算和分析。使用Slony在两个方向上复制数据。OLTP数据连续地复制到OLAP服务器,并且某些模式和单个表从OLAP服务器复制到OLTP。这样,可以在分析服务器上执行大量计算,而不会影响OLTP服务器。如今,Slony除了复制数据外,还有其他一些选择:http : //www.postgresql.org/docs/9.2/static/different-replication-solutions.html

Slony对于我们的关心是很好而且很快,但是它可能是苛刻的老师。

由于OLAP服务器将稳定增长,因此如果适用,您应该考虑使用某种分区。

如果可能,请使用连接池。我只使用了PgPool,它可以完美地工作。PgBouncer是另一种选择。除了减少初始化延迟之外,它还减少了会话启动和会话管理。 http://momjian.us/main/blogs/pgblog/2012.html#April_25_2012

使用连接池的另一个好处是,您可以在一个点上轻松地重定向流量(这当然也有风险)。

我还没有使用任何现成的ETL将数据加载到OLAP服务器中。我用Python编写了自己的脚本,因为其中一些数据是以特殊格式存储在巨大的文本文件中的。

需要仔细考虑数据库的结构。使用模式有助于收集和简化对象的处理。开始使用模式似乎很麻烦,但是随着对象数量的增加,您将感谢您自己。知道必须使用对象的模式显式添加前缀之后,您才能确切知道要对哪些对象进行操作。 http://momjian.us/main/blogs/pgblog/2012.html#April_27_2012

对于那些大胆的人,PostgreSQL XC是一个有趣的替代品,或者只是一个过大的服装http://postgres-xc.sourceforge.net/

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.