2017-10-29 9 views
0

私はCassandra 3.10を使用していますので、1回のトランザクションとして複数のテーブルに挿入するバッチインサートのproncipalを使用しているので、1回のクエリでテーブルを作成することでベストプラクティスを実行しようとしていますが、ログ。 [zed.payment、zed.trade_party_b_ref、zed.trade_product_type、zed.trade、zed.fx_variance_swap、zed.trade_party_a_ref、zed.trade_party_b_trade_id、zed.market_value]用バッチインサートのオーバーフロー

バッチは、5.000の指定された閾値を超える、サイズ5.926KiBでありますKiB 0.926KiB。

+0

[Cassandraのバッチ制限は何ですか?](https://stackoverflow.com/questions/34699841/what-is-the-batch-limit-in-cassandra) – Edu

答えて

1

ログには、上限が5MBの場合、ほぼ6MBのバッチが送信されているというメッセージが表示されます。

バッチサイズの上限を超えないように、より小さなバッチのデータを送信する必要があります。

また、cassandra.yamlのバッチサイズ制限を変更することもできますが、変更することはお勧めしません。

0

おかげで情報のため、cassandra.yamlにおけるパラメータは

ログインがこの値を超えた任意の複数パーティションのバッチサイズにWARNです。デフォルトでは1バッチあたり5kbです。

ノードが不安定になる可能性があるため、このしきい値のサイズを大きくする場合は注意が必要です。

batch_size_warn_threshold_in_kb:5 これはKB単位であり、MB単位ではないため、実際には6 KBではなく6 KBです。 オラクルとの30年間の仕事の後、これはカッサンドラへの私の最初のベンチャーであるため、クエリごとに別々のテーブルを用意して、最大8つの異なる方法で質問する必要がある金融取引テーブル私は8つのテーブルを持っています。つまり、Oracleで単一のトランザクションとなるものを作成するには、表への挿入をバッチで実行する必要があります。 8つのマスターテーブルにはバッチにも含める必要のある兄弟テーブルがかなりありますので、ここに私のポイントがあります: cassandraがトランザクションをサポートしていないが、同じ効果を達成するためにバッチ機能に依存している場合、バッチのサイズに制限があります。これが不可能な場合、cassandraは本当に単純なデータ構造を持つアプリケーションに限定されます。

関連する問題