Stordatasystemer og deres egenskaper
Abstract
Begrepet stordata er på mange måter mer dekkende som en betegnelse for en samfunnsutvikling enn for en bestemt teknologi, og har så langt ikke fått noen entydig definisjon. Isteden karakteriseres stordata som regel ved hjelp av de såkalte tre V’ene Volume, Velocity og Variety: Stordata er data av forskjelligartet natur (Variety), som kommer i store mengder (Volume) og/eller har hyppig oppdateringsfrekvens (Velocity) og som et resultat av dette ikke lar seg effektivt håndtere eller bearbeide ved hjelp av tradisjonelle metoder.
I denne rapporten tar vi for oss en samling egenskaper som vi mener karakteriserer systemer designet for å håndtere stordata:
• støtte for dataanalyse
• programmeringsmodell
• skalerbarhet
• tilgjengelighet vs. konsistens
• sårbarheter og feiltoleranse
• primærminnesystemer vs. persistenssystemer
• støtte for iterative beregninger,
• input/output-profil
• gjenbrukbarhet av data
Disse egenskapene kan tjene som en huskeliste over hvilke avveiinger man må gjøre når man skal designe en systemløsning for stordataproblemer.
Rapporten skisserer også fem hovedklasser av komponenter som benyttes når man komponererer stordataløsninger:
• tabulære databaser
• grafdatabaser
• strømmesystemer
• programmeringsrammeverk
• analyse- og visualiseringssystemer
Når man har et stordataproblem som fordrer systemstøtte, vil karakteristikaene til en slik løsning være avhengig av både problemet som skal løses og dataene som skal benyttes. Det finnes imidlertid et rikt utvalg av komponenter som kan settes sammen i henhold til disse karakteristikaene. Mange av disse komponentene er også fritt tilgjengelig, noe som gjør at design av stordataløsninger i stor grad kan betraktes som skreddersøm av åpne komponenter. The concept of Big Data remains elusive to define, yet is commonly characterized by the three Vs Volume, Velocity, and Variety. That is, a big data problem is typically indicated by data being so diverse (Variety), in such large quantities (Volume), and/or moving at such a speed (Velocity) that it doesn’t lend itself to efficient processing using traditional methods and systems.
In this report we identify the following capabilities that together caracterize typical big data systems:
• support for data analytics
• programming model
• scalability
• availability vs. consistency
• vulnerabilities and fault tolerance
• in-memory vs. disk storage
• support for iterative computations
• input/output profile
• data reusability
The report proceeds to give an outline of the main design choices with respect to these capabilities, including associated trade-offs, which need to be considered when constructing big data systems.
The report also presents five main categories of big data system components:
• tabular databases
• graph databases
• streaming systems
• programming frameworks
• analysis and visualization systems
The main lesson is that the characteristics of a big data system is very much dependent on the problem at hand and the data available, for which there are numerous components available that can be put together accordingly. Many of these components are available as open source solutions, making designing big data solutions to a large extent tailoring open source components.