[Programmers]실리콘밸리에서 날아온 DE 스타터 키트1️⃣주차

포동동·2022년 9월 19일
0

1주차 복습

데이터팀의 역할👩‍💻

첫 번째 주이니만큼 워밍업 느낌으로 데이터팀의 구성과 비전에 대한 설명이 주를 이뤘다.

  • work process는 최근 Waterfall에서 Agile로 변화했다. 그러니 하나 끝났다고 끝이 아니라 다시 처음으로 돌아가서 점검하고 계획하고 개발하고 수정한다.

  • Data Flow : 사이트에서 다양한 데이터 발생 → DE가 DW에 적재 → DA가 BI 추출 → DS가 모델링
    그런데 스타트업의 경우는 이렇게 가는 경우가 거의 없이 대부분 DA나 DS 먼저 뽑아놓고 DE 부재를 뒤늦게 깨닫는다.
  • DW를 만드는 툴 : Snowflake, Google BigQuery, AWS Redshift
  • Product DB : 사이트 상에서 유저와의 커뮤니케이션 때 바로바로 필요한 데이터만 넣어놓는 가벼운 DB. MySQL, Postgre 등이 해당.

  • 회사의 가치 = 매출. 하지만 데이터팀은 직접적으로 매출에 영향을 주기보다는 서포트 하는 역할. 따라서 회사 매출에 어떻게 기여할 수 있는가를 나타내는 지표가 필요하고, 그 지표를 통해 데이터팀의 존재 가치를 증명해내야 함.
  • Data Informed Decision vs. Data Driven Decisions = 주관적 vs. 의존적 : Informed는 데이터를 참고로 활용. Driven은 데이터에 의존해서. Data가 절대적이기 위해선 미래가 과거와 똑같다는 대전제가 필요함. 펜데믹만 봐도 그럴 수 없으니 Informed Decision을 할 필요가 있음.
  • 데이터 팀
    • DE : 데이터 수집 및 관리
    • DA : 시각화를 통한 business insight 도출
    • DS : ML, DL 모델 수립으로 제품과 비용 최적화
    • Analytics Engineer : DE + DA
    • ML Engineer : DE + DS
    • MLOps : DevOps + DS
    • Privacy Engineer : 개인정보에 특히 전문적인 DE
  • DS는 최근 코딩도 할 줄 아는 게 좋고, "석박"은 전공보다는 오래 연구하고 논문을 써 본 경험이 중요.
  • DA는 고객이 내부의 매니저 계급. 조직내에서 생기는 데이터에 대한 여러 질문들에 답해야 함. 코딩보다는 통계적 지식과 도메인이 중요. 또한 조직 구조에 가장 영향을 많이 받는 직군.
  • DE는 ETL을 통해 DW나 DL을 생성. 그리고 내부 팀에서 사용할 데이터 툴을 개발.

  • 데이터팀은 중앙집중형, 분산형, 하이브리드가 있음. 분산형은 🈲🈲🈲🈲🈲
    • 중앙집중형 : 데이터 팀이 따로 존재해서 각 부서에서 필요한 데이터들을 한 곳에서 처리. 도메인보다는 데이터 처리 기술에 집중하기 때문에 데이터 팀 직원들에겐 커리어에 도움.
    • 분산형 : 각 부서에 데이터 담당 직원들이 분산되서 소속. 지식 공유나 기술 공유가 각 팀마다 안 됨. 대신 도메인은 늠.
    • 하이브리드 : 중앙에 데이터팀이 존재하고, 각 부서마다 데이터팀 직원들이 파견되고 로테이션으로 1~2년 뒤 다른 부서로 이동.

  • 스타트업의 초기 단계에서는 마케팅 기여도를 알기위한 툴을 DE들이 개발
  • 데이터 수집이 모델링에 큰 영향. 그만큼 데이터 수집이 중요.
  • 항상 모든 프로젝트를 진행할 때 제일 중요한 것은 성공과 실패의 기준은 무엇인가, 무슨 목적으로 하는가
  • A/B 테스트가 중요함.
  • Done is better than Perfect




1주차 복습

AWS Redshift 기초👨‍🏫

  • Data Engineering : DW 관리 + Data Pipelines 구축(Batch or Realtime) + Summary Data Generation(내부용) 생성

  • 필요한 skill :

    • SQL(Hive, Presto, SparkSQL 등) +
    • Programming Language(Python, Scala) +
    • ETL/ELT Scheduler(AirFlow) +
    • 대용량 컴퓨팅 플랫폼 + 클라우드 컴퓨터 + 컨테이너 기술 +
    • 그 외 통계적 지식
  • Production DB vs. Data Warehouse

    • Production DB : 이용자와의 transaction용(OnLine Transaction Processing). 처리할 수 있는 속도가 중요. ex) 구매기록, 회원가입
    • Data Warehouse : 기업 내부 Aanalysis용(OnLine Anaytical Processing). 처리할 수 있는 크기가 중요. ex) 로그 기록
  • raw data를 Data warehouse에 넣는 건 ETL(Extract, Transform, Load), Data Lake를 만드는 건 ELT(Extract, Load, Transform)

    • 내가 생각하는 ETL과 ELT는 MBTI 중에서 J와 P의 느낌.
    • ETL은 데이터 수집 후 변환, 적재의 계획적이고 선수체크가 가능하지만 느리고
    • ELT는 정형데이터든 비정형데이터든 일단 넣고 보고 나중에 필요할 때 꺼내 쓴다는 약간의 무계획적이지만 빠르고, Cloud computing의 발전으로 더욱 빠른 속도를 기대할 수 있음.
    • 참고

  • 고정 비용형 Data Warehouse vs. 가변 비용형 Data Warehouse :
    • 전자는 Google BigQuery, Snowflake
    • 후자는 AWS Redshift
  • AWS Redshift
    • 2PB까지 🙆‍♂️
    • OLAP(분석용. 고객응답용X).
    • Columnar Storage : 컬럼별로 읽고 쓰고.
    • bulk-update 가능
    • 고정 비용형 DW
    • Primary key의 uniqueness는 보장 🙅‍♀️ : 보장해주면 적재를 못 함. 퍼포먼스가 안 나옴.
    • Postgresql 8.x 버전과 호환
    • cluster 여러개 운영시, 처리해야 하는 레코드가 한 곳에 몰릴 수 있어 관리가 필요.(snowflake나 bigquery는 자동으로 관리해줌)
    • Access하는 법 : 분석용 툴(태블로 같은)로 접근 or psycopg2로 접근 or SQL clients(디비버 같은)로 접근 or 코랩으로 접근
profile
완료주의

0개의 댓글

관련 채용 정보