对可以修改的分析列式数据库有什么建议吗?
Any suggestions for analytical columnar DB which can be modified?
我需要建立客户360度数据库,需要:
- 宽列 table,每个客户占一行,有很多列(比如 > 1000)
- 我们每天有大约 20 个批量更新分析作业 运行。每个分析作业针对所有行查询和更新一小组列。它包括汇总用于报告的数据,以及为机器学习算法加载/保存数据。
- 我们在多个列中更新客户信息,每天 <= 100 万行。更新工作负载分散在各个工作时间。我们有超过 2 亿行。
对于这些要求,我认为可修改的列式数据库将是一个完美的选择:它可以按最适合分析的列进行查询和聚合,它可以在一天内针对数百万次更改进行更新。我发现最相似的项目是 Apache Kudu,但它的 300 列限制是一个很大的障碍,我们有超过 1000 个。
而且我们更喜欢开源项目。
有什么建议吗?
我会回答我自己的问题,因为我们的解决方案现在工作正常。
我们没有为分析和 OLTP 工作负载使用统一的数据库,而是将工作负载分为 2 部分:分析工作负载将由 HDFS 中的 Parquet 表提供服务,而 OLTP 工作负载将由 HBase 提供服务。
当然,我们必须复制(部分)客户数据,但我们愿意支付的存储和计算能力成本并不高。
我需要建立客户360度数据库,需要:
- 宽列 table,每个客户占一行,有很多列(比如 > 1000)
- 我们每天有大约 20 个批量更新分析作业 运行。每个分析作业针对所有行查询和更新一小组列。它包括汇总用于报告的数据,以及为机器学习算法加载/保存数据。
- 我们在多个列中更新客户信息,每天 <= 100 万行。更新工作负载分散在各个工作时间。我们有超过 2 亿行。
对于这些要求,我认为可修改的列式数据库将是一个完美的选择:它可以按最适合分析的列进行查询和聚合,它可以在一天内针对数百万次更改进行更新。我发现最相似的项目是 Apache Kudu,但它的 300 列限制是一个很大的障碍,我们有超过 1000 个。
而且我们更喜欢开源项目。
有什么建议吗?
我会回答我自己的问题,因为我们的解决方案现在工作正常。
我们没有为分析和 OLTP 工作负载使用统一的数据库,而是将工作负载分为 2 部分:分析工作负载将由 HDFS 中的 Parquet 表提供服务,而 OLTP 工作负载将由 HBase 提供服务。
当然,我们必须复制(部分)客户数据,但我们愿意支付的存储和计算能力成本并不高。