Forstå dynamodb getItem -operasjonen

Forstå dynamodb getItem -operasjonen
GetItem API -samtalen er med på å hente varene som er de viktigste byggesteinene i DynamoDB. Interessant nok støtter denne API -samtalen alle programmeringsspråk som støttes av DynamoDB. Dermed kan du hente varene når du bruker et språk du ønsker.

Du kan bruke JavaScript, Python, PHP, Kotlin, Java, Go eller C++. Du kan også bruke GNU -konsollen i stedet for ethvert programmeringsverktøy. Denne oppskrivningen forklarer hvordan GetItem-operasjonen fungerer og hvordan du kan bruke den til å hente varene.

Hvordan GetItem -operasjonen fungerer

Ved å bruke GetItem API -samtalen avhenger vellykket av hvordan du rammer samtalen din. Forsikre deg om at du spesifiserer riktig tabellnavn og den primære nøkkelen til elementet du har tenkt å hente. Inkluderer alle deler av den primære nøkkelen som gjør den fullført.

GetItem -oppførselen er avhengig av tre standardverdier. Den utføres som en konsekvent lesning, resultatene har alle attributtene, og det gir ikke kapasitetsenhetsforbruket. Basert på disse parametrene, kan du overstyre standardoppførselen til dette API.

Spesielt opprettholder DynamoDB førsteklasses pålitelighet ved å opprettholde flere eksemplarer på tvers av forskjellige servere. Mens en vellykket oppskrivning oppretter disse kopiene, kan det ta en betydelig tid å oppfylle standard parameter for eventuell konsistens.

Implikasjonen er at det å prøve å lese umiddelbart etter å ha skrevet et element er et meningsløst oppdrag. Grensesnittet returnerer alltid en nøkkelverdi for eksisterende nøkler. Imidlertid bringer det tilbake en nullrespons for utilgjengelige nøkler.

GetItem Syntax:

Følgende er GetItem -syntaks:

GetItem (KeyName)

I den gitte syntaksen, KeyName er hovedparameteren og bør inneholde et komplett navn på elementet eller tasten hvis verdi er det du har tenkt å hente. Responsen skal være en streng med verdien av den forespurte tasten. Men nøklene som ikke eksisterer, returnerer en nullrespons.


"Attributestoget": ["String_Value"],
"ConsistentRead": Boolean,
"ExpressionAttributeNames":
"String_Value": "String_Value"
,
"Nøkkel":
"strengverdi" :
"B": Blob,
"Bool": Boolean,
"BS": [Blob],
"L": [
"AttributeValue"
],
"M":
"String": "AttributeValue"
,
"N": "String",
"NS": ["String_Value"],
"Null": Boolean,
"S": "String_Value",
"SS": ["String_Value"]

,
"ProjectionExpression": "String_Value",
"ReturnConsumedCapacity": "String_Value",
"Tablename": "String_Value"

Be om alternativer/parametere:

Ved å bruke JSON -formatet godtar GetItem -forespørselen følgende data:

  • Nøkkel - Det er et attributtnavn for AttributeValue -objekter og en representasjon av den primære nøkkelen som skal hentes. Alle forespørsler må inneholde nøkkelstrengen.
  • Tablename - Dette er en streng som skisserer tabellens navn som inneholder den forespurte tasten eller elementet. Den må også være der i hver forespørsel.
  • Attributestoget - Det er en arvsparameter som inneholder en rekke strenger med minst 1 vare.
  • CosistentRead - Denne parameteren bestemmer dine forespørsler om lese konsistensmodell. GetItem -operasjonen bruker den eventuelle konsistensmodellen som standard. Å sette denne parameteren til True sikrer imidlertid at prosessen bruker de mest avgjørende konsistente lesene.
  • ReturnConsumedCapacity - Denne parameteren bestemmer detaljnivået om gjennomstrømningsforbruket som responsen vil returnere. De kommer i tre forskjellige kategorier-indekser, totalt og ingen.
  • ExpressionAttributeNames - I visse tilfeller anbefales det å bruke ExpressionAttributeNames. For eksempel kan du få tilgang til attributtene hvis navn ikke er i takt med DynamoDB -reserverte ord eller opprette en plassholder i tilfeller av gjentagende forekomster. Du kan også bruke ExpressionAttributeNames for å forhindre feiltolkning av spesialtegn i et uttrykk.
  • Projeksjonsekspresjon - Denne strengen identifiserer attributtene for henting fra tabellen. Slike attributter kan omfatte settene, elementene eller skalarene. Forsikre deg om at du skiller hvert attributt ved hjelp av komma. Imidlertid returnerer GetItem -kommandoen alle attributter hvis du ikke spesifiserer noe attributt.

Trinn-for-trinns guide for bruk av getItem-operasjonen

Følgende trinn illustrerer hvordan du kan få nøklene fra et DynamoDB -tabell ved hjelp av getItem. Vi bruker JavaScript for denne illustrasjonen:

Trinn 1: Opprett en DynamoDB -klient

Du trenger en dynamoDB -klient for denne operasjonen. Dermed er det første trinnet å opprette en dynamoDB -klient.

Trinn 2: Opprett et DynamoDB -dokument

Når du har en klientsiden, bør du opprette et eksempler på dynamoDB-klientdokument eller tabell som du henter varene.

Trinn 3: Be om et element fra bordet ditt

Eksempel 1: Få et enkelt element fra en tabell

Følgende kommandolinje skal hjelpe deg med å få et element fra tabellen:

import useGetCommand fra "@aws-sdk/dynamodb_lib";
import dynamodbdocclient fra "... /libs /ddbdocclient.JS ";
// Angi parametrene.
Eksporter const -parametere =
Tablename: "Table_name",
Nøkkel:
PrimaryKey: "String_1",
sortkey: "String_2",
,
;
eksport const getItem = async () =>
prøv
const data = venter dynamodbdocclient.send (ny getCommand (parametere));
konsoll.Logg ("Suksess:", data.Punkt);
fangst (feil)
konsoll.Logg ("Feil");

;
getItem ();

Eksempel 2: Få en gruppe elementer fra et bord

Følgende kommando hjelper deg med å få en gruppe elementer:

import batchexecutestatementCommand
import ddbdocclient
const tablename = prosess.argv [2];
const songyear1 = prosess.argv [3];
const songtitle1 = prosess.argv [4];
const songyear2 = prosess.Argv [5];
const songtitle2 = prosess.Argv [6];
eksport const run = async (
tablename,
Songyear1,
Songtitle1,
Songyear2,
Songtitle2
) =>
const parameters =
Uttalelser: [

Uttalelse: "Velg _ fra" + tablename + "hvor tittel =? og år =?"",
Parametere: [S: Movietitle1, n: MovieYear1],
,

Uttalelse: "Velg * fra" + Tablename + "hvor tittel =? og år =?"",
Parametere: [S: SongTitle2, n: Songyear2],
,
],
;
prøv
const data = venter dynamodbdocclient.sende(
Ny batchexecutestatementCommand (parametere)
);
for (la i = 0; i < data.Responses.length; i++)
konsoll.Logg (data.Svar [i].Punkt.år);
konsoll.Logg (data.Svar [i].Punkt.tittel);

returner "Kjør vellykket";
fangst (feil)
konsoll.feil (feil);

;
Run (tablename, songyear1, songtitle1, songyear2, songtitle2);

Konklusjon

Du kan bruke de medfølgende metodene for å finne elementene som samsvarer med de spesifiserte parametrene i en Dynamogb -tabell riktig. GetItem API -samtalen prøver på nytt verdiene fra en applikasjons interne vedvarende butikk. Spesielt deles alle verdier som er lagret i Dynamogb mellom alle økter og profiler og er tilgjengelige så lenge applikasjonen forblir installert.