Mysql
 sql >> Database >  >> RDS >> Mysql

Best Practice per migrare i dati da MySQL a BigQuery

Ho eseguito con lo stesso problema, ecco la mia soluzione:

Esportazione di dati da MySQL

Innanzitutto, esporta i dati da MySQL in questo modo:

SELECT * INTO OUTFILE 'filename.csv' CHARACTER SET 'utf8' 
FIELDS TERMINATED BY '\t' OPTIONALLY ENCLOSED BY '' 
FROM table <yourtable>

Questo è in realtà un file tsv (valori separati da tabulazioni), ma puoi importarli come csv pensato.

Importa in Big Query

In questo modo dovresti essere in grado di importarlo in una query grande con i seguenti parametri:

bq load --field_delimiter="\t" --null_marker="\N" --quote="" \
PROJECT:DATASET.tableName gs://bucket/data.csv.gz table_schema.json

Note

  1. Se un campo nel database MySQL contiene un carattere di tabulazione (\t ), interromperà le tue colonne. Per evitarlo puoi aggiungere la funzione SQL REPLACE(<column>, '\t', ' ') sulle colonne e verrà convertito da tabulazioni in spazi.

  2. Se imposti lo schema della tabella nell'interfaccia web di Big Query non dovrai specificarlo ogni volta che carichi un CSV.

Spero che questo funzioni per te.