gpt4 book ai didi

mysql - 通过MySql从.csv将大量数据行插入到云sql表中

转载 作者:行者123 更新时间:2023-11-29 16:06:51 25 4
gpt4 key购买 nike

我是 CloudSQL 新手,我正在尝试插入 40 多个不同列和超过 150 万行的记录。但是我无法在 Google CloudSQL 中执行此操作。我已经采取了下面列出的相当多的措施来解决这个问题,但我得到的主要错误是:

ERROR:
textPayload: "2019-04-12T06:10:47.348295Z 8554 [Note] Aborted connection 8554 to db: 'xxxxx_xxx' user: 'root' host: 'x.x.x.x' (Got an error reading communication packets)"

摘要:

  1. 我正在使用 Python、PyMySql 将 150 万行数据插入到 35 列的表中
  2. 实例、数据库、表已在 CloudSQL 中创建。
  3. 系统配置:vCPU - 4、内存 - 15 GB、SSD 存储 - 10 GB
  4. 我可以在本地系统中完全加载这些数据。
  5. 在 Google CloudSQl 中,部署时间极长,但部署成功。
  6. 但是当我检查我的 table 时,它是空的。
  7. 实例中的 MySql 错误日志显示了上述内容。

我已尝试以下操作:

  • 使用 API URL/.txt/.json 文件上传,而不是现在使用 .csv.

  • 认为是系统问题,我将系统从 8GB 内存升级到 15GB 内存。

  • 考虑到 SQL 默认配置造成了限制,我添加了以下内容:

    • sql_mode:MAXDB,NO_AUTO_CREATE_USER

    • 最大允许数据包:1073741824

    • net_read_timeout:4294967295

    • 等待超时:31536000

  • 插入的行数较少,可插入的最大行数 = 100

def adddata():
try:
conn = pymysql.connect(unix_socket='/cloudsql/' + 'karto-235001:asia-east1:karto', user='xxx', password='xxx', db='xxx')
cur = conn.cursor()
insert_ = "INSERT INTO data_table(a, b, c) VALUES (%s, %s, %s)"
with open('info.csv', newline='') as myFile:
reader = csv.reader(myFile)
for item in reader:
cur.execute(insert_, (item[3], item[4], item[5]))
conn.commit()
cur.close()
finally:
conn.close()

我已经在线检查并实现了CloudSQL和其他堆栈溢出用户推荐的解决方案。如果有人可以确定我做错了什么或者我的代码或配置是否存在问题?非常感谢。

最佳答案

我发现您想要使用 Python 上传 CSV 文件中包含的信息。您是否尝试过直接导入数据库?您可以按照链接[1]中的步骤操作。

与此同时,我会尝试复制您的案例。您可能还想检查您的安装和配置是否正确。

验证您的 Cloud SQL 实例和连接 [2] 以及您的 Python 安装[3]。

[1]https://cloud.google.com/sql/docs/mysql/import-export/importing#csv
[2]https://cloud.google.com/sql/docs/mysql/connect-compute-engine
[3]https://cloud.google.com/python/setup

关于mysql - 通过MySql从.csv将大量数据行插入到云sql表中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55664232/

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