Sprawdzone metody zbiorczego wczytywania danych

Na tej stronie opisujemy sprawdzone metody zbiorczego wczytywania danych do Cloud Firestore za pomocą narzędzi takich jak mongoimport.

Cloud Firestore to wysoce rozproszony system, który automatycznie skaluje się, aby zaspokajać potrzeby Twojej firmy. Cloud Firestore dynamicznie dzieli i łączy dane na podstawie obciążenia systemu.

Dzielenie na podstawie obciążenia odbywa się automatycznie i nie wymaga wstępnej konfiguracji. System dzielenia na podstawie obciążenia w Cloud Firestore ma kilka ważnych, unikalnych cech w porównaniu z innymi bazami danych dokumentów, o których należy pamiętać podczas modelowania danych.

Rozproszony charakter Cloud Firestore może wymagać zmiany niektórych decyzji projektowych szczególnie w przypadku obciążeń 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 kliencie jednowątkowym, mogą powodować wąskie gardło. Klienci mogą używać jednowątkowości do zbiorczego wczytywania danych, ponieważ przepustowość klienta i serwera jest podobna. Baza danych Cloud Firestore może obsługiwać znacznie więcej równoległości, ale wymaga to skonfigurowania klientów do wysyłania żądań 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 do rozmiaru klienta, ale ogólnie zalecamy rozpoczęcie od co najmniej 32.

Programowanie asynchroniczne

Podczas tworzenia własnego oprogramowania przy użyciu operacji zgodnych z MongoDB możesz zwiększyć równoległość w te sposoby:

  • Frameworki asynchroniczne: używanie frameworków asynchronicznych umożliwia równoległe przetwarzanie żądań i odpowiadanie na nie. Podczas wywoływania bazy danych nie trzeba tworzyć złożonych pul ani kolejek. Każdy przepływ żądań może używać niezależnych połączeń i równolegle wywoływać bazę danych.
  • Korzystanie z ofert obliczeniowych równoległych: 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, mogą wystąpić błędy przejściowe, np. problemy z siecią lub konflikty dotyczące dokumentu.

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.