Introduktion

Skalbar databehandling i R

Simon Urbanek

Member of R-Core, Lead Inventive Scientist, AT&T Labs Research

bigmemory

  • All data måste lagras på en enda disk
  • Data måste representeras som en matris
Skalbar databehandling i R

iotools

  • Data kan ha flera typer – dvs. dataramar
  • Lagras över flera maskiner
  • Bearbetar data i "bitar"
Skalbar databehandling i R

Bearbeta en bit i taget sekventiellt

  • Begränsar resursanvändningen via bitstorlek
  • Tillåter att resultat förs vidare
Skalbar databehandling i R

Bearbeta varje bit oberoende

  • Motsvarar dela-beräkna-kombinera
  • Ingen information kan delas mellan bitar
  • Möjliggör parallell och distribuerad bearbetning
Skalbar databehandling i R

Mappning och reducering för mer komplexa operationer

# Create a random vector
x <- rnorm(100)
# Find the mean
mean(x)
-0.01996644
# Take the sum of chunks of 
# the vector
sl <- Map(function(v) {
         c(sum(v), length(v))}, 
  list(x[1:25], x[26:100]))

# Add the sums and lengths
slr <- Reduce(`+`, sl)
# Find the mean
slr[1]/slr[2]
-0.01996644
Skalbar databehandling i R

Inte allt passar in i dela-beräkna-kombinera

Operationer som kräver all data på en gång kan inte beräknas med dela-beräkna-kombinera-metoden.

Exempel: Median

Skalbar databehandling i R

Men ...

Många regressionsrutiner kan formuleras i termer av dela-beräkna-kombinera

Skalbar databehandling i R

Nu kör vi en övning!

Skalbar databehandling i R

Preparing Video For Download...