HBase中过滤查询的性能?

时间:2012-04-07 22:11:40

标签: hadoop hbase

我正在寻找满足以下需求的数据存储: -

  1. 分发,因为我们有大量要查询的数据(在TB中)
  2. 编写密集型数据存储。数据将从服务生成,我们希望存储数据以对其进行分析。
  3. 我们希望分析查询合理快速(分钟,而不是小时)
  4. 我们的大多数查询都是“选择,过滤,聚合,排序”类型。
  5. 模式经常更改,因为我们存储的内容将根据系统不断变化的要求而发生变化
  6. 我们存储的部分数据也可用于纯粹的大规模地图/减少作业以用于其他目的。
  7. 键值存储是可扩展的,但不支持我们的查询要求。

    Map / Reduce作业是可扩展的,可以执行查询,但我认为它不符合我们的查询延迟要求。

    RDBMS(如MySQL)将满足我们的查询需求,但它将迫使我们拥有一个固定的架构。我们可以扩展它,但我们必须分享等。

    像Vertica这样的商业解决方案似乎是解决我们所有问题的解决方案,但如果可以,我会避免使用商业解决方案。

    HBase似乎是一个与Hadoop一样可扩展的系统,因为底层HDFS并且似乎具有执行过滤器和聚合的功能,但我不确定HBase中过滤查询的性能。

    目前HBase不支持二级索引。这让我想知道HBase是否适合在任意列上进行过滤。根据文档,对行id和列族进行过滤比仅过滤列限定符更快。但是,我还读到在RowId和Column系列上使用Bloom Filter索引会显着增加Bloom过滤器的大小,并使该选项几乎不可行。

    我无法在网上找到有关HBase过滤查询性能的大量数据。 希望我能在这里找到更多信息。

    谢谢!

2 个答案:

答案 0 :(得分:0)

尝试apache cassandra,它非常支持二级索引。来到hbase bloom过滤器,请通过此链接,它根据模式描述了多种绽放选项,Hbase bllom filters

答案 1 :(得分:0)

你可能正在寻找 像Postgres-XL这样的MPP解决方案 或related平台。