Hjem Personlig finansiering Overgang fra en RDBMS-modell til HBase-dummies

Overgang fra en RDBMS-modell til HBase-dummies

Video: Full Notion Tour | Kylie Stewart (2019 Edition) 2024

Video: Full Notion Tour | Kylie Stewart (2019 Edition) 2024
Anonim

Hvis du står overfor designfasen for din søknad, og du tror at HBase ville passe bra, så utformer du radnøklene og skjemaet for å passe til HBase-datamodellen og arkitekturen. riktig tilnærming. Men noen ganger er det fornuftig å flytte en database opprinnelig designet for en RDBMS til HBase.

Et vanlig scenario der denne tilnærmingen gir mening er en MySQL-databaseeksempel som har nådd grenser for skalerbarhet. Teknikker eksisterer for horisontal skalering av en MySQL-forekomst ( sharding, med andre ord), men denne prosessen er vanligvis tungvint og problematisk fordi MySQL rett og slett ikke var opprinnelig utformet for sharding.

Overgang fra relasjonsmodellen til HBase-modellen er en relativt ny disiplin. Imidlertid utvikler visse etablerte tankemønstre seg og har sammenblandet seg i tre sentrale prinsipper som skal følges når man nærmer seg en overgang. Disse prinsippene er denormalisering, duplisering, og intelligente nøkler (DDI) .

  • Denormalisering: Relasjonsdatabasemodellen avhenger av a) et normalisert databaseskema og b) knytter seg til tabeller for å svare på SQL-operasjoner. Database normalisering er en teknikk som beskytter mot tap av data, redundans og andre uregelmessigheter ettersom data oppdateres og hentes.

    Det finnes en rekke regler som eksperterne følger for å komme til et normalisert databaseskema (og databasen normalisering er en hel studie selv), men prosessen innebærer vanligvis å dele større tabeller i mindre tabeller og definere relasjoner mellom dem. Database denormalisering er motsatt av normalisering, hvor mindre, mer spesifikke tabeller blir slått sammen i større, mer generelle tabeller.

    Dette er et vanlig mønster når du overfører til HBase fordi det ikke er gitt sammenføyninger på tvers av tabeller, og sammenføyning kan være sakte siden de involverer kostbare diskoperasjoner. Å overvåke oppdateringen og gjenoppretting av anomalier er nå jobben i ditt HBase-klientprogram, siden beskyttelsene du gir ved normalisering, er ugyldige.

  • Duplisering: Når du deformaliserer databaseskjemaet ditt, vil du sannsynligvis ende opp med å duplisere dataene fordi det kan hjelpe deg med å unngå kostbare leseoperasjoner på tvers av flere tabeller. Ikke vær bekymret for ekstra lagring (innen grunn selvfølgelig); Du kan bruke den automatiske skalerbarheten til HBase til din fordel.

    Vær oppmerksom på at det ekstra arbeidet ditt vil kreve at klientprogrammet ditt dupliserer dataene, og husk at nasjonalt HBase bare gir rodenivå atomoperasjoner ikke krysser rad (med unntaket beskrevet i HBASE-5229 JIRA) eller kryss bord.

  • Intelligent Keys: Fordi dataene som er lagret i HBase, er ordnet med radnøkkel, og radnøkkelen er den eneste innfødte indeksen som leveres av systemet, kan en forsiktig intelligent utforming av radnøkkelen gjøre en stor forskjell. For eksempel kan radnøkkelen være en kombinasjon av et bestillingsordrenummer og kundens ID-nummer som plasserte serviceordren.

    Med dette radnøkkedesignet kan du slå opp data relatert til serviceordren eller slå opp data knyttet til kunden ved å bruke samme radnøkkel i samme tabell. Denne teknikken vil bli raskere for noen spørsmål og unngå kostbare tabeller.

For å klargjøre disse spesielle tankemønstrene, ta en Kundekontaktinformasjonstabell og plasser den i sammenheng med en typisk serviceordningsdatabase. Figuren viser deg hva et normalisert serviceordningsdatabaseskema kan se ut.

Følg reglene for RDBMS-normalisering ved å sette opp kundens kontaktinformasjonstabell slik at den er skilt fra serviceordetabellen for å unngå å miste kundedata når serviceordrer er stengt og muligens slettet. Ta samme tilnærming til produkttabellen, noe som betyr at nye produkter kan legges til den fiktive bedriftsdatabasen uavhengig av serviceordrer.

Ved å stole på RDBMS-tilknytningsoperasjoner, støtter dette skjemaet spørringer som viser antall serviceordrer som åpnes mot et bestemt produkt sammen med kundens sted hvor produktet er i bruk.

Det er greit og dumt, men det er et skjema du vil bruke med RDBM. Hvordan overfører du dette skjemaet til et HBase-skjema? Neste figur illustrerer en mulig HBase-skjema - en som følger DDI-mønsteret.

Kundekontaktinformasjonstabellen er blitt denormalisert ved å inkludere kundenavnet og kontaktinformasjonen i stedet for de fremmede nøklene som tidligere ble brukt. Også, dataene blir duplisert ved å holde tabellen Customer Contact Information som det er. Nå går det på tvers av Service Order-tabellen, og kundetilknytningsinformasjonstabellen er ikke nødvendig.

I tillegg er det brukt en intelligent radnøkkeldesign som kombinerer produktnummeret med kundenummeret for å danne bestillingsnummeret (f.eks. A100 | 00001). Ved hjelp av denne intelligente nøkkelen kan serviceordetabellen gi viktige rapporter om produktmangler og kunder som for tiden opplever produktproblemer.

Alle disse spørringene kan alle støttes av HBase på radnivå atommote for applikasjonen. Fordi du vet at HBase ordner radnøkler og sorterer dem på en leksikografisk måte, kan søknaden din gjøre visse utdannede gjetninger om datalokalitet ved utstedelse av skanninger for rapportering. (Alle A * -serienummer vil bli lagret sammen, for eksempel.)

Serviceordningsdatabasen representert ved HBase-skjemaet er et relativt enkelt eksempel, men det illustrerer hvordan HBase i visse tilfeller kan krysse med RDBMS-verdenen og gir betydelig verdi. Hvis det fiktive selskapet har terabytes eller til og med petabytes av serviceanropsdata som skal lagres, ville HBase gjøre en stor forskjell når det gjelder kostnad, pålitelighet, ytelse og skala.

Du kan selvfølgelig utforme ditt HBAS-bestillingsskjema på flere forskjellige måter. Helt klart er utformingen alt avhengig av spørsmålene som må støttes, men du har muligheten til å overføre noen relasjonsdatabaser til meget kraftige HBase-applikasjoner for produksjon, så lenge du jobber med en solid forståelse av HBase-arkitekturen og DDI-mønsteret.

Dette eksemplet har antatt at forespørsler ble utført av et Java-program som utnytter HBase-klient-APIer, eller kanskje via et annet språk ved hjelp av Apache Thrift. Denne applikasjonsmodellen passer perfekt til kravene og gir nyttige ytelses- og tilpasningsalternativer for det fiktive servicefirmaet.

Overgang fra en RDBMS-modell til HBase-dummies

Redaktørens valg

Speil Lockup (MUP) på Nikon D7100-dummies

Speil Lockup (MUP) på Nikon D7100-dummies

En komponent i det optiske systemet til din Nikon D7100 kamera er et speil som beveger seg hver gang du trykker på lukkerknappen. Den lille vibrasjonen som følge av speilets handling kan føre til svak utryddelse av bildet når du bruker en veldig langsom lukkerhastighet, skyter med en lang teleobjektiv, ...

Opptaksmuligheter på Nikon D5300 - dummies

Opptaksmuligheter på Nikon D5300 - dummies

Du kan styre noen få aspekter av din filmoppgave på din Nikon D5300. Du kan manipulere videoen din for å skape en rekke effekter. Følgende liste går gjennom disse alternativene: Eksponeringsmodus: Du kan ta opp filmer i hvilken som helst eksponeringsmodus (Auto, Scenemodus, Effektmodus, P, M, og så videre). Som med fortsatt ...

Hvordan man manipulerer eksponering og kontroll på Nikon D5600-dummies

Hvordan man manipulerer eksponering og kontroll på Nikon D5600-dummies

Følgende retusjonsverktøy på din Nikon D5600 kamerajustering eksponering og farge: D-Lighting, Quick Retouch, Filter Effects og Monochrome. Selv om disse verktøyene ikke får deg til å velge ett kamera over en annen, hvis du allerede har en Nikon D5600, er de tilgjengelige, så du kan også lære å bruke dem! D-Lighting: Active D-Lighting ...

Redaktørens valg

DOs og DON'Ts of Fantasy Basketball Draft Picks - dummies

DOs og DON'Ts of Fantasy Basketball Draft Picks - dummies

Hvis du vurderer bli med i en fantasy basketball liga, må du ta hensyn til følgende DOs og DON'Ts før du vurderer spillerne du vil utarbeide på laget ditt. Kreditt: © iStockphoto. com / IS_ImageSource Fantasy basketball draft pick DOS I de fleste fantasy basketball ligaer bestemmer kommisjonen (personen som setter opp ligaen) bestillingen i ...

Linjene og dimensjonene til en basketballbane - dummies

Linjene og dimensjonene til en basketballbane - dummies

En basketballbane har symmetri; Den ene halvdelen av retten er et speilbilde av den andre. Hele basketballbanen (se figur 1) er 94 fot med 50 fot. På hver halvplass viser malte linjer fritt korsbanen og sirkelen, samt trepunktsbuen, hvis avstand fra kurven varierer basert ...

Kjøp av gratis agenter i fantasy fotball - dummies

Kjøp av gratis agenter i fantasy fotball - dummies

I løpet av fantasy fotball sesongen, spillere som ikke blir utarbeidet bli gratis agenter - spillere tilgjengelig for enhver ligamatch villig til å slippe en eid spiller. Bruk gratis agentbassenget til å erstatte en skadet spiller eller noen som bare ikke lever opp til dine forventninger. Bruk disse tipsene for å finne en gratis agent for å ...

Redaktørens valg

Grunnleggende for din iOS-app - dummies

Grunnleggende for din iOS-app - dummies

Heldigvis mesteparten av det du trenger å gjøre så langt som iOS animasjon er opptatt er allerede bygd inn i rammen. Noen visningsegenskaper kan animeres, noe som betyr at du bare må fortelle visningen hvor du skal begynne og hvor du skal avslutte flyttingen, og noen få andre valgfrie parametere, og du er ferdig. ...

Montering av verktøylinjen for Android App Development - dummies

Montering av verktøylinjen for Android App Development - dummies

Når du vet at du er klar til være en Android-utvikler, ta tak i datamaskinen din og få sprekker på å installere verktøyene og rammene som er nødvendige for å bygge ditt første blockbuster-program. Linux-kjernen Android ble opprettet på toppen av åpen kildekode Linux-kjernen. Android-teamet valgte å bruke denne kjernen fordi den ga bevist ...

Grunnleggende om Cocoa Touch i iOS Apps - dummies

Grunnleggende om Cocoa Touch i iOS Apps - dummies

Cocoa Touch-laget inneholder det meste av objektet -orientert utvikler-vendt rammer for å bygge iOS applikasjoner. Det er ditt eneste utgangspunkt for app-utvikling. Apple-guiderne oppfordrer deg til å undersøke teknologiene i dette laget for å se om de oppfyller dine behov, før du ser på de andre lagene. Med andre ord, Apple har til hensikt å ...