zbiorcze wczytywanie danych do Cloud Firestore za pomocą narzędzi takich jak mongoimport i mongorestore.
Cloud Firestore to wysoce rozproszony system, który oferuje automatyczne skalowanie, aby zaspokoić 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 na podstawie obciążenia w Cloud Firestore ma pewne ważne, unikalne cechy w porównaniu z innymi bazami danych dokumentów, o których należy pamiętać podczas modelowania danych.
Rozproszony charakter usługi Cloud Firestore może wymagać zmiany niektórych decyzji projektowych, zwłaszcza w przypadku zadań, które zostały zoptymalizowane pod kątem baz danych, w których replika podstawowa jest wąskim gardłem dla przepustowości zapisu.
Sprawdzone metody
Zadania, które przetwarzają duże ilości danych w kliencie jednowątkowym, 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 Cloud Firestore może obsługiwać znacznie więcej równoległych operacji, ale wymaga to skonfigurowania klientów do równoległego wysyłania żądań.
mongoimport
Podczas korzystania z 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
Jeśli używasz narzędzia mongorestore, usuń parametr retryWrites=false z ciągu znaków połączenia, aby zwiększyć odporność na błędy przejściowe.
Aby skrócić czas wczytywania do Cloud Firestore, możesz też zwiększyć liczbę instancji roboczych wstawiania na kolekcję 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ść na te sposoby:
- Platformy asynchroniczne: korzystanie z platform asynchronicznych umożliwia równoległe przetwarzanie żądań i odpowiadanie na nie. Nie trzeba tworzyć żadnych skomplikowanych pul ani kolejek podczas wykonywania wywołań do bazy danych. Każdy przepływ żądań może używać niezależnych połączeń i wykonywać wywołania bazy danych równolegle.
- Korzystanie z równoległych usług obliczeniowych: dzięki usługom takim jak Cloud Run system może skalować liczbę instancji roboczych wymaganych do przetwarzania danych.
Błędy przejściowe
Podczas pracy z dużym systemem rozproszonym, takim jak Cloud Firestore, możesz napotkać błędy przejściowe, takie jak zakłócenia sieci lub rywalizacja o dokument.
Podczas zbiorczego wczytywania dużych ilości informacji ważne jest, aby zachować strategię ponawiania prób w przypadku nieudanych zapisów bez niepowodzenia większej operacji zbiorczego wczytywania.