你会使用 Cassandra 进行聚合查询吗?
Would you use Cassandra for aggregate queries?
有没有人在生产中使用过 Cassandra,用于跨多个区域的数百万行数据聚合?
示例:
全球卖家,例如亚马逊
数据列:
用户、邮政编码、item_purchased、金额、日期时间、国家/地区
假设我想要一个查询:
获取每个国家/地区每个邮政编码每个项目的总支出。
对于这种聚合,Cassandra 会是一个糟糕的选择吗?
你会用什么?它会像 Elasticsearch 吗?关系数据库管理系统?
快速回答:否 :)
Cassandra 不支持丰富的 SQL 查询。从技术上讲,Cassandra 具有一些聚合功能,但此功能非常有限。
如果您的数据对于 RDBMS 而言太大,有多种方法可以进行聚合。
NoSql 存储+查询引擎。您可以将数据存储在 Cassandra、Hbase 甚至 S3 上的文件中,并使用 Hive、Spark SQL 或 Apache Drill 等软件在 NoSQL 存储上执行复杂的 SQL 查询。
Elasticsearch 现在具有丰富的聚合功能。
如果您在 AWS 上,相对简单且便宜的解决方案是将您的数据以 Parquet 格式放在 S3 上,并使用 Athena 进行聚合。
有没有人在生产中使用过 Cassandra,用于跨多个区域的数百万行数据聚合?
示例: 全球卖家,例如亚马逊
数据列: 用户、邮政编码、item_purchased、金额、日期时间、国家/地区
假设我想要一个查询: 获取每个国家/地区每个邮政编码每个项目的总支出。
对于这种聚合,Cassandra 会是一个糟糕的选择吗?
你会用什么?它会像 Elasticsearch 吗?关系数据库管理系统?
快速回答:否 :)
Cassandra 不支持丰富的 SQL 查询。从技术上讲,Cassandra 具有一些聚合功能,但此功能非常有限。
如果您的数据对于 RDBMS 而言太大,有多种方法可以进行聚合。
NoSql 存储+查询引擎。您可以将数据存储在 Cassandra、Hbase 甚至 S3 上的文件中,并使用 Hive、Spark SQL 或 Apache Drill 等软件在 NoSQL 存储上执行复杂的 SQL 查询。
Elasticsearch 现在具有丰富的聚合功能。
如果您在 AWS 上,相对简单且便宜的解决方案是将您的数据以 Parquet 格式放在 S3 上,并使用 Athena 进行聚合。