Я новичок в CloudSQL и пытаюсь вставить записи из более 40 различных столбцов и более 1,5 миллионов строк. Однако я не могу сделать это в 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)"
Резюме:
- Я использую Python,
PyMySql
, чтобы вставить 1,5 миллиона строк данных в таблицу из 35 столбцов
- Экземпляр, БД, Таблица уже созданы в CloudSQL.
- Конфигурация системы: vCPU - 4, память - 15 ГБ, память на SSD - 10 ГБ
- Я могу полностью загрузить эти данные в моей локальной системе.
- В Google CloudSQl время развертывания чрезвычайно велико, а развертывание прошло успешно.
- Но когда я проверяю свой стол, он пуст.
- Журналы ошибок
MySql
в экземпляре показывают вышеуказанное.
Я пробовал следующие действия:
Используя вместо этого API URL
/ .txt
/ .json
файл для загрузки, теперь используйте .csv
.
Считая, что это проблема системы, я обновил систему с 8 ГБ памяти до 15 ГБ памяти.
Считая, что настройки SQL по умолчанию вызывают ограничения, я добавил следующее:
sql_mode: MAXDB, NO_AUTO_CREATE_USER
max_allowed_packet: 1073741824
net_read_timeout: 4294967295
wait_timeout: 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 и других пользователей переполнения стека. Если кто-то может определить, что я делаю неправильно или есть проблемы с моим кодом или конфигурацией? Большое спасибо.