0%

빅데이터의 기초 지식

글을 시작하기에 앞서 해당 글은 니시다 케이스케의 저서인 『빅데이터를 지탱하는 기술』 을 바탕으로 요약 및 정리한 글임을 알려드립니다.

빅데이터의 배경

빅데이터가 어려운 이유는 데이터 분석 방법을 모른다는 것, 데이터 처리에 수고와 시간이 걸린다는 것 크게 두 가지이다. 이 두 가지는 빅데이터에서 가치있는 정보를 얻기 위한 필요조건이다.

하둡(Hadoop)은 다수의 컴퓨터에서 대량의 데이터를 처리하기 위한 시스템이다. 하둡은 구글에서 개발된 분산처리 프레임워크인 맵리듀스(MapReduce)를 참고하여 제작되었다.

NoSQL은 기존 RDB의 제약을 제거하기 위해 등장하였다. 대표적인 종류는 다음과 같다.

  • 키밸류 스토어: 다수의 키와 값을 관련지어 저장 (Redis)
  • 도큐먼트 스토어: JSON과 같은 복잡한 데이터 구조를 저장 (MongoDB)
  • 와이드 컬럼 스토어: 여러 키를 사용하여 높은 확장성을 제공 (Cassandra)

하둡과 NoSQL의 조합으로 현실적인 비용으로도 빅데이터를 처리 및 저장할 수 있게 되었으며, 현대 사회에서는 더 많은 도구들이 등장하였다.

빅데이터의 기술

  • 데이터 파이프라인: 데이터 수집부터 워크플로우 관리까지 데이터가 흘러가는 시스템을 의미한다.
  • 데이터 수집: 여러 저장소에 모인 데이터 전송을 통해 수집한다. 데이터 전송에는 벌크형과 스트리밍형이 있다.
  • 스트림 처리와 배치 처리: 스트림은 이벤트 기반으로 데이터를 수집하는 처리이며, 배치는 벌크형 데이터를 한번에 수집하는 처리이다.
  • 분산 스토리지: 수집한 데이터를 분산된 스토리지에 저장한다. 하둡의 HDFS나 객체 스토리지인 S3가 대표적이다. NoSQL도 많이 사용된다.
  • 분산 데이터 처리: MapReduce나 spark 같은 프레임워크를 사용하여 대규모 데이터를 사용하기 쉽게 처리한다.
  • 워크플로우 관리: 전체 데이터 파이프라인의 동작을 확인하기 위해 해당 기술을 사용한다. airflow가 대표적이다.

데이터 엔지니어의 역할은 데이터를 수집하고 워크플로우를 관리하며 BI 도구를 지원 등 시스템의 구축 및 운용, 자동화를 담당한다. 데이터 분석가는 데이터 엔지니어가 구축한 시스템 내에서 가치 있는 정보를 추출한다.

빅데이터의 목적

  • 데이터 검색: 특정 데이터가 언제 어떻게 필요할지 모르기 때문에 발생하는 모든 데이터를 일정기간 보관한다. 또한 보관한 데이터를 조회할 수 있는 검색 기능도 구현되어 있어야 한다.
  • 데이터 가공: 업무 시스템의 일부로서 데이터 처리 결과를 이용하고 싶을 때 데이터 파이프라인을 설계한다. 데이터 가공에는 자동화가 필수적이다.
  • 데이터 시각화: 데이터를 시각적으로 봄으로써 알고 싶은 정보를 얻을 수 있다.

컴퓨터 시스템은 보통 “기간계 시스템”과 “정보계 시스템”으로 구분된다. 기간계는 비즈니스에 관련된 중요한 시스템이므로 완벽하게 테스트를 반복하고 신중하게 운용한다. 반면 정보계는 보통 사내에서 사용되는 시스템으로 기간계만큼 엄격하게 운영되지는 않는다.

프로젝트 현황을 파악하기 위한 숫자로 업계마다 중요한 지표인 KPI(Key Performance Indicator)가 자주 이용된다. 웹 서비스의 경우 DAU(Daliy Active User), Retention, ARPPU(Average Revenue Per Paid User) 등이 있다. 온라인 광고의 경우 CTR(Click Through Rate), CPC(Cost Per Click), CPA(Cost Per Acquisition) 등이 있다.