13

clickhouse にイベント テーブル (MergeTree) があり、同時に多数の小さな挿入を実行したいと考えています。ただし、サーバーが過負荷になり、応答しなくなります。また、インサートの一部が失われています。クリックハウス エラー ログには多くのレコードがあります。

01:43:01.668 [ 16 ] <Error> events (Merger): Part 201 61109_20161109_240760_266738_51 intersects previous part

そのようなクエリを最適化する方法はありますか? いくつかの種類のイベントに一括挿入を使用できることはわかっています。基本的に、多くのレコードを含む 1 つの挿入を実行すると、クリックハウスはかなりうまく処理します。ただし、クリックや開封など、一部のイベントはこの方法では処理できませんでした。

もう 1 つの質問: なぜ clickhouse は同様のレコードが存在しないのに、存在すると判断するのでしょうか? 挿入時に、インデックスと同じフィールドを持つ同様のレコードがありますが、他のフィールドは異なります。

時々、次のエラーも表示されます。

Caused by: ru.yandex.clickhouse.except.ClickHouseUnknownException: ClickHouse exception, message: Connect to localhost:8123 [ip6-localhost/0:0:0:0:0:0:0:1] timed out, host: localhost, port: 8123; Connect to ip6-localhost:8123 [ip6-localhost/0:0:0:0:0:0:0:1] timed out
    ... 36 more

ほとんどの場合、クリックハウス データベースに対するテストが実行されるプロジェクトのビルド中です。

4

5 に答える 5

10

これは、(レプリケートされていない) MergeTree への多数の小さな挿入を処理する場合の既知の問題です。

これはバグです。調査して修正する必要があります。

回避策として、推奨されるように、より大きなバッチで挿入を送信する必要があります: 1 秒あたり約 1 バッチ: https://clickhouse.tech/docs/en/introduction/performance/#performance-when-inserting-data

于 2016-11-17T22:10:55.717 に答える