2017-10-29 15 views
0

나는 Cassandra 3.10을 사용하고 있으며 일괄 처리로 여러 테이블에 삽입하기 위해 일괄 삽입 insertcipal을 사용하고 있으므로 쿼리 당 테이블을 사용하는 것이 가장 좋습니다. 그러나 cassandra에서 다음 오류가 발생합니다 로그.배치 삽입 오버플로

[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

[카산드라의 배치 제한이란 무엇입니까?] (https://stackoverflow.com/questions/34699841/what-is-the-batch-limit-in-cassandra) – Edu

답변

1

한계는 5MB 일 때 거의 6MB의 일괄 전송을 보내고 있다는 메시지가 표시됩니다.

일괄 처리 크기 제한을 초과하지 않도록 데이터의 작은 배치를 보내야합니다.

또한 cassandra.yaml에서 배치 크기 제한을 변경할 수도 있지만 변경하지 않는 것이 좋습니다.

0

감사 정보를 원하시면, cassandra.yaml의 매개 변수는

로그인이 값을 초과하는 모든 다중 파티션 배치 크기에 WARN입니다. 기본적으로 배치 당 5kb.

노드가 불안정해질 수 있으므로이 임계 값의 크기를 늘릴 때주의해야합니다.

batch_size_warn_threshold_in_kb : 5 내 배치 문은 실제로 6KB가 아니므로 KB가 아닌 KB입니다. 따라서 6MB가 아닙니다. 오라클과 30 년 간의 협업을 맺은 후, 이것은 카산드라에 처음으로 참여한 것입니다. 그래서 각 쿼리에 대해 별도의 테이블을 가지고 있기 때문에 최대 8 가지 방법으로 쿼리해야하는 금융 거래 테이블이있는 지침을 따르려고했습니다. 나는 8 개의 테이블을 가지고있다. 이는 오라클에서 단일 트랜잭션이 될 테이블을 작성하기 위해 테이블에 삽입해야한다는 것을 의미합니다. 8 개의 마스터 테이블에는 일괄 처리에 포함되어야하는 상당한 수의 형제 테이블이 있으므로 여기에 요점은 다음과 같습니다. cassandra가 트랜잭션을 지원하지 않지만 일괄 처리 기능을 사용하여 동일한 효과를 얻으면 배치의 크기 제한. 이것이 가능하지 않다면 cassandra는 실제로 매우 간단한 데이터 구조를 가진 어플리케이션으로 제한됩니다.