콘텐츠로 이동

Chater 1 빅데이터의 기초 지식

딥러닝 모델은 많은 양의 데이터를 필요로 한다. Large model, Large dataset의 트렌드는 앞으로도 지속될 것이다. 그만큼 데이터를 효율적으로 축적하고 사용할 수 있는 시스템에 대한 이해가 중요하고 앞으로는 기본 소양이 되지 않을까 생각된다. 빅데이터를 지탱하는 기술 책은 데이터 엔지니어링 분야에서 호평을 받고 있기에 선택했다.

1-1 빅데이터의 정착

분산처리와 데이터 처리 시스템 고속화

  • 글로벌 서비스에서 처리하는 데이터의 양이 커지면서 기존 RDB로는 감당이 어려워짐
  • Hadoop
    • 다수의 컴퓨터에서 대량의 데이터를 처리하기 위한 시스템
    • 분산 처리를 하기 위해선 Java로 프로그래밍을 해야했기에 누구나 쉽게 쓸 수 없었음
    • SQL 같은 쿼리문으로 하둡을 사용할 수 있도록 하기 위해 Hive가 도입됨
  • NoSQL
    • key-value store, document store, wide-column store 등이 존재
    • RDB에 비해 고속의 read, write 가능, 분산처리 뛰어남
  • 2011년 말까지 NoSQL DB에 기록하고, Hadoop으로 분산처리하는 방식이 많이 사용됨
    • 현실적인 비용으로 데이터 처리 가능해짐

비즈니스에서 분산 시스템 이용

  • 기업은 데이터 분석에 데이터 웨어 하우스(DWH)를 사용하고 있었음
    • 데이터 양이 커졌을 때 DWH는 확장하기에 큰 비용이 들어감(SW, HW가 통합된 장비)
    • Hadoop 시스템은 기존 하드웨어 교체 없이 새로 장비를 추가하는 것으로 확장이 가능하기 떄문에 업체에서 많이 도입하게 됨
    • 대량의 데이터 처리는 Hadoop이 담당하는 형태로 DWH의 부하를 줄이는 방식으로 사용(현실적 비용으로 데이터 처리)
  • DWH는 큰 기업의 IT 부서가 많은 공을 들여 구축해야하는 큰 인프라
    • 작은 기업에서도 데이터 분석 인프라를 필요로 하는 경우가 많아짐
    • 구글의 BigQuery, 아마존의 Redshift 등의 SaaS가 생겨서 저비용으로 인프라 사용 가능해짐
  • 데이터 디스커버리
    • DWH에 저장된 데이터를 대화형으로 시각화하는 방법
    • 셀프 서비스용 BI(Business Intelligence) 도구라고도 함
    • 경영 의사 결정에 사용됨

1-2 데이터 분석 기반

데이터 파이프라인

  • 데이터 수집
    • 벌크 : DB, 파일서버 등에서 정기적으로 데이터 수집하는 방식(DWH에서 주로 사용)
    • 스트리밍 : 모바일 앱이나 센서에서 차례로 생성되는 데이터를 끊임없이 계속 보내는 방식
  • 처리
    • 배치 처리 : 어느정도 정리가 된 장기적인 데이터 분석(용량 매우 큼)에 용이한 분산 시스템에서 가능한 방식
    • 스트림 처리 : 실시간으로 축적한 데이터를 바로 처리하는 방식. 예를 들어 최근 30분 간 취합한 데이터를 시계열 DB에 저장하여 그래프 형태로 시각화해서 보여주는 방식
  • 분산 스토리지
    • Object storage : 한 덩어리로 모인 데이터에 이름을 부여해서 파일로 저장하고, 해당 데이터에 대한 스토리지를 구성(Amzaon S3)
    • NoSQL : RDB에 비해 성능 면에서 우수
  • 분산 데이터 처리
    • Query engine을 도입하여 데이터를 SQL로 집계(Hive)
    • 외부 DWH 제품 사용 : ETL(extract-transform-load) 프로세스 진행. 하둡에서 데이터를 추출(extract)하여 DWH에 맞는 형식으로 변환(transform)하고 DWH에서 load해서 사용
  • Workflow
    • 정해진 시간에 필요한 작업에 대한 배치 처리 진행하도록 스케줄링 해놓는 방식
    • 에러가 발생하는 경우가 잦아서 장애 발생 알림과, 처리 재실행 등의 기능을 자동화해두는 것이 필요함
  • Data lake, Data mart
    • Data lake는 원래의 row form으로 데이터를 축적해주는 장소(단순 스토리지)이고 대부분 csv, json 형태임
    • Data lake에서 분산처리 시스템을 통해 데이터를 다듬고 Data mart로 보내서 분석 진행

팀과 역할 분담

  • small start, 확장 중요
  • 자동화는 나중 일이고, 초기엔 수작업으로 데이터 집계 및 분석 수행(Ad hoc analysis)
    • Ad hoc은 Data mart를 거치지 않고 주로 data lake나 DWH에 직접 연결해서 바로 데이터 추출하고 분석함
  • 데이터 수집의 큰 목적 : 검색, 가공, 시각화

데이터 분석

  • 확증적 데이터 분석(Confirmatory data analysis) : 통계 모델링, 머신러닝 등
  • 탐색적 데이터 분석(Exploratory data analysis) : 시각화하여 사람의 힘으로 의미를 찾음

1-3 스크립트 언어와 데이터프레임

pandas, dataframe, 스프레드시트 등에 대한 설명과 예제라서 정리를 스킵함

댓글