Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Database Cassandra分区的最佳方法_Database_Cassandra_Nosql - Fatal编程技术网

Database Cassandra分区的最佳方法

Database Cassandra分区的最佳方法,database,cassandra,nosql,Database,Cassandra,Nosql,我对Cassandra非常陌生,我曾与Oracle SQL和Mongo DB合作,我正在尝试学习Apache Cassandra,以便在我正在从事的项目中使用它 我有一定数量的传感器(比如说20个),将来可能会增加。他们每10秒将数据发送到存储器。我知道在处理这类情况时会使用bucketing,但不知道哪一种更好 PRIMARY KEY ((sensor_id, day_month_year), reported_at); PRIMARY KEY ((sensor_id, month_year

我对Cassandra非常陌生,我曾与Oracle SQL和Mongo DB合作,我正在尝试学习Apache Cassandra,以便在我正在从事的项目中使用它

我有一定数量的传感器(比如说20个),将来可能会增加。他们每10秒将数据发送到存储器。我知道在处理这类情况时会使用bucketing,但不知道哪一种更好

PRIMARY KEY ((sensor_id, day_month_year), reported_at);

PRIMARY KEY ((sensor_id, month_year), reported_at);
我不知道使用month_year对于单个分区来说是否太多数据,另一方面,我认为如果使用day_month_year,它会创建太多分区,并且在尝试获取数据时会减慢读取速度,因为它必须访问多个分区


我应该用哪一个?如果你还有其他好的建议或只是一些解释,我很乐意听听。

在这里发布我的答案,你也问了

每10秒收集的传感器数据相当于:

  • 每分钟6项
  • 每小时360个条目
  • 每天8640份
  • 每月260K个条目
根据为每行存储的其他数据,很难将每个分区的大小保持在建议的100MB。这不是一个硬性的限制,因此分区可以超过100MB,但分区越大,性能就越差


Cassandra本身并不是执行分析查询的理想选择,因为它针对OLTP工作负载进行了优化,在OLTP工作负载中,每个应用请求都读取一个分区。如果需要执行OLAP,则需要在Spark中执行以提高效率。干杯

在这里发布我的答案,你也问了

每10秒收集的传感器数据相当于:

  • 每分钟6项
  • 每小时360个条目
  • 每天8640份
  • 每月260K个条目
根据为每行存储的其他数据,很难将每个分区的大小保持在建议的100MB。这不是一个硬性的限制,因此分区可以超过100MB,但分区越大,性能就越差

Cassandra本身并不是执行分析查询的理想选择,因为它针对OLTP工作负载进行了优化,在OLTP工作负载中,每个应用请求都读取一个分区。如果需要执行OLAP,则需要在Spark中执行以提高效率。干杯