clickhouse从csv db::netexception导入数据:写入套接字时由对等方重置连接

mbyulnm0  于 2021-07-15  发布在  ClickHouse
关注(0)|答案(2)|浏览(516)

我正试图通过以下方式将*.gz文件加载到clickhouse:clickhouse客户端--max_memory_usage=15323460608--format_csv_delimiter=“|”-query=“insert into tmp1.my_test)table format csv”
我得到错误代码:210。db::netexception:在写入套接字时由对等方重置连接(127.0.0.1:9000)。
clickhouse-server.log、clickhouse-server.err.log或zookeeper.log中没有错误
当我运行insert命令时,我看到内存几乎达到了服务器的极限(32gb),这就是为什么我试图通过max\u memory\u usage来限制它,同样的错误
有什么想法吗?提前谢谢

gv8xihay

gv8xihay1#

问题可能是您正在按天数对数据进行分区,而大容量插入csv的天数太多。请尝试在表创建中按toyyyymmdd(business\u ts)规范删除分区。我在插入我的一张表时也注意到了类似的问题。在添加--max\u memory\u usage参数之前,我得到的错误与您在这里报告的完全相同:代码:210。db::netexception:写入套接字时由对等方重置连接(127.0.0.1:9000)
然后我添加了--max\u memory\u usage=1500000000,并收到了一条更有用的错误消息:
从服务器(版本20.11.5)接收到异常:代码:252。db::异常:从接收localhost:9000. db::异常:单个插入块的分区太多(超过100个)。限制由“每个插入块的最大分区数”设置控制。大量分区是一个常见的误解。它将导致严重的负面性能影响,包括服务器启动慢、插入查询慢和选择查询慢。表的建议分区总数小于1000..10000。请注意,分区并不是为了加速select查询(按键排序足以使范围查询快速)。分区用于数据操作(删除分区等)。。
正如更有用的错误消息所指出的,分区并不能帮助提高select性能。它确实有助于更有效地促进非查询操作。我不知道您的用例的所有细节,但是也许按spin\u ts和business\u ts排序并在business\u ts上删除分区是有意义的。

6ojccjat

6ojccjat2#

如前所述,这是一个内存问题。添加--max\u memory\u usage=1000000000对我来说很有用

相关问题