sql >> Database >  >> RDS >> Mysql

Best Practice om gegevens van MySQL naar BigQuery te migreren

Ik heb hetzelfde probleem gehad, hier is mijn oplossing:

Gegevens exporteren uit MySQL

Exporteer eerst de gegevens van MySQL op deze manier:

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

Dit is in werkelijkheid een tsv-bestand (door tabs gescheiden waarden), maar je kunt ze importeren als csv-gedachte.

Importeren in Big Query

Op deze manier zou je het in Big Query moeten kunnen importeren met de volgende parameters:

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

Opmerkingen

  1. Als een veld in uw MySQL-database een tabteken bevat (\t ), zal het je kolommen breken. Om dat te voorkomen kun je de SQL-functie REPLACE(<column>, '\t', ' ') toevoegen op de kolommen en het zal worden geconverteerd van tabs naar spaties.

  2. Als u het tabelschema instelt in de webinterface van Big Query, hoeft u dit niet elke keer op te geven wanneer u een CSV laadt.

Ik hoop dat dit voor u werkt.



  1. Gegevensclassificatie in IRI Workbench

  2. Meerdere Mysql-instructies groeperen om het aantal meerdere statussen op te halen

  3. Hoe breng ik mijn MySQL-database over naar een andere computer?

  4. Taal voor SQL-gegevensbesturing