Mysql
 sql >> Base de données >  >> RDS >> Mysql

Bonne pratique pour migrer des données de MySQL vers BigQuery

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

  1. 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 SQL REPLACE(<column>, '\t', ' ') sur les colonnes et il convertira les tabulations en espaces.

  2. 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.