Operacja skanowania DynamoDB

Operacja skanowania DynamoDB
Operacje skanowania są prawdopodobnie najmłodszymi instrumentami na liście narzędzi DynamoDB. Operacja skanowania w AWS DynamoDB odczytuje każdy element w tabeli lub wskaźnik wtórny, na którym jest używany. Może złapać wszystko na swojej drodze. Zatem operacja skanowania, domyślnie, zwraca wszystkie atrybuty danych dla każdego elementu w tabeli lub indeksie.

Możesz zmienić domyślny charakter operacji skanowania za pomocą parametru projekcji Wykłady, ponieważ zwraca to tylko określone atrybuty, a nie wszystko w indeksie lub tabeli. W szczególności każde żądanie skanowania może zwrócić tylko do 1 MB danych dotyczących elementu i nic więcej. Poza tym DynamODB może zastosować wyrażenie filtra do dowolnego zestawu danych i zawęzić wyniki, zanim dostarczy wyniki użytkownikowi.

Ten przewodnik opracowuje sposób korzystania z operacji skanowania na dynamoDB. Wyjaśnia, kiedy korzystać z operacji skanowania DynamoDB, jak działają wyrażenia filtra, spójność odczytu skanów i skanowanie równoległych.

Ale zanim do tego dojdziemy, ważne jest, aby użyć operacji skanowania tylko wtedy, gdy masz pewność, że potrzebujesz. Działa na całej tabeli i może zużywać całą pojemność odczytu, gdy jest używana na tabelach o rzeczywistej wielkości. Ponadto, gdy jest używany na ścieżce krytycznej aplikacji, może być powolne w zwracaniu wyników.

Sytuacje, w których należy użyć skanowania w tabelach i indeksach DynamoDB

Korzystanie z operacji skanowania na DynamoDB ma sens w następujących scenariuszach:

  • Kiedy stół jest bardzo mały
  • Podczas korzystania z globalnych indeksów wtórnych do skonfigurowania kolejki pracy
  • Podczas eksportowania wszystkich danych z danej tabeli do innego systemu pamięci masowej

Wykonanie podstawowego skanowania na tabeli DynamoDB

Operacje skanowania są łatwe w obsłudze. Wszystko, co musisz zrobić, to określić swoją nazwę Table_name wraz z poleceniem skanowania AWS DynamoDB. Proste narzędzie do skanowania powinno wyglądać tak:

$ AWS Dynamodb Scan \
--nazwa tabeli emplyedata \
$ Lokalne

Wynik pokazano następująco. Zauważ, że jest to skrócone, aby być wystarczająco krótkim do ilustracji, ponieważ pokazanie wszystkich 35 pozycji w tym artykule może być uciążliwe.

Operacja skanowania na dynamoDB za pomocą wyrażeń filtra

Poprzednia odpowiedź zwraca wszystkie 35 elementów zawartych w tabeli. Możesz jednak użyć parametru wyrażenia -rentowego, aby określić atrybuty, które Cię interesuje. Ta funkcja znana również jako wyrażenia filtrów pozwala udoskonalić wyniki i określić określone elementy w tabeli, które znajdują w odpowiedzi. Wyniki, których nie potrzebujesz, nie będą w odpowiedzi.

Powinieneś zastosować parametr wyrażenia filtra tylko po zakończeniu pełnego skanowania i uzyskania wyników przy sobie. Jednak zarówno wyrażenia projekcyjne, jak i pełne skany DynamoDB pochłoną równe ilości pojemności odczytu. I chociaż limity skanowania często mają maksymalnie 1 MB danych, obliczenia to nastąpi przed oceną wyników wyrażenia filtra.

Upewnij się, że określisz wszystkie atrybuty potrzebne w wyrażeniu filtra. Atrybuty mogą zawierać klucze partycji i klucze sortowania. Wyrażenia filtra mają tę samą składnię, co wyrażenia warunku.

Na przykład następujące narzędzie interfejsu wiersza poleceń AWS skanuje tabelę pracownik i zwraca szczegóły elementów, które zostały ostatnio grane.

AWS DynamoDB skanowanie \
--nazwa tabeli pracowników \ ​​\
--Ekspresja filtra „lastEmPloyed =: Nazwa” \
--Expression-attribute-wartości '": name": "s": "użytkownik ab"' '

Wykonanie operacji skanowania, która przekracza limit danych 1 MB

Powiedzieliśmy raz po raz, że operacja skanowania DynamoDB ma limit danych 1 MB. Ale co się stanie, gdy skany osiągnęły limit danych 1 MB? Jeśli trafisz do limitu 1 MB podczas skanowania, odpowiedź będzie zawierać klucz „NextToken”.

Użyj wartości podanej w klawiszu „NextToken” z - -startowy Opcja kontynuowania funkcji skanowania, z którego się zatrzymała. Możesz przetestować tę funkcjonalność za pomocą - - Max Opcja limitu. W tym przykładzie, zamiast próbować całkowitego skanowania, skanujemy naszą tabelę PracownictEata, ale rozegramy limit naszego pozycji do maksymalnie 1, jak pokazano następująco:

$ AWS Dynamodb Scan \
--nazwa tabeli userORDerstable \
--Max-Items 1 \
$ Lokalne

Odpowiedź zawiera tylko jeden element. Jednak znajdziesz także klucz „NextToken” w wynikach, aby umożliwić kontynuowanie skanowania, z którego się zatrzymał. Patrz następujący zrzut ekranu:

Poprzednia odpowiedź wytwarza tylko jedną pozycję z tabeli, która zawiera 35 elementów. Możesz zakończyć skanowanie za pomocą dostarczonego klucza NextToken.

Za pomocą równoległych skanów

Podstawowymi powodami, dla których DynamODB pozostaje popularną bazą danych, jest jego szybkość, elastyczność i skalowalność. Co ciekawe, korzystanie z operacji skanowania pozwala również wyeksportować treść do analizy danych lub schowek.

Funkcje DynamoDB Segmenty co pozwala skanom równoległego skanować duże ilości danych bez polegania na jednym procesie skanowania na każdej tabeli. Ta funkcja pozwala określić liczbę Segmenty że chcesz podzielić tabelę, a żądania dla każdego segmentu. Umożliwia to menedżerom danych skanowanie danych z danej tabeli równolegle.

Podczas gdy nasza tabela pracodawcy, która jest używana w tym samouczku, nie ma dużej ilości danych, możemy podzielić ją na cztery segmenty i użyć jej do tej ilustracji. Możesz ustrukturyzować polecenie skanowania, określając liczbę segmentów i numer segmentu, który zamierzasz skanować. Podczas gdy segmenty są zerowe, użycie 0 w specyfikacji segmentu może być zadaniem pod górę.

$ AWS Dynamodb Scan \
--nazwa tabeli pracowników \ ​​\
--Suma segmentów 4 \
--Segment 1 \
$ Lokalne

Wyniki zawierają tylko elementy należące do pierwszego segmentu. Odpowiedź wygląda tak. Należy zauważyć, że wyniki są obcięte dla zwięzłości i mają tylko pierwsze i ostatnie elementy w pierwszym segmencie.

Wniosek

To wszystko o operacji skanowania DynamoDB. Chociaż jest to prawdopodobnie jedna z najbardziej łatwych operacji w AWS DynamoDB, powinieneś używać go oszczędnie, ponieważ może spożywać całą przydział pojemności konsumowej. Ponownie upewnij się, że wiesz, kiedy możesz korzystać z różnych aplikacji operacji skanowania.