Sprawdzone metody zbiorczego wczytywania danych

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łużyć znacznie więcej równoległych żądań, 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

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.