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ł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.