我一直在尝试将“正确”技术用于 360 度客户应用程序,它需要:
- 一个宽列表,每个客户是一行,有很多列(说> 1000)
- 我们每天运行约 20 个批量更新分析作业。每个分析作业查询并更新一小组列,用于所有行。它包括聚合用于报告的数据,以及为机器学习算法加载/保存数据。
- 我们在几列中更新客户的信息,每天 <= 100 万行。更新工作量分布在工作时间。我们有超过 2 亿行。
我尝试过使用 Hbase,第 1 点和第 3 点都满足了。但我发现在 HBase 上进行分析(加载/保存/聚合)非常慢,可能比 Parquet 慢 10 倍。我不明白为什么,Parquet 和 Hbase 都是柱状数据库,我们已经很好地分散了 HBase 集群中的工作负载(“每个区域的请求数”这样说)。
有什么建议吗?我是否使用了错误的工具来完成这项工作?