BATCH文の誤った使用

BATCH文の誤った使用法。

誤って使用されたBATCH文は、Cassandraのような分散データベースで多くの問題を引き起こします。複数のノードに関与するバッチ処理は明白なアンチパターンです。INSERT文とUPDATE文をBATCH文にグループ分けしたときに、どのパーティション・データが書き込まれるか覚えておいてください。複数のパーティションへの書き込みは、クラスター内の複数のノードとのインタラクションが必要になり、書き込み操作に大幅なレイテンシーを引き起こします。

手順

この例は、パーティション・キーがidの場合、BATCH文が複数の異なるパーティションに書き込まれることによるアンチパターンを示しています。
cqlsh> BEGIN BATCH INSERT INTO cycling.cyclist_name (id, lastname, firstname) VALUES (6d5f1663-89c0-45fc-8cfd-60a373b01622,'HOSKINS', 'Melissa); INSERT INTO cycling.cyclist_name (id, lastname, firstname) VALUES (38ab64b6-26cc-4de9-ab28-c257cf011659,'FERNANDES', 'Marcia'); INSERT INTO cycling.cyclist_name (id, lastname, firstname) VALUES (9011d3be-d35c-4a8d-83f7-a3c543789ee7,'NIEWIADOMA', 'Katarzyna'); INSERT INTO cycling.cyclist_name (id, lastname, firstname) VALUES (95addc4c-459e-4ed7-b4b5-472f19a67995,'ADRIAN', 'Vera'); APPLY BATCH;