Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Best Practice zum Migrieren von Daten von MySQL zu BigQuery

Ich habe das gleiche Problem, hier ist meine Lösung:

Daten aus MySQL exportieren

Exportieren Sie zuerst die Daten aus MySQL auf diese Weise:

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

Dies ist in Wirklichkeit eine tsv-Datei (tabulatorgetrennte Werte), aber Sie können sie als csv-Datei importieren.

In Big Query importieren

Auf diese Weise sollten Sie es mit den folgenden Parametern in Big Query importieren können:

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

Notizen

  1. Wenn irgendein Feld in Ihrer MySQL-Datenbank ein Tabulatorzeichen enthält (\t ), wird es Ihre Spalten brechen. Um dies zu verhindern, können Sie die SQL-Funktion REPLACE(<column>, '\t', ' ') hinzufügen auf die Spalten und es wird von Tabulatoren in Leerzeichen umgewandelt.

  2. Wenn Sie das Tabellenschema in der Weboberfläche von Big Query festlegen, müssen Sie es nicht jedes Mal angeben, wenn Sie eine CSV-Datei laden.

Ich hoffe, das funktioniert für Sie.