데이터 조직의 비전은?
신뢰할 수 있는 데이터를 바탕으로 부가 가치 생성
- 데이터를 바탕으로 개인화를 통해 추천을 잘 해주면서 본업을 더 잘 할 수 있도록 부가 가치를 생성
- 데이터의 중요성을 강조하니 데이터 팀도 회사에서 인정을 받는다? (x)
데이터 조직이 하는 일
- 고품질 데이터를 기반으로 의사 결정권자에게 입력 제공
- 결정 과학 (Decision Science)라고 부르기도 함.
- 데이터를 고려한 결정(data informed dicisions)을 가능하게 해줌 : 새로운 혁신을 하고 싶을 때
- vs 데이터 기반 결정(data driven decisions)
- 예를 들면 데이터 기반 지표 정의, 대시보드와 리포트 생성 등을 수행
- 어떻게 해야할지 방향을 제시해줌
- 고품질 데이터를 기반으로 사용자 서비스 경험 개선 혹은 프로세스 최적화
- 머신 러닝과 같은 알고리즘을 통해 사용자의 서비스 경험을 개선
- ex) 개인화를 바탕으로 한 추천과 검색 기능 제공
- 공장이라면 공정 과정에서 오류를 최소화 하는 일을 수행
- 머신 러닝과 같은 알고리즘을 통해 사용자의 서비스 경험을 개선
이게 명확해지지 않으면 데이터 팀은 존중받지 못 함
리더가 부가 가치를 어떻게 생성할지 액티브하게 꾸준히 생각해야 함
데이터 팀의 발전 - 1. 데이터 인프라 구축
- 데이터 인프라 구축은 데이터 엔지니어가 수행함
- 데이터 크기가 커지면
- 데이터 웨어하우스가 아닌 데이터 레이크도 앞단에 생김
- 빅데이터 프로세싱 프레임워크를 사용해야 함 (ex. spark)
데이터 웨어하우스
- 회사에 필요한 모든 데이터를 모아놓은 중앙 데이터베이스 (SQL 데이터베이스)
- 데이터 크기에 맞게 어떤 데이터베이스를 사용할 지 선택
- 크기가 커진다면 다음 중 하나를 선택
- AWS Redshift, google cloud의 BigQuery
- Snowflake
- 오픈소스 기반의 하둡(Hive/Presto)/spark
- 이 모두 SQL을 지원
- 중요 포인트는 프로덕션용 데이터베이스와 별개의 데이터베이스여야 함
- 데이터 웨어하우스의 구축이 진정한 데이터 조직이 되는 첫 번째 스텝
지금 회사에서 데이터 웨어하우스를 사용하는 기술이 무엇인가요?
ETL(Extract Transform Load)
- 다른 곳에 존재하는 데이터를 가져다가 데이터 웨어하수으에 로드하는 작업
- Extract: 외부 데이터 소스에서 데이터를 추출
- Transform: 데이터 포맷을 원하는 형태로 변환
- Load: 변환된 데이터를 최종적으로 데이터 웨어하우스로 적재
- 데이터 파이프라인이라고 부르기도 함
- 관련하여 가장 많이 쓰이는 프레임워크는 Airflow
- Airflow는 오픈소스 프로젝트로 python3 기반이며 Airbnb에서 시작
- AWS와 구글 클라우드에서도 지원
- ETL 관련 SaaS (software as a Service)도 출현하기 시작
- 흔한 데이터 소스의 경우 FiveTran, Stitch Data와 같은 SaaS를 사용하는 것도 가능
데이터 팀의 발전 - 2. 데이터 분석 수행
시각화 대시보드
- 보통 중요한 지표를 시간의 흐름과 함께 보여주는 것이 일반적
- 지표의 경우 3A (Accessible, Actionable, Auditable)가 중요!!!
- 중요 지표의 예: 매출액, 월간/주간 액티브 사용자 수, ...
- 가장 널리 사용되는 대시보드
- 구글 클라우드의 룩커(Looker)
- 세일즈포스의 태블로(Tableau)
- 마이크로소프트의 파워 BI(Power BI)
- 오픈소스 아파치 수퍼셋(Superset)
데이터 팀의 발전 - 3. 데이터 과학 적용
머신 러닝 (Machine Learning)
- (프로그래밍 없이) 배움이 가능한 알고리즘 -> 블랙박스
- 데이터로부터 패턴을 찾아 학습
- 데이터의 품질과 크기가 중요
- 데이터로 인한 왜곡 (bias) 발생 가능
- AI 윤리
- 내부동작 설명 가능 여부도 중요
- ML Explainability
데이터 팀에는 누가 있는가?
- 작은 회사에서는 한 사람이 몇 개의 역할을 동시 수행하는 것이 일반적
- 데이터 엔지니어
- 데이터 인프라 (데이터 웨어하우스와 ETL) 구축
- 데이터 분석가
- 데이터 웨어하우스의 데이터를 기반으로 지표를 만들고 시각화 (대시보드)
- 내부 직원들의 데이터 관련 질문 응답
- 데이터 과학자
- 과거 데이터를 기반으로 미래를 예측하는 머신러닝 모델을 만들어 고객들의 서비스 경험을 개선 (개인화, 자동화, 최적화)
데이터 엔지니어의 역할
- 기본적으로는 소프트웨어 엔지니어
- 파이썬이 대세이나 자바 혹은 스칼라와 같은 언어도 아는 것이 좋음
- 데이터 웨어하우스 구축
- 데이터 웨어하우스를 만들고 이를 관리, 클라우드로 가는 것이 추세
- AWS의 Redshift, 구글 클라우드의 BigQuery, 스노우플레이크
- 관련해서 중요한 작업중의 하나는 ETL 코드를 작성하고 주기적으로 실행해주는 것
- ETL 스케줄러 혹은 프레임워크가 필요 (Airflow 오픈소스가 대세)
- 데이터 웨어하우스를 만들고 이를 관리, 클라우드로 가는 것이 추세
- 데이터 분석가와 과학자 지원
- 데이터 분석가, 데이터 과학자들과의 협업을 통해 필요한 툴이나 데이터를 제공해주는 것이 데이터 엔지니어의 중요한 역할 중의 하나
데이터 엔지니어가 알아야하는 기술
- SQL: 기본 SQL, Hive, Presto, SparkSQL, ...
- 프로그래밍 언어: Python, Scala, Java
- 데이터 웨어하우스: Redshift, Snowflake, BigQuery
- ETL/ELT 프레임워크: Airflow, ...
- 대용량 데이터 처리 플랫폼: Spark, YARN
- 클라우드 컴퓨팅: AWS, GCP, Azure
- 컨테이너 기술: Docker, K8s
- 도움이 되는 기타 지식: 머신 러닝 일반, A/B 테스트, 통계
- 데이터 엔지니어 스킬 로드맵
데이터 웨어하우스 옵션별 장단점
- 데이터 웨어하우스는 기본적으로 클라우드가 대세
- 데이터가 커져도 문제가 없는 확장가능성(Scalable)과 적정한 비용이 중요한 포인트
- 크게 고정비용 옵션과 가변비용 옵션이 존재하며 후자가 좀더 확장가능한 옵션
- AWS Redshift, 구글 클라우드의 BigQuery, 스노우플레이크
- Redshift: 고정비용, BigQuery, 스노우플레이크: 가변비용
- 오픈소스 기반(Presto, Hive)을 사용하는 경우도 클라우드 버전 존재
- 데이터가 작다면 굳이 빅데이터 기반 데이터 베이스를 사용할 필요가 없음
데이터 레이크
- 구조화 데이터 + 비구조화 데이터 (로그 파일)
- 보존 기한이 없는 모든 데이터를 원래 형태대로 보존하는 스토리지에 가까움
- 보통은 데이터 웨어하우스보다 몇 배는 더 크고 더 경제적인 스토리지
- 보통 클라우드 스토리지가 됨
- AWS라면 S3가 대표적인 데이터 레이크라 볼 수 있음
- 데이터 레이크가 있는 환경에서 ETL과 ELT
- ETL: 데이터 레이크와 데이터 웨어하우스 바깥에서 안으로 데이터를 가져오는 것
- ELT: 데이터 레이크와 데이터 웨어하우스 안에 있는 데이터를 처리하는 것
ETL -> ELT
- ETL의 수는 회사의 성장에 따라 쉽게 100+개 이상으로 발전
- 중요한 데이터를 다루는 ETL이 실패했을 경우 이를 빨리 고쳐서 다시 실행해야 함
- 이를 적절하게 스케줄하고 관리하는 것이 중요해지며 그래서 ETL 스케줄러 혹은 프레임워크가 필요해짐
- Airflow가 대표적인 프레임워크
- 데이터 요약을 위한 ETL도 필요해짐 -> ELT라고 부름
- 앞에서 설명한 ETL은 다양한 데이터 소스에 있는 데이터를 읽어오는 일을 수행
- 하지만 이를 모두 이해하고 조인해서 사용하는 것은 데이터가 다양해지고 커지면서 거의 불가능
- 주기적으로 요약 데이터를 만들어 사용하는 것이 더 효율적. dbt 사용
Airflow (ETL 스케줄러) 란?
- ETL 관리 및 운영 프레임워크의 필요성
- 다수의 ETL이 존재할 경우 이름 스케줄해주고 이들간의 의존관계를 정의해주는 기능 필요
- 특정 ETL이 실패할 경우 이에 관한 에러 메세지를 받고 재실행해주는 긴으도 중요해짐 (Backfill)
- 가장 많이 사용되는 프레임워크
- Airflow는 오픈소스 프로젝트로 python3 기반이며 에어비앤비, 우버, 리프트, 쿠팡 등에서 사용
- AWS와 구글 클라우드와 Azure에서도 지원
- Airflow에서는 ETL을 DAG라 부르며 웹 인터페이스를 통한 관리 기능 제공
- 크게 3가지 컴포넌트로 구성: 스케줄러, 웹서버, 워커
- Airflow는 오픈소스 프로젝트로 python3 기반이며 에어비앤비, 우버, 리프트, 쿠팡 등에서 사용
빅데이터 처리 프레임워크
- 분산 환경 기반 (1대 혹으 그 이상의 서버로 구성)
- 분산 파일 시스템과 분산 컴퓨팅 시스템이 필요
- Fault Tolerance
- 소수의 서버가 고장나도 동작해야 함
- 확장성 용이
- Scale out이 되어야 함 (용량을 증대하기 위해 서버 추가)
- Scale up도 동시에 진행하는 경우도 많음 (사용을 증가)
반응형