DynamoDB - indeksy
DynamoDB używa indeksów dla atrybutów klucza podstawowego, aby poprawić dostęp. Przyspieszają dostęp do aplikacji i pobieranie danych oraz wspierają lepszą wydajność, zmniejszając opóźnienia aplikacji.
Indeks pomocniczy
Indeks pomocniczy zawiera podzbiór atrybutów i klucz alternatywny. Używa się go za pomocą zapytania lub operacji skanowania, której celem jest indeks.
Jego zawartość obejmuje atrybuty, które projektujesz lub kopiujesz. Podczas tworzenia definiujesz alternatywny klucz dla indeksu i wszelkie atrybuty, które chcesz wyświetlać w indeksie. Następnie DynamoDB wykonuje kopię atrybutów do indeksu, w tym atrybuty klucza podstawowego pobrane z tabeli. Po wykonaniu tych zadań po prostu używasz zapytania / skanowania tak, jakbyś wykonywał na stole.
DynamoDB automatycznie utrzymuje wszystkie indeksy wtórne. W przypadku operacji na elementach, takich jak dodawanie lub usuwanie, aktualizuje wszelkie indeksy w tabeli docelowej.
DynamoDB oferuje dwa typy indeksów pomocniczych -
Global Secondary Index- Ten indeks zawiera klucz partycji i klucz sortowania, które mogą różnić się od tabeli źródłowej. Używa etykiety „globalny” ze względu na zdolność zapytań / skanów w indeksie do obejmowania wszystkich danych tabeli i wszystkich partycji.
Local Secondary Index- Ten indeks współdzieli klucz partycji z tabelą, ale używa innego klucza sortowania. Jego „lokalny” charakter wynika z tego, że wszystkie jego partycje obejmują zakres partycji tabeli o identycznej wartości klucza partycji.
Najlepszy typ indeksu do użycia zależy od potrzeb aplikacji. Rozważ różnice między nimi przedstawione w poniższej tabeli -
Jakość | Globalny indeks wtórny | Lokalny indeks pomocniczy |
---|---|---|
Schemat klucza | Używa prostego lub złożonego klucza podstawowego. | Zawsze używa złożonego klucza podstawowego. |
Kluczowe cechy | Klucz partycji indeksu i klucz sortowania mogą składać się z łańcuchów, liczb lub atrybutów tabeli binarnej. | Klucz partycji indeksu jest atrybutem współdzielonym z kluczem partycji tabeli. Klucz sortowania może być ciągiem, liczbą lub atrybutami tabeli binarnej. |
Limity rozmiaru na wartość klucza partycji | Nie mają ograniczeń rozmiaru. | Nakłada maksymalny limit 10 GB na całkowity rozmiar indeksowanych elementów skojarzonych z wartością klucza partycji. |
Operacje na indeksach online | Możesz je odrodzić podczas tworzenia stołu, dodać je do istniejących tabel lub usunąć istniejące. | Musisz je utworzyć podczas tworzenia tabeli, ale nie możesz ich usunąć ani dodać do istniejących tabel. |
Zapytania | Pozwala na zapytania obejmujące całą tabelę i każdą partycję. | Adresują pojedyncze partycje za pomocą wartości klucza partycji podanej w zapytaniu. |
Konsystencja | Zapytania o te indeksy oferują tylko ostatecznie spójną opcję. | Zapytania te oferują opcje ostatecznie spójne lub zdecydowanie spójne. |
Koszt przepustowości | Obejmuje ustawienia przepustowości dla odczytów i zapisów. Zapytania / skany zajmują pojemność indeksu, a nie tabeli, co dotyczy również aktualizacji zapisu tabeli. | Zapytania / skany zajmują pojemność odczytu tabeli. Zapisywanie w tabeli aktualizuje indeksy lokalne i zużywa jednostki pojemności tabeli. |
Występ | Zapytania / skany mogą żądać tylko atrybutów rzutowanych do indeksu, bez pobierania atrybutów tabeli. | Zapytania / skany mogą żądać tych atrybutów, które nie są rzutowane; ponadto następuje automatyczne ich pobieranie. |
Tworząc wiele tabel z indeksami pomocniczymi, rób to sekwencyjnie; co oznacza utworzenie tabeli i czekanie, aż osiągnie stan AKTYWNY przed utworzeniem kolejnej i ponownym czekaniem. DynamoDB nie zezwala na jednoczesne tworzenie.
Każdy indeks dodatkowy wymaga określonych specyfikacji -
Type - Określ lokalny lub globalny.
Name - Używa reguł nazewnictwa identycznych jak tabele.
Key Schema - Dozwolone są tylko ciągi, liczby lub typy binarne najwyższego poziomu, a inne wymagania są określane przez typ indeksu.
Attributes for Projection - DynamoDB automatycznie je wyświetla i zezwala na dowolny typ danych.
Throughput - Określ pojemność odczytu / zapisu dla globalnych indeksów pomocniczych.
Limit indeksów wynosi 5 globalnych i 5 lokalnych na tabelę.
Możesz uzyskać dostęp do szczegółowych informacji o indeksach za pomocą DescribeTable. Zwraca nazwę, rozmiar i liczbę przedmiotów.
Note - Te wartości są aktualizowane co 6 godzin.
W zapytaniach lub skanach używanych w celu uzyskania dostępu do danych indeksu podaj nazwy tabeli i indeksu, żądane atrybuty wyniku oraz wszelkie instrukcje warunkowe. DynamoDB oferuje opcję zwracania wyników w porządku rosnącym lub malejącym.
Note - Usunięcie tabeli powoduje również usunięcie wszystkich indeksów.