J'ai eu le même problème, voici ma solution :
Exporter des données depuis MySQL
Tout d'abord, exportez les données de MySQL comme suit :
SELECT * INTO OUTFILE 'filename.csv' CHARACTER SET 'utf8'
FIELDS TERMINATED BY '\t' OPTIONALLY ENCLOSED BY ''
FROM table <yourtable>
Il s'agit en réalité d'un fichier tsv (valeurs séparées par des tabulations), mais vous pouvez les importer au format csv.
Importer dans Big Query
De cette façon, vous devriez pouvoir l'importer dans une grande requête avec les paramètres suivants :
bq load --field_delimiter="\t" --null_marker="\N" --quote="" \
PROJECT:DATASET.tableName gs://bucket/data.csv.gz table_schema.json
Remarques
-
Si un champ de votre base de données MySQL contient un caractère de tabulation (
\t
), cela cassera vos colonnes. Pour éviter cela, vous pouvez ajouter la fonction SQLREPLACE(<column>, '\t', ' ')
sur les colonnes et il convertira les tabulations en espaces. -
Si vous définissez le schéma de la table dans l'interface Web de la grande requête, vous n'aurez pas besoin de le spécifier à chaque fois que vous chargez un CSV.
J'espère que cela fonctionnera pour vous.