Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[2024.01.21] chapter1. 빅데이터의 기초 지식 (1) - MY #1

Open
chominyeong opened this issue Jan 21, 2024 · 0 comments
Open

Comments

@chominyeong
Copy link
Owner

chominyeong commented Jan 21, 2024

1-1 빅데이터의 정착


image
🔅Hadoop

  • 다수의 컴퓨터에서 대량의 데이터 처리하기 위한 시스템
  • 전 세계의 웹페이지를 모아서 검색 엔진을 만들려면 방대한 데이터를 저장해둘 스토리지와 데이터를 순차적으로 처리할 수 있는 구조가 필요 → 수백 대, 수천 대의 컴퓨터 필요 → 이것을 관리하는 것이 Hadoop
  • 초기에는 MapReduce를 동작시키기 위해 제작됨
  • SQL 등의 쿼리 언어를 Hadoop에서 실행시키기 위해 Hive 개발됨
  • 분산시스템

🔅NoSQL

  • '키 밸류 스토어(key-value store/KVS)' : 다수의 키와 값을 관련지어 저장
  • '도큐먼트 스토어(document store)' : JSON 등의 복잡한 데이터 구조 저장
  • '와이드 칼럼 스토어(wide-column store)' : 여러 키를 사용하여 높은 확장성 제공

🔅엔터프라이즈 데이터 웨어하우스(enterprise data warehouse/EDW 또는 데이터 웨어하우스/DWH)

  • 오랜 기간 축적된 데이터
  • 전통적인 데이터 웨어하우스
  • 가속도적으로 늘어나는 데이터 처리는 Hadoop에 맡기고, 비교적 작은 데이터나 중요 데이터는 데이터 웨어하우스에 넣음

🔅데이터 디스커버리

  • BI 도구(business intelligence tool)
  • Tableau


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


KakaoTalk_20240121_201149587

🔅데이터 파이프라인(data pipeline)

  • 차례대로 전달해나가는 데이터로 구성된 시스템
  • 데이터 수집부터 ~ 워크플로 관리까지

🔅데이터 수집

  • 벌크(bulk) 형 : 이미 어딘가에 존재하는 데이터를 정리해 추출, 정기적으로 데이터 수집
  • 스트리밍(streaming) 형 : 차례차례로 생성되는 데이터를 끊임없이 계속해서 보내는 방법, 모바일 애플리케이션이나 임베디드 장비로부터 수집

💻스트림 처리(streaming processing)

  • 스트리밍형으로 받은 데이터를 실시간으로 처리하는 것
  • 시계열 데이터(time-series database)
  • 그러나 장기적인 데이터 분석에는 적합하지 않음
  • 장기적인 데이터 분석을 위한 대량의 데이터는 분산 스토리지에 저장 → 배치 처리(batch processing) 구조

💻분산 스토리지(객체 스토리지, NoSQL 데이터베이스)

  • 객체 스토리지(object storage) : 한 덩어리로 모인 데이터에 이름을 부여해서 파일로 저장, ex. 클라우드 서비스인 Amazon S3

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

  • 분산 스토리지에 저장된 데이터 처리
  • 나중에 분석하기 쉽도록 데이터를 가공해서 그 결과를 외부 데이터베이스에 저장
  1. 쿼리 엔진(query engine) : 분산 스토리지 상의 데이터를 SQL로 집계, ex. HIVE, 대화형 쿼리 엔진(interactive query engine)
  2. ETL(extract-transform-load) 프로세스 : 분산 스토리지에서 추출한 데이터를 외부의 데이터 웨어하우스에 적합한 형식으로 변환. → 데이터를 추출(extract) & 가공(transform) & 데이터 웨어하우스에 로드(load)
    KakaoTalk_20240121_201149587_01

💻워크플로 관리(workflow management)

  • 매일 정해진 시간에 배치 처리 실행, 오류가 발생한 경우 관리자에게 통지

KakaoTalk_20240121_202432558
🔅데이터 웨어하우스

  • 대량의 데이터를 장기 보존
  • 전형적인 사용 방법) 업무 시스템에서 꺼낸 데이터를 하루가 끝날 때 정리하여 쓰고, 이것을 야간 시간대에 집계해서 보고서 작성
  • "데이터 소스(data source)에 보존된 로우 데이터(row data)를 추출하고 필요에 따라 가공한 후 데이터 웨어하우스에 저장" → ETL 프로세스

🔅데이터 마트

  • 아무때나 데이터 웨어하우스를 함부로 사용하는 것은 시스템 과부하 초래
  • 데이터 웨어하우스에서 필요한 데이터만을 추출 → 데이터 마트
  • 데이터 웨어하우스와 데이터 마트 모두 SQL로 데이터 집계

KakaoTalk_20240121_202432558_01
🔅데이터 레이크

  • 모든 데이터를 원래의 형태로 축적해두고 나중에 필요에 따라 가공
  • 여러 곳에서 데이터 흘러들어 오는 데이터를 축적하는 호수
  • 대부분 CSV, JSON 등의 텍스트 형식
  • 데이터 레이크는 단순한 스토리지이므로 MapReduce 등의 분산 데이터 처리 기술 필요

KakaoTalk_20240121_202432558_02
데이터 엔지니어와 데이터 분석가

  • 데이터 엔지니어(data engineer) : 시스템의 구축 및 운용, 자동화 담당
  • 데이터 분석가(data analyst) : 데이터에서 가치 있는 정보 추출(통계, ML)

애드 혹 분석(ad hoc analysis)

  • 자동화 전에 수작업으로 데이터 집계
  • 일회성 데이터 분석
  • SQL 쿼리 직접 작성 및 실행하거나 스프레드시트에서 그래프 생성

"데이터 파이프라인의 큰 흐름은 변하지 않는다"
KakaoTalk_20240121_202843855

🔆 데이터를 수집하는 목적
KakaoTalk_20240121_203405416

  1. 데이터 검색
  • 대량의 데이터 중에서 조건에 맞는 것을 찾을때(ex.시스템에 장애 발생시 원인 특정, 고객 문의시 로그 확인)
  • 필요할 때 신속하게 검색 필요 → 실시간 데이터 처리나 검색 엔진 사용하여 키워드 검색
  1. 데이터 가공
  • 데이터 처리 결과를 이용하고 싶을 때(ex.웹사이트 추천 상품 제안, 센서 데이터의 비정상적인 상태 감지)
  • 자동화 필수
  1. 데이터 시각화
  • BI 도구
  • 시각화 고속화를 위해서는 데이터 마트도 필요
@chominyeong chominyeong changed the title [2024.01.21] chapter1. 빅데이터의 기초 지식 (1) [2024.01.21] chapter1. 빅데이터의 기초 지식 (1) - MY Jan 21, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant