Chỉ áp dụng cho phiên bản Cloud Firestore Enterprise. |
Trang này mô tả các phương pháp hay nhất khi tải hàng loạt dữ liệu lên Cloud Firestore có khả năng tương thích với MongoDB bằng các công cụ như mongoimport
.
Cloud Firestore là một hệ thống có tính phân tán cao, cung cấp khả năng mở rộng tự động để đáp ứng nhu cầu của doanh nghiệp bạn. Cloud Firestore tự động phân tách và kết hợp dữ liệu của bạn dựa trên tải mà hệ thống nhận được.
Tính năng phân tách dựa trên tải sẽ tự động diễn ra mà không cần cấu hình trước. Hệ thống phân tách dựa trên tải Cloud Firestore có một số đặc điểm quan trọng và riêng biệt so với các cơ sở dữ liệu tài liệu khác mà bạn cần lưu ý khi mô hình hoá dữ liệu.
Bản chất phân tán của Cloud Firestore có thể yêu cầu thay đổi một số lựa chọn thiết kế, đặc biệt là đối với những khối lượng công việc được tối ưu hoá cho cơ sở dữ liệu mà bản sao chính là nút thắt cho tốc độ ghi.
Các phương pháp hay nhất
Những khối lượng công việc xử lý lượng lớn dữ liệu trong một ứng dụng khách đơn luồng có thể tạo ra một nút thắt cổ chai. Các ứng dụng có thể sử dụng một luồng để tải hàng loạt dữ liệu, vì thông lượng của ứng dụng và máy chủ được so khớp tương tự. Cơ sở dữ liệu Cloud Firestore có thể xử lý tính song song nhiều hơn đáng kể, nhưng bạn phải định cấu hình các ứng dụng để gửi yêu cầu song song.
mongoimport
Khi sử dụng công cụ mongoimport
, các yêu cầu sẽ được thực hiện tuần tự theo mặc định.
Để cải thiện thời gian tải vào Cloud Firestore, hãy đặt số lượng worker bằng cờ --numInsertionWorkers
.
Bạn có thể phải điều chỉnh chế độ cài đặt chính xác dựa trên quy mô của ứng dụng khách, nhưng thường thì bạn nên bắt đầu với ít nhất 32
.
lập trình không đồng bộ
Khi phát triển phần mềm của riêng mình bằng cách sử dụng các API tương thích với MongoDB, bạn có thể cải thiện khả năng xử lý song song theo những cách sau:
- Khung không đồng bộ: việc sử dụng khung không đồng bộ cho phép bạn xử lý và phản hồi các yêu cầu song song. Bạn không cần phát triển bất kỳ tính năng gộp nhóm hoặc xếp hàng phức tạp nào khi gọi đến cơ sở dữ liệu. Mỗi luồng yêu cầu có thể sử dụng các kết nối độc lập và thực hiện các lệnh gọi cơ sở dữ liệu song song.
- Sử dụng các dịch vụ điện toán song song: bằng cách sử dụng các dịch vụ như Cloud Run, hệ thống của bạn có thể mở rộng số lượng worker điện toán cần thiết để xử lý dữ liệu.
Lỗi tạm thời
Khi làm việc với một hệ thống phân tán lớn như Cloud Firestore, bạn có thể gặp phải các lỗi tạm thời như sự cố mạng hoặc tranh chấp trên một tài liệu.
Khi tải hàng loạt một lượng lớn thông tin, bạn cần duy trì chiến lược thử lại cho các thao tác ghi không thành công mà không làm hỏng thao tác tải hàng loạt lớn hơn.