본문 바로가기
데이터/빅데이터

[빅데이터] 빅데이터 처리 과정에 대한 내용 정리

by dwoi 2023. 4. 17.

빅데이터를 어떻게 처리하는 지에 대해 알아보고 단계별로 어떤 기술이 적용되는지에 대해 공부한 내용을 정리

 

목차

     


    빅데이터(Big Data)

    사진: Unsplash 의 Mika Baumeister


    1. 단계별 적용 기술

    1.1. 빅데이터 처리 단계

      1. 데이터 소스 
        • 내부 데이터
        • 외부 데이터
      2. 수집
        • 로그를 수집
        • 데이터 통합
        • Open API
        • 웹로봇
        • RSS
      3. 저장
        • 배치처리
        • 검색
        • 실시간 & 배
      4. 분석
        • 알고리즘
        • 스크립트엔진
        • 분산병렬처리
      5. 표현
        • 시각화

     

    처리 과정 설명
    수집
    조직 내외부의 분산된 여러 데이터 소스로부터 수동,자동으로데이터 수집기술
    고려사항으로수집 가능성, 난이도및 비용, 보안, 정확성 등 검토
    저장
    컬럼 기반의 데이터 키, 밸류 기반의함수 형태로데이터 저장
    처리
    많은 양의 데이터 저장, 수집, 관리, 유통, 분석을 위한 처리 기술
    분석
    데이터의 효율적분석을통해 비즈니스 의사결정에반영하기위한 기술
    시각화 선형 구조 형식 표현에서그림, 도표, 웹툰 등 다양한 형태로 데이터 표현및 visualization

     

    처리 과정 요소기술
    수집
    ETL, 크롤링 엔진, 로그수집기센싱, RSS, Open API 등
    공유
    멀티 테넌트 데이터 공유, 시멘틱, 협업 필터링, Replication
    저장
    병렬 DBMS, 하둡, Hbase, NoSQL, 클라우드등
    처리
    분산 병렬처리, MapReduce, In-Memory/In-Database
    분석
    통계 분석, Data/Text Mining, 예측분석, 최적화, 평판 분석, 소셜 네트워크분석 등

     

     

    1.2. 수집 기술

    ◆ 데이터 소스

    위치
    내부
    외부
    미디어
    텍스트
    오디오
    비디오
    이미지
    Mixed
    상태
    아날로그
    디지털

    데이터 수집을 위한 변환 및 통합

    ETL
    (Extraction,
    Transformation,
    Load)
    ∙ 메인프레임, ERP, CRM, Flat file, Excel 파일 등으로부터 데이터를 추출하여 목표하는 저장소의 데이터 형태로 변형한 후 목표 저장소(DW)에 저장
    비정형 → 정형
    ∙ 비정형 데이터는 비구조적 데이터 저장소에 저장하거나 어느 정도 구조적인 형태로 변형하여 저장
    ex) Scribe, Flume, chuckwa 등 오픈 소스 솔루션
    레거시 데이터와
    비정형 데이터간의
    통합
    ∙ 데이터를 분석하기 위해서는 수집된 정형의 레거시 데이터와 비정형 데이터간의 통합이 필요
    ∙ Sqoop : RDBMS와 HDFS간의 데이터를 연결해 주는 기능으로 SQL 데이터를 Haoop으로 로드하는 도구

    ◆ 수집 방법과 솔루션

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

     

    1.3. 저장 기술

    • 빅데이터 저장을 위한 저장장치의 기술 요구
      • 저비용
      • 고확장
      • 고가용
      • 고성능

    ◆ 다양한 저장 접근 방식

    접근방식 설명 제품
    분산 파일 시스템 컴퓨터 네트워크를 통해 공유하는 여러 호스트 컴퓨터의 파일에접근할수 있게 하는 파일 시스템
    GFS(Google File System),
    HDFS(HadoopDistributed File System)
    NoSQL 데이터 모델을 단순화해서 분산의 기본 개념을쉽게
    정의하고, ACID 요건을 완화하거나 제약하는 형태의
    새로운 저장 시스템을 통칭
    Cloudata, HBase, Cassandra
    병렬 DBMS 다수의마이크로프로세서를 사용하여여러 디스크에
    대한 질의, 갱신, 입출력등의 데이터베이스처리를
    동시에수행하는 데이터베이스시스템
    VoltDB, SAP HANA, Vertica,
    Greenplum, Netezza
    네트워크구성
    저장 시스템
    서로 다른 종류의데이터 저장장치를 하나의 데이터
    서버에연결하여 총괄적으로데이터를저장, 관리
    SAN(Storage AreaNetwork),
    NAS(Network Attached Storage)
    클라우드파일
    저장 시스템
    클라우드 컴퓨팅 환경에서 가상화 기술을활용한 분산
    파일 시스템
    Amazon S3, OpenStack Swift

    1.4. 처리 기술

    빅데이터
    일괄 처리 기술
    빅데이터를 여러 서버로분산하여 각 서버에서 나누어 처리하고, 이를 다시 모아서 결과를 정리하는 분산 병렬 기술 방식
    구글 맵리듀스, 하둡맵리듀스 마이크로소프트드라이애드(Dryad) 등이 있음
    빅데이터
    실시간 처리 기술
    스트림 처리 기술로 강화된 스트림컴퓨팅을 지원하는 IBM의 InfoSphere
    Streams(인포스피어 스트림즈), 분산 환경에서 스트리밍데이터를 분석할 수 있게
    해주는 트위터의Storm (스톰)
    빅데이터 처리
    프로그래밍지원기술
    분산 데이터를 처리하는프로그래밍언어인 구글의 소잴(Sawzall)과병렬 처리를
    하는 고성능 데이터-플로우언어와 실행 프레임워크인하둡 Pig

    1.5. 분석 기술

    Text Mining
    자연어처리기술 기반 정보추출, 가공 / Text Data에서 의미 있는 정보 추출
    다른 정보와의 연계성 파악 / Text가 가진 카테고리 분류
    문서 분류, 문서 군집, 문서 요약, 정보 추출
    Opinion
    Mining
    평판분석 기법
    소셜미디어등의 긍정, 부정, 중립 선호도판별 기술
    특정 서비스 및 상품에 대한 시장규모 예측, 소비자 반응, 입소문분석 등에 활용
    정확성을 위해서는전문가에 의한 선호도 표현/단어자원의 축적이 필요함
    Social N/W
    Analytics
    Social N/W 연결구조, 연결강도를 바탕으로 사용자의 명성 및 영향력 측정
    Social N/W 상에서 입소문의 중심이나Hub 역할을 하는 사용자를 찾는데 주로 활용
    Cluster
    Analysis
    비슷한 특성을 가진 개체를 합쳐가면서 최종적으로유사 특성의 Group 발굴
    • 비즈니스 분석
      • 현재의 현상과 결과적인 관점을 제시하는데 초점을 두는 것으로 데이터의 생성부터 페기까지 전사적인 범위에서 기업의 미래를 예측할 수 있어야 함
      • 통계 예측 최적화 등을 통하여 단순히 OLAP 툴을 사용하는 데와는 확연히 다른 분석 결과를 제공
    • 고급 분석
      • 고급 분석은 대용량의 데이터로부터 숨겨진 패턴을 발견하고 상황을 예측
      • 비즈니스 혹은 그 밖의 상황을 예측하고 효율적인 의사결정을 지원하기 위해 구조화 및 비구조화된 복잡한 형태의 데이터에서 요인들 간의 상관관계와 의미 있는 데이터의 패턴을 식별하고 예측하기 위한 모든 기법과 기술들을 포괄
      • 빅데이터를 활용하는 기업들은 쿼리와 리포팅 그리고 데이터 마이닝에서부터 예측 분석까지 다양한 분석 기술을 활용

    1.6. 시각화 기술

    • 정확한 의사결정을 위해서 주어진 데이터의 특성과 의미를 파악하기 위한 기술
    • 데이터 속에 있으나, 데이터로부터 보이지 않는 새로운 패턴이나 관계를 발견하도록 도와주는 기술

    • Trend Mindmap
      • 마인드 맵 형태로 기술 트렌드의 현황을 표시
    • Newsmap
      • 끊잆없이 변화하는 뉴스의 모습을 반영
      • 데이터 블록의 크기는 실시간 뉴스의 인기에 의해 정의
    • CrazEgg
      • 방문자의 행위를 파악
      • 붉은 색은 더 자주 클릭하고 더 인기있는 섹션을 표현
    • Info Graphics
      • 복잡하고 어려운 전문지식 또는 데이터를 보다 쉽고 명화갛게 이해할 수 있도록 그래픽과 텍스트가 균형을 이루게 조합하여 시각화한 정보의 표현
      • 복잡한 정보를 단순화하고 창의적인 접근방식으로 제시하여 빠르게 지식을 전달

    ◆ 시각화 기술을 위한 도구

    태블로
    (Tableau)
    - 스탠포드 대학 교수인 팻 하나한(Pat Hanrahan)의 R&D 프로젝트에서탄생
    - 비주얼쿼리 언어인 VizQLTM를 사용함
    - 이 언어는 사용자가 데이터베이스와 상호작용하면서 그래픽/시각적인 결과를 얻을 수 있는 선언
    구글 오픈 차트
    - 구글에서 open API를 통해서 제공하는 데이터 시각화 도구
    - 웹사이트에 대한 데이터 시각화를 지원하여, 간단한 파이 차트에서부터복잡한 계층 트리 지도까지 다양한 형태의 그래픽 기능을 지원해줌
    FlickrAPI
    - Flickr에서제공하는 open API를 이용하여 사용자가 원하는 사진과 관련한 data 시각화 기능을 구현할 수 있음
    IBM Many eyes
    - 회사의판매 데이터에서 풋볼시합 결과, 구조화 되어 있지 않은 이메일 정보에 이르기까지 방대한 양의 데이터를 시각화함으로써알지 못했던 패턴을 발견할 수 있도록 해주는 데이터 시각화 기술
    R
    - 빅 데이터 시대의 통계 분석도구를 넘어 기업의 분석 플랫폼으로써 역할 수행
    - 구글 Visualization Chart API로 R에서 구글과 통신하여 데이터 고급 분석 가능
    - 그 외에 Spotfire, Qlik View등의 상업용 데이터 시각화 프로그램과 연동을 지원

    2. 빅데이터 인프라 기술

    2.1. 하둡

    2.1.1. 하둡의 정의

    • 대량의 자료를 처리할 수 있는 대규모 컴퓨터 클러스터에서 분산 애플리케이션을 지원하는 오픈 자바 소프트웨어 프레임워크
      • 하둡 = 하둡파일시스템(Hadoop File system, HDFS, 분산저장) + 맵리듀스(MapReduce, 분산처리)
    • 구글 파일 시스템(GFS)을 벤치마킹하여 하둡 분산 파일시스템과 맵리듀스를 구현
    • 하나의 작업을 여러 조각으로 분할하고, 각각의 조각을 분리된 서버에서 처리한 뒤, 다시 통합하여 최종 결과물을 제작하는 과정을 지원하는 도구의 모음
    • 기존의 RDBMS 방식으로 처리하기 어려운 데이터를 일정한 크기의 N개로 분할, 여러 컴퓨터에서 병렬로 처리, 
      그 결과를 취합하여 사용자에게 제공하는 기술

    2.1.2. 하둡의 특징

    • 오픈소스
      • 아파치 오픈소스 프로젝트로 무료 이용
      • 운영은 사용자 책임
    • 데이터가 있는 곳으로 프로그램을 이동
      • 데이터 크기 >> 프로그램 크기
      • 데이터가 존재하는 곳에서 프로그램 수행
    • 스케일 아웃(Scale out)
      •  서버의 수를 증가시켜 성능을 향상시키는 방식
      • 증가된 서버들을 한 개의 시스템으로 인식시키기 위한 개념과 소프트웨어 필요

     

    ※ 스케일 업(Scale up)

    •  CPU, 메모리, 하드디스크 등의 서버 자원을 추가하여 처리 능력 향상
    •  고가의 비용

    2.1.3. 빅데이터에 하둡을 적용하는 이유

    • 애플리케이션/트랜잭션 로그 정보는 매우 크다.
      • 대용량 파일을 저장할 수 있는 분산 파일 시스템이 필요하다
    •  I/O 집중적이면서 CPU도 많이 사용한다.
      •  클러스터 구성을 통해 멀티 노드로 부하를 분산 처리하여야 한다.
    • 데이터베이스 특히 RDBMS는 하드웨어 추가 시 성능향상이 선형적이지 않다.
      • 장비를 증가시킬 수록 성능이 선형적으로 향상되어야 한다.
    • 데이터베이스는 소프트웨어와 하드웨어가 비싸다.
      • 소프트웨어인 하둡과 리눅스는 무료이며, 하드웨어는 Intel 기반의 표준 플랫폼으로 저렴하게
        구성 가능하다

    2.1.4. 하둡 시스템 구성도 및 데이터 흐름도

    1. 인터넷을 통해서 데이터를 수집
    2. HDFS , Mapreduce를 통해 데이터를 저장 및 처리
    3. RDBMS, NoSQL, 검색엔진등으로 데이터를 분석
    4. 시각화

    2.1.5. 하둡 에코시스템의 기본 구성

    하둡 분산 파일 시스템(HDFS)와 맵 리듀스로 구성

    1. HDFS
      • 파일을 기본 64~128 MB 단위로 나누어서 분산 저장
      • 네임노드와 데이터노드로 분리 구성
    2. 맵리듀스
      • 대용량 데이터를 빠르고 안전하게 병렬처리 할 수 있도록 상용 하드웨어를 이용한 분산 프로그래밍 모델

    하둡 클러스터 구성

    구분 마스터 슬레이브
    HDFS 네임노드
    (Name Node)
    데이터노드
    (Data Node)
    맵리듀
    잡 트래커
    (Job Tracker)
    태스크 트래커
    (Task Tracker)

     

    ◆ 일반 분산 시스템과의 차이점

    • 접근성
      • 윈도우 PC같은 컴퓨터 집합으로 구성된 클러스터에서 실행 가능
      • 마이크로소프트의 Azure와 같은 클라우드 컴퓨팅 서비스에서 실행 가능
    • 견고성
      • 범용 윈도우 pc의 장애 상황에서도 동작 가능하도록 설계
    • 확장 가능성
      • 대용량 데이터 처리를 위해 단순히 컴퓨터를 추가함으로써 선형적 성능 확장 가능
    • 용이성
      • 하둡 에코시스템을 활용하여 빠르고 간편하게 병렬 처리 기능 구현 가

    2.2. 하둡 파일 시스템

    • 정의
      • 분산 서버 구조로 Master인 name node가 메타(meta) 정보를 관리하고 실제 데이터는 여러 대의 data node에 분산해서 저장하는 하둡 분산 파일 시스템
    • 장점
      • Scale-out에 의한 서버 확장의 부담 감소
    • 특징
      • 구성 요소 장애 대응
      • 배치 작업에 적합
      • 수 테라 바이트까지 처리 가능

    • 동작 흐름
      • 파일 처리 및 배치 업무를 빠르게 수행하기 위한 제안된 병렬 처리 모델
      • 구글의 GFS(Google File System) 기반으로 만들어진 오픈소스
      • 한 개의 네임노드와 다수의 데이터노드로 구분
      • 네임노드에는 데이터 노드에 저장하는 화일명, 데이터 노드에서의 위치 정보 등을 메타데이터 형태로 전체 메모리에서 관리
      • 파일은 64MB 정도의 블록으로 분할되어 값싼 디스크를 장착한 최소 3개의 데이터노드에 분산 저장되어 장애에 대비

    2.3. 맵리듀스

    • 정의
      • 분산 파일 시스템 상에서 빅 데이터의 분산 처리를 담당
      • 기능적 또는 선언적 언어가 아니라 Key, Value 기반의 프로그램
    • 진행 단계
      • 맵과 리듀스의 두 단계로 구성
      • 맵과 리듀스 모두 입력으 로 주어지는 데이터나 출력으로 내보내는 데이터가 모두 키와 밸류로 구성

    기본 동작 예

    https://dydwnsekd.tistory.com/63

    맵리듀스 특징

    • 분산 컴퓨팅에 적합한 함수형 프로그래밍
    • 배치형 데이터 처리 시스템
    • 어플리케이션 로직의 주요 관심사를 파악, 많은 요소를 사전 반영

    맵리듀스 기능

    • 자동화된 병렬처리 및 분산처리
    • 내고장성과 결함허용
    • 상태 모니터링 툴 제공
    • 구글의 GFS  기반으로 만들어진 오픈소스

    사용 분야 구분

    • 적합 분야
      • 대량의 텍스트를 전환하는 병렬도가 높은 단순 작업
      • 로그 분석
      • 데이터 마이닝 분야 중 클러스터링 또는 데이터 분류
    • 비적합 분야
      • 실시간 데이터 스트림 처리
      • 반복 실행이 많은 작업
      • 네트워크 대역폭을 많이 필요로 하는 업무

     

    2.4. NoSQL

    정의

    • Not-only SQL 또는 NO SQL을 의미
    • 전통적인 관계형 DBMS와는 달리 설계된 관계형 데이터 베이스를 의미
    • 기존 관계형 DBMS로서 빅 데이터 처리 시 발생하는 수평확장과 성능 한계를 극복하기 위해 인터넷 기업들이 고안해 낸 새로운 개념의 DBMS

    특징

    • 확장성과 성능한계를 해결하기 위하여 기존의 관계형 DBMS의 SQL 질의 방식과 관계형 데이터 모델을 포기
    • 데이터 접근에 API(Application Program Interface) 또는 자체 질의어를 사용
    • 응용프로그램 관계형 DBMS의 제약과 트랜잭션 처리 기능을 위임
    • NoSQL은 CAP 이론 중 일관성을 포기하는 대신 가용성과 분산 처리를 중시

    2.4.1. CAP 이론

    정의

    • NoSQL은 분산형 구조를 가지고 있는 분산시스템의 특성을 반영하기 위하여 CAP 이론을 기반으로 함
    • 2002년 버클리대학의 Eric Brewer 교수가 가설을 제시
    • 분산컴퓨터는 CAP 이론의 3 가지 항목 중 최대 두 가지 만을 지원하며, 잔여 한가지는 지원할 수 없음

    의미

    • 일관성(Consistency), 가용성(Availability), 분할 허용성(Partition Tolerance) 등 3가지 항목 모두를 지원하는 분산 컴퓨터 시스템은 없다
    • 일관성(Consistency) : 다중 클라이언트에서 같은 시간에 조화하는 데이터는 항상 동일한
      데이터임을 보증(관계형 DBMS의 기본적인 기능)
    • 가용성(Availability) : 모든 클라이언트의 읽기와 쓰기 요청에 대하여 항상 응답 가능하여야
      함을 보증
    • 분할 허용성(Partition Tolerance) : 지역적으로 분할된 네트워크 환경에서 동작하는 시스템에서, 두 지역 간의 네트워크 단절 또는 데이터 유실되더라도 각 지역 내의 시스템은 정장적으로 동작해야 함을 보증

    2.5. 하둡 에코시스템 2.0

    • 얀(Yet Another Resource Negotiator, YARN)이라고 하는 자원관리 프레임워크가 추가됨
    • MapReduce를 포함하는 데이터 프로세싱 기능을 YARN의 어플리케이션 또는 프로세스로 전환시켜 다수의 데이터 처리가 가능
    • 하둡에서 운영되는 자원 관리 운영체제라고 볼 수 있음

    2.6. R 프로그램

    • 통계 데이터 수정과 분석에 사용되는 스크립트 언어
    • 빅데이터 시각화 기술
    • 하둡에는 포홤되지 않음

    2.6.1. R의 특징

    • 계학자들의 표준 언어인 S를 기반으로 한 사실상 표준 플랫폼
    • 객체지향 언어로서 다양한 기능을 개발할 수 있으며, 분석을 자동화하거나 기존 언어의 특징을 확장해 새로운 함수를 생성할 수 있음
    • 데이터 세트를 저장해 데이터를 매번 다시 로딩할 필요가 없으며 명령어 히스토리 저장
    • 오픈 소스 소프트웨어로 수 많은 함수를 공유함

     


    마무리

    빅데이터를 다루기 위해 어떤 식으로 데이터가 처리가 되는 지에 대한 그 과정과 여러 핵심 기술에 대해 정리해 봄.


     

     

    댓글