Video: NoSQL and Hadoop for Solving Big Data #WhiteboardWalkthrough 2024
NoSQL-datalager oprindeligt abonnerede på forestillingen "Just Say No to SQL" (at omskrive fra en anti-stof reklamekampagne i 1980'erne), og de var en reaktion på de opfattede begrænsninger af (SQL-baserede) relationelle databaser. Det er ikke, at disse folk hadede SQL, men de var trætte af at tvinge firkantede pinde i runde huller ved at løse problemer, som relationelle databaser ikke var designet til.
En relationsdatabase er et kraftfuldt værktøj, men for nogle slags data (som nøgleværdipar eller grafer) og nogle anvendelsesmønstre (som ekstremt storskala opbevaring) er en relationsdatabase bare ikke ' t praktisk. Og når det kommer til opbevaring i store mængder, kan relationsdatabasen være dyrt, både hvad angår database licensomkostninger og hardwareomkostninger. (Relationsdatabaser er designet til at fungere med hardware i enterprise-grade.)
Så med NoSQL-bevægelsen udviklede kreative programmører snesevis af løsninger til forskellige slags tornede datalagrings- og behandlingsproblemer. Disse NoSQL databaser giver typisk massiv skalerbarhed ved hjælp af clustering, og er ofte designet til at muliggøre høj gennemløb og lav latenstid.
Navnet NoSQL er noget vildledende, fordi mange databaser, der passer til kategorien gør , har SQL-support (i stedet for "NoSQL" -support). Tænk på sit navn i stedet for som "Ikke kun SQL. ”
De NoSQL-tilbud, der er tilgængelige i dag, kan opdeles i fire forskellige kategorier, baseret på deres design og formål:
-
Nøgletal butikker: Dette tilbud giver en måde at lagre enhver form for af data uden at skulle bruge et skema. Dette er i modsætning til relationelle databaser, hvor du skal definere skemaet (bordstrukturen), inden der indsættes data. Da nøgletalbutikker ikke kræver et skema, har du stor fleksibilitet til at gemme data i mange formater.
I en nøgleværdisbutik består en række simpelthen af en nøgle (en identifikator) og en værdi, som kan være alt fra et helt tal til en stor binær datastreng. Mange implementeringer af nøgletalbutikker er baseret på Amazons Dynamo-papir.
-
Kolonnefamilieforretninger: Her har du databaser, hvor kolonner grupperes i kolonnefamilier og gemmes sammen på disk.
Strengt taget er mange af disse databaser ikke kolonneorienterede, fordi de er baseret på Googles BigTable-papir, der lagrer data som et flerdimensionalt sorteret kort.
-
Dokumentbutikker: Dette tilbud er baseret på samlinger af tilsvarende kodede og formaterede dokumenter for at forbedre effektiviteten.Dokumentbutikker aktiverer individuelle dokumenter i en samling for kun at omfatte en delmængde af felter, så kun de data, der er nødvendige, er gemt. For sparsomme datasæt, hvor mange felter ofte ikke er befolket, kan dette oversætte til betydelige pladsbesparelser.
Derimod optager tomme kolonner i relationelle database tabeller plads. Dokumentforretninger muliggør også skemafleksibilitet, fordi kun de felter, der er nødvendige, er gemt, og nye felter kan tilføjes. I modsætning til relationelle databaser er bordstrukturer defineret foran, inden dataene gemmes, og skiftende kolonner er en kedelig opgave, som påvirker hele datasættet.
-
Grafdatabaser: Her har du databaser, der gemmer grafstrukturer - repræsentationer der viser samlinger af enheder (hjørner eller knuder) og deres forhold (kanter) med hinanden. Disse strukturer gør det muligt for grafdatabaser at være særdeles velegnede til opbevaring af komplekse strukturer, som de sammenkædende relationer mellem alle kendte websider. (For eksempel er individuelle websider knuder, og kanterne, der forbinder dem, er links fra den ene side til den anden.)
Google er selvfølgelig helt overgrafeteknologi og opfundet en grafbehandlingsmaskine, der hedder Pregel, for at drive sin PageRank algoritme. (Og ja, der er et hvidbog om Pregel.) I Hadoop-fællesskabet er der et Apache-projekt kaldet Giraph (baseret på Pregel-papiret), som er en grafbehandlingsmotor designet til at behandle grafer, der er gemt i HDFS.
De tilgængelige datalagrings- og behandlingsmuligheder i Hadoop er i mange tilfælde implementeringer af de NoSQL-kategorier, der er angivet her. Dette vil hjælpe dig med bedre at vurdere løsninger, der er tilgængelige for dig og se, hvordan Hadoop kan supplere traditionelle datalagre.