2017-07-30 5 views
0

SCADAシステムからCrateDB(4年、複数のCSVファイル、約87GB、数十億のデータポイント/行)にデータの束をロードしようとしました。timeseries insert performance

現在、データの書き込みは遅いです。行を挿入する速度をどのように改善できますか?私はcrate JDBCドライバを使用しており、すでにJDBCの一括挿入を使用しています。私のシステムで

私だけInfluxDBと同じマシン上秒あたり約1500の値(8ギガバイトのRAM、4ギガバイトのヒープ、5x7kディスクとRAID 10)

をロードすることができ、同じで(ロードすることが可能ですクライアントプログラムですが、JDBCでは使用できません) 1秒あたりの値!

私はクレートでは80kHzは期待していませんが、うまくいけば1.5kHz以上、20kHzでもかまいません。データの読み込みには数日から数週間かかります。

私のDBテーブルは以下のようになります。

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) 
); 

私は、主キーを削除しようとしたが、それは問題ではありません。

私は、8kバルク(1バルク= 8096行)でデータを書き込むために、複数のスレッド(4〜16、違いなし)を使用します。

私はJDBC接続プールorg.apache.commons.dbcp2.BasicDataSourceを使用します。

CrateDBの書き込み速度を向上させるにはどうすればよいですか?

答えて

0

あなたはCrateDBで挿入速度に苦労していると聞いて悲しいことです。 Crate.ioでは、より大きなクラスターで800kを超えるインサート/秒までのベンチマークを挿入しました。そのため、あなたの問題は本当に奇妙に思えます。まず、nrのようなクラスタ設定に関する情報を私たちにお送りください。ノード、CrateDBのバージョンなどの?これは実際にそれを再現するのに役立ちます。あなたの問題を絞り込むと、これは本当にあなたのCSVファイルがJSONCOPY FROMを使用して一括挿入をやって、最初とに変換しようとすることができ、サーバーの問題であるかどうかを確認するために

。それでもまだ遅い場合は、これで調査できるようになります。

+0

私はちょうど1つのノードを使用し、最後のドッカーはテストのために引っ張ります。私は同じマシンでElasticsearchで同じことを試し、約15kHzを達成しました。 COPY FROM、ありがとう、良い音、そのテストを行う時間を見つけることを願っています。 –