AWS backend-kehittäjille (EC2, S3, RDS, Lambda) · Oppitunti

DynamoDB:n tietomallinnus

Suunnitelkaa tehokkaat taulukkokaaviot ja käyttömallit DynamoDB:tä varten sovellustenne suorituskyvyn ja kustannusten optimoimiseksi.

Oppitunti 3/411 vaihetta

DynamoDB:n tietomallinnus on ilmainen AWS backend-kehittäjille (EC2, S3, RDS, Lambda)-oppitunti CoddyKitissä. Tämä on oppitunti 3/4. Voit lukea tästä oppimispolusta kokonaan mitkä tahansa 3 oppituntia ilmaiseksi — sen jälkeen CoddyKit PRO avaa kaikki oppitunnit sekä käytännön harjoittelun sisäänrakennetulla koodieditorilla ja ympäri vuorokauden toimivalla tekoälytuutorilla. Oppitunti kuuluu AWS backend-kehittäjille (EC2, S3, RDS, Lambda)-oppimispolkuun, ja edistymisesi synkronoituu verkon ja CoddyKit-sovelluksen välillä. AWS backend-kehittäjille (EC2, S3, RDS, Lambda)-kurssilla on yhteensä 4 oppituntia.

Miksi tietomallinnus on tärkeää DynamoDB:ssä

DynamoDB on NoSQL-tietokanta, joten se ei käytä SQL:n kaltaisia perinteisiä tauluja, rivejä ja liitoksia. Tietomallinnuksessa on ennen kaikkea kyse siitä, miten tietoja käytetään, ei vain siitä, miten ne tallennetaan.

  • Kaavioton rakenne: Kiinteää skeemaa ei ole, mutta rakenne on tärkeä suorituskyvyn kannalta.
  • Käyttötavat ensin: Suunnittele taulut tehtävien kyselyjen ympärille.
  • Suorituskyky ja kustannukset: Hyvä mallinnus tuottaa nopeita kyselyitä ja pienemmät kustannukset.

Ensisijaiset avaimet: Partition ja Sort

Jokainen DynamoDB:n kohde tarvitsee ensisijaisen avaimen. Tämä avain yksilöi kunkin kohteen ja määrittää, miten tiedot tallennetaan ja haetaan. Se voi olla:

  • Partition Key (josta käytetään myös nimitystä Hash Key).
  • Yhdistelmä Partition Key ja Sort Key (josta käytetään myös nimitystä Range Key).

Partition Key (PK) -avaimen ymmärtäminen

Partition Key (PK) määrittää fyysisen partition eli tallennussijainnin, jossa tietosi sijaitsevat.

  • Yksilöllisyys: Jos käytössä on vain PK, sen on oltava yksilöllinen jokaiselle kohteelle.
  • Jakautuminen: Hyvä PK jakaa tiedot tasaisesti partitioneihin ja estää suorituskykyä hidastavat ”kuumat partitionit”.
  • Suora käyttö: Voit hakea kohteen suoraan vain, jos tiedät sen Partition Key -avaimen.

Sort Key (SK) -avaimen hyödyntäminen

Kun käytät sekä Partition Key- että Sort Key (SK) -avainta, kohteet, joilla on sama Partition Key, ryhmitellään yhteen ja järjestetään Sort Key -avaimen perusteella.

  • Yksilöllinen yhdistelmä: PK:n ja SK:n yhdistelmän on oltava yksilöllinen.
  • Aluehaut: Mahdollistaa tehokkaat aluehaut (esimerkiksi kaikkien tietyn käyttäjän tiettynä ajanjaksona tekemien tilausten hakemisen).
  • Joustava järjestäminen: Mahdollistaa erilaisen järjestyksen saman partitionin sisällä.

Käyttötavat: suunnitteluoppaasi

Toisin kuin relaatiotietokannoissa, joissa suunnittelet taulut ja määrität kyselyt vasta sen jälkeen, DynamoDB:ssä sinun kannattaa luetella kaikki sovelluksesi tietojen käyttötavat ensin.

  • Tunnista kyselyt: Mitä tietoja tarvitset? Miten haet ne?
  • Esimerkkejä: ”Hae käyttäjäprofiili userId-tunnuksen perusteella”, ”Listaa kaikki tuotteet category-arvon perusteella”, ”Etsi kaikki postId-tunnuksen kommentit”.

Taulusuunnittelusi (PK, SK, indeksit) tulee tukea suoraan näitä käyttötapoja.

Johdatus yhden taulun suunnitteluun

Yleinen ja tehokas DynamoDB-malli on Single-Table Design. Se tarkoittaa useiden erilaisten kohdetyyppien (kuten käyttäjien, tilausten ja tuotteiden) tallentamista yhteen tauluun.

  • Hyödyt: Vähentää ylläpidon työmäärää, mahdollistaa tehokkaat ”monesta moneen” -suhteet ja voi olla kustannustehokkaampi.
  • Toteutus: Käyttää yleisiä attribuuttinimiä, kuten PK ja SK, sekä etuliitteitä (esimerkiksi USER#<id> ja ORDER#<id>) kohdetyyppien erottamiseen.

Kyselyt Global Secondary Indexes (GSI) -indekseillä

Entä jos haluat tehdä kyselyn attribuutilla, joka ei kuulu ensisijaiseen avaimeesi? Silloin tarvitset Global Secondary Indexes (GSI) -indeksejä.

  • Uudet avaimet: GSI:llä on oma Partition Key ja valinnainen Sort Key, jotka voivat olla mitä tahansa perustaulun attribuutteja.
  • Itsenäinen: Se on täysin erillinen taulu, jota DynamoDB ylläpitää, joten se mahdollistaa erilaiset käyttötavat.
  • Lopulta yhdenmukainen: GSI:t ovat lopulta yhdenmukaisia, joten muutosten siirtymisessä voi kestää hetki.

Partitionien tehostaminen Local Secondary Indexes (LSI) -indekseillä

Local Secondary Indexes (LSI) -indeksien avulla voit tehdä kyselyitä eri Sort Key -avaimella samassa partitionissa kuin perustaulun Partition Key.

  • Sama PK, eri SK: LSI:t käyttävät samaa Partition Key -avainta kuin perustaulu, mutta niillä on eri Sort Key.
  • Vahvasti yhdenmukainen: Toisin kuin GSI:t, LSI:t tukevat vahvasti yhdenmukaisia lukuja.
  • Rajoitettu: Ne on määritettävä taulua luotaessa, ja taulua kohden voi olla enintään viisi.

Käytännön mallinnus: käyttäjien viestit

Mallinnetaan yksinkertainen tilanne: käyttäjät ja heidän viestinsä. Haluamme:

  • Käyttötapa 1: Hakea käyttäjän profiilin.
  • Käyttötapa 2: Hakea kaikki käyttäjän viestit päivämäärän mukaan järjestettyinä.

Käyttämällä yhden taulun suunnittelua:

  • PK: USER#<userId>
  • SK: #METADATA# (käyttäjäprofiilille), POST#<postId> (viesteille)

Näin käyttäjän profiili ja viestit voidaan hakea yhdellä kyselyllä USER#<userId>-partitionista.

Pikatarkistus: indeksityypit

Sinulla on DynamoDB-taulu, johon tallennetaan asiakkaiden tilauksia. Ensisijainen avain on customerId (Partition Key) ja orderId (Sort Key).

Sinun on usein haettava tietyn asiakkaan tilauksia orderDate-arvon perusteella. Minkä tyyppinen indeksi sopisi tähän parhaiten?

Kertaus: DynamoDB:n suunnittelun hallinta

Olemme käsitelleet DynamoDB:n tietomallinnuksen perusteet:

  • Ymmärrät, miten Partition Key- ja Sort Key -avaimet määrittävät tietorakenteesi.
  • Suunnittelet tietojen suhteiden sijaan käyttötapojen ympärille.
  • Hyödynnät Single-Table Design -mallia tehokkuuden parantamiseen.
  • Käytät Global Secondary Indexes (GSI) -indeksejä erilaisiin kyselyihin.
  • Hyödynnät Local Secondary Indexes (LSI) -indeksejä vaihtoehtoiseen järjestämiseen partitionin sisällä.

Tehokas tietomallinnus on ratkaisevan tärkeää DynamoDB:n optimaalisen suorituskyvyn ja kustannustehokkuuden kannalta!

Aloita maksutta

Opi AWS backend-kehittäjille (EC2, S3, RDS, Lambda) tekoälytuutorin avulla — ilmaiseksi

Kirjoita ja suorita oikeaa koodia selaimessa, saa välitöntä apua tekoälytuutorilta ympäri vuorokauden ja jatka siitä, mihin jäit, verkossa tai sovelluksessa.

Kurssit
12
Oppitunnit
48

Usein kysytyt kysymykset

Onko oppitunti ”DynamoDB:n tietomallinnus” ilmainen?

Kyllä — voit lukea täällä verkossa kokonaan ilmaiseksi mitkä tahansa AWS backend-kehittäjille (EC2, S3, RDS, Lambda)-oppimispolun 3 oppituntia, myös oppitunnin “DynamoDB:n tietomallinnus”. Sen jälkeen CoddyKit PRO avaa kaikki oppitunnit sekä interaktiiviset harjoitukset sisäänrakennetulla koodieditorilla ja ympäri vuorokauden toimivalla tekoälytuutorilla. AWS backend-kehittäjille (EC2, S3, RDS, Lambda)-kurssilla on yhteensä 4 oppituntia.

Mitä opin oppitunnilla ”DynamoDB:n tietomallinnus”?

Suunnitelkaa tehokkaat taulukkokaaviot ja käyttömallit DynamoDB:tä varten sovellustenne suorituskyvyn ja kustannusten optimoimiseksi. Harjoittelet AWS backend-kehittäjille (EC2, S3, RDS, Lambda)-aihetta koodilla, jonka suoritat suoraan selaimessa. Ympäri vuorokauden käytettävissä oleva tekoälytuutori vastaa kysymyksiisi oppitunnin aikana.

Tarvitsenko kokemusta aloittaakseni AWS backend-kehittäjille (EC2, S3, RDS, Lambda)-opiskelun?

Aiempi kokemus ei ole tarpeen. CoddyKitin AWS backend-kehittäjille (EC2, S3, RDS, Lambda)-oppimispolku sopii vasta-alkajista edistyneisiin, joten voit aloittaa tästä tai alusta ja edetä omaan tahtiisi. Tämä on oppitunti 3/4.

Kuinka kauan ”DynamoDB:n tietomallinnus”-oppitunnin suorittaminen kestää?

Useimmat CoddyKitin oppitunnit kestävät noin 5–10 minuuttia. Jokainen oppitunti on lyhyt ja interaktiivinen, joten edistyt tasaisesti ja voit jatkaa siitä, mihin jäit – sekä verkossa että sovelluksessa.

Voinko kirjoittaa ja suorittaa koodia tällä AWS backend-kehittäjille (EC2, S3, RDS, Lambda)-oppitunnilla?

Kyllä. Jokainen AWS backend-kehittäjille (EC2, S3, RDS, Lambda)-oppitunti sisältää sisäänrakennetun koodieditorin, joten voit kirjoittaa ja suorittaa oikeaa koodia suoraan selaimessa ja saada välitöntä palautetta tekoälyltä – paikallista asennusta ei tarvita.

Kaikki tämän kurssin oppitunnit

  1. RDS:n lukureplikat ja usean AZ:n käyttöönotot
  2. DynamoDB:n perusteet
  3. DynamoDB:n tietomallinnus
  4. DynamoDB Streams ja Global Tables
← Takaisin: AWS backend-kehittäjille (EC2, S3, RDS, Lambda)