Python:使用for循环插入数据而没有超时错误

Posted

技术标签:

【中文标题】Python:使用for循环插入数据而没有超时错误【英文标题】:Python: Insert data with for loop without timeout error 【发布时间】:2021-06-02 07:56:36 【问题描述】:

我需要按年份批量插入数据,但我得到了

%Server% ping 错误:超时。连接已关闭, 重新连接。

而且我不知道每个插入会长多长时间。

我想我应该使用异步?

import pandas as pd
from clickhouse_driver import Client

client = Client(host, user=user, password=password, database = 'default')

dr = pd.date_range(start='1979-01-01', end='2029-01-31') # date ranges
for i in range(0,len(dr)):
    year  = dr[i].year
    query = f"insert into t2 select * from t1 where y = year"
    client.execute(query)

【问题讨论】:

【参考方案1】:

send_receive_timeout

client = Client(host, user=user, password=password, database = 'default', send_receive_timeout = 1000)

https://github.com/mymarilyn/clickhouse-driver/issues/196

【讨论】:

以上是关于Python:使用for循环插入数据而没有超时错误的主要内容,如果未能解决你的问题,请参考以下文章

Python & Bigquery:使用 for 循环在表中逐行查询和插入数据

使用 Python 3.9 插入行 sql 语法错误

如何在laravel中插入多条记录而不循环

Python:循环参数

使用Python for循环,我怎样才能每次都从一个字符串中取出一个字母而没有任何重复

使用 for 循环将多条记录插入 SQL Server 数据库