본문 바로가기

data engineering

빅데이터 수집




- 빅데이터의 수집 기술은 조직의 내외부에 있는 다양한 시스템으로부터 <로우데이터(raw data)를 효과적으로 수집하는 기술> 이다. 


- 빅데이터 수집에는 기존의 수집 시스템보다 더 크고 다양한 형식의 데이터를 빠르게 처리해야 하는 기능이 필요한데, 그래서 확장이 가능하고 분산 처리가 가능한 형태로 구성해야 한다. 


- 빅데이터 수집기는 로우(raw) 시스템의 다양한 인터페이스 유형(DB, 파일, API, 메시지 등) 과 연결되어 정형, 반정형, 비정형 데이터를 대용량으로 수집한다. 




- 특히 외부 데이터(SNS, 블로그, 포털 등)를 수집할 때는 크롤링 등 비정형 처리를 위한 기술이 선택적으로 적용된다. 

crawling이란

웹 페이지를 그대로 가져와서 거기서 데이터를 추출해 내는 행위


- 수집 처리에는 대용량 파일 수집실시간 스트림 수집으로 나뉜다. 


- 실시간 수집의 경우 CEP(Complex Event Processing: 시간에 따라 변화하는 이벤트를 빠르게 분석할 수 있는 기술), ESP(Event Stream Processing: 다양하고 복잡한 이벤트를 분석할 수 있는 기술) 기술이 적용되어 수집 중인 데이터로 부터 이벤트를 감지해 빠른 후속 처리를 수행한다. 


- 수집된 데이터는 필요시 정제, 변환, 필터링 등의 작업을 추가로 진행해 데이터 품질을 향상시킨 후 빅데이터 저장소(데이터 웨어하우스)에 적재한다. 


- 아파치 플럼(flume)스쿱(sqoop)이 대표적임


데이터 레이크(Data Lake : 정보의 강)


1) 기존의 ()데이터 처리 개념 : 데이터 웨어하우스



- 기존의 데이터웨어하우스는 RDBMS처럼 사전에 정의된 스키마(테이블)로 데이터를 변환하는 과정이 반드시 필요하다. 

- 이 과정을 ETL(Extract : 추출 / Transform : 변환 / Load : 적재)라고 한다. 

- ETL 개발단계를 거쳐 최종 애플리케이션에서 데이터를 활용하기까지 많은 시간과 노력, 비용이 소모되었으며, 특히 데이터 사용방법을 미리 결정해야 했다. 

- 만약 개발 초기단계에서 불필요하다고 판단했던 데이터는 ETL 과정에서 처리되지 못하고 버려지는데, 나중에 그 데이터가 필요한 경우가 생기면 큰일이 나는 경우가 빈번하다. 

(만약 유저의 채팅하는 시간대를 저장 안했는데, 나중에 이 유저 활동 시간을 분석할 일이 생긴다면?)

 

2) Data Lake의 개념


- 데이터 레이크와 데이터 웨어하우스의 비교


Data Lake

데이터 웨어하우스

데이터 웨어하우스를 보완(대체제는 아님)

Data Lake는 데이터웨어하우스의 소스가 될 수 있음

읽을 때 스키마를 처리(Schema on read)

쓸 때 미리 정의된 스키마로(Schema on write)

정형, 반정형, 비정형 데이터 전부

정형 데이터만

새로운 데이터/컨텐츠의 빠른 수집

ETL 과정이 필요하기 때문에 시간이 필요

데이터 과학+예측 고급 분석

BI에만 사용(고급 분석 불가능)

저수준(low level) 데이터 사용 가능

요약에서 집계된 세부적인 데이터만 사용가능

서비스 수준 협의가 느슨함

서비스 수준 협의가 매우 디테일해야 함

툴 선택에 유연함(고급 분석을 위한 오픈 소스툴)

툴의 선택이 유연하지 못함(SQL만 사용가능)



* BI(Business Intelligence)?

기업에서 데이터를 수집정리분석하고 활용하여 효율적인 의사결정을 할 수 있는 방법에 대해 연구하는 학문








- 데이터 레이크는 모든 데이터를 사용할 수 있다(우선 다~ 저장하는 거니까.)

- 향후 데이터를 어떻게 사용할지 사전에 추측할 필요가 없다. 

- 모든 데이터를 공유할 수 있다.

모든 데이터 접근 방식이 가능하다. 

- 처리엔진(맵리듀스, 엘라스틱 서치, 스파크)과 애플리케이션(하이브, 스파크, SQL, 피그 등등)을 이용해 데이터를 탐색하고 처리할 수 있다. 

 


'data engineering' 카테고리의 다른 글

Flume 개요  (0) 2018.09.11
하둡 운영  (2) 2018.09.04
Hadoop의 개요 #4 - MapReduce와 YARN  (0) 2018.07.25
Hadoop의 개요 #4 - 네임노드 HA(High Availability:고가용성)  (0) 2018.07.23
Hadoop의 개요 #3 - HDFS 아키텍처  (0) 2018.07.23