我正在开发一个必须存储非常大的数据集和相关参考数据的项目。我从来没有遇到过需要这么大的表的项目。我已经证明,至少有一个开发环境无法在数据库层处理对应用层生成的视图的复杂查询(具有多个内部和外部连接的视图、分组、求和和对具有 9000 万行的表进行平均)所需的处理)。
我测试过的 RDBMS 是 AIX 上的 DB2。失败的开发环境加载了将在生产中处理的卷的 1/20。我确信生产硬件优于开发和登台硬件,但我只是不相信它能够应对庞大的数据量和查询的复杂性。
在开发环境失败之前,需要超过 5 分钟才能返回一个小数据集(数百行),该数据集是由针对大型表的复杂查询(许多连接、大量分组、求和和平均)生成的。
我的直觉是数据库架构必须改变,以便视图当前提供的聚合作为非高峰批处理的一部分执行。
现在我的问题。声称有过这种事情经历的人(我没有)向我保证,我的恐惧是没有根据的。他们是吗?现代 RDBMS(SQL Server 2008、Oracle、DB2)能否应对我所描述的体积和复杂性(给定适当数量的硬件),或者我们是否处于像 Google 的 BigTable 这样的技术领域?
我希望从那些实际上不得不在非理论层面上使用这种卷的人那里得到答案。
数据的性质是金融交易(日期、金额、地理位置、业务),因此几乎所有数据类型都被表示。所有的参考数据都是标准化的,因此是多个连接。