首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >批量插入溢出

批量插入溢出
EN

Stack Overflow用户
提问于 2017-10-29 17:14:19
回答 2查看 712关注 0票数 0

我正在使用Cassandra 3.10,并试图遵循最佳实践,即每个查询都有一个表,因此我使用批插入代号将多个表作为一个事务插入,但是我在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.926KiB,超出指定阈值5.000KiB 0.926KiB。

EN

回答 2

Stack Overflow用户

发布于 2017-10-29 17:22:28

日志显示,当限制为5MB时,您发送的批处理大小接近6MB。

您应该发送较小的批次数据,以避免超过该批次大小限制。

您还可以在cassandra.yaml中更改批处理大小限制,但我不建议您更改它。

票数 1
EN

Stack Overflow用户

发布于 2017-11-03 20:17:41

感谢您提供的信息,cassandra.yaml中的参数是

在超过此值的任何多分区批处理大小上记录警告。默认情况下,每批5kb。

增加此阈值的大小时应格外小心,因为它可能导致节点不稳定。

batch_size_warn_threshold_in_kb: 5,单位是KB,而不是MB,所以我的批处理语句实际上是6KB而不是6MB。在与Oracle合作30年后,这是我第一次进入Cassandra,因此我尝试遵循每个查询都有一个单独的表的指导方针,因此如果我有一个必须以最多8种不同方式查询的金融贸易表,我就有8个表。这意味着必须在批处理中插入到表中,才能在Oracle中创建单个事务。八个主表中有大量的同级表,这些同级表也必须包含在批处理中,所以这里是我的观点:如果cassandra不支持事务,但依赖批处理功能来实现同样的效果,它就不能对批处理的大小施加限制。如果这是不可能的,那么cassandra实际上仅限于数据结构非常简单的应用程序。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46998546

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档