Przegląd paginacji DynamoDB, przypadki użycia i przykłady

Przegląd paginacji DynamoDB, przypadki użycia i przykłady

Zarządzanie liczbami danych może być zadaniem pod górę dla menedżerów danych, głównie jeśli wyniki zapytania lub skanowania napotykają wiele stron. Paginacja w DynamoDB umożliwia bazie danych obsługi dużych ilości danych poprzez rozbicie wyników na wiele możliwych do zarządzania strony.Ten zapis wyjaśnia paginację DynamoDB i zapewnia różne możliwe przypadki użycia i przykłady. Podkreśla także, 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, paginacja, pochodząca ze stron słów, jest techniką używaną przez bazy danych do podziału rekordów danych na wiele fragmentów, segmentów lub stron. A ponieważ AWS DynamoDB obsługuje przechowywanie dużych ilości danych, ma niezawodne możliwości paginacji.

Komponent Pagination DynamoDB zapewnia tylko, że możesz pobrać tylko do 1 GB danych na skan lub zapytanie. Chociaż jest to ustawienie domyślne, możesz dodać parametr limitu w zapytaniu, aby określić limit. Możesz dodatkowo ustalić limit liczby rekordów w każdym zapytaniu skanowania.

W szczególności istnieje kilka różnic między paginacją w dynamoDB i paginacji w typowej bazie danych SQL. Najwyraźniej każdy pagenowany rekord, który jest pobierany w DynamoDB, ma bezpośredni koszt, co czyni ją niepisaną regułą podczas korzystania z paginacji w DynamoDB. Ta funkcja sprawia, że ​​paginacja jest istotnym czynnikiem ograniczającym zarówno pobierane rekordy, jak i koszty bezpośrednie.

Jak używać 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 Twoje wyniki. W szczególności wynik operacji zapytania na niskim poziomie zawiera element LastevaLuredKey, który nie jest null, aby wskazać, że istnieje więcej elementów związanych z zapytaniem, które powinieneś odzyskać.

Wynik bez elementu LastevaLutedKey, który nie ma null, oznacza, że ​​wszystkie elementy pasujące do zapytania pasują do limitu 1 MB i nie ma już przedmiotów do pobierania. Oczywiście możesz również ustawić limit liczby pozycji na wynik. Zobacz następujące przykładowe polecenie:

AWS Dynamodb Query \
--nazwa tabeli MyTableName \
--Kluczowe wyrażanie kwalifikacji „PartitionKey =: pk \
--Expression-attribute-wartości '": pk": "s": "a1234b",
--Limit 10 \

Możesz użyć poprzedniego polecenia, aby zapytać tabelę dla elementów o tych samych wartościach wyrażenia warunków kluczowych. Przeszukajmy naszą tabelę „Zamówień” w sprawie zamówień od Darry Tech. Ustawiamy również limit 10 pozycji na stronę. Inną opcją parametru -LIMIT jest użycie parametru o wielkości -page w tym samym celu.

Pagination to automatyczna operacja w AWS CLI dla elementów poniżej 1 MB danych. Możesz dodać ekskluzywny klawisz Start do polecenia, jeśli chcesz, aby Twoje zapytanie zaczęło się od konkretnego zamówienia.

Odpowiedź wygląda tak:

Podane wyniki pokazują 10 Darry Tech na pierwszej stronie. Możesz użyć wartości LastevaLuedKey, aby uzyskać więcej zamówień, które pasują do kluczowych wartości wyrażenia wyszukiwania w celu zbudowania nowego zapytania. Nowe żądanie zapytania zawiera wartości LastevaLutedKey w parametrze ExcluSiveStartKey.

Przykład składni pokazano następująco:

AWS Dynamodb Query \
--nazwa nazwy tabeli \ \
--Kluczowe wyrażanie kwalifikacji „PartitionKey =: pk \
--Expression-attribute-wartości „”: pk ": " s ": darry tech '\
--Limit 10 \
--Ekskluzywny start-key '„parititionkey”: "s": darry tech, "sortkey": "s": "5356-sy"' '

Poprzednie polecenie tworzy następne zamówienia ustawione na następnej stronie, zaczynając od identyfikatora zamówienia, który ma określony klucz podstawowy, i.mi. „ParititionKey”: „S”: Darry Tech ”,„ sortkey ”: „ s ”:” 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 wyrażania filtrów. Polecenie wygląda na to, co mamy tutaj:

AWS DynamoDB skanowanie \
--nazwa tabeli myTable \
--Ekspresja filtra „atrybutename =: wartość” \
--Expression-attribute-wartości '": wartość": "s": "abc123"' \ \
--Limit 20 \
--Ekskluzywny start-key '„parititionkey”: "s": "abc123", "sortkey": "s": "xyz987"'

Poprzednie polecenie wycofuje się do 20 pozycji na stronę z tabeli MyTable, zaczynając od elementu, którego klucz podstawowym jest „parititionkey”: „ABC123”, „sortkey”: „XYZ987”. Filtuje wyniki, aby zawierać tylko elementy, w których atrybut atrybutenamentu ma wartość „ABC123”.

W odpowiedzi, LastevaLutedKey pole zawiera klucz podstawowy ostatniego elementu w zestawie wyników. Możesz użyć tej wartości jako ExclusiveStartkey w kolejnych skanowanie Działanie w celu odzyskania następnej strony wyników.

Wniosek

Pagination in DynamODB poprawia zarządzalność danych. Należy jednak wiedzieć, czy twoje systemy skorzystają z paginacji. Konieczne jest użycie paginacji, jeśli masz długą listę elementów w aplikacji. Podczas gdy dostarczona ilustracja koncentruje się na wywołaniu AWS CLI, możesz również użyć paginacji za pomocą AWS SDK, takich jak Python's Boto3 lub dowolne preferowane SDK.