클라우드 전문정보

제목 클라우드 환경을 위한 ITOA 빅데이터 기술
등록일 2017-09-25 조회수 5225

박병훈 T3Q 대표


  • 빅데이터를 활용하기 위해서는 수집, 저장, 분석, 시각화 등의 요소 기술들이 필요하며 다양한 형태의 데이터 처리에 적합한 기술을 적용해야 함은 물론, 대용량의 데이터를 처리할 수 있는 하드웨어, 소프트웨어의 결합이 필수이다.
  • 기존의 데이터 처리가 테라바이트 수준의 정형 데이터를 단순한 프로세스로 원인과 결과 규명을 하는 정도였다면, 빅데이터는 페타바이트 수준의 정형/비정형 데이터를 장기간의 수집 및 분석을 통해 상관 관계 규명까지 해내고 있다. 이와 같이 데이터 처리의 복잡도가 증가함에 따라 분산 처리 기술이 필요하게 되었다.



수집기술 동향

  • 데이터 수집은 시스템 내부와 외부의 다양한 데이터를 검색하여 자동 또는 수동으로 수집하는 것으로 분석 목적에 따른 데이터 소스 선정과 수집 가능 여부 등을 판단하는데, 여기에는 데이터 소유기관 파악, 데이터 유형과 특징 파악, 수집 기술과 주기 선정의 과정이 필요하고 이후 사전 테스트를 거쳐 수집을 진행하며 수집된 데이터에 대한 보안 정책과 기술을 정해야 한다.

[표1] 데이터 유형과 수집 기술


데이터 유형 데이터 종류 수집 기술
정형 데이터 RDB, 스프레드 시트 등 ETL, FTP, Open API
반정형 데이터 웹문서, HTML, XML, 웹로그,센서 데이터, JSON 등 Crawling, RSS, Open API, FTP
비정형 데이터 SNS 데이터, IoT, 이미지, 문서, 비디오, 오디오 Crawling, RSS, Open API, Streaming, FTP

[표 2] 빅데이터 수집 관련 기술


요소기술 설명
로그 수집기 조직 내부에 존재하는 웹 서버의 로그 수집, 웹 로드, 트랜잭션 로그, 클릭 로그, DB 로그 데이터 등을 수집
크롤링 주로 웹 로봇을 이용하여 조직 외부에 존재하는 소셜 데이터 및 인터넷에 공개되어 있는 자료 수집
센싱 각종 센서를 통해 데이터를 수집
RSS Reader 데이터의 생산, 공유, 참여 환경인 웹 2.0을 구현하는 기술
스쿱 (Sqoop) Haddop과 관계형 데이터베이스 간의 데이터 전송 을 지원하는 기술로 MySQL 같은 데이터베이스로부터 하둡 분산 파일 시스템으로 데이터를 전송하는 데 사용
플럼 (Flume) 분산환경에서 대량의 로그 데이터를 효과적으로 수집해 다른 곳으로 전송하는 서비스로 실시간 로그 분석이 가능하도록 함
척와 (Chukwa) 분산 서버로부터 로그 데이터를 수집하여 하둡 클러스터의 로그나 서버의 상태정보를 관리해 하둡 파일 시스템에 저장하며 실시간 분석이 가능하도록 함
스플렁크 (Splunk) 업무 현장이나 클라우드 상에 존재하는 페타바이트 급의 기록 데이터와 실시간 기계 데이터를 모니터링하고 분석함
스크라이브 (Scribe) 페이스북이 개발해 공개한 로그수집기술로 대량의 서버에서 실시간으로 오는 로그 데이터를 집약해 하둡 분산 시스템에 로그를 저장
카프카 (Kafka) Linkedin에서 최초로 만들어 졌으며, 로그 데이터를 수집할 뿐만 아니라 메시징 시스템을 통해 전송 데이터를 압축하고 메시지를 일괄적으로 전송

출처: 빅데이터 기술 동향 - 한림 ICT정책저널 2016.02


  • 빅데이터 수집을 위해서는 데이터의 변환과 통합이 필요한데 이 처리에는 ETL (Extraction, Transformation, Load) : 소스로부터 데이터를 추출하여 복표 저장소의 데이터 형태로 변환한 후에 저장 / 비정형 데이터를 어느 정도 구조적 형태로 변형 / 정형의 레거시 데이터와 비정형 데이터 간의 통합 등이 있다.
  • 빅데이터 기술에는 많은 오픈 소스들이 있는데 NiFi Data Work flow를 이용하여 실시간 수집데이터의 변환 및 전송을 용이하게 하고, 분산 Queue인 Kafka를 이용하여 대용량 실시간 수집의 안정성을 보장, Sqoop을 이용하여 RDB 기반 데이터 수집 용이성을 확보할 수 있다.

[그림 1] 오픈 소스 이용 데이터 수집 구축 사례





저장기술 동향

  • 빅데이터 저장은 검색, 수집한 데이터를 분석에 사용할 수 있도록 불필요한 항목을 제거하고 데이터 품질을 향상시키는 전후처리를 수행하고, 데이터의 유형에 적합하고 확장이 용이한 데이터 베이스를 구축하며, 저장된 데이터의 보안과 안전성 유지 및 개인정보 처리를 위한 정책과 관리까지를 포함하여야 한다.

[표 3] 데이터의 전처리와 후처리 기술


분류 기능 내용
데이터전처리 데이터 필터링(Filtering) 오류 발견, 보정, 삭제, 중복성 확인 등을 통해 데이터 품질을 향상
데이터 유형 변환(Transformation) 데이터 분석이 용이한 형태로 변환하는 기술
데이터 정제 (Cleansing) 결측치 입력, 이상치의 식별/제거, 데이터 평활화 등으로 데이터의 불일치성을 교정
데이터후처리 데이터 통합(Integration) 분석 용이를 위해 유사 데이터 및 연계가 필요한 데이터 또는 DB들을 통합
데이터 변환 (Transformation) 데이터 분석이 용이한 형태로 변환하는 기술
데이터 축소 (Reduction) 데이터 분석에 활용되지 않는 항목 등을 제거하여 분석 컴퓨팅 시간을 단축
  • 빅데이터 저장 관리를 위해서는 대용량, 비정형, 실시간이라는 특징을 수용 가능하여야 하며 분산파일 시스템으로 HDFS를 사용하고, 특성이 다른 저장소를 구축하여 실시간분석 결과 저장, 비정형 실시간 OLAP 지원, 메모리기반의 빠른 조회, 정형통계 결과 저장을 최적화한다.

[그림 2] 데이터 처리 및 저장 시스템

[표 4] 오픈 소스를 이용한 저장 방식 구성


분산파일 시스템 구축 로그원본 및 HBase 파일시스템, Druid Deep Storage 저장을 위한 분산 파일 시스템으로 HDFS 적용
분산형 대용량 NoSQL DB 오픈소스 구축 분산형 대용량 NoSQL DB 오픈소스인 HBase에 SQL을 지원하기 위해 Phoenix 적용
정형 통계 데이터 분석용 관계형 오픈소스 구축 정형 통계데이터 분석용 관계형 오픈소스인 PostgreSQL 적용
비정형 실시간 통계 분석 OLAP Engine 오픈소스 구축 비정형 실시간 통계 분석용 오픈 소스 Druid 적용
빠른 조회를 위한 In-memory DB 구축 고성능 키-값 저장소로서 문자열, 리스트, 해시, 셋, 정렬된 셋 형식의 데이터를 지원하는 NoSQL로 Redis 적용
※ 통신 효율성을 위해 실시간 분석 서버와 동일 서버 활용



분석기술 동향

  • 빅데이터로부터 유의미한 정보를 얻고 이것을 의사결정에 효과적으로 활용하려면 빅데이터를분석할 수 있는 방법과 다양한 인프라가 필요하다. 데이터 분석 기법들은 통계학과 전산학, 또 기계학습이나 데이터마이닝 분야에서 이미 사용되던 방법들을 개선하여 적용시키고 있으며 그 용도에 따라 다음과 같은 다양한 기술이 있다.

[표 5] 빅데이터 분석 기술 소개


구분 설명
통계적분석
  • 전통적인 분석 방법으로 주로 수치형 데이터에 대하여 확률을 기반으로 어떤 현상의 추정, 예측을 검증하는 기법
기술통계량
  • 대표적으로 평균(산술평균, 중앙값, 최빈값) 분산, 표준편차 등
상관분석
(Correlation analysis)
  • 두 변수 간에 어떤 선형적 관계를 갖고 있는 지를 분석하는 방법 두 변수는 서로 독립적인 관계로부터 서로 상관된 관계일 수 있으며 이때 두 변수 간의 관계의 강도를 상관관계(Correlation, Correlation coefficient)
회귀분석
(Regression analysis)
  • 연속형 변수들에 대해 독립변수와 종속변수 사이의 상관관계에 따른 수학적 모델인 선형적 관계식을 구하여 어떤 독립변수가 주어졌을 때 이에 따른 종속변수를 예측. 또한 이 수학적 모델이 얼마나 잘 설명하고 있는지를 판별하기 위한 적합도를 측정하는 분석 방법
분산분석
(Analysis of variance : ANOVA)
  • 두 개 이상 다수의 집단을 비교하고자 할 때 집단 내의 분산, 총평균과 각 집단의 평균의 차이에 의해 생긴 집단 간 분산의 비교를 통해 만들어진 F분포를 이용하여 가설검정을 하는 방법
주성분분석
(Principal component analysis)
  • 다양한 변수들에 대해 분석하는 다변량(multivariate) 분석으로 많은 변수들로부터 몇 개의 주성분들을 추출하는 방법. 즉, 주성분분석은 차원축소(dimension reduction)를 위한 것임
데이터 마이닝
  • 대용량의 데이터로부터 패턴인식, 인공지능 기법 등을 이용하여 숨겨져 있는 데이터 간의 상호 관련성 및 유용한 정보를 추출하는 기술
예측
(Forecasting)
  • 대용량 데이터집합 내의 패턴을 기반으로 미래를 예측 (예: 수요예측)
분류
(Classification)
  • 일정한 집단에 대한 특정 정의를 통해 분류 및 구분을 추론 (예: 이탈한 고객)
군집화
(Clustering)
  • 구체적인 특성을 공유하는 자료들을 분류. 미리 정의된 특성에 대한 정보를 가지지 않는다는 점에서 분류와 다름 (예 : 유사 행동 집단의 구분)
패턴분석
(Association)
  • 동시에 발생한 사건 간의 상호연관성을 탐색 (예: 장바구니의 상품들의 관계)
순차패턴분석
(Sequencing)
  • 연관 규칙에 시간(time)의 개념을 반영하여 시계열(time series)에 따른 패턴들의 상호연관성을 탐색 (예: 금융상품 사용에 대한 반복 방문)

출처: 빅데이터 활용 단계별 업무절차 및 기술 활용 매뉴얼


  • 빅데이터를 위한 분석 기술과 이를 지원하는 기술 인프라 구축은 상당한 컴퓨팅 자원과 투자를 필요로 하기 때문에 비용 대비 효율적인 방법이 필요하게 되었다. 그 대안으로 등장한 것이 하둡(Hadoop)인데 분산 파일시스템인 HDFS(Hadoop Distributed File System)와 분산처리를 위한 맵리듀스(MapReduce)로 구성된 빅데이터 플랫폼에 하둡의 부족한 기능들을 서로 보완하는 기술들이 적용된 하둡 에코시스템(Hadoop Ecosystem)으로 발전되었다.

출처: http://thebigdatablog.weebly.com/blog/the-hadoop-ecosystem-overview

[그림 3] 하둡 에코시스템 지도

[표 6] 하둡 에코시스템 기술 소개


기능 구성 설명
관리 Ambari 하둡 클러스터를 프로비저닝, 관리, 모니터링 하는 웹기반 도구
RDBMS연동 Sqoop 레거시 데이터를 하둡에 로딩 / 처리 결과를 RDBMS에 저장하도록 지원
데이터전처리 데이터 필터링(Filtering) 오류 발견, 보정, 삭제, 중복성 확인 등을 통해 데이터 품질을 향상
수집 Flume 에이전트를 통해 데이터를 수집해 하둡 파일 시스템에 저장
데이터전처리 데이터 필터링(Filtering) 오류 발견, 보정, 삭제, 중복성 확인 등을 통해 데이터 품질을 향상
DB HBase 대용량 데이터베이스 테이블을 위한 구조적 데이터 저장 공간을 지원하는 확장 가능한 분산 데이터베이스
SQL Hive, Pig HDFS에 저장된 데이터를 처리할 수 있도록 SQL과 유사한 스크립트를 이용
학습 Mahout 확장 가능한 머신 러닝과 데이터 마이닝 알고리즘을 구현
저장 HDFS 대용량 파일저장, 처리를 위한 기반 F/S제공
처리/분석 Yarn, MapReduce 대용량 데이터 세트를 처리를 위한 Core 제공
관리 Oozie 하둡 작업을 관리하는 워크플로우 및 코디네이터 시스템
관리 ZooKeeper 분산환경에서 자원 제어, 분산 메타 데이터 관리



시각화 기술 동향

  • 빅데이터의 시각화는 분석결과 또는 데이터의 상태나 분석 과정 등을 쉽게 이해할 수 있도록 시각적으로 표시하여 전달하는 것인데 단순한 통계나 그래프를 넘어서 숨어있는 의미를 전달할 수 있는 기술로 발전하고 있다.
  • 기존의 정보시각화 기법을 기반으로 하지만 전달력을 더 높이고 보는 사람의 흥미를 유발함은 물론 정보 습득 시간을 줄여서 신속한 상황 판단을 하도록 하는 등 시각화 요소나 상호작용 기능 등이 추가되고 있는 추세이다.

[그림 4] 분석 결과의 시각화 프로세스



[그림 5] 시각화 기술과 사례


  • 빅데이터 분석의 가장 큰 활용도는 현재 상태의 실시간 분석, 이상 현상 감지, 단시간 미래 예측에 있다고 볼 수 있다. 그 신속성, 안정성과 정확성을 위한 하드웨어, 소프트웨어 기술은 비약적으로 발전하고 있으며 여기에 기계학습을 적용하는 인공지능화가 이루어지면 머지않아 우리 주변의 많은 기기, 기계, 기술들이 빅데이터 기반으로 작동 또는 그 결과가 반영되어 생산되는 세상이 될 것으로 예상이 된다. 따라서 그 흐름에 뒤쳐지지 않기 위해서는 철저한 준비와 노력이 요구된다.