He estado corriendo con el mismo problema, aquí está mi solución:
Exportar datos desde MySQL
Primero, exporte los datos de MySQL de esta manera:
SELECT * INTO OUTFILE 'filename.csv' CHARACTER SET 'utf8'
FIELDS TERMINATED BY '\t' OPTIONALLY ENCLOSED BY ''
FROM table <yourtable>
Este es en realidad un archivo tsv (valores separados por tabulaciones), pero puede importarlos como pensamiento csv.
Importar a Big Query
De esta manera, debería poder importarlo en una consulta grande con los siguientes parámetros:
bq load --field_delimiter="\t" --null_marker="\N" --quote="" \
PROJECT:DATASET.tableName gs://bucket/data.csv.gz table_schema.json
Notas
-
Si algún campo en su base de datos MySQL contiene un carácter de tabulación (
\t
), romperá tus columnas. Para evitar eso, puede agregar la función SQLREPLACE(<column>, '\t', ' ')
en las columnas y se convertirá de tabulaciones a espacios. -
Si configura el esquema de la tabla en la interfaz web de Big Query, no necesitará especificarlo cada vez que cargue un CSV.
Espero que esto funcione para ti.