sql >> Databáze >  >> RDS >> Mysql

Osvědčený postup pro migraci dat z MySQL do BigQuery

Běžel jsem se stejným problémem, zde je moje řešení:

Export dat z MySQL

Nejprve exportujte data z MySQL tímto způsobem:

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

Toto je ve skutečnosti soubor tsv (hodnoty oddělené tabulátory), ale můžete je importovat podle představ csv.

Import do Big Query

Tímto způsobem byste měli být schopni jej importovat do velkého dotazu s následujícími parametry:

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

Poznámky

  1. Pokud nějaké pole ve vaší databázi MySQL obsahuje znak tabulátoru (\t ), rozbije vaše sloupce. Abyste tomu zabránili, můžete přidat funkci SQL REPLACE(<column>, '\t', ' ') na sloupcích a převede se z tabulátorů na mezery.

  2. Pokud nastavíte schéma tabulky ve webovém rozhraní velkého dotazu, nebudete jej muset zadávat pokaždé, když načtete soubor CSV.

Doufám, že to pro vás bude fungovat.



  1. Jak převést celé číslo na desítkové v SQL Server

  2. Zjistěte, zda je objekt tabulkovou funkcí na serveru SQL pomocí OBJECTPROPERTY()

  3. Zrušte všechny tabulky, jejichž názvy začínají určitým řetězcem

  4. Vytvoření procedury v mySql s parametry