masowe wczytywanie danych do Cloud Firestore za pomocą narzędzi takich jak mongoimport i mongorestore.
Cloud Firestore to system o wysokim stopniu rozproszenia, który oferuje automatyczne skalowanie, aby zaspokajać potrzeby Twojej firmy. Cloud Firestore dynamicznie dzieli i łączy dane na podstawie obciążenia systemu.
Podział na podstawie obciążenia odbywa się automatycznie bez konieczności wstępnej konfiguracji. System podziału oparty na obciążeniu Cloud Firestore ma pewne ważne, unikalne cechy w porównaniu z innymi bazami danych dokumentów, o których warto pamiętać podczas modelowania danych.
Cloud Firestorerozproszony charakter może wymagać zmiany niektórych wyborów projektowych, zwłaszcza w przypadku zadań zoptymalizowanych pod kątem baz danych, w których główna replika jest wąskim gardłem przepustowości zapisu.
Sprawdzone metody
Obciążenia, które przetwarzają duże ilości danych w jednowątkowym kliencie, mogą tworzyć wąskie gardło. Klienci mogą używać pojedynczego wątku do zbiorczego wczytywania danych, ponieważ przepustowość klienta i serwera jest podobna. Baza danych A Cloud Firestore może obsługiwać znacznie większą liczbę równoległych operacji, ale wymaga to skonfigurowania klientów tak, aby wysyłali żądania równolegle.
mongoimport
Gdy używasz narzędzia mongoimport, żądania są domyślnie wysyłane sekwencyjnie. Aby skrócić czas wczytywania do Cloud Firestore, ustaw liczbę instancji roboczych za pomocą flagi --numInsertionWorkers. Prawidłowe ustawienie może wymagać dostosowania w zależności od rozmiaru klienta.
mongorestore
Podczas korzystania z narzędzia mongorestore usuń parametr retryWrites=false z ciągu znaków połączenia, aby zwiększyć odporność na przejściowe awarie.
Aby skrócić czas wczytywania do Cloud Firestore, możesz też zwiększyć liczbę instancji roboczych wstawiania w kolekcji za pomocą flagi --numInsertionWorkersPerCollection oraz liczbę równoległych kolekcji za pomocą flagi --numParallelCollections. Prawidłowe ustawienia mogą wymagać dostosowania w zależności od rozmiaru klienta.
programowanie asynchroniczne,
Podczas tworzenia własnego oprogramowania przy użyciu operacji zgodnych z MongoDB możesz zwiększyć równoległość w ten sposób:
- Platformy asynchroniczne: korzystanie z platform asynchronicznych umożliwia równoległe przetwarzanie żądań i odpowiadanie na nie. Podczas wywoływania bazy danych nie trzeba tworzyć żadnych złożonych pul ani kolejek. Każdy przepływ żądań może korzystać z niezależnych połączeń i wykonywać wywołania bazy danych równolegle.
- Korzystaj z oferowanych usług obliczeniowych z równoległym przetwarzaniem danych: dzięki usługom takim jak Cloud Run Twój system może skalować liczbę pracowników obliczeniowych potrzebnych do przetwarzania danych.
Przejściowe błędy
Podczas pracy z dużym systemem rozproszonym, takim jak Cloud Firestore, mogą wystąpić przejściowe błędy, np. problemy z siecią lub konflikty w dokumencie.
Podczas zbiorczego wczytywania dużych ilości informacji ważne jest, aby zachować strategię ponawiania nieudanych zapisów bez przerywania większej operacji zbiorczego wczytywania.