问题描述
我有两列 imjp_number(20 digit varchar) 和 imct_id(text) 作为 11M 记录的 ct_data 数据框,对于 1M、3M,它在 63 秒和 210 秒内成功插入了所有记录,我担心的是一次 11M 记录。
# Creating a list of tupples from the dataframe values
tpls = [tuple(x) for x in ct_data.to_numpy()]
args_str = b','.join(cursor.mogrify("(%s,%s)",x) for x in tpls)
cursor.execute("INSERT INTO dummy_data_table VALUES " + args_str.decode('utf-8'))
conn.commit()
cursor.close()
当我尝试使用上述方法将 11M 记录插入到 dummy_data_table 时,它通过以下错误
cursor.execute("INSERT INTO dummy_data_table VALUES " + args_str.decode('utf-8'))
psycopg2.OperationalError: SSL SYSCALL error: EOF detected
我正在考虑将我的 ct_data 数据帧拆分和划分为 3M,然后尝试插入需要手动更改脚本的文件键,因为我正在从 s3 存储桶读取 csv 文件,否则我如何插入所有 11M 记录一次性进入我的 Postgresql 数据库表。
我想到的最后一个选项是使用 ct_data 数据帧的块大小来插入如何实现这种最佳方式。请建议我的选择和方法。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)