반응형
1. 질문 문답
1) 커리어를 계속해서 발전시키고 싶다면?(1)
- 건강한 몸과 마음이 중요
- 어떤 기술을 아느냐가 아닌 결과를 내는데 초점
- 내가 하는 일에 결과를 내는데 필요한 기술의 배움에 초점
1) 커리어를 계속해서 발전시키고 싶다면?(2)
- 요즘 세상의 전문성이란? 변화를 두려워하지 않는 마인드셋이다. 자신감을 갖고 나에게 무슨일이 주어거나, 하고싶은 일이 있으면 나는 그것을 할 수 있다 라는 자신감을 가진다..
- 이는 작은일이라도 결과물을 내면서 키워지게 되어 있다. 전문성이란 변화를 두려워하지 않고 도전하는 마인드셋
- 한방에 끝내려고 하지 않기. 한방에 끝내지 말고 어디서 시작하던 언제든지 배우고 멈춘거 같으면 그것을 타계할 방법 찾아보기, 더 배울 수 있는 곳으로 갈것인가, 아니면 새로운 것을 시작할것인가 등등..
- 자기검열 하지 않기!! 이력서 그냥 내자 일단 내거 그대로 내고 그 사람들이 판단하게 하자!
- growth mindset - 언제 다 갖출지 알 수 없다. 면접, 취직준비를 하면서 공부를 하자 해당 준비를 하면서 내가 옳게 가고 있는지 알 수 있고, 무엇을 해야될지 알 수 있다.
2) One way door vs Two way door
- 조금은 위험해보이지만 재미있어 보이는 일이 있다면 그걸 조금 더 안전하게 만들 방법을 찾아보자
- 대부분의 업무는 two way door 이다.
3) 매니저 입장에서 주니어에게 바라는 점은?
- 피드백을 잘 받아들이고 개선하려고 하느냐?
- 얼마나 발전 가능성이 있느냐? (처음에는 기술습득 중심에서 나중에는 영향역(리더십)
- 얼마나 긍정적인가
- 매니저 관점에서 어떻게 주니어의 역량을 안전하게 검증할 수 있을까?
- 주니어를 뽑을 때는 이를 증명할 수 있는거는 질문을 많이 하느냐!
- 회사를 고르기 보다는 같이 일하는 사람들과 매니저가 중요 (특히 커리어의 초창기에 더 중요, 네트웍 형성에 큰 영향을 끼침!)
- 피드백을 잘해주어야 함!
2. ETL / AIRFLOW 소개
- 위의 과정 하나하나가 etl 이다
- 대부분 회사들이 elt 를 사용, 외부 데이터를 적재한 다음. 필요할때마자 테이블 체크 후 서머리 테이블을 만들어서 사용하는데 이 과정을 elt 라고 한다.
1) 데이터 레이크 / 웨어하우스의 차이점
- 거의 같다고 보면됨
- 데이터 레이크는 스케일이 크다는 뉘앙스, 정형, 비정형 데이터 등 많은 데이터들이 존재, 데이터 웨어하우스보다는 싸기 때문에 공간제약없이 오래되고 많은 데이터 올림, 연산을 하려고 하면 좀 오래 걸릴 수 있다.
- 클라우드를 쓰는 기업들이 두번째 사진과 같은구조를 많이 가져간다. 대표적으로 넷플릭스
2) 데이터파이프라인의 정의
- 데이터가 흘러가는 파이프라인
3) Raw data etl jobs - 데이터엔지니어의 JOB
- 외부와 내부의 데이터 소스에서 데이터를 읽어다가 (많은 경우 API 를 통하게 됨)
- 적당한 데이터 포맷 변환 후 (데이터의 크기가 커지면 Spark 등이 필요해짐)
- 데에터 웨어하우스에 로드
- 데이터 엔지니어는 어떻게 데이터 분석가들이 편하게 활동할 수 있는 환경을 만들 수 있을까를 고민해야한다.
3. airflow 란?
- 파이썬으로 구성
- 데이터 운용을 위한 플랫폼
- 데이터 파이프라인을 체크하고 실패한것을 재 실행할 수 있는 기능이 있음.
- 에어플로우에서 데이터 파이프라인은 DAG 라고 불림(DIRECCTED ACYCLIC GRAPH)
- dag 는 하나 혹은 그 이상의 태스크로 구성
- 태스크는 operator 클래스로 구현됨
- 스크들간의 실행 순서 정의 가능
- api 제공
- airflow 는 하나 혹은 사주의 서버로 구성
- 하나의 스케쥴러와 다수의 워커로 구성
- 스캐줄러가 태스크들을 다수의 워커에게 나눠줌
- dag 와 태스크와 스케줄 정보들이 저장되는 db 가 필요하며 디폴트로는 sqlite 가 사용 ( 개발을 위해서 mysql, postgres 로 교체 필요)
1) 구성 ( 5개의 컴포넌트로 구성 )
- web server
- scheduler
- worker
- database(sqlite 기본)
- queue( 멀티노드 구성인 경우에만 사용)
2) 아키택처 구성도
- scale up : 서버 자체의 성능을 올려서 처리 능력을 향상 시키는 것
- scale out : 서버 대수를 늘려 처리 능력을 향상 시키는 것
- 대부분의 에어플로우 아키텍처는 위와같이 구성됨
3) DAG
- 테스크의 집합
- DAG 는 태스크들로 구성되어 있다
- 이 태스크들은 EXTRACT, TRANSFORM, LOAD 작업을 수행한다
- 태스크란 오퍼레이터의 인스턴스이다.
- 예를들어 spark job, shell script, hive query, s3 read/write, postgres query, readshift writing 등이 있음
4) 장단점
장점
- 강력한 기능들
단점
- 배우는데 시간이 많이 걸림..
- 혼동되는 용어들이 굉장히 많음
5) airflow backfill
backfill 이 왜 중요한가
- incremental update 를 하는경우에만 backfill 이 의미가 있음
- 여러가지 이유로 incremental update 가 실패하게되고 그 경우 다시 실행해야됨
- 가끔은 데이터 소스 쪽에 변경이 생기면서 전체를 다시 읽어야 할 수 있음
- 만약 backfill 하는 코드가 지금 사용하는 etl 코드와 다르다면 여러가지 문제가 발생
반응형
'데이터 엔지니어링 프로젝트 및 인강 > 4. 데이터 엔지니어링 스타터 키트 Project' 카테고리의 다른 글
2주차 기록( 2 ) - 수업에 사용될 RedShit / RDB 에 대한 간단한 정리 (0) | 2021.11.19 |
---|---|
2주차 기록( 1 ) - 데이터 엔지니어의 일주일 (0) | 2021.11.19 |
1주차 기록 - 데이터팀의 역할에 대하여 summary (0) | 2021.11.16 |