DynamoDB-sivutus: Yleiskatsaus, käyttötapaukset ja esimerkit

Dynamodb Sivutus Yleiskatsaus Kayttotapaukset Ja Esimerkit



Suurien tietomäärien hallinta voi olla tiedonhaltijoille vaikea tehtävä, etenkin jos kyselysi tai skannaustulokset tulevat useille sivuille. Sivutus DynamoDB:ssä mahdollistaa sen, että tietokanta voi käsitellä suuria tietomääriä jakamalla tulokset useille hallittavissa oleville sivuille. Tämä kirjoitus selittää DynamoDB-sivutuksen ja tarjoaa erilaisia ​​mahdollisia käyttötapauksia ja esimerkkejä. Se myös korostaa, kuinka DynamoDB:n sivutus eroaa muiden tietokantojen sivutuksesta.

Mikä on sivutus DynamoDB:ssä?

Yleisesti ottaen sivutus, joka on johdettu sanasivuista, on tekniikka, jota tietokannat käyttävät tietotietueiden jakamiseen useiksi paloiksi, segmenteiksi tai sivuiksi. Ja koska AWS DynamoDB tukee suurten tietomäärien tallentamista, siinä on luotettavat sivutusominaisuudet.







DynamoDB-sivutuskomponentti varmistaa, että voit hakea enintään 1 Gt tietoa skannausta tai kyselyä kohden. Vaikka tämä on oletusasetus, voit lisätä kyselyyn rajaparametrin määrittääksesi rajan. Voit lisäksi asettaa rajan kunkin skannauskyselyn tietueiden lukumäärälle.



Huomaa, että DynamoDB:n sivutuksen ja tyypillisen SQL-tietokannan sivutuksen välillä on muutamia eroja. Kaikkein ilmeisimmin jokainen DynamoDB:ssä haettu sivutettu tietue maksaa suorat kustannukset, joten tämä on kirjoittamaton sääntö käytettäessä sivutusta DynamoDB:ssä. Tämä ominaisuus tekee sivutuksesta tärkeän tekijän sekä haettujen tietueiden että suorien kustannusten rajoittamisessa.



Kuinka käyttää sivutusta DynamoDB:ssä





1. Sivutus kyselyn aikana

DynamoDB:ssä kysely palauttaa vain enintään 1 Mt:n tulokset. Mutta voit tehokkaasti varmistaa, onko tuloksia enemmän tarkastelemalla tuloksiasi. Erityisesti matalan tason kyselyn tulos sisältää LastEvaluatedKey-elementin, joka ei ole nolla, mikä osoittaa, että kyselyyn liittyy enemmän kohteita, jotka sinun pitäisi noutaa.

Tulos ilman LastEvaluatedKey-elementtiä, joka ei ole nolla, tarkoittaa, että kaikki kyselyä vastaavat kohteet mahtuvat 1 Mt:n rajoitukseen, eikä noudettavia kohteita ole enää. Voit tietysti myös asettaa rajan tulosten määrälle. Katso seuraava esimerkkikomento:



aws dynamodb kysely \

--taulukon nimi Oma TaulukonNimi \

--avain-ehto-lauseke 'PartitionKey = :pk \

--lauseke-attribuuttiarvot '{'
:pk ':{' S ':' a1234b '}},

--raja 10 \

Voit käyttää edellistä komentoa kysyäksesi taulukosta kohteet, joilla on samat avainehtolausekearvot. Etsitään 'Tilaukset'-taulukosta Darry Techin order_IDs. Asetamme myös rajoituksen 10 kohteeseen sivua kohden. Toinen vaihtoehto parametrille –limit on käyttää parametria –page-size samaan tarkoitukseen.

Sivutus on automaattinen toiminto AWS CLI:ssä kohteille, joiden tietomäärä on alle 1 Mt. Voit lisätä komentoon yksinomaisen aloitusavaimen, jos haluat kyselysi alkavan tietystä tilauksesta.

Vastaus näyttää tältä:

Annetut tulokset näyttävät 10 Darry Techiä ensimmäisellä sivulla. Voit käyttää LastEvaluatedKey-arvoja saadaksesi lisää tilauksia, jotka vastaavat hakusi lausekeavainarvoja uuden kyselyn luomiseksi. Uusi kyselypyyntö sisältää LastEvaluatedKey-arvot ExclusiveStartKey-parametrissa.

Esimerkki syntaksista näkyy seuraavassa:

aws dynamodb kysely \

--taulukon nimi Esimerkkitaulukko \

--avain-ehto-lauseke 'PartitionKey = :pk \

--lauseke-attribuuttiarvot '{'
:pk ':{' S ': Darry Tech' \

--raja 10 \

-- yksinomainen-aloitusnäppäin '{'
Osioavain ':{' S ': Darry Tech' }, 'Lajitteluavain' :{ 'S' : '5356' }} '

Edellinen komento tuottaa seuraavan sivun seuraavat kuittauskäskyt alkaen tilaustunnuksesta, jolla on määritetty ensisijainen avain, eli {'PartitionKey':{'S': Darry Tech'},'SortKey':{'S': ”5356-sy”}}.

2. Sivutus skannaustoimintojen aikana

On myös mahdollista käyttää sivutusta skannaustoimintoihin. Kaikki toimii samalla tavalla kuin kyselykomentojen kanssa. Sinun on kuitenkin käytettävä filter-expression-attribuuttia. Komento näyttää tältä, mitä meillä on täällä:

aws dynamodb skannaus \

--taulukon nimi Oma Taulukko \

--filter-lauseke 'AttributeName = :value' \

--lauseke-attribuutti-arvot '{':arvo':{'S':'ABC123'}}' \

--raja kaksikymmentä \

-- yksinomainen-aloitusnäppäin '{'PartitionKey':{'S':'ABC123'},'SortKey':{'S':'XYZ987'}}'

Edellinen komento poistaa enintään 20 kohdetta sivua kohden MyTable-taulukosta alkaen alkiosta, jonka ensisijainen avain on {'PartitionKey': 'ABC123', 'SortKey': 'XYZ987'}. Se suodattaa tulokset sisältämään vain ne kohteet, joissa AttributeName-attribuutilla on ABC123-arvo.

Vastauksessa, LastEvaluatedKey -kenttä sisältää tulosjoukon viimeisen kohteen ensisijaisen avaimen. Voit käyttää tätä arvoa Ainutlaatuinen aloitusavain seuraavassa skannata toimintoa seuraavan tulossivun hakemiseksi.

Johtopäätös

Sivutus DynamoDB:ssä parantaa tietojen hallittavuutta. On kuitenkin tärkeää tietää, hyötyvätkö järjestelmäsi sivutuksesta. Sivunumerointi on välttämätöntä, jos sovelluksessa on pitkä luettelo kohteista. Vaikka toimitettu kuva keskittyy AWS CLI -kutsuun, voit myös käyttää sivutusta AWS SDK:iden, kuten Pythonin Boto3:n tai minkä tahansa haluamasi SDK:n kanssa.