tải dữ liệu hàng loạt lên Cloud Firestore bằng các công cụ như mongoimport và
mongorestore.
Cloud Firestore là một hệ thống phân tán cao, có khả năng tự động cấp tài nguyên bổ sung để đáp ứng nhu cầu của doanh nghiệp. 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.
Việc 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 của Cloud Firestore có một số đặc điểm quan trọng và độc đáo so với các cơ sở dữ liệu tài liệu khác mà bạn cần lưu ý khi lập mô hình 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à điểm tắc nghẽn đối với thông lượng ghi.
Các phương pháp hay nhất
Khối lượng công việc xử lý lượng dữ liệu lớn trong một ứng dụng khách đơn luồng có thể tạo ra điểm tắc nghẽn. Ứng dụng có thể sử dụng một luồng để tải dữ liệu hàng loạt, vì thông lượng của ứng dụng và máy chủ tương đương nhau. Cơ sở dữ liệu Cloud Firestore có thể xử lý nhiều hoạt động song song hơn đáng kể, nhưng điều này yêu cầu bạn phải định cấu hình ứ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ể cần điều chỉnh chế độ cài đặt chính xác dựa trên quy mô của ứng dụng.
mongorestore
Khi sử dụng công cụ mongorestore, hãy xoá tham số retryWrites=false khỏi chuỗi kết nối để cải thiện khả năng phục hồi sau các lỗi tạm thời.
Để cải thiện thời gian tải vào Cloud Firestore, bạn cũng có thể tăng số lượng trình thực thi chèn cho mỗi tập hợp bằng cờ --numInsertionWorkersPerCollection và số lượng tập hợp song song bằng cờ --numParallelCollections. Bạn có thể cần điều chỉnh chế độ cài đặt chính xác dựa trên quy mô của ứng dụng.
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ác thao tác tương thích với MongoDB, bạn có thể cải thiện tính 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ỳ cơ chế gộp hoặc xếp hàng phức tạp nào khi thực hiện lệnh 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: khi sử dụng các dịch vụ như Cloud Run, hệ thống của bạn có thể điều chỉnh số lượng trình thực thi tính 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, chẳng hạn như lỗi mạng hoặc tranh chấp trên một tài liệu.
Khi tải lượng lớn thông tin cùng lúc, bạn cần duy trì chiến lược thử lại cho các lượt ghi không thành công mà không làm hỏng thao tác tải lượng lớn thông tin cùng lúc.