0

我们的产品应用场景是这样的:

  1. 存储信息。
  2. 统计使用数约为8000万。
  3. 用户有很多属性,大约 100 万。属性可能有许多不同的类型:Date、Boolean、Long、Int .... 或 Null。

我们对这些信息所做的事情是这样的:

  1. 获取一个用户的信息(多个属性)</li>
  2. 从计算属性中选择用户。例如:查找其用户propertyA>10 && propertyB=true &&...

现在,我们使用的是 Hbase 之类的宽列表,但我认为它可能不适合。当我们拿到一个或几个用户的信息时,经常会发生timeout,所以我们在中间放了一个缓存,但是不能把所有的信息都放到缓存中,然后timeout还在!所以,我认为也许 hbase 不是最好的机会,因为我们的数据不是太大而无法使用 hbase?如果我们选择mysql?

如何解决我们的问题?

4

1 回答 1

0

在得出任何结论之前,您需要分析一些事情,其中​​一些是:

  1. 你的数据有多大?就记录数量而言没有,但就数据文件的大小而言?
  2. 您正在使用哪种 HBase 安装?它是独立的还是集群的?
  3. 从 HBase 调用 get/scan 是否超时?

IMO,如果 HBase 不能给你任何好的性能结果,那么它不会降低性能。但是,是的,任何 NoSQL 数据库的真正用途都将在数据成倍增加的集群环境中使用。

如果您想使用 mysql 或任何其他 RDBMS,那么您必须考虑数据库集群、表分片、负载平衡和在应用程序级别实现缓存。

总的来说,我认为您应该查看 HBase 的安装并尝试针对您的应用程序对其进行调整。

于 2013-03-28T07:37:33.467 回答