问题:
给你4台中等配置服务器(例如AWS C3.8xlarge,磁盘为GPSSD),每天会生成10+GB的数据(每条纪录都有一个时间戳),目前已有5年的数据,也就是说已有18+TB数据。如何使用PostgreSQL进行存储,并且保证在线查询时间<1s (这里面会有很多逻辑及其不同层次的聚合).
方案:
显然,用单个PostgreSQL已经远远不能满足。当然,如果公司高富帅的话,可以直接上支持大数据的分布式数据库,如Vertica,Greenplum等。但是,对于中小型公司,特别是创业公司,免费软件是首选,经过一些调研,如果基于PostgreSQL的话,那么配合使用PL/Proxy是一个非常不错的选择。以下是PL/Proxy和PostgreSQL非常经典的架构(下一片文章我会讲下如何使用得更加完美,例如使用一致性哈希管理节点,如何提供HA,等等。