Jeg har kørt med det samme problem, her er min løsning:
Eksport af data fra MySQL
Først eksporterer du dataene fra MySQL på denne måde:
SELECT * INTO OUTFILE 'filename.csv' CHARACTER SET 'utf8'
FIELDS TERMINATED BY '\t' OPTIONALLY ENCLOSED BY ''
FROM table <yourtable>
Dette er i virkeligheden en tsv-fil (tab-separerede værdier), men du kan importere dem som csv-tanke.
Importér til Big Query
På denne måde skulle du være i stand til at importere det til en stor forespørgsel med følgende parametre:
bq load --field_delimiter="\t" --null_marker="\N" --quote="" \
PROJECT:DATASET.tableName gs://bucket/data.csv.gz table_schema.json
Bemærkninger
-
Hvis et felt i din MySQL-database indeholder et tabulatortegn (
\t
), vil det bryde dine kolonner. For at forhindre det kan du tilføje SQL-funktionenREPLACE(<column>, '\t', ' ')
på kolonnerne, og det vil konvertere fra tabulatorer til mellemrum. -
Hvis du indstiller tabelskemaet i big querys webgrænseflade, behøver du ikke angive det, hver gang du indlæser en CSV.
Jeg håber, at dette virker for dig.