일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 팀 프로젝트
- GCP
- VPC
- HTML
- PCCP
- 코테 연습
- SQL
- beuatifulsoup
- 데이터 엔지니어
- 데이터 시각화
- Til
- AWS
- cloud platform
- superset
- Kafka
- django
- 코딩테스트
- Spark
- 슈퍼셋
- 코딩 테스트
- airflow
- Tableau
- 데브코스
- Selenium
- Snowflake
- Today
- Total
목록분류 전체보기 (126)
주니어 데이터 엔지니어 우솨's 개발일지
학습 내용프로덕션 사용을 위한 Airflow 환경 설정 - Airflow.cfg 는 /var/lib/airflow/airflow.cfg 에 위치해야한다 - webserver와 scheduler가 재시작될 때 변경사항이 반영됨 - [core]섹션의 dags_folder가 DAG들이 있는 디렉토리가 되어야한다. - dag_dir_list_interval: dags_folder를 airflow가 얼마나 자주 스캔하는지 명시해야한다(초 단위) - Arirflow Database upgrade - 기본은 SQLite 이며 Postgres 또는 MySQL로 변경 - sql_alchemy_conn 이 Core section of airflow.c..
학습내용Dag란? - DAG(Directed Acyclic Graph, 방향성 비순환 그래프)는 방향성이 있는 간선을 가지며 순환이 없는 그래프 구조이다. - 주로 작업 스케줄링, 데이터 처리, 블록체인 등에서 의존성을 표현하고 관리하기 위해 사용한다. -노드와 간선으로 이루어져 있으며, 각 간선은 특정 방향으로만 이동 가능하다 Dag를 실행하는 방법 - 주기적 실행 : schedule로 지정 - 다른 Dag에 의해 트리거 - Explicit Trigger : Dag A가 분명하게 Dag B를 트리거(TriggerDagOperator) - Reactive Trigger : Dag B가 Dag A가 끝나기를 대기(ExternalTaskSensor) - Dag A는 Dag B가 ..
학습내용구글시트 연동 1. 구글시트 API를 활성화하고, 구글 서비스 어카운트로 생성한 후 그 내용을 JSON파일로 다운로드 2. 어카운트에서 생성해준 이메일을 조작하고 싶은 시트에 공유 3. Airflow DAG쪽에서 해당 JSON 파일로 인증하고 시트를 조작 Admin-Variable google_sheet_access_token 설정 - Key = 구글 서비스 어카운트의 JSON Admin-connection aws_conn_id 설정 (S3) redshift_dev_db 설정(Redshift) redshift_summary.py - 구글시트에서 S3로 복사 from airflow import DAGfrom airflow.macros import *from airflow.utils.deco..
학습내용Docker 기반 airflow 실행 1. git clone https://github.com/learndataeng/learn-airflow.git2. cd learn-airflow 3. curl -LfO 'https://airflow.apache.org/docs/apache-airflow/2.5.1/docker-compose.yaml'curl : client url의 약자로 데이터를 URL을 통해 전송하기 위한 명령줄 도구이다. curl -LfO 'https://airflow.apache.org/docs/apache-airflow/2.5.1/docker-compose.yaml' 뜻 -L: --location의 약자로, 서버가 리다이렉션을 지시하는 경우 해당 URL을 따라가도록 한다. HT..
학습내용Docker 사용시 유의점 - Docker Volumes - Host volume은 보통 개발시 소스코드를 바로 ontainer안으로 마운트 하기 위함 - Production에서는 named volumes를 써야한다 - Docker container는 read-only로 사용한다 - 내용을 바꿔야한다면 실행 중인 컨테이너를 수정하지 말 것 - 항상 이미지를 새로 빌드하고 다시 컨테이너들을 새로 론치한다 - 자동화가 중요하다 : CI/CD 프로세스 - 다수의 Docker Container들을 다수의 호스트들에서 실행 필요 - 용량 문제와 Fail-over(fail-tolerant) 관리해야하는 서버의 수가 늘어난다면? 해결방안 1. 문서화 - 지금..
학습내용.dockerignore란? : 불필요한 Binary파일이나 패스워드가 들어있는 파일 등 개발자의 부주의로 인한 사고를 막기위함 및 깃업의 크기가 불필요하게 늘어나는 것을 방지한다. - Image build할 때 추가하지 말아야할 파일들이나 폴더들 지정 Docker-Compose란? - 다수의 컨테이너로 소프트웨어가 구성되는 경우 사용할 수 있는 툴 + 환경설정파일 - docker-compose.yml로 설정 - 다양한 테스트등도 수행이 가능하다 - 다양한 버전을 만드는 것도 일반적이다(dev, test, pord등) - 개별 컨테이너를 따로 관리하는 것보다 훨씬 더 생산성이 높다 - 환경설정 파일의 이름은 docker-compose.yml이나 docker-compose.ya..