Việc xuất dữ liệu sang File từ BigQuery yêu cầu sử dụng Google Cloud Storage để lưu trữ tệp đã xuất. Sau khi tệp được lưu trữ trong Google Cloud Storage, bạn có thể tải xuống hoặc xuất tệp ở nơi khác nếu cần.
Khi bạn đã tạo Cloud Storage, bạn cũng sẽ cần tạo một bucket
Mục lục
Cloud Storage URI Format
Với Cloud Storage URI, cần thông báo cho BigQuery nơi bạn xuất tập tin, theo định dạng đơn giản như sau: gs://<bucket-name>/<file-name>
.
Nếu bạn muốn đặt file trong các thư mục, chỉ cần thêm đường URI: gs://<bucket-name>/<parent-directory>/<child-directory>/<file-name>
.
Xuất qua WebUI
Để xuất bảng BigQuery sang File qua WebUI ta làm như sau:
- Truy cập WebUI BigQuery .
- Chọn tệp
table
bạn muốn xuất. - Nhấp vào
Export Table
ở trên cùng bên phải. - Chọn
Export format
vàCompression
, nếu cần. - Thay đổi
Google Cloud Storage URI
nếu cần thiết để khớp với các thư mục trong bucket, và nhậpfile-name
bạn muốn xuất sang. - Nhấp
OK
và đợi công việc hoàn thành.
Xuất qua API
Để xuất File trong BigQuery bằng API BigQuery, bạn cần thực hiện lệnh gọi Jobs.insert
. Cấu trúc cấu hình cơ bản được đưa ra dưới đây:
{
'jobReference': {
'projectId': projectId,
'jobId': uniqueIdentifier
},
'configuration': {
'extract': {
'sourceTable': {
'projectId': projectId,
'datasetId': datasetId,
'tableId': tableId
},
'destinationUris': [cloudStorageURI],
'destinationFormat': 'CSV',
'compression': 'NONE'
}
}
}
uniqueIdentifier
chỉ đơn giản là một chuỗi duy nhất xác định công việc cụ thể này, vì vậy sẽ không có bất kỳ sự trùng lặp dữ liệu nào nếu công việc không thành công trong quá trình xử lý.projectId
là ID dự án BigQuery.datasetId
là ID tập dữ liệu BigQuery.tableId
tất nhiên là ID bảng BigQuery.destinationFormat
mặc địnhCSV
nhưng cũng có thể làNEWLINE_DELIMITED_JSON
vàAVRO
.compression
mặc địnhNONE
nhưng cũng có thểGZIP
.
Ví dụ: nếu chúng ta muốn xuất sang melville trong tập dữ liệu exports của mình, dự án: bookstore-1382, Ta có thể sử dụng cấu hình như sau:
{
'jobReference': {
'projectId': 'bookstore-1382',
'jobId': 'bcd56153-b882-4f78-8a30-f509b583a568'
},
'configuration': {
'extract': {
'sourceTable': {
'projectId': 'bookstore-1382',
'datasetId': 'exports',
'tableId': 'melville'
},
'destinationUris': ['gs://bookstore/melville.json'],
'destinationFormat': 'NEWLINE_DELIMITED_JSON',
'compression': 'NONE'
}
}
}
Đợi quá trình xử lý, Làm mới bookstore
bucket trong Cloud Storage sẽ hiển thị tệp melville.json
:
{"BookMeta_Title":"Typee, a Romance of the South Seas","BookMeta_Date":"1920","BookMeta_Creator":"Herman Melville","BookMeta_Language":"English","BookMeta_Publisher":"Harcourt, Brace and Howe"}
{"BookMeta_Title":"Typee: A Real Romance of the South Seas","BookMeta_Date":"1904","BookMeta_Creator":"Herman Melville , William Clark Russell , Marie Clothilde Balfour","BookMeta_Language":"English","BookMeta_Publisher":"John Lane, the BodleyHead"}
{"BookMeta_Title":"Typee: A Narrative of a Four Months' Residence Among the Natives of a Valley of the Marquesas ...","BookMeta_Date":"1893","BookMeta_Creator":"Herman Melville","BookMeta_Language":"English","BookMeta_Publisher":"J. Murray"}
...
Sử dụng Wildcard URI cho Multiple File Output
Trong một số trường hợp, bạn có thể xuất một bảng vượt quá kích thước tối đa của mỗi tệp là 1GB. Trong những trường hợp như vậy, bạn nên sử dụng ký tự đại diện URI bằng cách thêm dấu hoa thị *
trong file-name
Ví dụ: một Cloud Storage URI: gs://bookstore/melville-*.json
trong cấu hình sẽ trở thành một chuỗi lặp đi lặp lại, các tên tệp tăng dần, như sau:
gs://bookstore/melville-000000000000.json
gs://bookstore/melville-000000000001.json
gs://bookstore/melville-000000000002.json
...
Đọc thêm: Khóa học Google BigQuery for Data Analytics & Machine Learning