Jag har kört med samma problem, här är min lösning:
Exportera data från MySQL
Exportera först data från MySQL på detta sätt:
SELECT * INTO OUTFILE 'filename.csv' CHARACTER SET 'utf8'
FIELDS TERMINATED BY '\t' OPTIONALLY ENCLOSED BY ''
FROM table <yourtable>
Detta är i verkligheten en tsv-fil (tabbavgränsade värden), men du kan importera dem som csv-tankar.
Importera till Big Query
På så sätt bör du kunna importera den till en stor fråga med följande parametrar:
bq load --field_delimiter="\t" --null_marker="\N" --quote="" \
PROJECT:DATASET.tableName gs://bucket/data.csv.gz table_schema.json
Anteckningar
-
Om något fält i din MySQL-databas innehåller ett tabbtecken (
\t
), kommer det att bryta dina kolumner. För att förhindra det kan du lägga till SQL-funktionenREPLACE(<column>, '\t', ' ')
på kolumnerna och den konverterar från tabbar till blanksteg. -
Om du ställer in tabellschemat i big querys webbgränssnitt behöver du inte ange det varje gång du laddar en CSV.
Jag hoppas att det här fungerar för dig.