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

Bedste praksis til at migrere data fra MySQL til BigQuery

Jeg har kørt med det samme problem, her er min løsning:

Eksport af data fra MySQL

Først eksporterer du dataene fra MySQL på denne måde:

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

Dette er i virkeligheden en tsv-fil (tab-separerede værdier), men du kan importere dem som csv-tanke.

Importér til Big Query

På denne måde skulle du være i stand til at importere det til en stor forespørgsel med følgende parametre:

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

Bemærkninger

  1. Hvis et felt i din MySQL-database indeholder et tabulatortegn (\t ), vil det bryde dine kolonner. For at forhindre det kan du tilføje SQL-funktionen REPLACE(<column>, '\t', ' ') på kolonnerne, og det vil konvertere fra tabulatorer til mellemrum.

  2. Hvis du indstiller tabelskemaet i big querys webgrænseflade, behøver du ikke angive det, hver gang du indlæser en CSV.

Jeg håber, at dette virker for dig.



  1. MySQL søg nøjagtigt ord med $ i word

  2. Grundlæggende administration af Oracle 12c Multitenant

  3. Få kolonnesum og brug til at beregne procent af totalen (mySQL)

  4. [Video] Introduktion til JSON-datatyper i PostgreSQL