Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Scalanie partycji w usłudze Azure Cosmos DB (wersja zapoznawcza) pozwala zmniejszyć liczbę fizycznych partycji używanych bezpośrednio dla kontenera. W przypadku scalania kontenery podzielone na przepływność (mają niską wartość RU/s na partycję) lub magazyn (z małą ilością miejsca na partycję) mogą mieć przerobione partycje fizyczne. Jeśli przepustowość kontenera została zwiększona i powinna być zmniejszona, scalanie może pomóc w rozwiązaniu problemów z fragmentacją przepustowości. W przypadku tej samej liczby aprowizowanych jednostek RU/s mniejsza liczba partycji fizycznych oznacza, że każda partycja fizyczna uzyskuje więcej ogólnej liczby jednostek RU/s. Minimalizacja partycji zmniejsza prawdopodobieństwo ograniczenia szybkości, jeśli duża ilość danych zostanie usunięta z kontenera, a liczba jednostek RU/s na partycję jest niska. Scalanie może pomóc w wyczyszczeniu nieużywanych lub pustych partycji, co skutecznie rozwiązuje problemy z fragmentacją przechowywania.
Wprowadzenie
Aby rozpocząć korzystanie ze scalania partycji, przejdź do strony Funkcje na koncie usługi Azure Cosmos DB. Wybierz i włącz Funkcję Scalanie partycji (wersja zapoznawcza).
Przed włączeniem funkcji sprawdź, czy twoje konta usługi Azure Cosmos DB spełniają wszystkie kryteria uprawnień do wersji zapoznawczej. Po włączeniu tej funkcji może upłynąć 15–20 minut.
Uwaga
Po włączeniu scalania na koncie dozwolone będą tylko żądania z zestawu .NET SDK w wersji >= 3.27.0, zestawu Java SDK >= 4.42.0, konektora Spark usługi Azure Cosmos DB >= 4.18.0 lub zestawu JavaScript SDK >= 4.3, niezależnie od tego, czy scalania są w toku, czy nie. Żądania z innych zestawów SDK (starszych zestawów SDK platformy .NET, starszego zestawu Java SDK, starszego zestawu SDK języka JavaScript, dowolnego zestawu SDK języka Python, dowolnego zestawu SDK języka Go) lub nieobsługiwanych łączników (Azure Data Factory, Azure Search i rozszerzenie usługi Azure Functions = 3.x) zostaną zablokowane i zakończą się niepowodzeniem. Przed włączeniem tej funkcji upewnij się, że zostało przeprowadzone uaktualnienie do obsługiwanej wersji zestawu SDK. Po włączeniu lub wyłączeniu funkcji może upłynąć 15–20 minut, zanim zmiany w pełni zaktualizują się na koncie. Jeśli planujesz wyłączyć tę funkcję, gdy przestaniesz z niej korzystać, może upłynąć 15–20 minut, zanim żądania z zestawów SDK i łączników, które nie są obsługiwane w przypadku scalania, staną się dozwolone.
Aby sprawdzić, czy konto usługi Azure Cosmos DB kwalifikuje się do korzystania z wersji zapoznawczej, możesz użyć wbudowanego sprawdzania uprawnień w witrynie Azure Portal. Na stronie przeglądu konta usługi Azure Cosmos DB w portalu Azure przejdź do pozycji Diagnozowanie i rozwiązywanie problemów —> Przepustowość i Skalowanie —> Scalanie partycji. Uruchom diagnostykę sprawdź uprawnienia do scalania partycji w wersji zapoznawczej .
Jak identyfikować kontenery do scalania
Kontenery spełniające oba te warunki mogą korzystać z scalania partycji:
- Warunek 1: Bieżąca liczba jednostek RU/s na partycję fizyczną wynosi <3000 RU/s
- Warunek 2: Bieżący średni magazyn w GB na partycję fizyczną wynosi <20 GB
Warunek 1 często występuje, gdy wcześniej skalowano w górę ru/s (często w przypadku pozyskiwania danych), a teraz chcesz skalować w dół w stanie stałym. Warunek 2 często występuje, gdy usuwasz/TTL dużą ilość danych, pozostawiając nieużywane partycje.
Warunek 1
Aby określić bieżące RU/s na partycję fizyczną, na koncie usługi Cosmos przejdź do Metryki. Wybierz metrykę Przepustowość partycji fizycznej i przefiltruj do swojej bazy danych i kontenera. Zastosuj dzielenie według identyfikatora PhysicalPartitionId.
W przypadku kontenerów korzystających z automatycznego skalowania ta metryka przedstawia maksymalną liczbę jednostek RU/s obecnie przydzielaną na każdej partycji fizycznej. W przypadku kontenerów korzystających z przepływności ręcznej ta metryka przedstawia ręczną jednostkę RU/s na każdej partycji fizycznej.
W poniższym przykładzie mamy kontener z automatycznym skalowaniem zaprojektowany na 5000 RU/s (skaluje się między 500 a 5000 RU/s). Ma pięć partycji fizycznych, a każda partycja fizyczna ma 1000 RU/s.
Warunek 2
Aby określić bieżący średni magazyn na partycję fizyczną, najpierw znajdź ogólny magazyn (dane i indeks) kontenera.
Przejdź do Statystki>Magazyn>Wykorzystanie danych i indeksu. Łączna ilość miejsca do magazynowania to suma użycia danych i indeksów. W poniższym przykładzie kontener ma łącznie 74 GB miejsca do magazynowania.
Następnie znajdź łączną liczbę partycji fizycznych. Ta metryka to liczba unikalnych identyfikatorów PhysicalPartitionIds na wykresie PhysicalPartitionThroughput, widzianym w warunku 1. W naszym przykładzie mamy pięć partycji fizycznych.
Na koniec oblicz: łączna ilość miejsca do magazynowania w GB/liczba partycji fizycznych. W naszym przykładzie mamy średnio (74 GB / pięć partycji fizycznych) = 14,8 GB na partycję fizyczną.
Na podstawie warunków 1 i 2 nasz kontener może skorzystać z łączenia partycji.
Scalanie partycji fizycznych
W programie PowerShell po przekazaniu flagi -WhatIf usługa Azure Cosmos DB uruchamia symulację i zwraca oczekiwany wynik scalania. Ten wynik jest zwracany pomimo tego, że scalanie nie zostało uruchomione. Gdy flaga nie zostanie przekazana, scalanie jest wykonywane względem zasobu. Po zakończeniu polecenie zwraca bieżącą ilość miejsca do magazynowania w KB na partycję fizyczną po scaleniu.
Napiwek
Przed uruchomieniem scalania zaleca się ustawienie aprowizowania jednostek RU/s (ręcznie ru/s lub autoskalowanie maksymalne RU/s) możliwie najbliżej żądanego stanu stałego RU/s po scaleniu, aby zapewnić, że system oblicza wydajny układ partycji.
Użyj Install-Module polecenia , aby zainstalować moduł Az.CosmosDB z włączonymi funkcjami wersji wstępnej.
$parameters = @{
Name = "Az.CosmosDB"
AllowPrerelease = $true
Force = $true
}
Install-Module @parameters
W przypadku kontenerów aprowizowanej przepływności użyj Invoke-AzCosmosDBSqlContainerMerge parametru -WhatIf , aby wyświetlić podgląd scalania bez faktycznego wykonania operacji.
$parameters = @{
ResourceGroupName = "<resource-group-name>"
AccountName = "<cosmos-account-name>"
DatabaseName = "<cosmos-database-name>"
Name = "<cosmos-container-name>"
WhatIf = $true
}
Invoke-AzCosmosDBSqlContainerMerge @parameters
Uruchom scalanie, uruchamiając to samo polecenie bez parametru -WhatIf .
$parameters = @{
ResourceGroupName = "<resource-group-name>"
AccountName = "<cosmos-account-name>"
DatabaseName = "<cosmos-database-name>"
Name = "<cosmos-container-name>"
}
Invoke-AzCosmosDBSqlContainerMerge @parameters
W przypadku baz danych o współdzielonej przepustowości, uruchom scalanie używając az cosmosdb mongodb database merge.
az cosmosdb mongodb database merge \
--account-name '<cosmos-account-name>'
--name '<cosmos-database-name>'
--resource-group '<resource-group-name>'
Monitorowanie operacji scalania
Scalanie partycji jest operacją, która trwa długo i nie ma określonego poziomu gwarancji dotyczącego czasu jej zakończenia. Czas zależy od ilości danych w kontenerze i liczby partycji fizycznych. Zaleca się, aby przeznaczyć co najmniej 5–6 godzin na zakończenie procesu scalania.
Podczas gdy operacja scalania partycji jest uruchomiona w kontenerze, zmiana ustawień kontenera (TTL, zasady indeksowania, unikatowe klucze itp.) spowoduje anulowanie bieżącej operacji scalania. Jeśli zwiększysz liczbę jednostek RU/s podczas scalania, bieżąca operacja scalania zostanie anulowana i liczba jednostek RU/s kontenera zostanie zaktualizowana o nową wartość. W zależności od żądanych jednostek RU/s skalowanie w górę może być natychmiastowe lub trwać dłużej. Jeśli zmniejszysz liczbę jednostek RU/s podczas scalania, jednostka RU/s zostanie natychmiast zaktualizowana do nowych jednostek RU/s. Scalanie w toku będzie kontynuowane, utrzymując tę samą liczbę partycji docelowych na podstawie jednostek RU/s ustawionych w momencie zainicjowania scalania. Najlepszym rozwiązaniem jest oczekiwanie na zakończenie operacji scalania przed zmianą ustawień kontenera lub przepływności.
Możesz śledzić, czy fizyczne scalanie jest nadal w toku, sprawdzając dziennik aktywności i filtrując zdarzenia Scal fizyczne partycje kolekcji MongoDB lub Scal fizyczne partycje kontenera SQL.
Ograniczenia
Poniżej przedstawiono ograniczenia funkcji scalania w tej chwili.
Kryteria uprawnień wersji zapoznawczej
Aby zarejestrować się w wersji zapoznawczej, konto usługi Azure Cosmos DB musi spełniać wszystkie następujące kryteria:
- Twoje konto usługi Azure Cosmos DB używa interfejsu API dla bazy danych NoSQL lub Bazy danych MongoDB w wersji >=3.6.
- Konto usługi Azure Cosmos DB korzysta z aprowizowanej przepływności (ręcznej lub skalowanej automatycznie). Scalanie nie ma zastosowania do kont bezserwerowych.
- Twoje konto usługi Azure Cosmos DB jest kontem regionu pojedynczego zapisu (scalanie nie jest obecnie obsługiwane w przypadku kont zapisu w wielu regionach).
- Twoje konto usługi Azure Cosmos DB nie używa żadnych z następujących funkcji:
- Przywracanie do określonego momentu
- Klucze zarządzane przez klienta
- Magazyn analityczny dla usługi Synapse Link (przestarzałe)
- Jeśli używasz interfejsu API dla NoSQL, twoja aplikacja musi korzystać z Azure Cosmos DB .NET SDK w wersji 3 (wersja 3.27.0 lub nowsza), Java SDK v4 (wersja 4.42.0 lub nowsza) lub JavaScript SDK w wersji 4 (wersja 4.3.0 lub nowsza). Po włączeniu podglądu scalania na twoim koncie konto nie akceptuje żądań wysyłanych z zestawów SDK innych niż .NET/Java ani starszych wersji zestawu SDK platformy .NET/Java.
- Używanie tej funkcji z interfejsem API dla usługi MongoDB nie wiąże się z żadnymi wymaganiami dotyczącymi zestawu SDK i sterowników.
- Twoje konto usługi Azure Cosmos DB nie używa obecnie nieobsługiwanych łączników:
- Azure Data Factory
- Rozszerzenie <usługi Azure Functions = 3.x (obsługiwane jest rozszerzenie usługi Azure Functions w wersji 4.0 i nowszej)
- Łącze usługi Azure Cosmos DB platformy Spark < 4.18.0
- Dowolna biblioteka lub narzędzie innej firmy, które ma zależność od zestawu SDK usługi Azure Cosmos DB, który nie jest zestawem .NET v3 SDK >= v3.27.0 lub Java v4 SDK >= 4.42.0 lub JavaScript v4 SDK >= 4.3.0
Zasoby i konfiguracja konta
- Scalanie jest dostępne tylko dla kont API baz danych NoSQL i MongoDB. W przypadku kont API dla MongoDB, wersja konta MongoDB musi być 3.6 lub nowsza.
- Scalanie jest dostępne tylko dla kont zapisu w jednym regionie. Obsługa konta zapisu w wielu regionach jest niedostępna.
- Konta korzystające z funkcji scalania nie mogą również używać tych funkcji (jeśli te funkcje są dodawane do konta włączonego scalania, konto nie może scalić zasobów):
- Przywracanie do określonego momentu
- Klucze zarządzane przez klienta
- Magazyn analityczny dla usługi Synapse Link (przestarzałe)
- Po scaleniu kontenera nie można odczytać zestawienia zmian z czasem rozpoczęcia. Obsługa tej funkcji jest planowana na przyszłość.
Wymagania dotyczące zestawu SDK (tylko interfejs API dla noSQL)
Konta z włączoną funkcją scalania są obsługiwane tylko wtedy, gdy używasz najnowszej wersji zestawu SDK platformy .NET w wersji 3 lub zestawu JAVA v4 SDK. Po włączeniu funkcji na koncie (niezależnie od tego, czy uruchamiasz scalanie), musisz użyć tylko obsługiwanego zestawu SDK przy użyciu konta. Żądania wysyłane z innych zestawów SDK lub wcześniejszych wersji nie są akceptowane. Jeśli używasz obsługiwanego zestawu SDK, aplikacja może nadal działać, gdy scalanie trwa.
Znajdź najnowszą wersję obsługiwanego zestawu SDK:
| SDK | Obsługiwane wersje | Link menedżera pakietów |
|---|---|---|
| .NET SDK wersja 3 | >= 3.27.0 | https://www.nuget.org/packages/Microsoft.Azure.Cosmos |
| Zestaw Java SDK w wersji 4 | >= 4.42.0 | https://mvnrepository.com/artifact/com.azure/azure-cosmos |
Obsługa innych zestawów SDK jest planowana na przyszłość.
Napiwek
Upewnij się, że Twoja aplikacja została zaktualizowana do zgodnej wersji zestawu SDK przed zarejestrowaniem się w wersji zapoznawczej. Jeśli używasz starszego zestawu SDK, postępuj zgodnie z odpowiednim przewodnikiem migracji:
- Starszy SDK .NET w wersji 2: przewodnik migracji SDK .NET w wersji 3
- Starszy zestaw JAVA v3 SDK: Przewodnik migracji zestawu Java SDK w wersji 4
Nieobsługiwane łączniki
Jeśli zarejestrujesz się w wersji zapoznawczej, następujące łączniki nie będą działać.
- Azure Data Factory ¹
- Rozszerzenie <usługi Azure Functions = 3.x (rozszerzenie usługi Azure Functions w wersji 4.0 lub nowszej jest obsługiwane) ¹
- Łącze usługi Azure Cosmos DB platformy Spark < 4.18.0
- Dowolna biblioteka lub narzędzie innej firmy, które ma zależność od zestawu SDK usługi Azure Cosmos DB, który nie jest zestawem SDK platformy .NET w wersji 3.27.0 >lub java w wersji 4 >= 4.42.0
¹ Obsługa tych łączników jest planowana na przyszłość.
Następne kroki
- Dowiedz się więcej o korzystaniu z interfejsu wiersza polecenia platformy Azure z usługą Azure Cosmos DB.
- Dowiedz się więcej o korzystaniu z programu Azure PowerShell z usługą Azure Cosmos DB.
- Dowiedz się więcej na temat partycjonowania w usłudze Azure Cosmos DB.