일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- Til
- 팀 프로젝트
- 데브코스
- superset
- 데이터 엔지니어
- VPC
- Kafka
- 데이터 시각화
- cloud platform
- 슈퍼셋
- 코테 연습
- Tableau
- 코딩 테스트
- airflow
- GCP
- Snowflake
- SQL
- beuatifulsoup
- Spark
- django
- 코딩테스트
- HTML
- Selenium
- AWS
- PCCP
- Today
- Total
목록분류 전체보기 (126)
주니어 데이터 엔지니어 우솨's 개발일지
학습내용Docker 명령 정리 - Image - 이미지 빌드 : docker build --platform=Linux/amd64 -t 이미지 이름 - 이미지 보기 : docker images docker image ls - 이미지 삭제 : docker rmi docker image rm Docker 명령 정리 - Docker Hub - 로그인 : docker login -u 사용자ID -p 사용자PW - 도커 풀(가져오기) : docker pull wsh120/hangman - 도커 푸쉬 : docker push wsh120/hangman Docker 명령정리 - 컨테이너 - 도커 생성 : docker create - 도커 실행 : docker run --name -p -v - --..
학습내용Docker 컨테이너 내부 프로세스와 호스트 프로세스간의 통신 - Docker 컨테이너로 포트 4000에 실행된 Flask app이 있다 - 이 app을 호스트 운영체제에서 접근하려면? - Docker 컨테이너 내부 프로세스가 오픈한 포트번호는 바깥 프로세스에서는 보이지 않는다. - 예를들어 앞서 4000번 포트는 호스트 프로세스 브라우저에게는 보이지 않는다. => Docker컨테이너 내부 프로세스가 오픈한 포트번호를 외부로 노출해주는 포트맵핑이 필요하다. - Docker run 수행시 -p 옵션을 사용한다. - ex) Docker run -p 4000:4000 이미지이름 (앞의 4000이 localhost:4000 에 들어갈 포트넘버로 다른번호로 수정가능) 소프트웨어..
학습내용Airflow Executor란? - Executor는 Task들을 관리하고 실행하는 역할을 수행한다 - 병렬 혹은 일렬 실행이나 어느 worker에서 실행할지 등 - 다양한 수의 Executor타입이 존재 - Sequential Executor : 디폴트로 설치되며 Sqlite와 같은 싱글스레드 DB에서만 사용가능 - Local Executor : task들을 Airflow 마스터 노드안에서 실행한다 - Celery Executor : 다수의 Worker 노드가 있는 경우 사용되며 Celery 큐를 사용해 task들을 worker노드로 분산하여 실행한다. - Kubernetes Executor는 K8s 클러스터를 사용하여 task들을 독립된 환경에서 사용한다...
학습내용ETL방법 - 카피하려는 테이블의 레코드 수가 적다면 INSERT INTO 사용 - 레코드의 수가 많다면 s3에서 redshift로 벌크 업데이트(COPY커맨드 사용) AWS S3 접근(Connections 설정) - Access Key ID와 Secret Access Key를 사용하는 걸로 바뀜 - 루트 사용자의 키들을 사용하면 해킹시 AWS 자원들을 마음대로 사용 가능 -> 여러번 사고가 남 - 우리가 사용해볼 Best Practice는: - IAM(Identity and Access Management)을 사용해 별도의 사용자를 만들고 - 그 사용자에게 해당 S3 bucket을 읽고 쓸 수 있는 권한을 제공하고 - 그 사용자의 Access Key ID와 Se..
학습내용airflow와 타임존 - airflow.cfg에는 두 종류의 타임존 관련 키가 존재 1. default_timezone 2. default_ui_timezone - start_date,end_date,schedule - dafault_timezone에 저장된 타임존을 따른다 - execution_date와 로그시간 - 항상 UTC를 따른다. - execution_date를 사용할때는 타임존을 고려해서 변환후 사용이 필요하다 => UTC를 일관되게 사용하는 것이 좋다. dags 폴더에서 코딩시 주의점 - dags 폴더를 주기적으로 스캔하기 때문에 본의 아니게 개발중인 테스트코드가 실행될 수 있다. Primary Key Uniqueness란? - 테이블에서 하나의 레코드..
학습내용Airflowdelete from - sql transaction을 존중 truncate - sql transaction을 존중하지 않고 전부 삭제Admin - Connections : 백엔드의 호스트 이름, 포트넘버 등을 저장 Admin - Variables : API Key, Value 등을 저장Xcom이란? : 태스크(Operator)들간에 데이터를 주고 받기 위한 방식 - 보통 한 Operator의 리턴값을 다른 Operator에서 읽어가는 형태가 된다. - 이 값들은 Airflow 메타 데이터 DB에 저장이 되기에 큰데이터를 주고 받는데에는 사용이 불가능하다. - 보통 큰 데이터는 S3등에 로드하고 그 위치를 넘기는 것이 일반적이다. cp -r : cp는 복사하는 기능, -r은 서브..