我们有一个SQL Server 2008和一个表,比如表A具有以下特征:
架构看起来像:
< BusinessDate> < TYPEID> < InsertDate> < AxisX> < AxisY> <值>
该表具有可变数量的行。基本上我们必须在周末清除它,否则尺寸会影响性能。所以尺寸范围从一周3米到15米不等。 由于一些新的要求,我们预计到2012年底这个数字将增加1000万。所以我们将谈论10米-25米的行。
现在另外
问题
您是否建议将A迁移到HBase架构?
而且,如果我们要移动A,我会假设我们还必须迁移B和其他依赖表(与A相反)正被中间层的其他几个地方使用。这不会让事情变得复杂吗?
答案 0 :(得分:1)
虽然使用模式适合,但是2500万行听起来不够大,无法证明使用HBase。您需要一个名称节点,一个作业跟踪器,一个主服务器,然后您的区域服务器,因此您需要至少5个节点才能以任何合理的方式运行HBase。你的行很小我猜它可能是10GB的数据,因此将它存储在5台服务器上似乎有点矫枉过正。
如果你选择这条路线(也许你想一次存储超过一周的数据),有办法将HBase与关系数据库集成。例如,Hive提供ODBC / JDBC连接并可以查询HBase。 Oracle和Teradata都提供了关系数据库软件和非关系存储之间的集成。我知道微软最近宣布他们正在放弃Dryad,转而支持与Hadoop的集成,但我不确定这个过程与SQL Server有多远。如果您只需要“获取要在我的SQL查询中使用的ID列表”,您当然可以轻松地自己编写一些内容。
我认为HBase非常令人兴奋,而且可能有一些你没有提到的东西可能会推动你(例如高可用性)。但我的直觉是,你可以比转用HBase更便宜地扩展你的关系数据库。