DynamoDB:n tietomallinnus
Suunnitelkaa tehokkaat taulukkokaaviot ja käyttömallit DynamoDB:tä varten sovellustenne suorituskyvyn ja kustannusten optimoimiseksi.
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 tuotteetcategory-arvon perusteella”, ”Etsi kaikkipostId-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
PKjaSK, sekä etuliitteitä (esimerkiksiUSER#<id>jaORDER#<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!
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
- RDS:n lukureplikat ja usean AZ:n käyttöönotot
- DynamoDB:n perusteet
- DynamoDB:n tietomallinnus
- DynamoDB Streams ja Global Tables