Бях със същия проблем, ето моето решение:
Експортиране на данни от MySQL
Първо, експортирайте данните от MySQL по следния начин:
SELECT * INTO OUTFILE 'filename.csv' CHARACTER SET 'utf8'
FIELDS TERMINATED BY '\t' OPTIONALLY ENCLOSED BY ''
FROM table <yourtable>
Това всъщност е tsv файл (стойности, разделени с табулатори), но можете да ги импортирате, както мислите за csv.
Импортиране в Big Query
По този начин трябва да можете да го импортирате в голяма заявка със следните параметри:
bq load --field_delimiter="\t" --null_marker="\N" --quote="" \
PROJECT:DATASET.tableName gs://bucket/data.csv.gz table_schema.json
Бележки
-
Ако някое поле във вашата MySQL база данни съдържа знак за табулация (
\t
), това ще разбие вашите колони. За да предотвратите това, можете да добавите SQL функциятаREPLACE(<column>, '\t', ' ')
върху колоните и ще се преобразува от табулатори в интервали. -
Ако зададете схемата на таблицата в уеб интерфейса на голяма заявка, няма да е необходимо да я указвате всеки път, когато зареждате CSV.
Надявам се, че това работи за вас.