当前位置: 首页 > 知识库问答 >
问题:

使用Apache Nifi将大容量记录从Db2插入到Cassandra

涂浩皛
2023-03-14

2019-04-02 13:50:26,786 INFO [Write-Ahead Local State Provider Maintenance] org.wali.MinimalLockingWriteAheadLog org.wali.MinimalLockingWriteAheadLog@623cd12e checkpointed with 28 Records and 0 Swap Files in 53 milliseconds (Stop-the-world time = 18 milliseconds, Clear Edit Logs time = 28 millis), max Transaction ID 83
2019-04-02 13:50:30,590 ERROR [Timer-Driven Process Thread-10] o.a.n.p.cassandra.PutCassandraRecord PutCassandraRecord[id=993740ce-0169-1000-7471-e9ff7f0272f6] Unable to write the records into Cassandra table due to java.lang.IllegalStateException: Batch statement cannot contain more than 65535 statements.: java.lang.IllegalStateException: Batch statement cannot contain more than 65535 statements.
java.lang.IllegalStateException: Batch statement cannot contain more than 65535 statements.
    at com.datastax.driver.core.BatchStatement.add(BatchStatement.java:154)
    at org.apache.nifi.processors.cassandra.PutCassandraRecord.onTrigger(PutCassandraRecord.java:165)
    at org.apache.nifi.processor.AbstractProcessor.onTrigger(AbstractProcessor.java:27)
    at org.apache.nifi.controller.StandardProcessorNode.onTrigger(StandardProcessorNode.java:1162)
    at org.apache.nifi.controller.tasks.ConnectableTask.invoke(ConnectableTask.java:205)
    at org.apache.nifi.controller.scheduling.TimerDrivenSchedulingAgent$1.run(TimerDrivenSchedulingAgent.java:117)
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
    at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
    at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
    at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
    at java.lang.Thread.run(Thread.java:748)

共有1个答案

卢磊
2023-03-14

这是一个已知的问题,并在1.10.0中得到修复。请考虑升级apache-nifi

https://issues.apache.org/jira/browse/nifi-6016

 类似资料:
  • 就像有人说的第二种方式更慢,但我不确定,那么哪种方式更好呢?不能使数据库崩溃。

  • 问题内容: 我在MySQL中用一个表创建了一个数据库: 我尝试使用Java插入记录: 输出似乎成功返回: 但是,当我从MySQL中选择时,插入的记录为空: 为什么插入空白记录? 问题答案: 不,这是行不通的(不适用于真实数据): 更改为: 使用该sql创建一个PreparedStatment,并使用索引插入值:

  • 我试图使用spring rest API并将结果存储到一个临时表中。以下是我的尝试。我对java和spring很陌生,请原谅我的错误。我的staging表名为“greetingsstaging”。我是spring开发的新手,请帮助理解这个问题。我正在使用JPA和spring。 这是主要应用程序。 这是我的服务。 这是存储库界面。 这是我的pojo课。 我收到以下例外。 在类路径资源中定义名称为“请

  • 问题内容: 我读到这里:使用Python将CSV文件导入sqlite3数据库表 似乎每个人都建议使用逐行读取,而不是使用SQLite的bulk .import。但是,如果您有数百万行的数据,这将使插入速度非常慢。还有其他方法可以避免这种情况吗? 更新:我尝试下面的代码逐行插入,但是速度不如我预期的那样。反正有改进的地方吗 问题答案: 使用生成器表达式将您的数据即时划分为多个块,在事务内进行插入。这

  • 问题内容: 我不知道为什么我对此查询感到困惑。 我有两个表:带有记录和带有记录。两个表都需要包含相同的数据,但是存在一些不匹配的情况。 我需要编写一个mysql查询以插入从到的丢失记录。 最后,两者和应该相同。 我不想先截断所有条目,然后再从另一个表中插入。因此,请提供任何帮助。 谢谢你。 问题答案: 也可以使用它。这将避免像John Woo的回答那样避免子查询的开销(当系统可能为外部查询的 每条

  • 我想使用PHP将大量MySQL数据转换为JSON。我有20K及以上的记录,但我无法将MySQL数据转换为JSON。我想创建RESTAPI,所以需要以JSON格式发送(响应)数据。 我试过这个,但没有得到输出: 代码: