소개

R에서 확장 가능한 데이터 처리

Simon Urbanek

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

bigmemory

  • 모든 데이터는 단일 디스크에 저장되어야 합니다.
  • 데이터는 행렬 형태로 표현되어야 합니다.
R에서 확장 가능한 데이터 처리

iotools

  • 다양한 유형의 데이터 지원 - 즉, 데이터 프레임
  • 여러 머신에 분산 저장
  • 데이터를 "청크" 단위로 처리
R에서 확장 가능한 데이터 처리

청크를 순차적으로 하나씩 처리

  • 청크 크기 조절을 통해 리소스 사용량 제한
  • 결과를 다음 단계로 이월 가능
R에서 확장 가능한 데이터 처리

각 청크를 독립적으로 처리

  • 분할-계산-결합에 해당합니다.
  • 청크 간 정보 공유 불가
  • 병렬 및 분산 처리 지원
R에서 확장 가능한 데이터 처리

복잡한 연산을 위한 Map과 Reduce

# 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
R에서 확장 가능한 데이터 처리

분할-적용-결합으로 처리할 수 없는 연산

모든 데이터를 한 번에 필요로 하는 연산은 분할-적용-결합 방식으로 계산할 수 없습니다.

예시: 중앙값

R에서 확장 가능한 데이터 처리

그러나 ..

많은 회귀 루틴은 분할-적용-결합 방식으로 작성할 수 있습니다.

R에서 확장 가능한 데이터 처리

연습해 봅시다!

R에서 확장 가능한 데이터 처리

Preparing Video For Download...