데이터 로그가 AWS S3에 저장되면 대용량 데이터를 바로 S3 Browser
혹은 AWS CLI 복사 명령어를 통해 로컬 컴퓨터에 저장하여 R, 파이썬 엑셀로 분석하는 형태부터 단속적으로 스파크 EMR 클러스터를 잠시 띄워 작업하고 없애는 방식까지 다양한 스펙트럼이 존재한다.
개인이 식별될 수 있는 데이터는 모형개발과 데이터 분석에는 도움이 되지 않는다. 개인이 식별되는 유일한 정보는 하나이기 때문에 데이터 분석이 끝나 뒤나 실행에 옮기기 위해서 필요한 정보이기 때문에 데이터 분석과 모형 개발을 위해서는 개인정보를 난독화하는 해쉬함수를 활용하여 난독화 과정을 거치 데이터를 폐쇄 개발망에서 오픈된 인터넷망에서 분석환경을 별도로 구축하는 것도 가능하다.
폐쇄망에서 인터넷망으로 가져오는 과정에서 .csv
파일을 파케이 파일로 변환하여 저장공간을 대폭줄여 이동시키고 나서 EC2, EMR 스파크 클러스터를 통해 데이터 분석 및 모형개발 작업을 수행한다.
작업장 분석에 필요한 데이터가 준비되면 이를 분석할 수 있는 데이터 과학 인프라 구축이 필요하다.
S3 Browser
를 통해 다운받아 데이터 분석가 분석 PC에서 작업 [^s3-pc]데이터가 넘처나는 상황에서 데이터를 저장할 저장소가 필요한데 AWS S3가 가능한 저장소 중의 하나가 될 것이다. AWS S3에 저장된 데이터를 하둡으로 데이터관리시스템으로 활용할 경우 분석을 위해서 너무 큰 데이터 중 일부를 표본추출하는 방법도 있지만, 스파크를 활용하는 것도 가능하다. 스파크를 R에서 사용할 수 있도록 sparklyr
팩키지를 설치하여 R에서 대용량 데이터를 분석한다.
데이터도 방대하여 분석할 수 있는 분석환경도 스파크 클러스터를 꾸리지 않으면 병목현상으로 상당한 시간이 소요될 수 있으니 이점을 유념한다.
대용량 데이터를 분산처리작업을 진행하기 전에 현존하는 분산기술에 대해 살펴보자.
접근방법 | 확장성(Scalability) | 스파크 | 하둡 | SQL | 라이선스 |
---|---|---|---|---|---|
CRAN \(R_1\) | 컴퓨터 1 대 | 오픈 | |||
bigmemory | 컴퓨터 1 대 | 오픈 | |||
ff | 컴퓨터 1 대 | 오픈 | |||
SparkR | 컴퓨터 1 대 + 분산 컴퓨팅 | X | X | 오픈 | |
sparklyr | 컴퓨터 1 대 + 분산 컴퓨팅 | X | X | 오픈 | |
RevoScaleR | 컴퓨터 1 대 + 분산 컴퓨팅 | X | X | X | 기업 |
스파크 클러스터가 구축되면 R 환경은 다음과 같다. 3
데이터분석을 위해 필요한 경우 상황에 맞춰 AWS를 활용하는 시나리오는 다음과 같다.
각 시나리오별 장단점과 필요성은 각자 직면한 환경에 따라 차이가 나기 때문에 우열을 가리는 것은 무의미하다.
상기 과정을 조합하여 빅데이터 기반 개발 및 운영환경을 R기반으로 구축할 경우 다음과 같은 작업흐름도 가능하게 된다. 다양한 조합중에 한가지 사례를 소개하면 다음과 같다.
.csv
형태 데이터를 저장소에 넣게 되면 파일 크기가 문제가 된다. 단순히 파일 크기가 큰 것이 문제가 되는 것이 아니라 이를 다른 컴퓨터에 이동이나 복사를 할 경우 네트워크에 상당한 부하를 주고 장시간 시간도 소요된다. 이런 문제로 인해서 파케시(Parquet)
파일이 등장하게 된다. 즉, 동일한 정보를 높은 압축률로 압축시켜 저장한다.flashdashboard
, Shiny
를 활용하여 데이터 제품을 개발해낸다.즉, 데이터 저장 → 하둡스파크 → EC2 병렬처리 컴퓨터 → R마크다운 → Shiny 웹서버로 넘어가는 과정을 밟게 된다.