如何提高cassandra的插入性能?

时间:2015-11-13 01:16:20

标签: performance cassandra insert

我有一个包含数据的cassandra表。架构如下。

当我对此表进行插入时,它需要2秒,这非常慢,因为我们需要实时插入1000条记录。我错过了什么? 列表列总是有100个值。

请帮忙。

CREATE TABLE dynodemo.normalized_sensor_data (
    user_id timeuuid,
    patient_sensor_session_id timeuuid,
    co2 int,
    dbp list<int>,
    ecg list<double>,
    ext_co int,
    ext_density int,
    ext_nitrousoxide int,
    ext_o3 int,
    ext_orgcmp int,
    ext_sulphuroxide int,
    ext_temp int,
    heart_rate list<int>,
    humidity list<double>,
    o2 int,
    pressure list<int>,
    pulse_ox_ir list<int>,
    pulse_ox_red list<int>,
    raw_ecg list<int>,
    respiration_rate list<int>,
    rr_int list<int>,
    sbp list<int>,
    session_end_time timestamp,
    session_start_time timestamp,
    spo2 list<double>,
    PRIMARY KEY (user_id, patient_sensor_session_id)
) WITH CLUSTERING ORDER BY (patient_sensor_session_id ASC);

1 个答案:

答案 0 :(得分:2)

收集比正常细胞慢得多。您正在使用大量列表,假设这些列表会对性能产生重大影响。您可能会发现将100个元素序列化为json并将其存储为文本字段(甚至是压缩文本字段)会更容易。

你称这是一个插入,你有12个列表,包含100个项目 - 它实际上是1200个单元格,这是一个公平的数字。 2秒的写入仍然不常见 - 可能是由于某种暂停(可能由于您使用所有这些列表创建的java对象的数量而暂停GC)