小编Mat*_*ieu的帖子

在Cassandra中从表中创建具有大量数据的物化视图

我们在Google Cloud Kubernetes中有一个带有3个pod的Cassandra集群.我们的Cassandra版本是3.9,我们正在使用Google图像.

当我尝试从表格创建物化视图时出现问题.

表的架构如下:

CREATE TABLE environmental_data (
    block_id int,
    timestamp timestamp,
    device_id int,
    sensor_id int,
    .
    .
    .
    PRIMARY KEY (block_id, timestamp, device_id, sensor_id)
Run Code Online (Sandbox Code Playgroud)

我想用device_id作为集群密钥创建一个视图,我试着这样做:

CREATE MATERIALIZED VIEW environmental_data_by_device AS
       SELECT block_id, timestamp, device_id, sensor_id,... FROM environmental_data
       WHERE block_id is not null
       and timestamp is not null
       and device_id is not null
       and sensor_id is not null
       PRIMARY KEY ((device_id), timestamp, sensor_id, block_id)
       WITH CLUSTERING ORDER BY (timestamp DESC);
Run Code Online (Sandbox Code Playgroud)

在本地只有非常少量的数据,一切都很顺利.但是在拥有8000万行的生产中,有2个播放器崩溃,而Cassandra则在这个错误上出现了问题:

尝试更新MaterializedView时捕获到未知异常!environmental_data

java.lang.IllegalArgumentException:对于XXXX的最大大小,XXXX字节的突变太大

还有很多 java.lang.OutOfMemoryError: Java heap space

我该怎么做才能确保下一次尝试成功?决定放弃生产Cassandra第二次是不可想象的. …

cassandra google-cloud-platform kubernetes google-kubernetes-engine cassandra-3.0

7
推荐指数
1
解决办法
334
查看次数