[빅데이터를 지탱하는 기술] CH01. 빅데이터 기초 지식

whatSup CheatSheet·2022년 12월 29일
0
post-thumbnail
post-custom-banner

본 글은 빅데이터를 지탱하는 기술을 읽고 정리한 내용입니다.

1-1 빅데이터의 정착

분산 시스템에 의한 데이터 처리의 고속화

데이터의 취급이 어려웠던 이유

  • 데이터의 분석 방법을 모름 (데이터로부터 가치를 찾을 수 없음)
  • 데이터 처리에 수고와 시간이 걸림 (데이터 처리에 비용이 많이 듦)

빅데이터 기술 등장 - Hadoop과 NoSQL

  • Hadoop : 다수의 컴퓨터에서 대량의 데이터를 처리하기 위한 시스템
    • 원래 구글에서 개발된 분산 처리 프레임워크인 ‘MapReduce’를 참고하여 제작됨
    • 초기에는 Hadoop에서 MapReduce를 동작시키기 위해 Java로 프로그래밍을 해야했음(누구나 간단히 사용하지 못함). 따라서 SQL과 같은 쿼리를 Hadoop에서 실행하기 위한 소프트웨어로 Hive가 개발되어 2009년에 출시됨
      • Hive를 이용하여 프로그래밍 없이 데이터를 집계할 수 있게 됨
  • NoSQL 데이터베이스 : 빈번한 읽기/쓰기 및 분산 처리가 강점
    • NoSQL이란 : 전통적인 RDB의 제약을 제거하는 것을 목표로 한 데이터베이스의 총칭
    • 기존의 RDB 대비 고속의 읽기, 쓰기가 가능하며, 분산 처리에 뛰어남
    • NoSQL 데이터베이스의 종류
      • key-value store(kvs) : 다수의 키와 값을 관련지어 저장하는 데이터베이스
        • ex) Riak, Redis, …
      • document store : JSON과 같은 복잡한 데이터 구조를 저장하는 데이터베이스
        • ex) MongoDB, CouchDB, …
      • wide-column store : 여러 키를 사용하여 높은 확장성을 제공하는 데이터베이스
        • ex) Cassandra, …
  • Hadoop + NoSQL : 현실적인 비용으로 대규모 데이터 처리 실현
    • NoSQL에 기록 & Hadoop으로 분산 처리

분산 시스템의 비즈니스 이용 개척

  • 일부 기업에서는 이전부터 데이터 분석을 기반으로 하는 엔터프라이즈 데이터 웨어하우스를 도입하여 운용했음.
    • 대량의 데이터를 축적하고, 분석함으로써 업무 개선과 경영 판단의 근거로 활용함
  • 분산 시스템의 발전에 따라, 기존에 데이터 웨어하우스가 사용되는 경우(case)에도 Hadoop(or Hive)을 사용하는 경우가 증가함 → “빅데이터” 키워드 대두
    • 비교적 작은 데이터 또는 중요한 데이터는 데이터 웨어하우스를 사용하고, 확장성이 필요한 업무 등에는 Hadoop을 사용하는 등 데이터 웨어하우스의 부하를 줄임
  • 빅데이터 기술이 기존의 데이터 웨어하우스와 다른 점은 다수의 분산 시스템을 조합하여 확장성이 뛰어난 데이터 처리 구조를 만든다는 점임

직접 할 수 있는 데이터 분석 폭 확대

  • 비슷한 시기부터 클라우드 서비스에 의한 빅데이터 활용이 증가함
    • “여러 컴퓨터를 분산”하는 환경과 클라우드는 잘 맞는 한 쌍임
    • 클라우드 서비스 예시
      • Amazon Elastic MapReduce (클라우드를 위한 Hadoop)
      • 구글 BigQuery (데이터 웨어하우스)
      • Azure HDInsight (클라우드를 위한 Hadoop)
      • Amazon Redshift (데이터 웨어하우스)
  • 비슷한 시기 데이터 디스커버리(BI 도구) 등장
    • 데이터 디스커버리 : 데이터 웨어하우스에 저장된 데이터를 대화형으로 시각화하여 가치있는 정보를 찾고자 하는 프로세스
    • BI(Business Intelligence) : 이전부터 데이터 웨어하우스와 조합되어 사용되던 경영자용 시각화 시스템

1-2 빅데이터 시대의 데이터 분석 기반

빅데이터 기술 - 서브 시스템들

데이터 파이프라인 - 데이터 수집부터 워크플로 관리까지

  • 데이터 파이프라인 : 데이터가 흘러가는 시스템
  • 파이프라인에 하고싶은 일이 증가됨에 따라 시스템은 점차 복잡해지고, 그것을 어떻게 조합시킬지가 문제가 됨

데이터 수집 - 벌크 형과 스트리밍 형의 데이터 전송

  • 데이터 파이프라인은 데이터를 모으는 부분부터 시작됨
  • 데이터는 여러 장소에서 발생하고 각기 다른 형태를 보일 수 있음
  • 데이터 전송(data transfer)의 방법은 크게 두 가지가 있음
    • 벌크(bulk) 형 : 어딘가에 존재하는 데이터를 정리해 추출하는 방법
      • 데이터베이스와 파일 서버 등에서 정기적으로 데이터를 수집하는 데 사용됨.
    • 스트리밍(streaming) 형 : 차례차례로 생성되는 데이터를 끊임없이 계속해서 보내는 방법.
      • 모바일 앱, 임베디드 기계 등에서 발생하는 데이터를 수집하는 데 사용됨

스트림(stream) 처리와 배치(batch) 처리

  • 스트림 프로세싱 : 스트림 처리는 데이터가 생성되는 즉시 실시간으로 데이터를 처리하는 것을 의미
    • ex) 고객이 이전에 구매한 내역을 즉시 반영하여 상품 추천
  • 배치 프로세싱 : 배치 처리는 특정 시간 범위 내에서 대량의 데이터를 일괄 처리하는 것을 말한다
    • ex) 하루에 한 번씩 고객들의 구매 내역을 가져와서 ‘요즘 트렌드’ 상품을 추천한다.

분산 스토리지 - 객체 스토리지, NoSQL 데이터베이스

  • 수집된 데이터는 분산 스토리지(distribute storage)에 저장됨
    • 분산 스토리지(distribute storage) : 여러 컴퓨터와 디스크로부터 구성된 스토리지 시스템
    • 분산 스토리지 저장 방법
      • 객체 스토리지(object storage) : 한 덩어리로 모인 데이터에 이름을 부여해서 파일로 저장
        • ex) Amazon S3
      • NoSQL 데이터베이스

분산 데이터 처리 - 쿼리 엔진, ETL 프로세스

  • 분산 데이터 처리의 주 역할은 나중에 분석하기 쉽도록 데이터를 가공해서 그 결과를 외부 데이터베이스에 저장하는 것임
  • 분산 스토리지에 저장된 데이터를 처리하는 데는 분산 데이터 처리 프레임워크가 필요함
    • MapReduce 등
  • 빅데이터를 SQL로 집계하기 위한 두 가지 방법
    • 쿼리 엔진(query engine) 도입 : ex) Hive, 대화형 쿼리 엔진(interactive query engine), …
    • 외부의 데이터 웨어하우스 제품을 이용하는 것 : ex) AWS Redshift, Google BigQuery, …
      • 이를 위해서는 분산 스토리지에서 추출한 데이터를 데이터 웨어하우스에 적합한 형식으로 변환해야 함.
      • 이러한 절차를 ETL(Extract - Transform - Load)(or ELT) 프로세스라고 함.
        • 데이터 추출, 데이터 가공, 데이터 로드

워크플로 관리

  • 전체 데이터 파이프라인의 동작을 관리하기 위해서 워크플로 관리 기술을 사용함
    • ex) 매일 정해진 시간에 배치 처리를 실행
    • ex) 특정한 순서대로 파이프라인을 동작
    • ex) 오류가 발생한 경우, 관리자에게 통지

데이터 웨어하우스와 데이터 마트 - 데이터 파이프라인 기본형

  • 데이터 웨어하우스는 웹 서버 등에 사용하는 일반적인 RDB와는 달리 ‘대량의 데이터를 장기 보존하는 것’에 최적화되어 있음. 따라서 정리된 대량의 데이터를 한 번에 전송하는 것은 뛰어나지만, 소량의 데이터를 자주 쓰고 읽는 데는 적합하지 않음.
  • 데이터 마트(data mart) : 데이터 분석과 같은 목적에 사용하는 경우에는 데이터 웨어하우스에서 필요한 데이터만을 추출하여 ‘데이터 마트’를 구축함. (웨어하우스와 마찬가지로 SQL 형태)
  • 데이터 웨어하우스를 중심으로 하는 데이터 파이프라인
    1. [저장소] 데이터 소스(source) : 업무 시스템을 위한 RDB나 로그 등을 저장하는 파일 서버들. (raw 데이터)
    2. [처리] ETL
    3. [저장소] 데이터 웨어하우스
    4. [처리] 필요한 데이터 추출(자주 읽고 쓰며 사용할 데이터)
    5. [저장소] 데이터 마트(data mart) → 분석

데이터 레이크 - 데이터를 그대로 축적

  • 데이터 레이크 : 대규모의 다양한 원시 데이터(raw data)를 기본 형식으로 저장하는 데이터 저장소 (분산 스토리지)
    • 정제되지 않은 데이터들을 있는 그대로 저장하는 공간임
    • 대부분 CSV나 JSON 등으로 저장됨
  • 데이터 웨어하우스를 데이터 레이크로 치환하면, ETL 프로세싱이 완료된 데이터들을 데이터 마트에 넣고 관리하게 된다.
  • 데이터 레이크를 중심으로 하는 데이터 파이프라인
    1. [저장소] 데이터 소스(source) : 업무 시스템을 위한 RDB나 로그 등을 저장하는 파일 서버들. (raw 데이터)
    2. [저장소] 데이터 레이크 : 수집한 로우 데이터를 그대로 보존
    3. [처리] ETL
    4. [저장소] 데이터 마트(data mart) → 분석

데이터 분석 기반을 단계적으로 발전시키기 - 팀과 역할 분담, 스몰 스타트와 확장

애드 혹 분석(ad hoc analysis)

  • 애드 혹 분석(ad hoc analysis) : 일회성 데이터 분석
    • SQL 쿼리를 직접 작성하여 실행하거나 스프레드시트 등을 이용하여 그래프를 만드는 등의 수작업
  • 애드 혹 분석은 데이터 마트를 만들지 않은 채 데이터 레이크나 웨어하우스에 직접 연결하는 경우가 많음

데이터 마트와 워크플로 관리

  • 복잡한 데이터 분석에서는 먼저 데이터 마트를 구축한 후에 분석하거나 시각화하는 것이 효율적일 수 있음.
  • 데이터 마트 구축은 배치 처리로 자동화되는 경우가 많기 떄문에 그 실행 관리를 위해 워크플로 관리 도구를 사용함
    • 워크플로 관리가 도입되면, 데이터 분석보다는 엔지니어링 작업이 많아지기 때문에 이에 대한 비용이 발생함
    • 그러나 데이터 처리를 자동화하여 장기적으로 운용하기 위해선 안정된 워크플로 관리가 필수적임

→ 머신러닝 파이프라인에서는 데이터 워크플로의 성숙한 자동화를 위해서 데이터 통계량의 변화 등을 잘 살피는 것도 중요한 이슈일 수 있음 (모니터링 도구 등)

확증적 데이터와 탐색적 데이터 분석

  • 확증적 데이터 분석 (confirmatory data analysis) : 가설을 세우고 그것을 검증하는 분석
    • 통계학적 모델링에 의한 분석 (통계 분석, 머신러닝 등)
  • 탐색적 데이터 분석(exploratory data analysis) : 데이터를 먼저 보면서 그 의미를 읽어내려고 하는 분석
    • 시각화 등을 활용하여 사람의 힘으로 의미를 읽는 것
profile
AI Engineer : Lv 0
post-custom-banner

0개의 댓글