Amazon bringer NoSQL til massene med DynamoDB

Cloud computing-tilbud som Microsoft Azure og Amazon SimpleDB lar utviklere fokusere på koding uten å måtte bekymre seg for infrastrukturen. Denne uken ser vi på Amazons nye skytjeneste kalt DynamoDB.

NoSQL i skyen

Mens relasjonsdatabaser gjør mange ting bra, er det tilfeller der dens stive natur er overdreven eller at den bare ikke fungerer bra. Amazon anerkjente dette med sine handlekurv- og nettstedsproblemer for år siden, og DynamoDB NoSQL-systemet utviklet seg fra selskapets arbeid for å løse disse problemene. En interessant fasett for DynamoDB-tjenesten er dens omfattende bruk av solid state-stasjoner for å hjelpe ytelsen.

Du lurer kanskje på hvordan DynamoDB skiller seg fra andre Amazon-produkter, spesielt SimpleDB. Den offisielle Amazon-dokumentasjonen opplyser at DynamoDB overvinner noen av skaleringsbegrensningene til SimpleDB. Den bemerker også at søkefleksibiliteten som tilbys av SimpleDB er bedre for mindre arbeidsmengder.

Oppe og går

Å komme i gang med Amazon Web Services (AWS) er en enkel prosess; du går til AWS-nettstedet og klikker på Registrer deg nå. Amazon tilbyr en pay-as-you-go-modell, så du trenger bare å betale for det som brukes. AWSs gratis bruksnivå lar deg bli våte med DynamoDB uten kostnad; dette inkluderer 100 MB lagring sammen med 5 dataskrivinger / sekund og 10 dataleser / sekund - så det er ikke mye trafikk, men det er ikke designet for et produksjonssystem siden de trenger å tjene penger.

Når du har registrert deg, gir AWS-konsollen et brukervennlig grensesnitt ( figur A ). Fra dette grensesnittet velger du DynamoDB og begynner å bruke tjenesten. Det grunnleggende DynamoDB-konseptet inkluderer tabeller, elementer og attributter. En database er en samling tabeller; et bord er en samling av varer; og hvert element er en samling attributter. Hvert attributt er et navn-verdipar, som enten er enkelt- eller flervurdert. Hver tabell har en primærnøkkel, som enten er Hash-type (en verdi) eller en Hash- og rekkevidde-type (to verdier). DynamoDB støtter tall- og strengdatatyper, og de kan være skalare eller flervurderte. Figur A

AWS Management konsoll (Klikk på bildet for å forstørre.)
Som et eksempel opprettet vi en DynamoDB-tabell kalt TechRepublicTest, som er initiert i figur B. Når Create Table er valgt, blir vinduet i figur C presentert for å navngi tabellen og definere et primært nøkkelnavn og datatype. Figur D er neste vindu som presenteres for å definere gjennomstrømningen av applikasjonen - avmerkingsboksen lar deg la Amazon gi assistanse. Når det er fullført, ser figur E ut til å definere eventuelle alarmer / varsler. Når den er fullført, vises siden i figur F som viser tabellen er opprettet. Med tabellen på plass, kan den brukes i koden din. Figur B

Det første trinnet i å bruke DynamoDB - lag et bord. (Klikk på bildet for å forstørre.)
Figur C

Det andre trinnet i å lage en DynamoDB-tabell - navngivning. (Klikk på bildet for å forstørre.)
Figur D

Det tredje trinnet i å lage en DynamoDB-tabell - klargjøring. (Klikk på bildet for å forstørre.)
Figur E

Det siste trinnet i å lage et DynamoDB-bord - alarmer. (Klikk på bildet for å forstørre.)
Figur F

Viser DynamoDB-tabellen i en administrasjonskonsoll. (Klikk på bildet for å forstørre.)

Grensesnitt med .NET

AWS .NET SDK gjør det enkelt å bruke de mange webtjenestene som er tilgjengelige fra Amazon i din. NET-kode - dette inkluderer DynamoDB, SimpleDB, S3, og så videre. Installasjonen av SDK gjør alle bibliotekene tilgjengelige. Nedlastingen inkluderer også mange eksempler.

En av de integrerte delene av å bruke AWS-funksjoner i koden er AWS-tilgang og hemmelige nøkkelverdier. Disse blir enkelt hentet via AWS-administrasjonskonsoll-siden ved å velge Sikkerhetsbevis fra rullegardinmenyen Min konto / konsoll øverst til høyre på skjermen.

Med legitimasjon i hånden, kan du se på DynamoDB .NET-kodeprøven som er inkludert i nedlastingen (kalt AmazonDynamoDB_Sample). Den første delen av å bruke DynamoDB bruker brukeropplysningene dine til å opprette en forekomst av AmazonDynamoDB-objektet for å jobbe med databaseobjekter.

 AmazonSecurityTokenServiceClient stsClient = ny AmazonSecurityTokenServiceClient (); 

RefreshingSessionAWSCredentials sessionCredentials = new RefreshingSessionAWSCredentials (stsClient);

AmazonDynamoDB-klient = ny AmazonDynamoDBClient (sessionCredentials);

Når du har en forekomst av klienten, kan du jobbe med databaseobjekter eller data. Følgende kodestykke oppretter en annen tabell kalt CNetSites med to attributter: Tittel og URL.

 client.CreateTable (ny CreateTableRequest { 

Tabellnavn = "CNetSites", ProvisionedThroughput = new ProvisionedThroughput {ReadCapacityUnits = 5, WritCapacityUnits = 5}, KeySchema = new KeySchema {

HashKeyElement = nytt KeySchemaElement {AttributeName = "Tittel", AttributeType = "S"}, RangeKeyElement = new KeySchemaElement {AttributeName = "URL", AttributeType = "S"}}});

Du kan grave videre i eksempelkoden som følger med SDK for å få en bedre følelse av hvordan du bruker de forskjellige objektene og tjenestene i koden. Du er ikke begrenset til .NET; det er SDK-er tilgjengelige for Java og PHP også.

Nok en god service fra Amazon

Når det gjelder netthandel, er det noen som gjør det bedre enn Amazon? Jeg synes det er flott at selskapet åpner disse tjenestene som er ferdig testet i sitt eget krevende miljø, slik at jeg kan bruke et backend NoSQL-miljø via DynamoDB i applikasjonen min og fokusere på kodingen, ikke infrastrukturen.

Jeg er ny på DynamoDB, så hvis du bruker det, kan du dele erfaringene dine med skytjenesten - positiv eller negativ - i diskusjonen.

Hold dine tekniske ferdigheter oppdatert ved å registrere deg på TechRepublics gratis nyhetsbrev om Software Engineer, levert hver tirsdag.

© Copyright 2021 | pepebotifarra.com