Huis Persoonlijke financiën Overgang van een RDBMS-model naar HBase - dummies

Overgang van een RDBMS-model naar HBase - dummies

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

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

Als u geconfronteerd wordt met de ontwerpfase voor uw toepassing en u gelooft dat HBase een goede match zou zijn, dan is het ontwerpen van uw rijsleutels en schema om in te passen op het HBase-gegevensmodel en de architectuur de juiste aanpak. Soms is het echter zinvol om een ​​database te verplaatsen die oorspronkelijk is ontworpen voor een RDBMS naar HBase.

Een veelvoorkomend scenario waarbij deze aanpak zinvol is, is een MySQL-databasetoepassing die de grenzen van schaalbaarheid heeft bereikt. Technieken bestaan ​​voor het horizontaal schalen van een MySQL-instantie ( sharding, met andere woorden), maar dit proces is meestal omslachtig en problematisch omdat MySQL eenvoudig niet oorspronkelijk was ontworpen voor sharding.

Overgang van het relationele model naar het HBase-model is een relatief nieuwe discipline. Bepaalde gevestigde denkpatronen zijn echter in opkomst en zijn samengevoegd in drie hoofdprincipes die moeten worden gevolgd bij het naderen van een transitie. Deze principes zijn denormalisatie, duplicatie, en intelligente sleutels (DDI) .

  • Denormalisatie: Het relationele databasemodel is afhankelijk van a) een genormaliseerd databaseschema en b) joins tussen tabellen om te reageren op SQL-bewerkingen. Database-normalisatie is een techniek die gegevensverlies, redundantie en andere anomalieën beschermt wanneer gegevens worden bijgewerkt en opgehaald.

    Er zijn een aantal regels die de experts volgen om tot een genormaliseerd databaseschema te komen (en database-normalisatie is een volledige studie zelf), maar het proces omvat meestal het verdelen van grotere tabellen in kleinere tabellen en het definiëren van relaties tussen hen. Database denormalisatie is het tegenovergestelde van normalisatie, waarbij kleinere, meer specifieke tabellen worden samengevoegd in grotere, meer algemene tabellen.

    Dit is een gebruikelijk patroon bij het overstappen naar HBase, omdat joins niet worden aangeboden in tabellen en joins soms traag zijn omdat ze dure schijfbewerkingen met zich meebrengen. Bewaken tegen de anomalieën voor het bijwerken en ophalen is nu de taak van uw HBase-clienttoepassing, omdat de beveiligingen die u door normalisatie worden geboden, nietig en ongeldig zijn.

  • Duplicatie: Terwijl u uw databaseschema denormaliseert, zult u waarschijnlijk de gegevens dupliceren omdat het u kan helpen kostbare leesbewerkingen in meerdere tabellen te voorkomen. Maak je geen zorgen over de extra opslag (uiteraard binnen de rede); u kunt de automatische schaalbaarheid van HBase in uw voordeel gebruiken.

    Houd er echter rekening mee dat extra werk door uw clienttoepassing nodig zal zijn om de gegevens te dupliceren en onthoud dat native alleen op atomaire operaties op rijniveau niet in de rij voorkomt (met de uitzondering die wordt beschreven in de HBASE-5229 JIRA) of kruis tafel.

  • Intelligente sleutels: Omdat de gegevens die in HBase zijn opgeslagen, per rijsleutel worden gerangschikt en de rijsleutel de enige door het systeem geleverde native index is, kan een zorgvuldig intelligent ontwerp van de rijsleutel een groot verschil maken. Uw rijsleutel kan bijvoorbeeld een combinatie zijn van een serviceordernummer en het ID-nummer van de klant dat de serviceorder heeft geplaatst.

    Met dit ontwerp met rijsleutels kunt u gegevens met betrekking tot de serviceorder opzoeken of gegevens met betrekking tot de klant opzoeken met dezelfde rijsleutel in dezelfde tabel. Deze techniek zal sneller zijn voor sommige zoekopdrachten en dure tafeljoins vermijden.

Om deze specifieke denkpatronen te verduidelijken, neemt u een tabel met klantcontactinformatie en plaatst u deze in de context van een typische database met serviceorders. In de afbeelding ziet u hoe een genormaliseerd database-schema voor serviceorders eruit kan zien.

Volg de regels voor RDBMS-normalisatie door de voorbeeldtabel Klantcontactinformatie zodanig in te stellen dat deze los staat van de tabel met serviceorders, om te voorkomen dat klantgegevens verloren gaan wanneer serviceorders worden gesloten en mogelijk worden verwijderd. Neem dezelfde benadering voor de tabel Producten, wat betekent dat nieuwe producten kunnen worden toegevoegd aan de fictieve bedrijfsdatabase onafhankelijk van serviceorders.

Door te vertrouwen op bewerkingen in RDBMS-join, ondersteunt dit schema query's die het aantal serviceorders weergeven dat wordt geopend voor een bepaald product, samen met de locatie van de klant waar het product in gebruik is.

Dat is allemaal goed en grappig, maar het is een schema dat u zou gebruiken met RDBM. Hoe zet je dit schema over naar een HBase-schema? De volgende afbeelding illustreert een mogelijk HBase-schema - een schema dat het DDI-ontwerppatroon volgt.

De tabel Klantcontactinformatie is gedenormaliseerd door de naam van de klant en contactgegevens op te nemen in plaats van de eerder gebruikte externe sleutels. Ook worden de gegevens gedupliceerd door de tabel met klantcontactinformatie te houden zoals deze is. Nu zijn koppelingen in de tabel Servicebestelling en de tabel Klantcontactinformatie niet nodig.

Daarnaast is een intelligent ontwerp met rijsleutels gebruikt dat het productnummer combineert met het klantnummer om het serviceordernummer te vormen (bijvoorbeeld A100 | 00001). Met behulp van deze intelligente sleutel kan de serviceordertabel essentiële rapporten over productdeficiënties en klanten die momenteel problemen met het product ondervinden, leveren.

Al deze query's kunnen allemaal worden ondersteund door HBase op atoommanierniveau op rijniveau voor de toepassing. Omdat u weet dat HBase rijsleutels bestelt en ze sorteert op een lexicografische manier, kan uw toepassing bepaalde goedgewerkte gissingen doen over gegevenslocatie bij het genereren van scans voor rapportage. (Alle productnummers van een A * -reeks worden bijvoorbeeld samen opgeslagen.)

De serviceorderdatabase die door het HBase-schema wordt vertegenwoordigd, is een relatief eenvoudig voorbeeld, maar het illustreert hoe HBase in bepaalde gevallen de RDBMS-wereld kan kruisen en bieden aanzienlijke waarde. Als het fictieve bedrijf terabytes of zelfs petabytes aan servicegesprekgegevens heeft om op te slaan, zou HBase een enorm verschil maken in termen van kosten, betrouwbaarheid, prestaties en schaal.

U kunt het HBase-schema van uw serviceorder natuurlijk op verschillende manieren ontwerpen. Toegegeven, het ontwerp hangt allemaal af van de vragen die moeten worden ondersteund, maar je hebt de mogelijkheid om sommige relationele databases over te zetten naar zeer krachtige HBase-toepassingen voor productiegebruik, zolang je werkt vanuit een goed begrip van de HBase-architectuur en het DDI-ontwerppatroon.

In dit voorbeeld is aangenomen dat query's zijn uitgevoerd door een Java-toepassing die de API's van de HBase-client gebruikt, of misschien via een andere taal met Apache Thrift. Dit applicatiemodel kan prima voldoen aan de vereisten en biedt nuttige prestatie- en aanpassingsmogelijkheden voor het fictieve servicebedrijf.

Overgang van een RDBMS-model naar HBase - dummies

Bewerkers keuze

Tien Helpbronnen voor Junos OS - dummies

Tien Helpbronnen voor Junos OS - dummies

Dit is een top-tien lijst met bronnen die u moet zoeken meer informatie over softwarebewerkingen, training en ondersteuning voor Junos - alle extra details die u mogelijk nodig heeft om Junos OS te kunnen configureren en bedienen in uw eigen netwerkimplementaties. CLI Help-commando's Bent u op zoek naar meer achtergrondinformatie over hoe een bepaalde functie ...

De functie van de drie vlakken van Junos netwerk OS - dummies

De functie van de drie vlakken van Junos netwerk OS - dummies

De architectuur van de Junos opererende systeem verdeelt de functies van besturing, services en doorsturen op verschillende niveaus. Elk van de vlakken van Junos OS biedt een kritieke set van functionaliteit in de werking van het netwerk. Besturingsvlak van het Junos-netwerkbesturingssysteem (NOS) Alle functies van het besturingsvlak lopen op ...

De basisprincipes van BGP-routebealing - dummy's

De basisprincipes van BGP-routebealing - dummy's

Het configureren van Border Gateway Protocol (BGP) kan nogal lastig zijn, vooral met grote aantallen peersessies die handmatig moeten worden geconfigureerd. In feite kan in een groot netwerk de full-mesh-vereiste voor IBGP een provisioning-nachtmerrie zijn. BGP's antwoord op de IBGP-paring-configuratie-nachtmerrie die het volledige maaswerk is, wordt routeberefening genoemd. Route ...

Bewerkers keuze

Noodzakelijke elementen voor SEO om hoge trefwoorden te krijgen - dummies

Noodzakelijke elementen voor SEO om hoge trefwoorden te krijgen - dummies

Als de allerbeste locatie op het web staat op de pagina een van de zoekmachines, je moet de SEO-elementen kennen die je daar kunnen brengen. Een goede plek om te beginnen is met zoekwoorden. Zoekmachines gebruiken geavanceerde processen om zoekwoordgebruik en andere factoren te categoriseren en analyseren om erachter te komen ...

Persberichten als bron van SEO-inhoud - dummies

Persberichten als bron van SEO-inhoud - dummies

Het leuke aan persberichten is dat u ze zonder toestemming op uw website kunt gebruiken, en sommige zullen al voor de zoekmachine zijn geoptimaliseerd. Het doel van een persbericht is om het uit te sturen en te zien wie het ophaalt. U hoeft geen contact op te nemen met de eigenaar van het persbericht, omdat ...

Kies een domeinnaam die geoptimaliseerd is voor zoekmachines - dummies

Kies een domeinnaam die geoptimaliseerd is voor zoekmachines - dummies

Zelfs de domeinnaam van uw site moet geoptimaliseerd voor zoekmachines. Zoekmachines lezen uniforme resource locators (URL's), op zoek naar sleutelwoorden erin. Bijvoorbeeld als u een website heeft met de domeinnaam knaagdierracen. com en iemand zoekt Google op knaagdierenraces, Google ziet rodent-racing als een wedstrijd; omdat er een streepje verschijnt tussen de twee ...

Bewerkers keuze

Praxis Elementair onderwijs Examen-Economie - dummies

Praxis Elementair onderwijs Examen-Economie - dummies

U zult enkele basisconcepten van de economie voor de Praxis moeten kennen Elementair onderwijs examen. Elementaire economie onderzoekt de wens voor, de productie van en de verkoop en het gebruik van geld, zowel lokaal als wereldwijd. Het onderwijzen van economie omvat concepten zoals behoeften versus behoeften, kosten en meer tot nadenken stemmende onderwerpen, zoals de volgende: ...

Praxis Elementair onderwijs voor Dummy's Cheat Sheet - dummies

Praxis Elementair onderwijs voor Dummy's Cheat Sheet - dummies

Het Praxis basisonderwijs: Curriculum, instructie en beoordeling examen (5017) bestrijkt een breed scala van wat u moet weten over basisonderwijs. Als u het Praxis Elementary Education: Content Knowledge-examen (5018) neemt, moet u zich ervan bewust zijn dat het de dekking beperkt tot de inhoud van de vier hoofdonderwerpen die een elementaire leraar is ...

Praxis Core For Dummies Cheat Sheet - dummies

Praxis Core For Dummies Cheat Sheet - dummies

Voordat je te opgewonden raakt, begrijp dat de informatie die volgt niet klopt eigenlijk niet over het bedriegen van de Praxis. Het gaat echt meer om de meest efficiënte manieren om je voor te bereiden op het examen. Maar "voorbereidingsblad" heeft niet helemaal dezelfde reden. Trouwens, vals spelen is niet nodig als je weet wat je aan het doen bent, en ...