Miner

8주차-1 본문

데브코스

8주차-1

MineTime76 2023. 11. 27. 19:34

11/27 - 데이터 웨어하우스 관리와 고급 SQL과 BI 대시보드(1)

 

다양한 데이터 웨어하우스 옵션

데이터 조직의 비전 - 신뢰할 수 있는 데이터를 바탕으로 부가 가치 생성 (본업을 더 잘할 수 있게)

데이터의 중요성을 강조하니 데이터 팀도 회사에서 인정을 받는다 ? - NO

 

1. 데이터 조직이 하는 일 (데이터 분석가)

  • 고품질 데이터를 기반으로 의사 결정권자에게 입력 제공
  • 결정 과학
  • 데이터를 고려한 결정(data informed decisions) vs 데이터 기반 결정(data driven decisions)
  • 데이터 기반 지표 정의, 대시보드와 리포트 생성

2. 데이터 조직이 하는 일 (데이터 사이언티스트)

  • 고품질 데이터를 기반으로 사용자의 서비스 경험을 개선
  • 머신 러닝과 같은 알고리즘을 통해 사용자의 서비스 경험을 개선
  • 개인화를 바탕으로한 추천과 검색 기능 제공
  • 공장이라면 공정 과정에서 오류를 최소화하는 일을 수행

데이터 팀의 발전 : 데이터 인프라 구축 

  • 서비스에서 직접 생기는 데이터와 써드파티를 통해 생기는 간접 데이터를 ETL 을 통해 데이터 웨어하우스에 넣는다
  • ETL 프레임워크 : airflow, 데이터 웨어하우스 : AWS, Big query, redshift
  • 프로덕션 데이터베이스 : OLTP (Online Transaction Processing) 
  • 데이터 웨어하우스 : OLAP (Online Analytical Processing)

 


데이터 웨어하우스

  • 회사에 필요한 모든 데이터를 모아놓은 중앙 데이터베이스 (SQL 데이터베이스)
  • 데이터의 크기에 맞게 어떤 데이터베이스를 사용할지 선택
  • 크기가 커진다면 다음 중 하나를 선택
    • AWS Redshift, 구글 클라우드의 Big Query
    • Snowflake
    • 오픈소스 기반의 하둡(Hive/Presto), Spark
    • 이 모두 SQL을 지원
  • 중요 포인트는 프로덕션용 데이터베이스와 별개의 데이터베이스여야 한다는 점
  • 데이터 웨어하우스의 구축이 진정한 데이터 조직이 되는 첫 번째 스텝

ETL(Extract, Transform, Load)

다른 곳에 존재하는 데이터를 가져다가 데이터 웨어하우스에 로드하는 작업

Extract : 외부 데이터 소스에서 데이터를 추출

Transform :  데이터의 포맷을 원하는 형태로 변환

Load : 변환된 데이터를 최종적으로 데이터 웨어하우스로 적재

데이터 파이프라인이라고 부르기도 함 

  • 관련해 가장 많이 쓰는 프레임워크는 Airflow
  • Airflow는 오픈소스 프로젝트로 파이썬 3 기반이며 Airbnb에서 시작
  • AWS와 구글 클라우드에서도 지원
  • ETL 관련 SaaS (Software as a Service)도 출현하기 시작
  • 흔한 데이터 소스의 경우 FiveTran, Stitch Data와 같은 Saas를 사용하는 것도 가능

시각화 대시보드 

지표의 경우 3A (Accessible, Actionable, Auditable)가 중요

중요 지표의 예 : 매출액, 월간/주간 액티브 사용자 수

 

널리 사용되는 대시보드 : 구글 클라우드의 룩커(Looker), 세일즈포스의 태블로(Tableau), 마이크로소프트의 파워 BI(POWER BI), 오픈소스 아파치 수퍼셋(Superset)


머신러닝

데이터로부터 패턴을 찾아 학습

데이터의 품질과 크기가 중요

데이터로 인한 왜곡 발생 가능 - AI 윤리 

내부동작 설명 가능 여부도 중요 - ML Explainability


작은 회사에서는 한 사람이 몇 개의 역할을 동시 수행하는 것이 일반적

데이터 엔지니어 / 데이터 분석가 / 데이터 과학자

데이터 분석가 : 과거, 현재의 데이터를 바탕으로 현실에 대한 자각할 수 있는 결정을 도와준다는 개념

데이터 과학자 : 과거, 현재의 데이터를 바탕으로 미래를 예측하는 머신러닝 모델을 만들어서 고객들의 서비스 경험을 개선

 


데이터 엔지니어 역할 

파이썬 / 자바 / 스칼라 언어

데이터 웨어하우스를 만들고 이를 관리, 클라우드로 가는 것이 추세 (AWS의 Redshift, 구글 클라우드의 BigQuery, 스노우플레이크)

관련해서 중요한 작업 중의 하나는 ETL 코드를 작성하고 주기적으로 실행해주는 것 (ETL 스케줄러 혹은 프레임워크가 필요 Airflow라는 오픈소스가 대세)

데이터 분석가, 데이터 과학자들과의 협업을 통해 필요한 툴이나 데이터를 제공해주는 것이 데이터 엔지니어의 중요한 역할 중의 하나


(주니어 데이터 엔지니어 / 필수)

SQL : 기본 SQL, Hive, Presto, SparkSQL

프로그래밍언어 : 파이썬, 스칼라, 자바

데이터웨어하우스 : Redshift, Snowflake, Bigquery

ETL/ELT 프레임워크 : Airflow

대용량 데이터 처리 플랫폼 : Spark / YARN


컨테이너 기술 : Docker/K8s

클라우드 컴퓨팅 : AWS, GCP, Azure

기타 지식 : 머신 러닝 일반, A/B 테스트, 통계


데이터가 커져도 문제가 없는 홪강가능성과 적정한 비용이 중요한 포인트

AWS의 Redshifts는 고정비용 옵션, 구글 클라우드의 BigQuery, Snowflake는 가변비용이라 처리할 수 있는 데이터가 Redshift 보다 크다

오픈소스 기반(Presto, Hive)을 사용하는 경우도 클라우드 버전 존재

데이터가 작다면 굳이 빅데이터 기반 데이터 베이스를 사용할 필요가 없음


데이터 레이크 

구조화 데이터 + 비구조화 데이터 (로그 파일)

보존 기한이 없는 모든 데이터를 원래 형태대로 보존하는 스토리지에 가까움

보통은 데이터 웨어하우스보다 몇 배는 더 크고 더 경제적인 스토리지

보통 클라우드 스토리지가 됨 ( AWS라면 S3가 대표적인 데이터 레이크라 볼 수 있음 )

데이터 레이크가 있는 환경에서 ETL과 ELT 

ETL : 데이터 레이크와 데이터 웨어하우스 바깥에서 안으로 데이터를 가져오는 것 

ELT : 데이터 레이크와 데이터 웨어하우스 안에 있는 데이터를 처리하는 것

 


ETL

❖ ETL의 수는 회사의 성장에 따라 쉽게 100+개 이상으로 발전

● 중요한 데이터를 다루는 ETL이 실패했을 경우 이를 빨리 고쳐서 다시 실행하는 것이 중요

● 이를 적절하게 스케줄하고 관리하는 것이 중요해지며 그래서 ETL 스케줄러 혹은 프레임웍이 필요해짐

▪ Airflow가 대표적인 프레임웍

 

❖ 데이터 요약를 위한 ETL도 필요해짐 -> ELT라고 부름

● 앞에서 설명한 ETL은 다양한 데이터 소스에 있는 데이터를 읽어오는 일을 수행.

● 하지만 이를 모두 이해해서 조인해서 사용하는 것은 데이터가 다양해지고 커지면서 거의 불가능해짐.

● 주기적으로 요약 데이터를 만들어 사용하는 것이 더 효율적. dbt 사용 ▪ 예) 고객 매출 요약 테이블, 제품 매출 요약 테이블, …

 

다양한 데이터 소스의 예시

  • 프로덕션 데이터베이스의 데이터 (보통 Mysql, Postgresql)
  • 이메일 마케팅 데이터 (Mailchimp, Hubspot, SendGrid)
  • 크레딧카드 매출 데이터 (Strip)
  • 서포트 티켓 데이터 (Zendesk, Kustomer)
  • 서포트 콜 데이터 (ChannelTalk, RingCentral, Talkdesk)
  • 세일즈 데이터 (Salesforce)
  • 사용자 이벤트 로그 (Amplitude, MixPanel)

Airflow (ETL 스케쥴러)

데이터 웨어하우스의 구성 예시

 


빅데이터 처리 프레임워크

분산 환경 기반(1대 혹은 그 이상의 서버로 구성) - 분산 파일 시스템과 분산 컴퓨팅 시스템이 필요

Fault Tolerance - 소수의 서버가 고장나도 동작해야 함

확장이 용이해야 함 - Scale Out 이 되어야 함 / 용량을 증대하기 위해서 서버 추가

1세대 - 하둡 기반의 ~

2세대 - Spark (SQL, DataFrame, Streaming, ML, Graph)

 


AWS Redshift, snowflake, Google Cloud Bigquery, Apache Hive, Apache Presto, Apache Iceberg, Apache Spark

 

Iceberg 제외 모두 SQL 지원


 

'데브코스' 카테고리의 다른 글

10 주차 Simple ETL 실습  (0) 2024.01.01
7주차-1  (0) 2023.11.17
6주차-5  (0) 2023.11.17
6주차-4  (0) 2023.11.17
Redshift  (0) 2023.11.16