2017-08-07 10 views
0

私のウェブサイトでリクエストが行われるたびに、そのイベントに関するいくつかのデータがデータベースに記録されます(Yandex ClickHouse)。 ClickHouseは、挿入が少なくとも1000以上の大きさで実行されている場合、劇的に高速に動作します。すべての要求に対して、データを保存する別のコンピュータにデータを送信し、バッファがいくつかのサイズに達するとデータベースにフラッシュします。私はRabbitMQをメッセージの受け渡しやバッファリングに使用することを検討していますが、それが正しいツールであるとは思えません。助言がありますか?バルク挿入のバッファデータ

答えて

1

使用バッファテーブルエンジンを試すことができます(のsyslog-ngの) syslog-ngは外部アプリケーションを使用できます。アプリケーションにデータをSTDINできます。クリックハウスに一括挿入するためのgolangユーティリティを作成しました。

これは私たちにとって非常にうまく機能しました。

また、ウサギと大量挿入から消費するゴランツールをクリックハウスに書き込むこともできます。

ピーク時に私たちは毎秒140 kメッセージを行っているので、golangは1秒間に1つのクエリを実行すると書いています。そのため、1秒あたりのメッセージ量に応じて自動的にスケールが上下します。この目的のために直接作成

https://www.balabit.com/documents/syslog-ng-ose-latest-guides/en/syslog-ng-ose-guide-admin/html/configuring-destinations-program.html

http://nginx.org/en/docs/syslog.html

1

Bufferテーブルエンジン。 まもなく、このタイプのエンジンでテーブルを作成し、このテーブルに書き込むか、このテーブルから読み込みます。 すべてのレコードはRAMにバッファリングされ、設定に従って自動的にソーステーブルにフラッシュされます。

関連する問題