Teknologiske fremskridt har medført fordele, end det er nødvendigt at udnytte af forretningsorganisationer til maksimal profitværdi og reducerede driftsomkostninger. Data har været rygraden for disse teknologiske fremskridt, hvorfra sofistikerede procedurer er afledt for at nå specifikke mål. Efterhånden som teknologien udvikler sig, bringes der flere data ind i systemerne. Desuden er der flere data involveret, efterhånden som en virksomhed vokser, og serveringssystemets opsætning skal være hurtig databehandling, pålidelig i lagring og tilbyde optimal sikkerhed for disse data. MongoDB er et af de systemer, man kan stole på i at opnå disse faktorer.
Big Data refererer til massive data, der er i hurtig forandring, som hurtigt kan tilgås og er meget tilgængelige for effektivt at imødekomme behov. Erhvervsorganisationer har en tendens til at krydsforske tilgængelige databaseopsætninger, der ville give den bedste ydeevne, som tiden går, og som følge heraf realisere en vis værdi fra Big Data.
For eksempel observerer onlinemarkeder klientwebklik, købekraft og bruger derefter de afledte data til at foreslå andre varer som en måde at annoncere på eller bruge dataene i prisfastsættelse. Robotter lærer gennem maskinlæring, og processen involverer naturligvis en masse data, der bliver indsamlet, fordi robotten skulle beholde det, den har lært, i hukommelsen til senere brug. At holde denne form for komplekse data med traditionel databasesoftware anses for upraktisk.
Karakteristika for Big Data
I softwaresystemer betragter vi Big Data i form af størrelse, adgangshastighed og de involverede datatyper. Dette kan reduceres relativt ned til 3 parametre:
- Lydstyrke
- Hastighed
- Sorts
Lydstyrke
Volumen er størrelsen af Big Data involveret og spænder fra gigabyte til terabyte eller mere. På daglig basis indtager store virksomheder terabyte af data fra deres daglige drift. For eksempel vil et teleselskab gerne føre en fortegnelse over opkald foretaget siden starten af deres drift, sendt beskeder og hvor lang tid tog hvert opkald. På daglig basis er der mange af disse aktiviteter, der finder sted, hvilket resulterer i en masse data. Dataene kan bruges i statistisk analyse, beslutningstagning og takstplanlægning.
Hastighed
Overvej platforme såsom Forex trading, der har brug for realtidsopdateringer til alle tilsluttede klientmaskiner og vis nye børsopdateringer i realtid. Dette dikterer, at serverdatabasen skal være ret hurtig til at behandle sådanne data med lille latens i tankerne. Nogle onlinespil, der involverer spillere fra forskellige steder i verden, indsamler en masse data fra brugerklik, træk og andre bevægelser og sender dem derefter mellem millioner af enheder på mikrosekunder. Det involverede databasesystem skal være hurtigt nok til at gøre alt dette i realtid.
Variety
Data kan kategoriseres i forskellige typer lige fra tal, strenge, dato, objekter, arrays, binære data, kode, geospatiale data og regulære udtryk for blot at nævne nogle få. Et optimalt databasesystem bør give funktioner på plads til at forbedre manipulationen af disse data uden at pådrage sig yderligere procedurer fra klientsiden. For eksempel leverer MongoDB geolocation-operationerne til brug, mens de henter steder tæt på de koordinater, der er angivet i forespørgslen. Denne evne kan ikke opnås med traditionelle databaser, da de kun var designet til at adressere små datavolumenstrukturer, færre opdateringer og nogle konsistente datastrukturer. Desuden vil man have brug for yderligere operationer for at opnå et bestemt mål, i tilfælde af traditionelle databaser.
MongoDB kan også køres fra flere servere, hvilket gør det billigt og uendeligt i modsætning til traditionelle databaser, der kun er designet til at køre på en enkelt server.
Faktorer at overveje, når du vælger MongoDB til Big Data
Big Data giver virksomhedens fordele, når de administreres højt gennem forbedret processorkraft. Når du vælger et databasesystem, bør man overveje nogle faktorer vedrørende den type data, du vil have med at gøre, og om det system, du vælger, giver den mulighed. I denne blog vil vi diskutere fordelene MongoDB tilbyder for Big Data sammenlignet med Hadoop i nogle tilfælde.
- Et rigt forespørgselssprog til dynamisk forespørgsel
- Dataintegrering
- Høj tilgængelighed
- Indeksering og skalerbarhed
- Effektiv lagermotor og hukommelseshåndtering
- Datakonsistens og integritet
Rich Query Language for Dynamic Querying
MongoDB er bedst egnet til Big Data, hvor resulterende data kræver yderligere manipulationer for det ønskede output. Nogle af de kraftfulde ressourcer er CRUD-operationer, aggregeringsramme, tekstsøgning og Map-Reduce-funktionen. Inden for aggregeringsrammen har MongoDB en ekstra geolokationsfunktionalitet, der kan gøre det muligt for en at gøre mange ting med geospatiale data. For eksempel kan du ved at oprette et 2Dsphere-indeks hente steder inden for en defineret radius ved blot at angive bredde- og længdegradskoordinaterne. Med henvisning til telekommunikationseksemplet ovenfor, kan virksomheden bruge kort-reducer-funktionen eller aggregeringsrammen til at gruppere opkald fra en given lokation ved at beregne den gennemsnitlige opkaldstid på daglig basis for sine brugere eller flere andre operationer. Tjek eksemplet nedenfor.
Lad os få en placeringssamling med dataene
{ name: "KE",loc: { type: "Point", coordinates: [ -73.97, 40.77 ] }, category: "Parks"}
{ name: "UG",loc: { type: "Point", coordinates: [ -45.97, 40.57 ] }, category: "Parks"}
{ name: "TZ",loc: { type: "Point", coordinates: [ -73.27, 34.43 ] }, category: "Parks"}
{ name: "SA",loc: { type: "Point", coordinates: [ -67.97, 40.77 ] }, category: "Parks"}
Vi kan derefter finde data for lokationer, der er tæt på [-73,00, 40,00] ved hjælp af aggregeringsrammen og inden for en afstand af 1 km med forespørgslen nedenfor:
db.places.aggregate( [
{
$geoNear: {
near: { type: "Point", coordinates: [ -73.00, 40.00 ] },
spherical: true,
query: { category: "Parks" },
distanceField: "calcDistance",
maxDistance: 10000
}
}
]
Map-Reduce-drift er også tilgængelig i Hadoop, men den er velegnet til simple anmodninger. Den iterative proces for Big Data ved hjælp af Map-Reduce i Hadoop er ret langsom end i MongoDB. Baggrunden er, at iterative opgaver kræver mange kortlægninger og reducerer processer før færdiggørelse. I processen genereres flere filer mellem kortet og reducerer opgaver, hvilket gør det ret ubrugeligt i avanceret analyse. MongoDb introducerede aggregeringspipeline-rammen for at modvirke dette tilbageslag, og det er det mest brugte i den seneste tid.
Dataintegrering
MongoDB er dokumentbaseret med evnen til at placere flere felter i et enkelt felt, som betegnes som indlejring. Indlejring kommer med fordelen af minimale forespørgsler, der skal udstedes for et enkelt dokument, da selve dokumentet kan indeholde en masse data. For relationelle databaser, hvor en kan have mange tabeller, skal du udstede flere forespørgsler til databasen til samme formål.
Høj tilgængelighed
Replikering af data på tværs af flere værter og servere er nu mulig med MongoDB, i modsætning til relationel DBMS, hvor replikeringen er begrænset til en enkelt server. Dette er fordelagtigt, da data er meget tilgængeligt forskellige steder, og brugerne effektivt kan betjenes af den nærmeste server. Desuden er processen med restaurering eller nedbrud let opnået i betragtning af journalføringsfunktionen i MongoDB, der opretter kontrolpunkter, hvorfra der kan refereres til restaureringsprocessen.
Indeksering og skalerbarhed
Primær og sekundær indeksering i MongoDB kommer med masser af fordele. Indeksering gør, at forespørgsler skal udføres først, hvilket er en overvejelse, der er nødvendig for Big Data, som vi har diskuteret under hastighedskarakteristikken for Big Data. Indeksering kan også bruges til at skabe shards. Shards kan defineres som undersamlinger, der indeholder data, der er blevet fordelt i grupper ved hjælp af en shard-nøgle. Når der udstedes en forespørgsel, bruges shard-tasten til at bestemme, hvor man skal lede blandt de tilgængelige shards. Hvis der ikke var nogen skår, ville processen tage ret lang tid for Big Data, da alle dokumenter skal undersøges, og processen kan endda timeout, før brugerne får, hvad de ønskede. Men med sharding reduceres mængden af data, der skal hentes fra, og dermed reduceres ventetiden på, at en forespørgsel returneres.
Effektiv lagermotor og hukommelseshåndtering
De seneste MongoDB-versioner sætter WiredTiger som standardlagermotor, der har en executive-kapacitet til at håndtere flere arbejdsbelastninger. Denne lagringsmotor har masser af fordele at tjene til Big Data som beskrevet i denne artikel. Motoren har funktioner såsom komprimering, checkpointing og fremmer flere skriveoperationer gennem dokument-samtidig. Big Data betyder mange brugere, og samtidighedsfunktionen på dokumentniveau vil give mange brugere mulighed for at redigere i databasen samtidigt uden at pådrage sig nogen ydelsesforringelse. MongoDB er udviklet ved hjælp af C++, hvilket gør den god til hukommelseshåndtering.
Datakonsistens og -integritet
JSON-valideringsværktøj er en anden funktion tilgængelig i MongoDB for at sikre dataintegritet og konsistens. Det bruges til at sikre, at ugyldige data ikke kommer ind i databasen. For eksempel, hvis der er et felt kaldet alder, vil det altid forvente en heltalsværdi. JSON-validatoren vil altid kontrollere, at en streng eller enhver anden datatype ikke sendes til lagring i databasen for dette felt. Dette er også for at sikre, at alle dokumenter har værdier for dette felt i samme datatype og dermed datakonsistens. MongoDB tilbyder også sikkerhedskopierings- og gendannelsesfunktioner, så man i tilfælde af fejl kan vende tilbage til den ønskede tilstand.
Konklusion
MongoDB håndterer dataanalyse i realtid på den mest effektive måde og er derfor velegnet til Big Data. For eksempel muliggør geospatial indeksering en analyse af GPS-data i realtid.
Udover den grundlæggende sikkerhedskonfiguration har MongoDB et ekstra JSON-datavalideringsværktøj til at sikre, at kun gyldige data kommer ind i databasen. Da databasen er dokumentbaseret og felter er blevet indlejret, kan der sendes meget få forespørgsler til databasen for at hente en masse data. Dette gør den ideel til brug, når det drejer sig om Big Data.