Tôi đã chạy với cùng một vấn đề, đây là giải pháp của tôi:
Xuất dữ liệu từ MySQL
Đầu tiên, xuất dữ liệu từ MySQL theo cách này:
SELECT * INTO OUTFILE 'filename.csv' CHARACTER SET 'utf8'
FIELDS TERMINATED BY '\t' OPTIONALLY ENCLOSED BY ''
FROM table <yourtable>
Trên thực tế, đây là một tệp tsv (các giá trị được phân tách bằng tab), nhưng bạn có thể nhập chúng dưới dạng csv.
Nhập vào Truy vấn lớn
Bằng cách này, bạn sẽ có thể nhập nó vào truy vấn lớn với các tham số sau:
bq load --field_delimiter="\t" --null_marker="\N" --quote="" \
PROJECT:DATASET.tableName gs://bucket/data.csv.gz table_schema.json
Ghi chú
-
Nếu bất kỳ trường nào trong cơ sở dữ liệu MySQL của bạn chứa ký tự tab (
\t
), nó sẽ phá vỡ các cột của bạn. Để tránh điều đó, bạn có thể thêm hàm SQLREPLACE(<column>, '\t', ' ')
trên các cột và nó sẽ chuyển đổi từ tab thành dấu cách. -
Nếu bạn đặt giản đồ bảng trong giao diện web của truy vấn lớn, bạn sẽ không cần chỉ định nó mỗi khi tải CSV.
Tôi hy vọng điều này hiệu quả với bạn.