我正在尝试为大数据分析设置一个测试平台(基本上大约 2 到 3 TB 的基础,轻微写入 [仅提供数据库],但可能出于分析目的读取密集查询)。
由于我对 vanilla PostgreSQL(但具有 10GB 基础)有些经验,我正在考虑尝试 9.1 新的同步复制来实现负载平衡。目标是让 Tableau 响应迅速。因此,我可以避免使用昂贵的 MPP GreenPlum、AsterData 等。
但是,我想知道: - 直接访问 MPP 数据库,例如 GreenPlum,是否是个好主意?(对于 2-3 TB,真的需要 Greenplum 吗?) - 一旦同步复制启动并运行,我应该如何配置我的应用程序?负载平衡是由主机完成还是需要另一个解决方案(例如 Pgpool)?
谢谢你的见解!
原则上,2-3TB 应该可以在不诉诸无共享架构的情况下实现,但 Vanilla PostgreSQL 仍然没有良好的并行查询功能。您将通过复制实现的所有功能是将查询分配给各个节点。我不相信 PostgreSQL 支持开箱即用的联合查询,如果发现 Tableau 直接支持客户端分片,我会感到非常惊讶。我猜 PostgreSQL 在这么大的数据集上表现不会很好。
PostgreSQL 的并行查询工具正在进行中,但 AFAIK 未包含在 9.1 中。我的直觉是,未来几年的某些版本将包含此功能,但还没有完全实现。我没有看到在联合查询工具中投入了太多精力的证据。
另一种选择:SQL Server
除非您已与 Postgres 结婚,否则您可能会发现 SQL Server 为 Greenplum 提供了一个具有成本效益的 2-3TB 数据集选项。它是通过插槽而不是内核授权的,因此加载 2-4 插槽 Xeon 或 Opteron 盒子作为一个平台可以提供很好的性价比。对于较小的用户群,我相信您仍然可以通过 CAL 许可企业版。
高端 RAID 控制器上的几个 24/25 磁盘阵列将执行足够快的顺序读取以使 PCIe-x8 插槽饱和(2GB/秒)。使用 SQL Server 进行简单的表扫描查询将以这种速率处理数据,而无需使用太多 CPU(显然取决于实际计算),因此如果您想要更快的 I/O,您有一些空间来添加控制器和数组。
SQL Server 还附带了一套相当不错的 BI 工具,包括 OLAP 服务器。Tableau 并不便宜,我上次看时大约 1,800 英镑/座位。根据用户的数量,您可能会发现 SQL Server 附带的“足够好”的工具无论如何都可以抵消 DB 许可证的成本。大多数第三方报告工具也可以很好地与 SQL Server 配合使用。
免责声明:我不是任何类型的顽固的 Microsoftie,但在过去十年左右的时间里,我使用 SQL Server 和 Oracle 完成了很多 BI 工作。SQL Server 实际上是一个相当不错的 BI 平台。