Bạn có thể sử dụng dịch vụ xuất và nhập được quản lý để khôi phục dữ liệu bị xoá nhầm và xuất dữ liệu để xử lý khi không có mạng. Bạn có thể xuất tất cả tài liệu hoặc chỉ xuất các bộ sưu tập cụ thể. Tương tự, bạn có thể nhập tất cả dữ liệu từ một tệp xuất hoặc chỉ nhập các bộ sưu tập cụ thể. Dữ liệu được xuất từ một cơ sở dữ liệu Cloud Firestore có thể được nhập vào một cơ sở dữ liệu Cloud Firestore khác. Bạn cũng có thể tải Cloud Firestore tệp xuất vào BigQuery.
Trang này mô tả cách xuất và nhập tài liệu Cloud Firestore bằng dịch vụ xuất và nhập được quản lý cũng như Cloud Storage. Dịch vụ xuất và nhập được quản lý của Cloud Firestore được cung cấp thông qua công cụ dòng lệnh gcloud và API Cloud Firestore (REST, RPC).
Trước khi bắt đầu
Trước khi có thể sử dụng dịch vụ xuất và nhập được quản lý, bạn phải hoàn tất các nhiệm vụ sau:
- Bật tính năng thanh toán cho dự án Google Cloud của bạn. Chỉ những dự án Google Cloud đã bật tính năng thanh toán mới có thể sử dụng chức năng xuất và nhập.
- Tạo một bộ chứa Cloud Storage cho dự án của bạn ở một vị trí gần vị trí cơ sở dữ liệu Cloud Firestore của bạn. Bạn không thể sử dụng bộ chứa Người yêu cầu thanh toán hoặc bộ chứa Rapid cho các thao tác xuất và nhập.
-
Đảm bảo tài khoản của bạn có các quyền cần thiết cho Cloud Firestore và Cloud Storage. Nếu bạn là chủ sở hữu dự án, tài khoản của bạn sẽ có các quyền cần thiết. Nếu không, các vai trò sau đây sẽ cấp quyền cần thiết cho hoạt động xuất và nhập cũng như quyền truy cập vào Cloud Storage:
- Vai trò Cloud Firestore:
Owner,Cloud Datastore OwnerhoặcCloud Datastore Import Export Admin Cloud Storage vai trò:
OwnerhoặcStorage Admin
- Vai trò Cloud Firestore:
Quyền của nhân viên hỗ trợ dịch vụ
Hoạt động xuất và nhập sử dụng tác nhân dịch vụ Cloud Firestore để cho phép các hoạt động Cloud Storage. Tác nhân dịch vụ Cloud Firestore sử dụng quy ước đặt tên sau:
- Nhân viên hỗ trợ dịch vụ Cloud Firestore
service-PROJECT_NUMBER@gcp-sa-firestore.iam.gserviceaccount.com
Để tìm hiểu thêm về tác nhân dịch vụ, hãy xem bài viết Tác nhân dịch vụ.
Tác nhân dịch vụ Cloud Firestore cần có quyền truy cập vào bộ chứa Cloud Storage được dùng trong một thao tác xuất hoặc nhập. Nếu bộ chứa Cloud Storage nằm trong cùng một dự án với cơ sở dữ liệu Cloud Firestore, thì tác nhân dịch vụ Cloud Firestore có thể truy cập vào bộ chứa theo mặc định.
Nếu bộ chứa Cloud Storage nằm trong một dự án khác, thì bạn phải cấp cho tác nhân dịch vụ Cloud Firestore quyền truy cập vào bộ chứa Cloud Storage.
Chỉ định vai trò cho tác nhân dịch vụ
Bạn có thể sử dụng công cụ dòng lệnh gsutil để chỉ định một trong các vai trò dưới đây. Ví dụ: để chỉ định vai trò Quản trị viên bộ nhớ cho tác nhân dịch vụ Cloud Firestore, hãy chạy lệnh sau:
gsutil iam ch serviceAccount:service-PROJECT_NUMBER@gcp-sa-firestore.iam.gserviceaccount.com:roles/storage.admin \ gs://[BUCKET_NAME]
Thay thế PROJECT_NUMBER bằng số dự án của bạn, số này được dùng để đặt tên cho tác nhân dịch vụ Cloud Firestore. Để xem tên của nhân viên hỗ trợ dịch vụ, hãy xem phần Xem tên nhân viên hỗ trợ dịch vụ.
Ngoài ra, bạn có thể chỉ định vai trò này bằng Google Cloud Console.
Xem tên nhân viên hỗ trợ dịch vụ
Bạn có thể xem tài khoản mà các thao tác nhập và xuất của bạn sử dụng để uỷ quyền yêu cầu trên trang Nhập/Xuất trong Google Cloud Console. Bạn cũng có thể xem liệu cơ sở dữ liệu của mình có sử dụng tác nhân dịch vụ Cloud Firestore hay tài khoản dịch vụ App Engine cũ hay không.
- Xem tài khoản uỷ quyền bên cạnh nhãn Chạy công việc nhập/xuất dưới dạng.
Tác nhân dịch vụ cần có vai trò Storage Admin đối với bộ chứa Cloud Storage để dùng cho thao tác xuất hoặc nhập.
Thiết lập gcloud cho dự án của bạn
Bạn có thể bắt đầu các thao tác nhập và xuất thông qua Google Cloud Console hoặc công cụ dòng lệnh gcloud. Để sử dụng gcloud, hãy thiết lập công cụ dòng lệnh và kết nối với dự án của bạn theo một trong những cách sau:
Truy cập vào
gcloudtừ bảng điều khiển Google Cloud bằng Cloud Shell.Đảm bảo
gcloudđược định cấu hình cho đúng dự án:gcloud config set project [PROJECT_ID]
Nhập dữ liệu
Sau khi có tệp xuất trong Cloud Storage, bạn có thể nhập tài liệu trong các tệp đó trở lại dự án của mình hoặc vào một dự án khác. Hãy lưu ý những điểm sau về hoạt động nhập:
Khi bạn nhập dữ liệu, các chỉ mục bắt buộc sẽ được cập nhật bằng cách sử dụng định nghĩa chỉ mục hiện tại của cơ sở dữ liệu. Tệp xuất không chứa định nghĩa chỉ mục.
Thao tác nhập không chỉ định mã tài liệu mới. Quá trình nhập sử dụng mã nhận dạng được ghi lại tại thời điểm xuất. Khi một tài liệu đang được nhập, mã nhận dạng của tài liệu đó sẽ được đặt trước để tránh xung đột mã nhận dạng. Nếu đã có một tài liệu có cùng mã nhận dạng, thì quá trình nhập sẽ ghi đè lên tài liệu hiện có.
Nếu một tài liệu trong cơ sở dữ liệu của bạn không bị ảnh hưởng bởi quá trình nhập, thì tài liệu đó sẽ vẫn còn trong cơ sở dữ liệu sau khi nhập.
Tên tệp
.overall_export_metadataphải khớp với tên của thư mục mẹ:gs://BUCKET_NAME/OPTIONAL_NAMESPACE_PATH/PARENT_FOLDER_NAME/PARENT_FOLDER_NAME.overall_export_metadataNếu bạn di chuyển hoặc sao chép tệp đầu ra của một tệp xuất, hãy giữ nguyên tên tệp PARENT_FOLDER_NAME và
.overall_export_metadata.Thao tác nhập vào cơ sở dữ liệu Cloud Firestore từ một tệp xuất có bộ sưu tập con sẽ không thành công vì Cloud Firestore không hỗ trợ bộ sưu tập con.
Thao tác nhập vào cơ sở dữ liệu Firestore phiên bản Standard từ một tệp xuất có các loại BSON sẽ không thành công vì các loại BSON không được hỗ trợ trong Firestore phiên bản Standard.
Thao tác nhập vào cơ sở dữ liệu Cloud Firestore không thể nhập dữ liệu từ các không gian tên không mặc định (API Datastore).
Bạn chỉ được phép nhập vào cơ sở dữ liệu Cloud Firestore từ các tệp dữ liệu chứa không gian tên không mặc định nếu thao tác xuất có bộ lọc
--namespace-idsvới không gian tên mặc định. Chỉ dữ liệu từ không gian tên mặc định mới được nhập.
Nhập tất cả tài liệu từ một tệp xuất
Bảng điều khiển Google Cloud
Trong Google Cloud Console, hãy chuyển đến trang Databases (Cơ sở dữ liệu).
Chọn một cơ sở dữ liệu trong danh sách cơ sở dữ liệu.
Trong trình đơn điều hướng, hãy nhấp vào Nhập/Xuất.
Nhấp vào Nhập.
Trong trường Filename (Tên tệp), hãy nhập tên tệp của một tệp
.overall_export_metadatatừ một thao tác xuất đã hoàn tất. Bạn có thể sử dụng nút Duyệt qua để chọn tệp.Nhấp vào Nhập.
Bảng điều khiển sẽ quay lại trang Nhập/Xuất. Nếu thao tác bắt đầu thành công, trang sẽ thêm một mục vào trang xuất và nhập gần đây. Nếu không thành công, trang sẽ hiển thị thông báo lỗi.
gcloud
Sử dụng lệnh firestore import để nhập tài liệu từ một thao tác xuất trước đó.
gcloud firestore import gs://[BUCKET_NAME]/[EXPORT_PREFIX]/ --database=[DATABASE]
Thay thế nội dung sau:
BUCKET_NAME/EXPORT_PREFIX: vị trí của tệp xuất.DATABASE: tên của cơ sở dữ liệu.
Ví dụ:
gcloud firestore import gs://my-bucket/2017-05-25T23:54:39_76544/ --database='cymbal'
Bạn có thể xác nhận vị trí của các tệp xuất trong trình duyệt Cloud Storage trên Google Cloud Console:
Sau khi bạn bắt đầu thao tác nhập, việc đóng thiết bị đầu cuối sẽ không huỷ thao tác đó, hãy xem phần huỷ thao tác.
Nhập bộ sưu tập cụ thể
Bảng điều khiển Google Cloud
Bạn không thể chọn các bộ sưu tập cụ thể trong bảng điều khiển. Thay vào đó, hãy sử dụng gcloud.
gcloud
Để nhập các bộ sưu tập cụ thể từ một nhóm tệp xuất, hãy sử dụng cờ --collection-ids. Thao tác này chỉ nhập các tập hợp có mã tập hợp đã cho.
Chỉ định tên cơ sở dữ liệu bằng cờ --database.
Chỉ tệp xuất của các bộ sưu tập cụ thể mới hỗ trợ nhập các bộ sưu tập cụ thể. Bạn không thể nhập các tập hợp cụ thể từ tệp xuất của tất cả tài liệu.
gcloud firestore import gs://[BUCKET_NAME]/[EXPORT_PREFIX]/ \ --collection-ids=[COLLECTION_ID_1],[COLLECTION_ID_2] \ --database=[DATABASE]
Nhập từ tệp xuất có dữ liệu PITR
Sử dụng các bước tương tự như trong phần Nhập tất cả tài liệu hoặc Nhập các tập hợp cụ thể để nhập dữ liệu PITR. Nếu có tài liệu nào đã tồn tại trong cơ sở dữ liệu, thì tài liệu đó sẽ bị ghi đè.
Xuất dữ liệu
Thao tác xuất sẽ sao chép tài liệu trong cơ sở dữ liệu của bạn vào một tập hợp tệp trong một bộ chứa Cloud Storage. Xin lưu ý rằng dữ liệu xuất không phải là ảnh chụp nhanh chính xác của cơ sở dữ liệu được chụp tại thời điểm bắt đầu xuất. Tệp xuất có thể bao gồm những thay đổi được thực hiện trong khi thao tác đang chạy.
Xuất tất cả tài liệu
Bảng điều khiển Google Cloud
Trong Google Cloud Console, hãy chuyển đến trang Databases (Cơ sở dữ liệu).
Chọn cơ sở dữ liệu cần thiết trong danh sách cơ sở dữ liệu.
Trong trình đơn điều hướng, hãy nhấp vào Nhập/Xuất.
Nhấp vào Xuất.
Nhấp vào tuỳ chọn Xuất toàn bộ cơ sở dữ liệu.
Chọn Xuất trạng thái hiện tại của cơ sở dữ liệu để xuất dữ liệu hiện tại.
Trong mục Destination (Đích đến), hãy nhập tên của một bộ chứa Cloud Storage hoặc sử dụng nút Browse (Duyệt xem) để chọn một bộ chứa.
Nhấp vào Xuất.
Bảng điều khiển sẽ quay lại trang Nhập/Xuất. Nếu thao tác bắt đầu thành công, trang sẽ thêm một mục vào trang xuất và nhập gần đây. Nếu không thành công, trang sẽ hiển thị thông báo lỗi.
gcloud
Sử dụng lệnh firestore export để xuất tất cả tài liệu trong cơ sở dữ liệu, thay thế [BUCKET_NAME] bằng tên của bộ chứa Cloud Storage. Thêm cờ --async để ngăn công cụ gcloud chờ thao tác hoàn tất.
gcloud firestore export gs://[BUCKET_NAME] \ --database=[DATABASE]
Thay thế nội dung sau:
BUCKET_NAME: sắp xếp các tệp xuất bằng cách thêm tiền tố tệp sau tên bộ chứa, ví dụ:BUCKET_NAME/my-exports-folder/export-name. Nếu bạn không cung cấp tiền tố tệp, thì dịch vụ xuất dữ liệu được quản lý sẽ tạo một tiền tố dựa trên dấu thời gian hiện tại.DATABASE: tên của cơ sở dữ liệu mà bạn muốn xuất tài liệu.
Sau khi bạn bắt đầu thao tác xuất, việc đóng thiết bị đầu cuối sẽ không huỷ thao tác đó, hãy xem phần huỷ thao tác.
Xuất các bộ sưu tập cụ thể
Bảng điều khiển Google Cloud
Trong Google Cloud Console, hãy chuyển đến trang Databases (Cơ sở dữ liệu).
Chọn cơ sở dữ liệu cần thiết trong danh sách cơ sở dữ liệu.
Trong trình đơn điều hướng, hãy nhấp vào Nhập/Xuất.
Nhấp vào Xuất.
Nhấp vào lựa chọn Xuất một hoặc nhiều nhóm bộ sưu tập. Sử dụng trình đơn thả xuống để chọn một hoặc nhiều bộ sưu tập.
Chọn Xuất trạng thái hiện tại của cơ sở dữ liệu để xuất dữ liệu hiện tại.
Trong mục Destination (Đích đến), hãy nhập tên của một bộ chứa Cloud Storage hoặc sử dụng nút Browse (Duyệt xem) để chọn một bộ chứa.
Nhấp vào Xuất.
Bảng điều khiển sẽ quay lại trang Nhập/Xuất. Nếu thao tác bắt đầu thành công, trang sẽ thêm một mục vào trang xuất và nhập gần đây. Nếu không thành công, trang sẽ hiển thị thông báo lỗi.
gcloud
Để xuất các bộ sưu tập cụ thể, hãy sử dụng cờ --collection-ids. Thao tác này chỉ xuất các tập hợp có mã nhận dạng tập hợp đã cho.
gcloud firestore export gs://[BUCKET_NAME] \ --collection-ids=[COLLECTION_ID_1],[COLLECTION_ID_2] \ --database=[DATABASE]
Ví dụ: bạn có thể thiết kế một tập hợp restaurants trong cơ sở dữ liệu foo để thêm các tập hợp khác, chẳng hạn như ratings, reviews hoặc outlets. Để xuất restaurants và reviews của tập hợp cụ thể, lệnh của bạn sẽ có dạng như sau:
gcloud firestore export gs://[BUCKET_NAME] \ --collection-ids=restaurants,reviews \ --database='cymbal'
Xuất từ dấu thời gian PITR
Bạn có thể xuất cơ sở dữ liệu sang Cloud Storage từ dữ liệu PITR.
Bạn có thể xuất dữ liệu PITR có dấu thời gian là dấu thời gian phút tròn trong
bảy ngày qua, nhưng không sớm hơn earliestVersionTime. Nếu dữ liệu không còn tồn tại tại dấu thời gian đã chỉ định, thì thao tác xuất sẽ không thành công.
Thao tác xuất PITR hỗ trợ tất cả bộ lọc, bao gồm cả việc xuất tất cả tài liệu và xuất các tập hợp cụ thể.
Hãy lưu ý những điểm sau trước khi xuất dữ liệu PITR:
- Chỉ định dấu thời gian theo định dạng RFC 3339. Ví dụ:
2020-09-01T23:59:30.234233Z. - Đảm bảo rằng dấu thời gian bạn chỉ định là dấu thời gian tính theo phút tròn
trong vòng 7 ngày qua, nhưng không sớm hơn
earliestVersionTime. Nếu dữ liệu không còn tồn tại tại dấu thời gian đã chỉ định, thì hệ thống sẽ tạo ra lỗi. - Bạn sẽ không bị tính phí cho một lần xuất PITR không thành công.
Bảng điều khiển
-
Trong Google Cloud Console, hãy chuyển đến trang Databases (Cơ sở dữ liệu).
Chuyển đến phần Cơ sở dữ liệu - Chọn một cơ sở dữ liệu trong danh sách cơ sở dữ liệu.
- Trong trình đơn điều hướng, hãy nhấp vào Nhập/Xuất.
- Nhấp vào Xuất.
- Định cấu hình nguồn xuất để xuất toàn bộ cơ sở dữ liệu hoặc chỉ xuất các tập hợp cụ thể.
Trong phần Chọn trạng thái của cơ sở dữ liệu để xuất, hãy chọn Xuất từ một thời điểm trước đó.
Chọn thời điểm chụp nhanh để sử dụng cho quá trình xuất
- Trong mục Đích đến, hãy nhập tên của một Cloud Storage vùng lưu trữ hoặc sử dụng nút Duyệt xem để chọn một vùng lưu trữ.
-
Nhấp vào Xuất.
Bảng điều khiển sẽ quay lại trang Nhập/Xuất. Nếu thao tác bắt đầu thành công, trang sẽ thêm một mục vào trang xuất và nhập gần đây. Nếu không thành công, trang sẽ hiển thị thông báo lỗi.
gcloud
Bạn có thể xuất cơ sở dữ liệu sang Cloud Storage từ dữ liệu PITR bằng lệnh gcloud firestore export.
Xuất cơ sở dữ liệu, chỉ định tham số snapshot-time cho dấu thời gian khôi phục. Chạy lệnh sau để xuất cơ sở dữ liệu sang bộ chứa của bạn.
gcloud firestore export gs://[BUCKET_NAME_PATH] \ --snapshot-time=[PITR_TIMESTAMP]
Trong đó PITR_TIMESTAMP là dấu thời gian PITR ở mức độ chi tiết theo phút, ví dụ: 2023-05-26T10:20:00.00Z.
Thêm cờ --collection-ids để xuất các tập hợp cụ thể.
Quản lý hoạt động xuất và nhập dữ liệu
Sau khi bạn bắt đầu thao tác xuất hoặc nhập, Cloud Firestore sẽ chỉ định một tên riêng biệt cho thao tác đó. Bạn có thể sử dụng tên thao tác để xoá, huỷ hoặc kiểm tra trạng thái của thao tác.
Tên thao tác có tiền tố là projects/[PROJECT_ID]/databases/[DATABASE_ID]/operations/, ví dụ:
projects/my-project/databases/my-database/operations/ASA1MTAwNDQxNAgadGx1YWZlZAcSeWx0aGdpbi1zYm9qLW5pbWRhEgopEg
Tuy nhiên, bạn có thể bỏ qua tiền tố khi chỉ định tên thao tác cho các lệnh describe, cancel và delete.
Liệt kê tất cả hoạt động xuất và nhập
Bảng điều khiển Google Cloud
Bạn có thể xem danh sách các thao tác xuất và nhập gần đây trên trang Nhập/Xuất của Google Cloud Console.
Trong Google Cloud Console, hãy chuyển đến trang Databases (Cơ sở dữ liệu).
Chọn cơ sở dữ liệu cần thiết trong danh sách cơ sở dữ liệu.
Trong trình đơn điều hướng, hãy nhấp vào Nhập/Xuất.
gcloud
Sử dụng lệnh operations list để xem tất cả các thao tác xuất và nhập đang chạy và vừa hoàn tất:
gcloud firestore operations list
Kiểm tra trạng thái hoạt động
Bảng điều khiển Google Cloud
Bạn có thể xem trạng thái của một thao tác nhập hoặc xuất gần đây trên trang Nhập/Xuất của Google Cloud Console.
Trong Google Cloud Console, hãy chuyển đến trang Databases (Cơ sở dữ liệu).
Chọn cơ sở dữ liệu cần thiết trong danh sách cơ sở dữ liệu.
Trong trình đơn điều hướng, hãy nhấp vào Nhập/Xuất.
gcloud
Sử dụng lệnh operations describe để hiện trạng thái của thao tác xuất hoặc nhập.
gcloud firestore operations describe [OPERATION_NAME]
Ước tính thời gian hoàn thành
Yêu cầu về trạng thái của một thao tác diễn ra trong thời gian dài sẽ trả về các chỉ số
workEstimated và workCompleted. Mỗi chỉ số này được trả về theo cả
số byte và số thực thể:
workEstimatedcho biết tổng số byte và tài liệu ước tính mà một thao tác sẽ xử lý. Cloud Firestore có thể bỏ qua chỉ số này nếu không thể đưa ra thông tin ước tính.workCompletedcho biết số byte và số tài liệu đã được xử lý cho đến nay. Sau khi thao tác hoàn tất, giá trị này sẽ cho biết tổng số byte và tài liệu thực tế đã được xử lý, có thể lớn hơn giá trị củaworkEstimated.
Chia workCompleted cho workEstimated để ước tính sơ bộ tiến độ. Thông tin ước tính này có thể không chính xác vì phụ thuộc vào việc thu thập số liệu thống kê bị trì hoãn.
Huỷ thao tác
Bảng điều khiển Google Cloud
Bạn có thể huỷ một thao tác xuất hoặc nhập đang chạy trên trang Nhập/Xuất của Google Cloud Console.
Trong Google Cloud Console, hãy chuyển đến trang Databases (Cơ sở dữ liệu).
Chọn cơ sở dữ liệu cần thiết trong danh sách cơ sở dữ liệu.
Trong trình đơn điều hướng, hãy nhấp vào Nhập/Xuất.
Trong bảng Lượt nhập và xuất gần đây, các thao tác đang chạy sẽ có nút Huỷ trong cột Đã hoàn tất. Nhấp vào nút Huỷ để dừng thao tác. Nút này sẽ thay đổi thành thông báo Đang huỷ rồi thành Đã huỷ khi thao tác dừng hoàn toàn.

gcloud
Sử dụng lệnh operations cancel để dừng một thao tác đang diễn ra:
gcloud firestore operations cancel [OPERATION_NAME]
Việc huỷ một thao tác đang chạy sẽ không huỷ bỏ thao tác đó. Thao tác xuất bị huỷ sẽ để lại các tài liệu đã được xuất trong Cloud Storage, còn thao tác nhập bị huỷ sẽ giữ nguyên các bản cập nhật đã được thực hiện cho cơ sở dữ liệu của bạn. Bạn không thể nhập một tệp xuất chưa hoàn tất.
Xoá một thao tác
Sử dụng lệnh gcloud firestore operations delete để xoá một thao tác khỏi danh sách các thao tác gần đây. Lệnh này sẽ không xoá các tệp xuất khỏi Cloud Storage.
gcloud firestore operations delete [OPERATION_NAME]
Thanh toán và giá cho hoạt động xuất và nhập
Bạn phải bật tính năng thanh toán cho dự án Google Cloud trước khi sử dụng dịch vụ xuất và nhập được quản lý.
Thao tác xuất và nhập được tính phí theo đơn vị đọc và đơn vị ghi theo mức giá nêu trong phần Cloud Firestore giá.
Các tệp đầu ra được lưu trữ trong Cloud Storage sẽ được tính vào chi phí lưu trữ dữ liệu Cloud Storage.
Hoạt động xuất hoặc nhập sẽ không kích hoạt cảnh báo về ngân sách Google Cloud cho đến khi hoàn tất. Thao tác xuất và nhập sẽ không ảnh hưởng đến mức sử dụng hiển thị trong phần mức sử dụng của bảng điều khiển.
Xem chi phí xuất và nhập
Thao tác xuất và nhập áp dụng nhãn goog-firestoremanaged:exportimport cho các thao tác được tính phí. Trong trang báo cáo thanh toán Cloud Billing,
bạn có thể sử dụng nhãn này để xem các chi phí liên quan đến hoạt động nhập và xuất:

Xuất sang BigQuery
Bạn có thể tải dữ liệu từ tệp xuất Cloud Firestore vào BigQuery, nhưng chỉ khi bạn đã chỉ định bộ lọc collection-ids. Xem phần Tải dữ liệu từ tệp xuất Cloud Firestore.
Khi tải dữ liệu Cloud Firestore vào BigQuery, các kiểu dữ liệu BSON được biểu thị bằng kiểu dữ liệu STRING.
Giới hạn BigQuery cột
BigQuery áp đặt giới hạn 10.000 cột cho mỗi bảng. Thao tác xuất Cloud Firestore tạo một giản đồ bảng BigQuery cho mỗi tập hợp. Trong giản đồ này, mỗi tên trường riêng biệt trong một tập hợp sẽ trở thành một cột giản đồ.
Nếu giản đồ của một tập hợp BigQuery vượt quá 10.000 cột, thì thao tác xuất Cloud Firestore sẽ cố gắng duy trì dưới giới hạn cột bằng cách coi các trường bản đồ là byte. Nếu lượt chuyển đổi này khiến số lượng cột giảm xuống dưới 10.000, thì bạn có thể tải dữ liệu vào BigQuery, nhưng không thể truy vấn các trường con trong trường bản đồ. Nếu số lượng cột vẫn vượt quá 10.000, thì thao tác xuất sẽ không tạo giản đồ BigQuery cho tập hợp và bạn không thể tải dữ liệu của tập hợp đó vào BigQuery.
Định dạng xuất và tệp siêu dữ liệu
Kết quả của một tệp xuất được quản lý sử dụng định dạng nhật ký LevelDB.
Tệp siêu dữ liệu
Thao tác xuất sẽ tạo một tệp siêu dữ liệu cho mỗi tập hợp mà bạn chỉ định. Tệp siêu dữ liệu thường có tên là
ALL_NAMESPACES_KIND_[COLLECTION_GROUP_ID].export_metadata.
Các tệp siêu dữ liệu là vùng đệm giao thức và bạn có thể giải mã các tệp này bằng trình biên dịch giao thức protoc.
Ví dụ: bạn có thể giải mã tệp siêu dữ liệu để xác định các tập hợp mà tệp xuất chứa:
protoc --decode_raw < export0.export_metadata