Udostępnij za pośrednictwem


Najlepsze rozwiązania dotyczące zestawu PYTHON SDK w usłudze Azure Cosmos DB for NoSQL

DOTYCZY: NoSQL

Ten przewodnik zawiera najlepsze rozwiązania dotyczące rozwiązań utworzonych przy użyciu najnowszej wersji zestawu SDK języka Python dla usługi Azure Cosmos DB for NoSQL. Najlepsze rozwiązania zawarte w tym miejscu pomagają poprawić opóźnienia, zwiększyć dostępność i zwiększyć ogólną wydajność rozwiązań.

Konfiguracja konta

  • Pamiętaj, aby uruchomić aplikację w tym samym regionie świadczenia usługi Azure co konto usługi Azure Cosmos DB, jeśli to możliwe, aby zmniejszyć opóźnienie. Włącz replikację w 2+ regionach na kontach, aby uzyskać najlepszą dostępność. W przypadku obciążeń produkcyjnych włącz tryb failover zarządzany przez usługę. W przypadku braku tej konfiguracji konto doświadcza utraty dostępności zapisu przez cały czas trwania awarii regionu zapisu, ponieważ ręczne przejście w tryb failover nie może zakończyć się powodzeniem z powodu braku łączności z regionem. Aby uzyskać więcej informacji na temat dodawania wielu regionów przy użyciu zestawu SDK języka Python, zobacz samouczek dotyczący dystrybucji globalnej.

SDK usage (Użycie zestawu SDK)

  • Zawsze używaj najnowszej wersji zestawu SDK usługi Azure Cosmos DB dostępnej w celu uzyskania optymalnej wydajności.
  • Użyj pojedynczego CosmosClient wystąpienia dla okresu istnienia aplikacji, aby uzyskać lepszą wydajność.
  • Ustaw konfigurację preferred_locations na kliencie usługi Cosmos. Podczas pracy w trybie failover operacje zapisu są wysyłane do bieżącego regionu zapisu, a wszystkie operacje odczytu są wysyłane do pierwszego regionu na liście preferowanych lokalizacji. Aby uzyskać więcej informacji na temat regionalnej mechaniki trybu failover, zobacz rozwiązywanie problemów z dostępnością.
  • Błąd przejściowy to błąd, który ma podstawową przyczynę, która wkrótce się rozwiąże. Aplikacje łączące się z bazą danych powinny być tworzone w taki sposób, aby spodziewały się tych przejściowych błędów. Aby je obsłużyć, zaimplementuj logikę ponawiania prób w kodzie zamiast nadawać je użytkownikom jako błędy aplikacji. Zestaw SDK ma wbudowaną logikę do obsługi tych przejściowych niepowodzeń dotyczących żądań możliwych do ponawiania, takich jak operacje odczytu lub zapytań. Zestaw SDK nie może ponowić próby zapisu w przypadku błędów przejściowych, ponieważ zapisy nie są idempotentne. Zestaw SDK umożliwia użytkownikom konfigurowanie logiki ponawiania prób dla ograniczania przepustowości. Aby uzyskać szczegółowe informacje na temat błędów, które należy ponowić, odwiedź tutaj.
  • Rejestrowanie zestawu SDK umożliwia przechwytywanie informacji diagnostycznych i rozwiązywanie problemów z opóźnieniami.

Projekt danych

  • Opłata za żądanie określonej operacji jest skorelowana bezpośrednio z rozmiarem dokumentu. Zalecamy zmniejszenie rozmiaru dokumentów, ponieważ operacje na dużych dokumentach kosztują więcej niż operacje na mniejszych dokumentach.
  • Niektóre znaki są ograniczone i nie można ich używać w niektórych identyfikatorach: '/', '\', '?', '#'. Ogólne zalecenie polega na tym, aby nie używać żadnych znaków specjalnych w identyfikatorach, takich jak nazwa bazy danych, nazwa kolekcji, identyfikator elementu lub klucz partycji, aby uniknąć nieoczekiwanego zachowania.
  • Zasady indeksowania usługi Azure Cosmos DB umożliwiają również określenie ścieżek dokumentów do uwzględnienia lub wykluczenia z indeksowania przy użyciu ścieżek indeksowania. Upewnij się, że nieużywane ścieżki zostały wykluczone z indeksowania w celu szybszego zapisu. Aby uzyskać więcej informacji, zobacz tworzenie indeksów przy użyciu przykładu zestawu SDK.

Charakterystyka hosta

  • Problemy z łącznością/dostępnością mogą wystąpić z powodu braku zasobów na maszynie klienckiej. Monitoruj użycie procesora CPU na węzłach z uruchomionym klientem usługi Azure Cosmos DB i skaluj w górę/w poziomie, jeśli użycie jest wysokie.
  • Jeśli używasz maszyny wirtualnej do uruchamiania aplikacji, włącz przyspieszoną sieć na maszynie wirtualnej, aby pomóc w wąskich gardłach z powodu dużego ruchu i zmniejszyć opóźnienia lub zakłócenia procesora CPU. Warto również rozważyć użycie wyższej maszyny wirtualnej, w której maksymalne użycie procesora CPU wynosi poniżej 70%.
  • Domyślnie wyniki zapytania są zwracane we fragmentach 100 elementów lub 4 MB, w zależności od tego, który limit zostanie osiągnięty jako pierwszy. Jeśli zapytanie zwraca więcej niż 100 elementów, zwiększ rozmiar strony, aby zmniejszyć liczbę wymaganych rund. Zużycie pamięci zwiększa się wraz ze wzrostem rozmiaru strony.

Następne kroki

Aby dowiedzieć się więcej na temat wskazówek dotyczących wydajności zestawu SDK języka Python, zobacz Porady dotyczące wydajności zestawu SDK języka Python usługi Azure Cosmos DB.

Aby dowiedzieć się więcej na temat projektowania aplikacji pod kątem skalowania i wysokiej wydajności, zobacz Partycjonowanie i skalowanie w usłudze Azure Cosmos DB.

Próbujesz zaplanować pojemność migracji do usługi Azure Cosmos DB? Informacje o istniejącym klastrze bazy danych można użyć do planowania pojemności.