我尝试从我的SCADA系统向CrateDB(4年,多个CSV文件,大约87GB,几十亿个数据点/行)加载一堆数据。时间序列插入性能
写入数据目前很慢。我怎样才能提高插入行的速度?我使用crate JDBC驱动程序,并且我已经使用JDBC批量插入。
在我的系统只能加载每秒约1500个值(8GB RAM,4GB堆,与5x7k磁盘RAID 10)
在同一台机器InfluxDB能够加载(使用相同的客户端程序,但不包含JDBC)约每秒值!
我不希望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的写入速度?
我只使用单个节点和最新的docker pull进行测试。我在同一台机器上尝试了Elasticsearch,达到了15kHz左右。 COPY FROM,谢谢,听起来不错,希望有时间做这个测试。 –