Indholdsfortegnelse:
Video: phpMyAdmin - oprette tabel med fremmednøgle (t.p. spil) 2025
HBase (Hadoop Database) er en Java implementering af Googles BigTable. Google definerer BigTable som et "sparsomt, distribueret, vedholdende multidimensionalt sorteret kort. "Det er en ganske kortfattet definition, men du er også enig i, at det er lidt på den komplekse side. For at nedbryde BigTables kompleksitet lidt følger en diskussion af hver attribut.
Hbase er sparsom
Som du måske havde gættet, blev BigTables distribuerede datalagringssystem designet til at imødekomme kravene til store data. Nu gemmer store dataprogrammer masser af data, men stort dataindhold er også ofte variabelt. Forestil dig et traditionelt bord i en virksomhedsdatabase, der lagrer kundekontaktoplysninger, som vist:
Kunde-id | Efternavn | Fornavn | Mellemnavn | E-mail adresse | Gadenavn |
---|---|---|---|---|---|
00001 | Smith | John | Timothy | 1 Hadoop Lane, NY 11111 | |
00002 | Doe | Jane | NULL | NULL | 7 HBase Ave, CA 22222 |
En virksomhed eller enkeltperson kan kræve en komplet datapost for hver af sine kunder eller bestanddele. Et godt eksempel er din læge, som har brug for alle dine kontaktoplysninger for at give dig den rette pleje. Andre virksomheder eller enkeltpersoner må kun kræve delvise kontaktoplysninger, eller det kan være nødvendigt at lære disse oplysninger over tid.
For eksempel kan et kundeservicefirma behandle telefonopkald eller e-mail-meddelelser til serviceanmodninger. Kunder kan eller måske ikke vælge at give servicevirksomheder al deres kontaktoplysninger. Men med hver vekselvirkning over tid kan virksomheder lære mere om deres kunder, så de kan give bedre service - ved at udstede proaktive servicealarmer, for eksempel.
I denne sammenhæng betyder sparsom , at felter i rækker kan være tomme eller NULL, men det bringer ikke HBase til en skrøbelig stop. HBase kan håndtere det forhold, at du endnu ikke kender Jane Does mellemnavn og e-mail-adresse.
Her er et andet eksempel: en database til lagring af satellitbilleder. Det viser sig, at Google bruger BigTable-teknologien til at gemme satellitbilleder af jorden. I næsten alle tilfælde gemmes metadata også med det, når billeder lagres.
Metadataene kan indeholde billedets gadeadresse eller kun breddegrad og længdegrad, hvis billedet er taget fra ørkenen. Metadata er variabel i indhold, så nogle felter vil være NULL - og det er OK.
I begge eksempler kan de datasæt, der indsamles, være ekstremt store - især i det andet eksempel.Billeddatabaser måles næsten altid i terabyte eller undertiden i petabytter.
HBase er designet til opbevaring af store data, men den er også designet til opbevaring af sparsomme dataposter uden omkostninger. Denne bekymring er afgørende, når du bruger store dataapplikationer! Lagring af få NULL-poster over en million rækker er spild, men prøv at forestille sig affaldet over en quadrillionrække!
Heldigvis var dette en vigtig betragtning for Google-designere og HBase-samfundet. Sparsomme data understøttes uden spild af dyrt lagerplads.
Og det stopper ikke der. Overvej kraften i et skema-mindre datalager. Tabellen viser dig et klassisk kundekontaktbord. Når virksomheder designer disse tabeller, ved de op foran, hvad de vil gemme. Med andre ord er skemaet fast ; den er defineret, selv inden den første byte af oplysninger gemmes i tabellen.
Hvad nu, hvis der med tiden er behov for et nyt felt for en kunde? Hvad med et Twitter-håndtag eller et nyt mobilnummer? Du er tilsyneladende fast med et skema, der ikke længere fungerer for dig.
Nå løser HBase også denne udfordring - du kan ikke kun springe over felter, når du ikke har dataene, men også dynamisk tilføje felter (eller kolonner i HBase-oversættelsen) over tid uden at skulle omdanne skemaet eller forstyrre operationerne.
Så du kan tænke på HBase som et skema-mindre datalager; det vil sige, det er flydende - du kan tilføje til, trække fra eller ændre skemaet, som du følger med.
HBase distribueres og vedholdende
BigTable er en distribueret og vedvarende datalager. Vedvarende betyder simpelthen, at de data, du gemmer i BigTable (og HBase, for den sags skyld) vil vedblive eller forblive, når dit program eller session slutter. Det er ret ligetil - vedvarende betyder, at det vedvarer - men du bør bruge lidt mere tid på at tænke på, hvordan dataene fortsætter. I sit BigTable-papir beskrev Google det distribuerede filsystem kendt som Google File System eller GFS. Det viser sig, at lige som HBase er en open source implementering af BigTable, er HDFS en open source implementering af GFS.
HBase bruger som standard HDFS til at fortsætte sine data til disklagring. Selvom andre distribuerede datalagre kan bruges sammen med HBase, udnytter langt de fleste HBase-installationer HDFS. Dette giver perfekt mening, da HBase er "Hadoop Database" - hej, den er indbygget i navnet, for godheds skyld.
HDFS er en nøgle, der gør det muligt for teknologi ikke kun for Hadoop, men også for HBase. Ved at lagre data i HDFS tilbyder HBase pålidelighed, tilgængelighed, problemfri skalerbarhed, høj ydeevne og meget mere - alt om omkostningseffektive distribuerede servere!
HBase har et flerdimensionalt sorteret kort
Ud fra det grundlæggende er et
kort (også kendt som en associativ array ) en abstrakt samling af nøgleværdipar, hvor nøglen er unik. Denne definition er afgørende for din forståelse af HBase, fordi HBase datamodellen ofte beskrives på forskellige måder - ofte ufuldstændigt som en kolonneorienteret butik. HBase er i bunden en nøgledata datalager, hvor hver nøgle er unik - hvilket betyder, at den højst fremkommer i HBase datalager. Derudover er kortet sorteret og multidimensionalt. Nøglerne gemmes i HBase og sorteres i byte-leksikografisk rækkefølge. Hver værdi kan have flere versioner, hvilket gør datamodellen multidimensionel. Som standard implementeres dataversioner med en tidsstempel.