Innehållsförteckning:
Video: Databases & Data Warehouses, Data: Structures, Types, Integrations 2024
HBase (Hadoop Database) är en Java-implementering av Googles BigTable. Google definierar BigTable som en "gles, distribuerad, beständig multidimensionell sorterad karta. "Det är en ganska kortfattad definition, men du kommer också att hålla med om att det är lite på den komplexa sidan. För att bryta ner BigTables komplexitet lite, följer en diskussion om varje attribut.
Hbase är gles
Som du kanske gissat var BigTables distribuerade datalagringssystem utformat för att möta kraven på stora data. Nu lagrar stora dataprogram mycket data, men stor datainnehåll är också ofta variabel. Föreställ dig ett traditionellt bord i en företagsdatabas som lagrar kundkontaktinformation, som visas:
Kunde-ID | Efternamn | Förnamn | Mellannamn | E-postadress | Gatuadress |
---|---|---|---|---|---|
00001 | Smith | John | Timothy | 1 Hadoop Lane, NY 11111 | |
00002 | Doe | Jane | NULL | NULL | 7 HBase Ave, CA 22222 |
Ett företag eller en individ kan kräva en fullständig datapost för var och en av sina kunder eller beståndsdelar. Ett bra exempel är din läkare, som behöver all din kontaktinformation för att du ska kunna sköta dig ordentligt. Andra företag eller privatpersoner kan kräva endast partiell kontaktinformation eller kan behöva lära sig den informationen över tiden.
Exempelvis kan ett kundserviceföretag behandla telefonsamtal eller e-postmeddelanden för serviceförfrågningar. Klienter kan eller inte välja att ge serviceföretag all sin kontaktinformation. Men med varje växelverkan över tiden kan företagen lära sig mer om sina kunder, så att de kan ge bättre service - genom att utfärda proaktiva servicevarningar, till exempel.
I detta sammanhang betyder sparsom att fält i rader kan vara tomma eller NULL men det leder inte till HBase till ett krypande stopp. HBase kan hantera det faktum att du (ännu) inte känner till Jane Does mellannamn och e-postadress, till exempel.
Här är ett annat exempel: en databas för lagring av satellitbilder. Det visar sig att Google använder BigTable-teknik för att lagra satellitbilder av jorden. I nästan alla fall lagras metadata även när bilder sparas.
Metadata kan innehålla bildens gatuadress eller endast latitud och longitud om bilden är fångad från vildmarken. Metadata är variabel i innehåll så vissa fält blir NULL - och det är OK.
I båda exemplen kan de datasatser som samlas in vara extremt stora - speciellt i det andra exemplet.Imagery databaser mäts nästan alltid i terabyte eller ibland i petabyter.
HBase är konstruerad för att lagra stor data, men den är också avsedd att lagra sparsamma dataposter utan kostnad. Denna oro är avgörande när du använder stora dataprogram! Att lagra några NULL-poster över en miljon rader är slöseri, men försök att föreställa avfallet över en quadrillionrader!
Tack och lov var detta ett viktigt övervägande för Google-designers och HBase-samhället. Sparsam data stöds utan slöseri med dyrt lagringsutrymme.
Och det slutar inte där. Tänk på kraften i en schemalagd datalager. I tabellen visas ett klassiskt kundkontaktbord. När företag utformar dessa tabeller, vet de upp framför vad de vill lagra. Med andra ord är schemat fixerat ; Det definieras även innan den första byte av information lagras i tabellen.
Nu, om det i tid krävs ett nytt fält för en kund? Vad sägs om ett Twitter-handtag eller ett nytt mobilnummer? Du är uppenbart fast med ett schema som inte längre fungerar för dig.
Ja, HBase löser också den här utmaningen - du kan inte bara hoppa över fält utan kostnad när du inte har data, men lägger även till fält (eller kolumner i HBase-folket) över tid utan att behöva omforma schemat eller störa operationerna.
Så du kan tänka på HBase som en schemalagd datalager; det vill säga det är flytande - du kan lägga till, subtrahera eller ändra schemat när du går vidare.
HBase distribueras och beständig
BigTable är en distribuerad och beständig datalagring. Persistent betyder helt enkelt att de data du lagrar i BigTable (och HBase, för den delen) kommer att kvarstå eller förbli efter att ditt program eller session slutar. Det är ganska enkelt - beständigt betyder att det kvarstår - men du borde spendera lite mer tid på att tänka på hur uppgifterna kvarstår.
I sitt BigTable-papper beskrev Google det distribuerade filsystemet känt som Google File System eller GFS. Det visar sig att, precis som HBase är en open source-implementering av BigTable, är HDFS en öppen källkodsimplementering av GFS.
Som standard använder HBase HDFS för att fortsätta sin data till disklagring. Även om andra distribuerade datalager kan användas med HBase utnyttjar de allra flesta HBase-installationer HDFS. Detta ger perfekt mening med tanke på att HBase är "Hadoop databasen" - hej, den är inbyggd i namnet, för godhets skull.
HDFS är en nyckel som möjliggör teknik inte bara för Hadoop utan även för HBase. Genom att lagra data i HDFS erbjuder HBase tillförlitlighet, tillgänglighet, sömlös skalbarhet, hög prestanda och mycket mer - allt på kostnadseffektiva distribuerade servrar!
HBase har en multidimensionell sorterad karta
Med utgångspunkt från grunderna är en karta (även känd som en associativ array ) en abstrakt samling av nyckelvärdespar, där nyckeln är unik. Denna definition är avgörande för din förståelse av HBase eftersom HBase-datamodellen ofta beskrivs på olika sätt - ofta ofullständigt som en kolumnorienterad butik.
HBase är i botten en nyckelvärdesdatabutik där varje nyckel är unik - vilket betyder att den visas högst en gång i HBase datalager. Dessutom är kartan sorterad och flerdimensionell. Nycklarna lagras i HBase och sorteras i byte-lexicografisk ordning. Varje värde kan ha flera versioner, vilket gör datamodellen multidimensionell. Som standard implementeras dataversioner med en tidsstämpel.