Inhoudsopgave:
- Hbase is beperkt
- HBase is gedistribueerd en persistent
- HBase heeft een multidimensionale gesorteerde kaart
Video: Dag Sinterklaas - De attributen van Sinterklaas (kledij) 2024
HBase (Hadoop-database) is een Java-implementatie van Google's BigTable. Google definieert BigTable als een 'schaars, gedistribueerd, persistent multidimensionaal gesorteerde kaart. "Het is een vrij beknopte definitie, maar je zult het er ook over eens zijn dat het een beetje ingewikkeld is. Om de complexiteit van BigTable een beetje af te breken, volgt een bespreking van elk attribuut.
Hbase is beperkt
Zoals je misschien al hebt geraden, is het BigTable gedistribueerde gegevensopslagsysteem ontworpen om aan de eisen van big data te voldoen. Big data-applicaties slaan nu veel gegevens op, maar big data-content is ook vaak variabel. Stel u een traditionele tabel voor in een bedrijfsdatabase met klantcontactinformatie, zoals weergegeven:
Klant-ID | Achternaam | Voornaam | Tweede voornaam | E-mailadres | Straatadres |
---|---|---|---|---|---|
00001 | Smith | John | Timothy | 1 Hadoop Lane, NY 11111 | |
00002 | Doe | Jane | NULL | NULL | 7 HBase Ave, CA 22222 |
Een bedrijf of persoon kan een volledig gegevensrecord vereisen voor elk van zijn klanten of kiezers. Een goed voorbeeld is uw arts, die al uw contactgegevens nodig heeft om u de juiste zorg te kunnen bieden. Andere bedrijven of individuen hebben mogelijk slechts gedeeltelijke contactgegevens nodig of moeten die informatie mogelijk in de loop van de tijd leren.
Een klantenservicebedrijf kan bijvoorbeeld telefoonoproepen of e-mailberichten verwerken voor serviceaanvragen. Klanten kunnen al dan niet ervoor kiezen om servicebedrijven al hun contactgegevens te geven. Bij elke interactie na verloop van tijd kunnen bedrijven echter meer over hun klanten leren waardoor ze betere service kunnen bieden, bijvoorbeeld door proactieve servicewaarschuwingen uit te geven.
In deze context betekent sparse dat velden in rijen leeg of NULL kunnen zijn maar HBase niet tot stilstand komt. HBase kan het feit aan dat u (nog) niet de middennaam en het e-mailadres kent van Jane Doe, bijvoorbeeld.
Hier is nog een voorbeeld: een database voor het opslaan van satellietbeelden. Het blijkt dat Google BigTable-technologie gebruikt om satellietbeelden van de aarde op te slaan. In bijna alle gevallen, wanneer afbeeldingen worden opgeslagen, worden ook metagegevens ermee opgeslagen.
De metagegevens kunnen het straatadres van de afbeelding bevatten of alleen de breedtegraad en lengtegraad als de afbeelding wordt vastgelegd vanuit de wildernis. De metadata is variabel qua inhoud, dus sommige velden zijn NULL - en dat is OK.
In beide voorbeelden kunnen de verzamelde gegevenssets extreem groot zijn, vooral in het tweede voorbeeld.Imagery-databases worden bijna altijd gemeten in terabytes of soms in petabytes.
HBase is ontworpen voor het opslaan van grote gegevens, maar het is ook ontworpen voor het opslaan van beperkte gegevensrecords zonder kosten. Deze zorg is cruciaal wanneer u big data-applicaties gebruikt! Het opslaan van een paar NULL-records over een miljoen rijen is verspilling, maar probeer je het afval voor te stellen over een reeks van vierhonderd rijen!
Gelukkig was dit een belangrijke overweging voor Google-ontwerpers en de HBase-community. Schaarse gegevens worden ondersteund zonder verspilling van dure opslagruimte.
En daar stopt het niet. Overweeg de kracht van een gegevensloze gegevensopslag. De tabel toont een klassieke klantcontactentabel. Wanneer bedrijven deze tabellen ontwerpen, weten ze van tevoren wat ze willen opslaan. Met andere woorden: het schema is vast ; het wordt gedefinieerd zelfs voordat de eerste byte aan informatie in de tabel wordt opgeslagen.
Wat als er in de loop van de tijd een nieuw veld nodig is voor een klant? Wat dacht je van een Twitter-afhandeling of een nieuw mobiel nummer? U zit blijkbaar vast aan een schema dat niet meer voor u werkt.
Welnu, HBase lost deze uitdaging ook op - u kunt niet alleen velden zonder kosten overslaan als u de gegevens niet hebt, maar ook dynamisch velden (of kolommen in de lokale taal van HBase) toevoegen tijd zonder het schema opnieuw te hoeven ontwerpen of de werking te verstoren.
U kunt HBase dus beschouwen als een gegevensarchief zonder schema; dat wil zeggen, het is vloeiend - je kunt het schema toevoegen, aftrekken of wijzigen terwijl je doorgaat.
HBase is gedistribueerd en persistent
BigTable is een gedistribueerde en permanente gegevensopslag. Persistent betekent eenvoudigweg dat de gegevens die u opslaat in BigTable (en HBase, wat dat betreft) blijven bestaan of blijven nadat uw programma of sessie eindigt. Dat is vrij eenvoudig - aanhoudend betekent dat het blijft bestaan - maar u moet wat meer tijd besteden aan het nadenken over hoe de gegevens aanhouden.
In zijn BigTable-document beschreef Google het gedistribueerde bestandssysteem dat bekend staat als Google File System of GFS. Het lijkt erop dat, net zoals HBase een open source-implementatie van BigTable is, HDFS een open source-implementatie van GFS is.
Standaard gebruikt HBase HDFS om de gegevens naar schijfopslag te houden. Hoewel andere gedistribueerde datastores kunnen worden gebruikt met HBase, maakt de overgrote meerderheid van de HBase-installaties gebruik van HDFS. Dit is volkomen logisch gezien HBase de "Hadoop-database" is - hey, het is in de naam ingebouwd, in hemelsnaam.
HDFS is een belangrijke enabling technology, niet alleen voor Hadoop maar ook voor HBase. Door gegevens in HDFS op te slaan, biedt HBase betrouwbaarheid, beschikbaarheid, naadloze schaalbaarheid, hoge prestaties en nog veel meer - alles op kosteneffectieve gedistribueerde servers!
HBase heeft een multidimensionale gesorteerde kaart
Uitgaand van de basis, is een kaart (ook bekend als een associatieve array ) een abstracte verzameling sleutel / waarde-paren, waarbij de sleutel is uniek. Deze definitie is cruciaal voor uw begrip van HBase, omdat het HBase-gegevensmodel vaak op verschillende manieren wordt beschreven - vaak onvolledig als een kolomgerichte winkel.
HBase is onderaan een sleutewaardegegevensarchief waarin elke sleutel uniek is - wat betekent dat deze maximaal één keer in de HBase-gegevensopslag verschijnt. Bovendien is de kaart gesorteerd en multidimensionaal. De sleutels worden in HBase opgeslagen en in byte-lexicografische volgorde gesorteerd. Elke waarde kan meerdere versies hebben, waardoor het datamodel multidimensionaal wordt. Standaard worden dataversies geïmplementeerd met een tijdstempel.