Biegałem z tym samym problemem, oto moje rozwiązanie:
Eksportowanie danych z MySQL
Najpierw wyeksportuj dane z MySQL w ten sposób:
SELECT * INTO OUTFILE 'filename.csv' CHARACTER SET 'utf8'
FIELDS TERMINATED BY '\t' OPTIONALLY ENCLOSED BY ''
FROM table <yourtable>
W rzeczywistości jest to plik tsv (wartości rozdzielane tabulatorami), ale można je zaimportować jako myśl csv.
Importuj do Big Query
W ten sposób powinieneś być w stanie zaimportować go do dużego zapytania z następującymi parametrami:
bq load --field_delimiter="\t" --null_marker="\N" --quote="" \
PROJECT:DATASET.tableName gs://bucket/data.csv.gz table_schema.json
Notatki
-
Jeśli jakiekolwiek pole w Twojej bazie danych MySQL zawiera znak tabulacji (
\t
), złamie Twoje kolumny. Aby temu zapobiec, możesz dodać funkcję SQLREPLACE(<column>, '\t', ' ')
w kolumnach i zmieni się z tabulatorów na spacje. -
Jeśli ustawisz schemat tabeli w interfejsie internetowym dużego zapytania, nie będziesz musiał określać go za każdym razem, gdy ładujesz plik CSV.
Mam nadzieję, że to działa dla Ciebie.