2017-08-26 16 views
2

私は、100,000行/秒を生成するシステムを持ち、各行のサイズは1KBで、データベース用にCassandraを使用したいと考えています。 Apache Kafkaからデータを取得し、それをデータベースに挿入する必要があります。 この量のデータをCassandraにロードする最良の方法は何ですか?Cassandra Bulk負荷データ

+0

データをバッチに分割します。好ましくはサイズ1000のバッチを作成し、そのデータをcassandra dbに書き込みます。 – kai

答えて

1

このためにカフカコネクトが設計されています。このページには、カサンドラシンクコネクタを含むコネクタのリストがあります。https://www.confluent.io/product/connectors/

+0

私はkafkaからCSVメッセージを受け取ります。コネクタはavro形式で動作するようです。本当ですか? –

+0

CSVメッセージについてはわかりませんが、jsonはavro: http://docs.datamountaineer.com/en/latest/cassandra-sink.html#legacy-topics-plain-text-payload-with-aに加えて実行可能です-json-string CSVをjsonやavroに変換し、それをCassandraに取り込むことができる新しいトピックに書き出すために、ストリームアプリケーションのようなものを書く方が簡単でしょう。また、CSV用の独自のコンバータを作成したり、Kafkaに同梱されているStringConverterを試すこともできます。これがCassandraとどの程度うまくいくかはっきりしていませんが、これらのオプションはあなた自身の完全なアプリを書くよりも簡単です。 – dawsaw

+0

CSVからJSONまたはAVROへのデータ変換は、小さなApache CAMELモジュールで簡単に実装できます。それはKafka接続をサポートしているので、Kafkaから読んだり、@ dawsawで述べたようにKafkaに変換して書き戻したりすることができます。必要に応じてスケールすることもできます。 – Gautam