gpt4 book ai didi

Cassandra COPY 始终失败

转载 作者:行者123 更新时间:2023-12-04 23:18:42 27 4
gpt4 key购买 nike

我试图导入一个大约有 2000 万行的 CSV。

我用值(value) 100 行的 CSV 进行了一次试运行,只是为了检查列是否按顺序排列并且没有解析错误。一切顺利。

每次我尝试导入 2000 万行 CSV 时,它都会在不同的时间后失败。在我的本地机器上,它在 90 分钟后失败并出现以下错误。在服务器上,它在 10 分钟内失败:

Processed 4050000 rows; Write: 624.27 rows/ss
code=1100 [Coordinator node timed out waiting for replica nodes' responses] message="Operation timed out - received only 0 responses." info=

{'received_responses': 0, 'required_responses': 1, 'write_type': 0, 'consistency': 1}
Aborting import at record #4050617. Previously-inserted values still present.
4050671 rows imported in 1 hour, 26 minutes, and 43.649 seconds.

Cassandra: Coordinator node timed out waiting for replica nodes' responses (它是一个单节点集群,复制因子为 1,所以为什么要等待其他节点是另一个问题)

然后根据另一个线程中的建议,我更改了写入超时,尽管我不相信这是根本原因。
write_request_timeout_in_ms: 20000 

(也尝试将其更改为 300000)

但最终还是失败了。

所以现在,我已将原始 CSV 切成许多 500,000 行 CSV。
这具有更好的成功率(与 0 相比!)。但即使由于各种原因,这也失败了 5 次中的 2 次。

有时我会收到以下错误:
Processed 460000 rows; Write: 6060.32 rows/ss
Connection heartbeat failure
Aborting import at record #443491. Previously inserted records are still present, and some records after that may be present as well.

其他时候它只是停止更新控制台上的进度,唯一的出路是使用 Ctrl+C 中止

我一天的大部分时间都是这样度过的。我的 RDBMS 运行愉快,有 50 亿行。我想用 10 倍的数据来测试 Cassandra,但即使一次导入一百万行,我也遇到了麻烦。

关于 COPY 命令如何进行的一个观察是:一旦输入命令,它开始以每秒大约 10,000 行的速度写入。它一直保持这个速度,直到它插入了大约 80,000 行。然后暂停大约 30 秒,然后再消耗 70,000 到 90,000 行,再暂停 30 秒,依此类推,直到它完成 CSV 中的所有行或中途失败并出现错误或只是挂起。

我需要找到它的根源。我真的希望发现我在做一些愚蠢的事情,这不是我必须接受和解决的事情。

我正在使用 Cassandra 2.2.3

最佳答案

有很多人在使用 COPY 命令时遇到问题,它似乎适用于小数据集,但是当您有大量数据时它开始失败。

documentation如果您有几百万行要导入,他们建议使用 SSTable 加载器,我在我的公司使用它并且我有很多一致性问题。

我已经尝试了所有方法,对我来说,将大量数据导入 cassandra 的最安全方法是编写一个小脚本来读取 CSV,然后执行异步查询。 Python 做得很好。

关于Cassandra COPY 始终失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33275786/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com