我们在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