我尝试将一堆数据从我的 SCADA 系统加载到 CrateDB(4 年,多个 CSV 文件,大约 87GB,数十亿个数据点/行)。
数据写入目前很慢。如何提高插入行的速度?我使用 crate JDBC 驱动程序,并且我已经使用了 JDBC 批量插入。
在我的系统上,我每秒只能加载大约1500个值(8GB RAM、4GB 堆、带有 5x7k 磁盘的 RAID 10)
在使用 InfluxDB 的同一台机器上,每秒可以加载(使用相同的客户端程序,但不使用 JDBC)大约80000个值!
我不希望 Crate 有 80kHz,但希望超过 1.5kHz,20kHz 是可以接受的。加载数据需要几天或几周的时间。
我的数据库表如下所示:
CREATE TABLE EVENTHISTORY (
tag string NOT NULL,
ts TIMESTAMP NOT NULL,
value_number double INDEX OFF,
value_string string INDEX OFF,
value_timestamp TIMESTAMP INDEX OFF,
status long INDEX OFF,
manager integer INDEX OFF,
user_ integer INDEX OFF,
primary key (tag, ts)
);
我试图删除主键,但这没关系。
我使用多个线程(4 到 16 个,没有区别)以 8k 块(一个块 = 8096 行)写入数据。
对于线程,我使用 JDBC 连接池 org.apache.commons.dbcp2.BasicDataSource;
如何提高 CrateDB 的写入速度?