Paginacja DynamoDB: przegląd, przypadki użycia i przykłady

Paginacja Dynamodb Przeglad Przypadki Uzycia I Przyklady



Zarządzanie dużymi ilościami danych może być trudnym zadaniem dla menedżerów danych, zwłaszcza jeśli zapytanie lub wyniki skanowania obejmują wiele stron. Podział na strony w DynamoDB umożliwia bazie danych obsługę dużych ilości danych poprzez podzielenie wyników na wiele możliwych do zarządzania stron. Ten artykuł wyjaśnia paginację DynamoDB i przedstawia różne możliwe przypadki użycia oraz przykłady. Pokazuje również, w jaki sposób paginacja w DynamoDB różni się od paginacji w innych bazach danych.

Co to jest paginacja w DynamoDB?

Ogólnie rzecz biorąc, podział na strony, wywodzący się ze stron słów, jest techniką używaną przez bazy danych do dzielenia rekordów danych na wiele fragmentów, segmentów lub stron. A ponieważ AWS DynamoDB obsługuje przechowywanie dużych ilości danych, oferuje niezawodne możliwości paginacji.







Komponent stronicowania DynamoDB zapewnia, że ​​możesz pobrać maksymalnie 1 GB danych na skanowanie lub zapytanie. Chociaż jest to ustawienie domyślne, możesz dodać parametr limitu do zapytania, aby określić limit. Możesz ponadto ustawić limit liczby rekordów w każdym zapytaniu skanowania.



Warto zauważyć, że istnieje kilka różnic między paginacją w DynamoDB a paginacją w typowej bazie danych SQL. Najwyraźniej każdy rekord z podziałem na strony, który jest pobierany w DynamoDB, wiąże się z bezpośrednimi kosztami, co czyni tę zasadę niepisaną przy korzystaniu z podziału na strony w DynamoDB. Ta funkcja sprawia, że ​​paginacja jest istotnym czynnikiem ograniczającym zarówno pobierane rekordy, jak i koszty bezpośrednie.



Jak korzystać z paginacji w DynamoDB





1. Paginacja podczas operacji zapytania

W DynamoDB zapytanie zwraca tylko wyniki do 1 MB. Ale możesz skutecznie potwierdzić, czy jest więcej wyników, analizując swoje wyniki. Warto zauważyć, że wynik operacji zapytania niskiego poziomu zawiera element LastEvaluatedKey, który nie jest pusty, aby wskazać, że istnieje więcej elementów związanych z zapytaniem, które należy pobrać.

Wynik bez elementu LastEvaluatedKey, który nie ma wartości null, oznacza, że ​​wszystkie elementy pasujące do zapytania mieszczą się w limicie 1 MB i nie ma więcej elementów do pobrania. Oczywiście możesz również ustawić limit liczby elementów na wynik. Zobacz następujące przykładowe polecenie:



zapytanie dynamodb aws \

--nazwa-tabeliMojaNazwaTabeli \

--wyrażenie-warunku-klucza 'PartitionKey = :pk \

--expression-attribute-values ​​'{'
:pk ':{' S ':' a1234b '}},

--limit 10 \

Możesz użyć poprzedniego polecenia, aby zapytać swoją tabelę o elementy z tymi samymi wartościami wyrażenia kluczowego warunku. Przeszukajmy naszą tabelę „Zamówienia” pod kątem identyfikatorów zamówień z firmy Darry Tech. Ustaliliśmy również limit 10 elementów na stronę. Inną opcją dla parametru –limit jest użycie parametru –page-size w tym samym celu.

Paginacja to automatyczna operacja w AWS CLI dla elementów poniżej 1MB danych. Możesz dodać wyłączny klucz startowy do polecenia, jeśli chcesz, aby zapytanie zaczynało się od określonej kolejności.

Odpowiedź wygląda następująco:

Podane wyniki pokazują 10 Darry Tech na pierwszej stronie. Możesz użyć wartości LastEvaluatedKey, aby uzyskać więcej zamówień pasujących do wartości klucza wyrażenia w wyszukiwaniu, aby utworzyć nowe zapytanie. Nowe żądanie zapytania zawiera wartości LastEvaluatedKey w parametrze ExclusiveStartKey.

Przykład składni pokazano poniżej:

zapytanie dynamodb aws \

--table-name PrzykładTabela \

--wyrażenie-warunku-klucza 'PartitionKey = :pk \

--expression-attribute-values ​​'{'
:pk ':{' S ': Darry Tech' \

--limit 10 \

--exclusive-start-key '{'
Klucz partycji ':{' S ': Darry Tech' }, „Klucz sortowania” :{ 'S' : '5356' }} '

Poprzednie polecenie tworzy kolejne zlecenia potrącenia na następnej stronie, zaczynając od identyfikatora zlecenia, który ma określony klucz podstawowy, tj. ”5356-sy”}}.

2. Paginacja podczas operacji skanowania

Możliwe jest również użycie paginacji do operacji skanowania. Wszystko działa tak samo, jak w przypadku poleceń zapytania. Musisz jednak użyć atrybutu filter-expression. Polecenie wygląda tak, jak mamy tutaj:

skanowanie dynamodb aws \

--nazwa-tabeli MojaTabela \

--filtr-wyrażenie 'NazwaAtrybutu = :wartość' \

--wartości-atrybutów-wyrażeń '{':wartość':{'S':'ABC123'}}' \

--limit dwadzieścia \

--ekskluzywny-klawisz startowy '{'PartitionKey':{'S':'ABC123'},'SortKey':{'S':'XYZ987'}}'

Poprzednie polecenie pobiera do 20 elementów na stronę z tabeli MyTable, zaczynając od elementu, którego kluczem podstawowym jest {“PartitionKey”: “ABC123”, “SortKey”: “XYZ987”}. Filtruje wyniki tak, aby zawierały tylko elementy, dla których atrybut AttributeName ma wartość „ABC123”.

W odpowiedzi ww Ostatni oceniany klucz pole zawiera klucz podstawowy ostatniego elementu w zestawie wyników. Możesz użyć tej wartości jako Ekskluzywny klucz startowy w kolejnym skanowanie operację, aby pobrać następną stronę wyników.

Wniosek

Paginacja w DynamoDB poprawia łatwość zarządzania danymi. Jednak ważne jest, aby wiedzieć, czy twoje systemy skorzystają na paginacji. Korzystanie z paginacji jest konieczne, jeśli masz długą listę elementów w aplikacji. Podczas gdy dostarczona ilustracja skupia się na wywołaniu AWS CLI, możesz także użyć paginacji z zestawami SDK AWS, takimi jak Boto3 Pythona lub dowolnym preferowanym zestawem SDK.