내돈내산/실리콘밸리에서 온 데이터 엔지니어링 스타터 키트
목차
1. 데이터 엔지니어링은 무엇인가?
2. 데이터 웨어하우스란 무엇인가?
3. Redshift
데이터 엔지니어링은 무엇인가?
- 데이터 웨어하우스 구축 및 관리
- 데이터 파이프라인 구축(ETL)
- 데이터 파이프라인 종류
> 배치 처리 프로세스 vs 실시간 처리 프로세스
- 사용자 이벤트 or 로그 수집
- 기술 스택
- SQL: Hive, Presto, Spark SQL 등
- 언어 : Python, Scala, Java 등
- 스케줄러 : Airflow, Cron 등
- 빅데이터 처리 : Spark, YARN 등
- 클라우드 : AWS, GCP 등
- 컨테이너 : K8S, Docker 등
- 기타 : 머신러닝, A/B 테스트, 통계 등
데이터 웨어하우스란 무엇인가?
- 데이터 웨어하우스는 기본적으로 운영 DB와 전혀 다른 영역이다.
- OLAP(OnLine Analytical Processing) vs OLTP(OnLine Transaction Processing)
- 결국 회사의 중심 스토리지가 된다.
- ETL : 데이터 엔지니어가 다양한 소스에서 데이터를 수집하여 가공/적재하는 과정
- ELT : 수집된 데이터를 재가공하여 새로운 데이터를 생산하는 과정
- 고정 비용 옵션 vs 변동 비용 옵션
- 고정 비용 옵션은 안정적인 비용 운영이 가능하다.
- 변동 비용 옵션은 Scale-Up/Down이 가능하다.
- 변동 비용 옵션 사용 시 쿼리 최적화는 비용 절감 효과를 보여준다.
Redshift
- 최대 2PB 제공
- OLAP
- 컬럼 기반 운영
- 벌크 업데이트 지원
- 파일을 통째로 적재하는 방식
- SQL의 INSERT 보다 월등한 퍼포먼스
- PK의 유일성 보장 X
- 보장 시 속도가 저하
- PostgreSQL 8.x 버전 지원
- 다른 서비스와 연동
- S3, EMR, Kinesis, DynamoDB
- 스냅샷 백업 기능 제공
- Redshift 접근 방법
- 분석 툴 활용
> Tableau, Looker, Superset 등
- JDBC/ODBC 라이브러리
> PostgreSQL 8.0.x 버전 호환
> Python의 psycopg2
- SQL 클라이언트
> DBeaver, Postice, SQL Workbench, DataGrip(JetBrain 이용자 강추!)
- Python Notebook
> Google Colab
목차
1. 요즘의 커리어란?
2. 데이터 팀의 목표 및 구성원
3. 데이터 팀의 구조
4. 마스터의 Lessons Learned
요즘의 커리어란?
- 한 번의 좋은 기회에서 오는 평생직장의 시대는 저물어간다.
- 다양한 방향성을 가지고 있는 미래를 마주쳐야 하고 자연스럽게 잦은 이직을 경험할 수밖에 없다.
- 내가 있는 곳이 어디인지 보다는 내가 무엇을 하고 있는지 전문성에 대해 생각해 볼 필요가 있다.
- 나의 커리어에 대해 불안해하지 말자.
- 기 죽지 말고 좌절하지 말고 중꺾마!
- 성취감을 느끼기 위해 완벽하게 해내는 것보다 완료하는 것에 의미를 두자.
- 지속적인 도전을 하자.
- 아무 일도 하지 않으면 아무 일도 발생하지 않는다.
- 좀 더 생산적인 활동을 하자. ex) 운동, 공부, 사람 만나기, 독서 등
- 개발의 패턴도 폭포수에서 애자일로 변화하듯 인생도 마찬가지이다.
데이터 팀의 목표 및 구성원
- 데이터 팀은 데이터로 부가가치를 창출
- 더 좋은 의사 결정을 도움
- 데이터를 기반으로 서비스/솔루션 개선
- 구성원
- 데이터 엔지니어
> 목표 : 데이터 인프라 구축
> 준비물 : 데이터 파이프라인, 클라우드 지식, 빅데이터 분산 처리, Python, SQL, NoSQL, 컨테이너 등
- 데이터 애널리스트
> 목표 : 데이터 기반 의사결정 지원, BI(Business Intelligence)
> 준비물 : 시각화, 수학/통계 지식, 도메인 지식, Python, SQL 등
- 데이터 사이언티스트
> 목표 : 데이터 기반 서비스/솔루션 품질 개선
> 준비물 : 인내심, 머신러닝, 수학/통계 지식, Python, SQL 등
데이터 팀의 구조
- 중앙 집중형
- 데이터 관련 인력이 한 조직에 포함
- 데이터 인력의 만족도 上
- 타 부서의 만족도 下
- 팀 내부 지식 공유 및 조화가 효율적
- 도메인 지식 부족
- 데이터 팀의 커리어에 도움
- 분산형
- 데이터 관련 인력이 각 부서에 분산
- 데이터 인력의 만족도 下
- 타 부서의 만족도 上
- 부서마다 데이터 운영에 대한 중복 투자가 발생
- 팀 내부 지식 공유 및 조화가 비효율적
- 도메인 지식 향상
- 하이브리드형
- 중앙 집중형과 분산형의 혼합 구조
- 데이터팀 소속으로 업무를 진행하지만 부서에 데이터 인력이 필요한 경우 파견
- 가장 이상적이고 선호되는 구조
마스터의 Lessons Learned
- 데이터팀은 운영 비용 투자가 많이 필요하다.
- 매출에 영향을 줄 수 있는 결과를 지속적으로 보여줘야 한다.
- 인프라 구축이 가장 우선이다.
- 데이터 품질은 항상 중요하다. Garbage In Garbage Out
- 성공과 실패의 지표가 명확해야 한다.(문제 정의 능력)
- 최신 기술, 유행하는 기술보다 필요한 기술이 더 좋다.
- 간단한 것이 가장 좋은 것이다.