빅데이터 - 분석 기획 - 빅데이터의 이해 - 빅데이터 처리기술

 

빅데이터 처리과정과 요소기술

<빅데이터 처리과정>

데이터 (생성)

  • 데이터베이스나 파일 관리 시스템과 같은 내부 데이터 존재
  • 인터넷으로 연결도니 외부로부터 생성된 파일이나 데이터 존재

수집

  • 크롤링을 통해 데이터 원천으로부터 데이터 검색하여 수집
    • 크롤링(Crawling) : 웹사이트 등 외부에 저장되어 있는 정보자원을 자동화된 방법으로 수집, 분류, 저장하는 것
  • ETL(추출, 정제, 가공)을 통해 소스 데이터로부터 추출, 변환, 적재
  • 단순한 수집이 아니라 검색 및 수집, 변환 과정 모두 포함
  • 로그 수집기나 센서 네트워크 및 Open API 등 활용

저장 (공유) 

  • 저렴한 비용으로 데이터를 쉽고 빠르게 많이 저장
  • 정형 데이터뿐만 아니라 반정형, 비정형 데이터도 포함
  • 벙렬 DBMS나 하둡(Hadoop), NoSQL 등 다양한 기술 사용
  • 시스템 간의 데이터 서로 공유

처리

  • 데이터를 효과적으로 처리하는 기술이 필요한 단계
  • 분산 병렬 및 인메모리 방식으로 실시간 처리
    • 인메모리(In-memory) : 디스크가 아닌 메인 메모리에 데이터를 저장하는 기술
  • 대표적으로 하둡(Hadoop)의 맵리듀스(MapReduce) 활용

분석

  • 데이터를 신속하고 정확하게 분석하여 비즈니스에 기여
  • 특정 분야 및 목적의 특성에 맞는 분석 기법 선택 중요
  • 통계분석, 데이터 마이닝, 텍스트 마이닝, 기계학습 방법 등

시각화

  • 처리 및 분석 결과를 표, 그래프등을 이용해 쉽게 표현하고 탐색이나 해석에 활용
  • 정보 시각화 기술, 시각화 도구, 편집 기술, 실시간 자료 시각화 기술로 구성

빅데이터 수집

  • 크롤링(Crawling) : 무수히 많은 컴퓨터에 분산 저장되어 있는 문서를 수집하여 검색 대상의 색인으로 포함시키는 기술
  • 로그 수집기 : 조직 내부에 있는 웹 서버나 시스템 로그를 수집하는 소프트웨어
  • 센서 네트워크(Sensor Network) : 유비쿼터스 컴퓨팅 구현을 위한 초경량 저전력의 많은 센서들로 구성된 유무선 네트워크
  • RSS Reader/Open API : 데이터의 생산, 공유, 참여할 수 있는 환경인 웹2.0 구현 기술
  • ETL 프로세스 : 데이터의 추출(Extract), 변환(Transform), 적재(Load)의 약어로, 다양한 원천 데이터를 취합해 추출하고 공통된 형식으로 변환하여 적재하는 과정

<ETL 프로세스>

과정 설명
데이터 추츨 (Extract) - 원천 데이터로부터 적재하고자 하는 데이터 추출
데이터 변환 (Transform) - 추출한 데이터를 변환하고 균질화하며 정제
- 정제한 데이터를 적재하고자 하는 데이터 웨어하우스 구조에 맞게 변환
- 통합하는 제약 조건 및 비즈니스 규칙에 따라 필터링이나 확인 작업 진행
데이터 적재 (Load) - 변환된 데이터를 데이터 웨어하우스에 적재

빅데이터 저장

NoSQL(Not-only SQL)

  • 전통적인 관계형 데이터베이스와는 다르게 데이터 모델을 단순화하여 설계된 비관계형 데이터베이스
  • SQL을 사용하지 않는 DBMS와 데이터 저장장치
  • 기존의 RDBMS 트랜잭션 속성 포기
    • 원자성(Atomicity), 일관성(Consistency), 독립성(Isolation), 지속성(Durability)
  • 데이터 업데이트가 즉각적으로 가능한 데이터 저장소
  • 대표적으로 Cloudata, Hbase, Cassandra, MongoDB

공유 데이터 시스템(Shared-data System)

  • 일관성(Consistency), 가용성(Availability), 분할 내성(Partition Tolerance) 중 최대 두 개의 속성만 보유 가능
    • CAP 이론 : 분산 데이터베이스 시스템의 이론
  • 분할 내성을 취하고 일관성과 가용성 중 하나를 포기
  • 일관성과 가용성을 모두 취하는 기존 RDBMS보다 높은 성능과 확장성 제공

병렬 데이터베이스 관리 시스템(Parallel Database Management System)

  • 다수의 마이크로프로세서를 사용하여 여러 디스크에 질의, 갱신, 입출력 등 데이터베이스 처리를 동시에 수행하는 시스템
  • 확장성 제공을 위해 작은 단위의 동작으로 트랜잭션 적용 필요
  • 대표적으로 BoltDB, SAP HANA, Vertica, Greenplum, Netezza

분산 파일 시스템

  • 네트워크로 공유하는 여러 호스트의 파일에 접근할 수 있는 파일 시스템
  • 데이터를 분산하여 저장하면 데이터 추출 및 가공 시 빠르게 처리 가능
  • 대표적으로 GFS(Google File System), HDFS(Hadoop Distributed File System), 아마존 S3 파일 시스템

네트워크 저장 시스템

  • 이기종 데이터 저장 장치를 하나의 데이터 서버에 연결하여 총괄적으로 데이터를 저장 및 관리하는 시스템
    • 이기종 데이터 : 하나 이상의 데이터 저장 장치를 사용하는 것
  • 대표적으로 SAN(Storage Area Network), NAS(Network Attached Storage)
    • SAN : 원격 컴퓨터 기억 장치를 서버에 부착하는 구조
    • NAS : 컴퓨터를 직접 연결하지 않고 근거리 통신 네트워크를 통해 데이터를 주고 받는 구조

빅데이터 처리

  • 분산 시스템과 병렬 시스템이 존재하나 서로 중첩되는 부분이 많아 실제 시스템에서도 이 둘을 명확히 구분하지 않음
  • 두 개념을 아우르는 '분산 병렬 컴퓨팅'이라는 용어 사용

분산 시스템과 병렬 시스템

  • 분산 시스템
    • 네트워크상에 분산되어 있는 컴퓨터를 단일 시스템인 것처럼 구동하는 기술
    • 노드는 각각의 독립된 시스템을 가짐
    • 독립 컴퓨터의 집합으로 만들었으나 마치 단일 시스템인 것처럼 수행
  • 병렬 시스템
    • 문제 해결을 위해 CPU 등의 자원을 데이터 버스나 지역 통신 시스템 등으로 연결하여 구동하는 기술
    • 분할된 작업을 동시에 처리하여 계산 속도 증진

분산 병렬 컴퓨팅

  • 다수의 독립된 컴퓨팅 자원을 네트워크상에 연결하여 이를 제거하는 미들웨어를 이용해 하나의 시스템으로 동작하게 하는 기술
    • 미들웨어(Middleware) : 하드웨어나 프로토콜, 통신환경 등을 연결하여 응용 프로그램 간 원만한 통신이 이루어질 수 있게 하는 소프트웨어
문제 설명
전체 작업의 배분 문제 - 전체 작업을 잘 쪼개어 여러 개의 작은 작업으로 배분
각 프로세서에서 계산된 중간 결과물을 프로세서 간 주고받는 문제 - 효율적인 통신은 성능과 직결
- 보통 단일 시스템은 전체 작업을 노드 수만큼 균등하게 배분
- 이종 시스템은 컴퓨팅 능력에 따라 전체 작업을 배분
- 노드 간 통신을 최소화하는 기법 등이 반영되면 자원을 좀 더 효율적으로 사용할 수 있어 성능 향상에 기여
서로 다른 프로세서 간 동기화 문제 - 데이터 병렬 처리에서 동기적 방법을 사용할 경우 프로세서는 특정 계산이 끝나거나 특정 데이터를 넘겨받을 때까지 반드기 대기
- 동기적 방법의 경우 송신자는 수신자에게 데이터를 받았다는 응답이 올 때까지 대기
- 비동기적 방법의 경우 결과 메시지를 보낸 즉시 다음 작업 진행, 기다릴 필요는 없지만 계산 과정이 적합한지 확인 필요

하둡(Hadoop)

  • 분산 처리 환경에서 대용량 데이터 처리 및 분석을 지원하는 오픈 소스 소프트웨어 프레임워크
  • 분산파일시스템(HDFS), 분산컬럼기반 데이터베이스(Hbase), 분산 컴퓨팅 지원 프레임워크(MapReduce)로 구성
  • 분산파일시스템을 통해 수 천대의 장비에 대용량 파일을 나누어 저장하는 기능 제공
  • 분산파일시스템에 저장된 대용량의 데이터들을 맵리듀스를 이용하여 실시간 처리 및 분석
  • 하둡의 부족한 기능을 보완하는 하둡 에코시스템 등장으로 다양한 솔루션 제공

아파치 스파크(Apache Spark)

  • 실시간 분산형 컴퓨팅 플랫폼
  • In-Memory 방식으로 처리
    • 인메모리(In-memory) : 디스크가 아닌 메인 메모리에 데이터를 저장하는 기술
  • 하둡보다 처리속도가 빠름
  • 스칼라 언어로 개발되었지만 Java, R, Python 지원

맵리듀스(MapReduce)

  • 분산 병렬 데이터 처리 기술의 표준
  • 방대한 양의 데이터를 신속하게 처리하는 프로그래밍 모델로 효과적인 병렬 및 분산 처리 지원
  • 런타임에서의 입력 데이터 분할, 작업 스케줄링, 노드 고장, 노드 간 데이터 전송 작업이 맵리듀스 처리 성능에 많은 영향을 받음
맵리듀스 처리단계
1단계 입력 데이터를 읽고 분할
2단계 분할된 데이터를 할당해 맵 작업 수행 후, 결과인 중간 데이터를 통합 및 재분할
3단계 통합 및 재분할된 중간 데이터 셔플(Shuffle)
4단계 셔플된 중간 데이터로 리듀스 작업 수행
5단계 출력 데이터 생성 후 맵리듀스 처리 종료

 

<이해를 위한 맵리듀스 예시, 출처:geeksforgeeks.org>


빅데이터 분석

데이터 분석 방법의 분류

  • 탐구 요인 분석(EFA, Exploratory Factor Analysis)
    • 데이터 간 상호 관계를 파악하여 데이터를 분석하는 방법
  • 확인 요인 분석(CFA, Confirmatory Factor Analysis)
    • 관찰된 변수들의 집합 요소 구조를 파악하기 위한 통계적 기법을 통해 데이터를 분석하는 방법

데이터 분석 방법

  • 분류 (Classification)
    • 미리 알려진 클래스들로 구분되는 학습 데이터셋을 학습시켜 새로 추가되는 데이터가 속할 만한 데이터셋을 찾는 방법
    • 학습 데이터셋을 이용하는 지도학습 방법
  • 군집화 (Clustering)
    • 특성이 비슷한 데이터를 하나의 그룹으로 분류하는 방법
    • 분류와 달리 학습 데이터셋을 이용하지 않는 비지도학습 방법
  • 기계학습 (Machine Learning)
    • 인공지능 분야에서 인간의 학습을 모델링한 방법
    • 다양한 학습 방법 존재
      • 의사결정트리 등 기호적 학습
      • 신경망이나 유전 알고리즘 등 비기호적 학습
      • 베이지안이나 은닉 마코프 등 확률적 학습 등

* 마이닝 (Mining) : 데이터로부터 통계적인 의미가 있는 개념이나 특성을 추출하고 패턴이나 추세 등의 정보를 끌어내는 과정

  • 텍스트 마이닝 (Text Mining)
    • 자연어 처리 기술 이용
    • 인간의 언어로 쓰인 비정형 텍스트에서 유용한 정보를 추출하거나 다른 데이터와의 연관성을 파악하기 위한 방법
    • 분류나 군집화 등 빅데이터에 숨겨진 의미 있는 정보를 발견하는데 사용
  • 웹 마이닝 (Web Mining)
    • 인터넷을 통해 수집한 정보를 데이터 마이닝 방법으로 분석하는 응용분야
  • 오피니언 마이닝 (Opinion Mining)
    • 온라인의 다양한 뉴스와 소셜 미디어 코멘트 또는 사용자가 만든 콘텐츠에서 표현된 의견을 추출, 분류, 이해하는 응용분야
  • 리얼리티 마이닝 (Reality Mining)
    • 휴대폰 등 기기를 사용
    • 인간관계와 행동 양태 등을 추론하는 응용분야
    • 통화량, 통화 위치, 통화 상태, 통화 대상, 통화 내용 등을 분석하여 사용자의 인간관계나 행동 특성 도출
  • 소셜 네트워크 분석 (Social Network Analysis)
    • 수학의 그래프 이론을 바탕
    • SNS에서 네트워크 연결 구조와 강도를 분석하여 사용자의 명성 및 영향력을 측정하는 방법
  • 감성 분석 (Sentiment Analysis)
    • 문장의 의미를 파악하여 글의 내용에 긍정 또는 부정을 분류하고 강도를 지수화하는 방법
    • 도출된 지수를 이용하여 고객의 감성 트렌드를 시계열로 분석하고 고객의 감성 변화에 기업들이 신속하게 대응 및 부정적인 의견의 확산을 방지하는데 활용

참고