Estou correndo com o mesmo problema, aqui está minha solução:
Exportando dados do MySQL
Primeiro, exporte os dados do MySQL desta forma:
SELECT * INTO OUTFILE 'filename.csv' CHARACTER SET 'utf8'
FIELDS TERMINATED BY '\t' OPTIONALLY ENCLOSED BY ''
FROM table <yourtable>
Este é na realidade um arquivo tsv (valores separados por tabulação), mas você pode importá-los como pensamento csv.
Importar para o Big Query
Dessa forma, você poderá importá-lo para uma consulta grande com os seguintes parâmetros:
bq load --field_delimiter="\t" --null_marker="\N" --quote="" \
PROJECT:DATASET.tableName gs://bucket/data.csv.gz table_schema.json
Observações
-
Se algum campo em seu banco de dados MySQL contiver um caractere de tabulação (\t
), ele quebrará suas colunas. Para evitar que você possa adicionar a função SQLREPLACE(<column>, '\t', ' ')
nas colunas e converterá de tabulações para espaços.
-
Se você definir o esquema da tabela na interface da web do big query, não precisará especificá-lo toda vez que carregar um CSV.
Espero que isso funcione pra você.