일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- Spark Caching
- Dag
- colab
- Kubernetes
- Spark Partitioning
- aws
- 빅데이터
- k8s
- CI/CD
- mysql
- AQE
- Docker
- Speculative Execution
- Spark 실습
- KDT_TIL
- off heap memory
- backfill
- Spark
- Spark SQL
- Airflow
- Kafka
- DataFrame Hint
- disk spill
- redshift
- spark executor memory
- SQL
- Salting
- 데이터 파이프라인
- etl
- topic
- Today
- Total
목록KDT_TIL (62)
JUST DO IT!
📚 KDT WEEK 10 DAY 4 TIL Airflow Backfill 🟥 Backfill 과거에 읽어온 데이터들의 문제가 발생했거나 실패한 데이터 파이프라인을 재실행하는 것 Full Refresh 방식의 경우 다시 재실행하면 그만이지만, Incremental Update 방식에서 중요한 수단이다. Backfill을 알기 전에 알아야할 중요한 요소가 있다. DAG를 만들면서 지정해주던 날짜 변수인 start_date는 DAG의 처음 실행 날짜와는 다르다. 만약 Daily Incremental Update(매일 새로운 데이터 적재) 방식으로 ETL을 구성했다면, start_date가 2023-06-01 이라고 지정했을 때, 처음 DAG가 실행되는 날짜는 2023-06-02가 된다. start_date는 ..
📚 KDT WEEK 10 DAY 4 TIL Primary Key Uniqueness 보장하기 🟥 Primary Key Uniqueness 보장하기 PK : 테이블에서 하나의 레코드를 유일하게 지칭할 수 있는 필드(들) 관계형 데이터베이스 시스템이 Primary key의 값이 중복 존재하는 것을 막아준다. 빅데이터 기반 데이터 웨어하우스들은 Primary key Uniqueness를 보장하지 않으므로 엔지니어가 보장해야함 날씨 데이터 API(https://openweathermap.org/api)를 가져오는 과정에서 PK Uniquness를 보장해보려고 한다. SQL 문법을 사용해서 Upsert(데이터가 있는 경우 새로 업데이트)방식을 사용할 것이다. 참고로 적재 대상 DB인 Redshift에서는 Upse..
📚 KDT WEEK 10 DAY 3 TIL Yahoo finance API Airflow DAG 코드 구현 Full Refresh 방식 구현 Incremental Update 방식 구현 Yahoo finance API를 사용하여 Airflow ETL 구현하기 먼저 Yahoo finance API를 사용하려면 yfinance 모듈을 다운로드받아야한다. 나는 Airflow를 도커 환경에서 사용하고 있으므로 도커에 설치를 해주었다. docker ps # Airflow scheduler의 Container ID를 확인하자 docker exec -it SchedulerContainerID sh # 찾은 scheduler의 Container ID를 입력해서 접속한다. # airflow 접속 후 pip install..
📚 KDT WEEK 10 DAY 3 TIL Airflow 예제 프로그램 포팅 API DAG 작성하기 🟥 Hello World DAG 예제 프로그램 DAG 구조 알아보기 dag = DAG( dag_id = 'HelloWorld', # DAG ID start_date = datetime(2022,5,5), # 시작일 catchup=False, # 아래 설명 참고 tags=['example'], # DAG TAG schedule = '0 2 * * *') # 분, 시, 일, 월, 요일 순으로 실행주기 설정 / 매일 2시마다 실행된다. max_active_runs : 한번에 동시에 실행될 수 있는 DAG 수 (Backfill할때 중요) (Worker에 할당된 CPU 총합이 최대) max_active_tasks ..
📚 KDT WEEK 8 DAY 5 TIL 다양한 시각화 툴 Superset 🟥 다양한 시각화 툴 = 대시보드 혹은 BI(Business Intelligence)툴 KPI(Key Performance Indicator), 지표, 중요한 데이터 포인트들을 데이터를 기반으로 계산/분석/표시하는 툴 소스가 되는 데이터의 품질이 중요하다. 데이터 분석이 쉬워지고 데이터 기반 의사결정이 가능해진다. 시각화 툴의 종류 사람들이 가장 많이 사용하는 툴 : Excel, Google Spredsheet 전문적인 툴 : Looker(구글), Tableau, Power BI, Apache Superset(오픈소스), AWS Quicksight Looker와 Tableau가 가장 많이 사용되는 추세지만 배우는데 시간 필요 Ta..
📚 KDT WEEK 8 DAY 4 TIL Snowflake 알아보기 Snowflake 간단실습 (use AWS) Data Governance 🟥 Snowflake 글로벌 클라우드(AWS, GCP, Azure 등) 위에서 모두 동작 데이터 판매를 통한 매출을 가능하게 해주는 Data Sharing/Marketplace 제공 ETL과 다양한 데이터 통합 기능 제공 스토리지와 컴퓨팅 인프라가 별도인 가변 비용 모델 SQL기반의 빅데이터 저장 및 처리, 분석 가능 + 비구조화 데이터 처리 CSV, JSON, Avro, Parquet 등 다양한 포맷 지원 Snowflake의 주요 객체 1. Organizations 한 고객이 사용하는 모든 Snowflake 자원들을 통합하는 최상위 레벨 컨테이너 하나 이상의 Ac..
📚 KDT WEEK 8 DAY 3 TIL Redshift 권한과 보안 Redshift 백업과 복구 Redshift 관련 서비스 Redshift Spectrum + 실습 Athena Redshift ML (SageMaker) + 실습 Redshift 중지 및 제거 및 최적화 🟥 Redshift 권한과 보안 Redshift 사용자별 테이블 권한 설정 사용자별 테이블별 따로따로 권한을 지정하지는 않고, IAM 그룹과 역할을 활용한다. 최근엔 RBAC(Role Based Access Control)가 일반적이다. 여러 역할의 속한 사용자는 각 역할의 권한을 모두 가진다. GROUP 키워드를 ROLE로 바꾸어도 동일하게 동작한다. 다음은 Colab에서 간단하게 실습한 결과이다. CREATE GROUP 그룹명 으로..
📚 KDT WEEK 8 DAY 2 TIL Redshift 알아보기 Redshift Severless 생성 실습 Redshift COPY 실습 🟥 Redshift AWS에서 지원하는 데이터 웨어하우스 서비스 최소 160GB ~ 2PB까지 처리 가능 응답속도가 빠르지 않아 프로덕션 데이터베이스로는 부적합 레코드 별로 저장하는 것이 아니라 컬럼별로 저장함 컬럼별 압축이 가능하며 컬럼을 추가하거나 삭제하는 것이 빠르다 벌크 업데이트(S3에서 레코드파일을 일괄복사 가능) 지원 - COPY SQL 고정 용량/비용 엔진, 가변 비용 옵션(Redshift Serverless)도 지원 데이터 공유 기능(Datashare)으로 다른 AWS 계정과 데이터 공유 가능 데이터 웨어하우스이므로 Primary Key Uniquen..
📚 KDT WEEK 8 DAY 1 TIL 데이터 팀 데이터 웨어하우스 🟥 데이터 팀 데이터 팀의 역할 신뢰할 수 있는 데이터를 바탕으로 부가 가치 생성 데이터를 고려한 결정이 가능하도록 돕는다 ex) 대시보드, 리포트 생성 데이터를 기반으로 사용자 서비스 개선 가능 ex) 알고리즘을 통한 추천 기능 데이터 팀의 발전 1. 데이터 인프라(ETL + 데이터 웨어하우스) 구축 : 데이터 엔지니어 데이터 웨어하우스(OLAP) 회사에 필요한 모든 데이터를 모아놓은 중앙 DB 소규모일경우에는 그냥 프로덕션 DB로 대체 데이터 웨어하우스의 구축이 진정한 데이터 팀의 첫 번째 스텝 면접 질문에서 사용하는 데이터 웨어하우스의 기술을 물어봐도 좋음. ETL(Extract, Transform, Load) = 데이터 파이프라..
📚 KDT WEEK 7 DAY 5 TIL AWS Lambda Docker Docker 명령어 Docker File Docker Port forwarding 🟥 AWS Lambda 별도의 서버없이 단순 함수만으로 어플리케이션으로 동작하는 서비스 특정 이벤트나 행위에 대해 프로그램 실행을 원할 때 사용 > 트리거에 특정 이벤트를 설정해서 Lambda가 작동하도록 구현한다. ex) S3의 데이터 전송마다 Lambda 작동 1. Lambda 함수 생성 2. S3 특정 버킷 설정 > 이벤트 알림 생성 > 객체 전송 이벤트에 체크 > 해당 Lambda 함수 설정 3. 해당 버킷에 파일이 새로 올라오면 Lambda 함수가 처리함에 따라 CloudWatch 로그에 기록됨 🟦 Docker 어플리케이션을 신속하게 구축, ..