Google cam kết thúc đẩy công bằng chủng tộc cho Cộng đồng người da đen. Xem cách thực hiện.
Trang này được dịch bởi Cloud Translation API.
Switch to English

Xuất và nhập dữ liệu

Bạn có thể sử dụng dịch vụ xuất và nhập được quản lý của Cloud Firestore để khôi phục dữ liệu do vô tình xóa và xuất dữ liệu để xử lý ngoại tuyến. Bạn có thể xuất tất cả các tài liệu hoặc chỉ các bộ sưu tập cụ thể. Tương tự như vậy, bạn có thể nhập tất cả dữ liệu từ xuất hoặc chỉ 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 cơ sở dữ liệu Cloud Firestore khác. Bạn cũng có thể tải các bản xuất Cloud Firestore 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ý và Cloud Storage . Dịch vụ xuất và nhập được quản lý của Cloud Firestore có sẵn 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 thành các tác vụ sau:

  1. Bật thanh toán cho dự án Google Cloud Platform của bạn. Chỉ các dự án GCP có 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.
  2. Tạo nhóm Cloud Storage cho dự án của bạn ở 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 nhóm Thanh toán của Người yêu cầu cho các hoạt động xuất và nhập.
  3. Đả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 có các quyền cần thiết. Nếu không, các vai trò sau sẽ cấp các quyền cần thiết cho các hoạt động xuất và nhập và để truy cập vào Cloud Storage:

Quyền đối với tài khoản dịch vụ mặc định

Mỗi dự án Google Cloud Platform sẽ tự động tạo một tài khoản dịch vụ mặc định có tên là PROJECT_ID @appspot.gserviceaccount.com . Các hoạt động xuất và nhập sử dụng tài khoản dịch vụ này để cho phép các hoạt động của Cloud Storage.

Tài khoản dịch vụ mặc định của dự án của bạn yêu cầu quyền truy cập vào nhóm Lưu trữ đám mây được sử dụng trong hoạt động xuất hoặc nhập. Nếu nhóm Cloud Storage của bạn nằm trong cùng một dự án với cơ sở dữ liệu Cloud Firestore của bạn, thì tài khoản dịch vụ mặc định có quyền truy cập vào nhóm theo mặc định .

Nếu nhóm Lưu trữ đám mây nằm trong một dự án khác, thì bạn phải cấp cho tài khoản dịch vụ mặc định quyền truy cập vào nhóm Lưu trữ đám mây.

Tài khoản dịch vụ cần có vai trò Storage Admin lưu trữ để sử dụng nhóm Lưu trữ đám mây cho hoạt động xuất hoặc nhập.

Nếu bạn vô hiệu hóa hoặc xóa tài khoản dịch vụ mặc định của App Engine, ứng dụng App Engine của bạn sẽ mất quyền truy cập vào cơ sở dữ liệu Cloud Firestore của bạn. Nếu bạn đã vô hiệu hóa tài khoản dịch vụ App Engine của mình, bạn có thể bật lại nó, xem cách bật tài khoản dịch vụ . Nếu bạn đã xóa tài khoản dịch vụ App Engine của mình trong vòng 30 ngày qua, bạn có thể khôi phục tài khoản dịch vụ của mình, xem cách xóa tài khoản dịch vụ .

Thiết lập gcloud cho dự án của bạn

Bạn có thể bắt đầu các hoạt động nhập và xuất thông qua Google Cloud Platform 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:

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 các tệp trong nhóm Lưu trữ trên đám mây. Lưu ý rằng bản xuất không phải là một ảnh chụp nhanh cơ sở dữ liệu chính xác được thực hiện tại thời điểm bắt đầu xuất. Việc xuất có thể bao gồm các thay đổi được thực hiện trong khi hoạt động đang chạy.

Xuất tất cả tài liệu

Google Cloud Console

  1. Truy cập trang Nhập / xuất Cloud Firestore trong Google Cloud Platform Console.

    Chuyển đến trang Nhập / Xuất

  2. Nhấp vào Xuất .

  3. Nhấp vào tùy chọn Xuất toàn bộ cơ sở dữ liệu .

  4. Bên dưới Chọn điểm đến , hãy nhập tên của nhóm Bộ nhớ đám mây hoặc sử dụng nút Duyệt qua để chọn nhóm.

  5. Nhấp vào Xuất .

Bảng điều khiển trở lại trang Nhập / Xuất . Nếu thao tác bắt đầu thành công, trang sẽ thêm mục nhập vào trang xuất và nhập gần đây. Khi bị lỗi, trang sẽ hiển thị thông báo lỗi.

gcloud

Sử dụng lệnh xuất kho lưu trữ firestore export để xuất tất cả tài liệu trong cơ sở dữ liệu của bạn, thay thế [BUCKET_NAME] bằng tên của nhóm Lưu trữ đám mây của bạn. Thêm cờ --async để ngăn công cụ gcloud chờ hoạt động hoàn tất.

gcloud firestore export gs://[BUCKET_NAME]

Bạn có thể tổ chức xuất của mình bằng cách thêm tiền tố tệp sau tên nhóm, ví dụ: BUCKET_NAME/my-exports-folder/export-name . Nếu bạn không cung cấp tiền tố tệp, dịch vụ xuất đượ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.

Khi bạn bắt đầu thao tác xuất, việc đóng thiết bị đầu cuối không hủy thao tác, hãy xem hủy thao tác .

Xuất các bộ sưu tập cụ thể

Google Cloud Console

  1. Truy cập trang Nhập / xuất Cloud Firestore trong Google Cloud Platform Console.

    Chuyển đến trang Nhập / Xuất

  2. Nhấp vào Xuất .

  3. Nhấp vào tùy chọn Xuất một hoặc nhiều nhóm bộ sưu tập . Sử dụng menu thả xuống để chọn một hoặc nhiều nhóm thu thập.

  4. Bên dưới Chọn điểm đến , hãy nhập tên của nhóm Bộ nhớ trên đám mây hoặc sử dụng nút Duyệt qua để chọn nhóm.

  5. Nhấp vào Xuất .

Bảng điều khiển trở lại trang Nhập / Xuất . Nếu thao tác bắt đầu thành công, trang sẽ thêm mục nhập vào trang xuất và nhập gần đây. Khi bị lỗi, trang sẽ hiển thị thông báo lỗi.

gcloud

Để xuất các nhóm tập hợp cụ thể, hãy sử dụng --collection-ids . Thao tác này chỉ xuất các nhóm tập hợp có ID tập hợp nhất định. Nhóm bộ sưu tập bao gồm tất cả các bộ sưu tập và bộ sưu tập con (tại bất kỳ đường dẫn nào) với ID bộ sưu tập được chỉ định.

gcloud firestore export gs://[BUCKET_NAME] --collection-ids=[COLLECTION_ID_1],[COLLECTION_ID_2]

Nhập dữ liệu

Khi bạn đã xuất tệp trong Bộ nhớ đám mây, 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 dự án khác. 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 được cập nhật bằng cách sử dụng các định nghĩa chỉ mục hiện tại của cơ sở dữ liệu của bạn. Xuất không chứa định nghĩa chỉ mục.

  • Nhập không chỉ định ID tài liệu mới. Nhập khẩu sử dụng các ID được thu thập tại thời điểm xuất. Khi một tài liệu đang được nhập, ID của nó được dành riêng để tránh xung đột ID. Nếu một tài liệu có cùng ID đã tồn tại, quá trình nhập sẽ ghi đè 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, nó sẽ vẫn còn trong cơ sở dữ liệu của bạn sau khi nhập.

  • Thao tác nhập không kích hoạt Chức năng đám mây. Trình nghe ảnh chụp nhanh nhận được các cập nhật liên quan đến hoạt động nhập.

Nhập tất cả tài liệu từ một lần xuất

Google Cloud Console

  1. Truy cập trang Nhập / xuất Cloud Firestore trong Google Cloud Platform Console.

    Chuyển đến trang Nhập / Xuất

  2. Nhấp vào Nhập .

  3. Trong trường Tên tệp , hãy nhập tên tệp của tệp .overall_export_metadata từ một thao tác xuất hoàn tất. Bạn có thể sử dụng nút Duyệt để giúp bạn chọn tệp.

  4. Nhấp vào Nhập .

Bảng điều khiển trở lại trang Nhập / Xuất . Nếu thao tác bắt đầu thành công, trang sẽ thêm mục nhập vào trang xuất và nhập gần đây. Khi bị lỗi, 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ừ thao tác xuất trước đó.

gcloud firestore import gs://[BUCKET_NAME]/[EXPORT_PREFIX]/

trong đó [BUCKET_NAME][EXPORT_PREFIX] trỏ đến vị trí của các tệp xuất của bạn. Ví dụ:

gcloud firestore import gs://exports-bucket/2017-05-25T23:54:39_76544/

Bạn có thể xác nhận vị trí của các tệp xuất của mình trong trình duyệt Cloud Storage trong Google Cloud Platform Console:

Mở trình duyệt Cloud Storage

Sau khi bạn bắt đầu thao tác nhập, việc đóng thiết bị đầu cuối không hủy thao tác, hãy xem hủy thao tác .

Nhập các bộ sưu tập cụ thể

Google Cloud Console

Bạn không thể chọn các bộ sưu tập cụ thể trong bảng điều khiển. Sử dụng gcloud để thay thế.

gcloud

Để nhập các nhóm tập hợp cụ thể từ một tập hợp các tệp xuất, hãy sử dụng --collection-ids . Thao tác này chỉ nhập các nhóm thu thập có ID bộ sưu tập đã cho. Nhóm bộ sưu tập bao gồm tất cả các bộ sưu tập và bộ sưu tập con (tại bất kỳ đường dẫn nào) với ID bộ sưu tập được chỉ định.

Chỉ xuất các nhóm thu cụ thể mới hỗ trợ nhập các nhóm thu cụ thể. Bạn không thể nhập các bộ sưu tập cụ thể từ quá trình xuất tất cả các tài liệu.

gcloud firestore import gs://[BUCKET_NAME]/[EXPORT_PREFIX]/ --collection-ids=[COLLECTION_ID_1],[COLLECTION_ID_2]

Quản lý hoạt động xuất nhập khẩu

Sau khi bạn bắt đầu thao tác xuất hoặc nhập, Cloud Firestore sẽ gán cho thao tác một tên duy nhất. Bạn có thể sử dụng tên hoạt động để xóa, hủy hoặc kiểm tra trạng thái hoạt động.

Tên hoạt động được bắt đầu bằng projects/[PROJECT_ID]/databases/(default)/operations/ , ví dụ:

projects/my-project/databases/(default)/operations/ASA1MTAwNDQxNAgadGx1YWZlZAcSeWx0aGdpbi1zYm9qLW5pbWRhEgopEg

Tuy nhiên, bạn có thể bỏ tiền tố khi chỉ định tên hoạt động cho các lệnh describe , canceldelete .

Liệt kê tất cả các hoạt động xuất và nhập

Google Cloud Console

Bạn có thể xem danh sách các hoạt động xuất và nhập gần đây trong trang Nhập / xuất Cloud Firestore của Google Cloud Platform Console.

Chuyển đến trang Nhập / Xuất

gcloud

Sử dụng lệnh operations list để xem tất cả các hoạt động xuất và nhập đang chạy và đã hoàn thành gần đây:

gcloud firestore operations list

Kiểm tra trạng thái hoạt động

Google Cloud Console

Bạn có thể xem trạng thái của hoạt động xuất hoặc nhập gần đây trong trang Nhập / xuất Cloud Firestore của Google Cloud Platform Console.

Chuyển đến trang Nhập / Xuất

gcloud

Sử dụng lệnh operations describe để hiển thị trạng thái của hoạt động 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 hoạt động lâu dài trả về các chỉ số công việc đã workEstimated và công việc đã workCompleted . Mỗi chỉ số này được trả về cả số byte và số thực thể:

  • workEstimated chương trình ước tính tổng số byte và các văn bản một hoạt động sẽ xử lý.

  • workCompleted hiển thị số byte và tài liệu được xử lý cho đến nay. Sau khi thao tác hoàn tất, giá trị hiển thị tổng số byte và tài liệu đã thực sự được xử lý, có thể lớn hơn giá trị của công việc đã workEstimated .

Chia workCompleted bởi workEstimated cho một ước tính tiến bộ gồ ghề. Ước tính này có thể không chính xác, vì nó phụ thuộc vào việc thu thập số liệu thống kê bị trì hoãn.

Hủy một hoạt động

Google Cloud Console

Bạn có thể hủy thao tác xuất hoặc nhập đang chạy trong trang Nhập / xuất Cloud Firestore của Google Cloud Platform Console.

Chuyển đến trang Nhập / Xuất

Trong bảng Nhập và xuất gần đây , các hoạt động hiện đang chạy bao gồm nút Hủy trong cột Đã hoàn thành . Nhấp vào nút Hủy để dừng hoạt động. Nút chuyển thành thông báo Đang hủy và sau đó thành Đã hủy khi hoạt động dừng hoàn toàn.

gcloud

Sử dụng lệnh operations cancel để dừng một hoạt động đang diễn ra:

gcloud firestore operations cancel [OPERATION_NAME]

Hủy một hoạt động đang chạy không hoàn tác hoạt động. Thao tác xuất bị hủy sẽ để lại các tài liệu đã được xuất trong Bộ nhớ đám mây và thao tác nhập bị hủy sẽ để lại 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 bản xuất đã hoàn thành một phần.

Xóa một hoạt động

Sử dụng lệnh gcloud firestore operations delete để xóa một hoạt động khỏi danh sách các hoạt động gần đây. Lệnh này sẽ không xóa các tệp xuất khỏi Cloud Storage.

gcloud firestore operations delete [OPERATION_NAME]

Lập hóa đơn và định giá cho hoạt động xuất khẩu và nhập khẩu

Bạn được yêu cầu bật tính năng thanh toán cho dự án Google Cloud Platform của mình trước khi sử dụng dịch vụ xuất và nhập được quản lý. Các hoạt động xuất và nhập được tính phí cho việc đọc và ghi tài liệu theo tỷ giá được liệt kê trong giá Cloud Firestore .

Chi phí của hoạt động xuất và nhập không được tính vào giới hạn chi tiêu của bạn. Các hoạt động xuất hoặc nhập sẽ không kích hoạt cảnh báo ngân sách Google Cloud Platform của bạn cho đến khi hoàn thành. Tương tự, các thao tác đọc và ghi được thực hiện trong quá trình xuất hoặc nhập được áp dụng cho hạn ngạch hàng ngày của bạn sau khi hoạt động hoàn tất. Các hoạt động xuất và nhập sẽ không ảnh hưởng đến việc sử dụng được hiển thị trong phần sử dụng của bảng điều khiển.

Xem chi phí xuất và nhập

Các hoạt động xuất và nhập áp dụng nhãn goog-firestoremanaged:exportimport cho các hoạt động lập hóa đơn. Trong trang báo cáo Thanh toán qua đám mây , bạn có thể sử dụng nhãn này để xem chi phí liên quan đến hoạt động nhập và xuất:

Truy cập nhãn goog-firestoremanaged từ menu bộ lọc.

Nhật ký kiểm tra

Cloud Firestore viết nhật ký kiểm tra Hoạt động của quản trị viên cho Nhật ký kiểm tra đám mây . Nhật ký kiểm tra Hoạt động quản trị bao gồm hoạt động xuất, hoạt động nhập và hoạt động lập chỉ mục. Để xem nhật ký kiểm tra Hoạt động quản trị cho cơ sở dữ liệu Cloud Firestore của bạn, hãy xem Xem nhật ký kiểm tra .

Nhật ký kiểm tra Hoạt động của quản trị viên Cloud Firestore xuất hiện trong các loại tài nguyên Cloud Datastore Database Cloud Datastore IndexCloud Datastore Index Cloud Datastore Database Cloud Datastore Index . Mặc dù các loại tài nguyên sử dụng tên Cloud Datastore , các mục nhập nhật ký riêng lẻ có chứa một số nhận dạng Cloud Firestore. Cloud Firestore ghi lại các hoạt động sau:

Danh mục nhật ký kiểm tra Hoạt động Cloud Firestore
Hoạt động quản trị FirestoreAdmin.CreateIndex
FirestoreAdmin.DeleteIndex
FirestoreAdmin.ExportDocuments
FirestoreAdmin.GetField
FirestoreAdmin.GetIndex
FirestoreAdmin.ImportDocuments
FirestoreAdmin.ListFields
FirestoreAdmin.ListIndexes
FirestoreAdmin.UpdateField

Xuất sang BigQuery

Bạn có thể tải dữ liệu từ bản xuất Cloud Firestore vào BigQuery, nhưng chỉ khi bạn chỉ định bộ lọc collection-ids bộ collection-ids . Xem Tải dữ liệu từ các bản xuất Cloud Firestore .

Giới hạn cột BigQuery

BigQuery áp đặt giới hạn 10.000 cột trên mỗi bảng. Hoạt động xuất Cloud Firestore tạo ra một lược đồ bảng BigQuery cho mỗi nhóm tập hợp. Trong lược đồ này, mỗi tên trường duy nhất trong một nhóm tập hợp sẽ trở thành một cột lược đồ.

Nếu lược đồ BigQuery của nhóm tập hợp vượt quá 10.000 cột, hoạt động xuất Cloud Firestore sẽ cố gắng duy trì giới hạn cột bằng cách coi các trường bản đồ là byte. Nếu chuyển đổi này mang lại số lượng cột dưới 10.000, bạn có thể tải dữ liệu vào BigQuery, nhưng bạn không thể truy vấn các trường con trong các trường bản đồ. Nếu số cột vẫn vượt quá 10.000, hoạt động xuất sẽ không tạo giản đồ BigQuery cho nhóm thu thập và bạn không thể tải dữ liệu của nhóm đó vào BigQuery.