til

11주차 목요일, 54일차 Today I Learned Airflow 운영과 대안 : 프로덕션 사용을 위한 환경설정, 로그 파일 삭제, 메타데이터 백업, 대안 dbt (1) : 소개, 사용 시나리오, 설치와 환경설정, Models (Input, Output) ✏️ 학습 내용 Airflow 운영과 대안 1. 프로덕션 사용을 위한 Airflow 환경설정 주의사항 airflow.cfg is in /var/lib/airflow/airflow.cfg core 섹션의 dags_folder가 DAG들이 있는 디렉토리가 되어야 한다. Sqlite가 아니라 Postgres or MySQL 사용 되도록이면 VPN 뒤에 위치하게 하여 함부로 액세스하지 못하도록 base_log_folder, child_process_log_..
11주차 수요일, 53일차 Today I Learned Airflow 고급기능 (3) : 기타 기능 - Dag Dependencies, Task Grouping, Dynamic Dags ✏️ 학습 내용 1. Dag Dependencies DAG간 (혹은 Task간) 실행 순서 (혹은 수행 여부)를 정하려면 어떻게 해야 하는지 알아보자. DAG를 실행하는 방법, 즉 스케줄되도록 하는 방법은 2가지가 있다. 이번에는 2가지 방법 중 '다른 Dag에 의해 트리거'하는 방법에 대해 알아볼 예정이다. 이 방법은 또다시 2가지 방식으로 나뉜다. 이 방식은 트리거에도 똑같이 적용될 수 있다. Schedule로 지정하여 주기적 실행하기 다른 Dag에 의해 트리거하기 Explicit Trigger : Dag A가 분명하..
11주차 화요일, 52일차 Today I Learned Airflow 고급기능 (2) : 구글시트 연동, API 및 Airflow 모니터링 ✏️ 학습 내용 1. 구글시트 연동 (Gsheet -> Redshift) 구글 시트를 SQL문을 사용하여 Redshift 테이블로 복사하는 업무자동화 DAG를 구현해보자. ① 구글 클라우드 로그인하여, 구글시트 API 활성화 (ENABLE) ② 구글 서비스 어카운트 생성 후 JSON 파일로 다운로드 → 이 내용을 Variable로 등록 (④) ③ 구글시트에 이메일 (JSON 파일에서 확인 가능) 공유 (Editor 권한 부여) ④ Ariflow DAG쪽에서 해당 JSON 파일로 인증 (Variable로 등록하기) ⑤ DAG 실행하면 완료 (연동하는 실행 파일은 아래 ..
11주차 월요일, 51일차 Today I Learned Airflow 고급기능 (1) : ETL 구현 및 슬랙 (Slack)연동 ✏️ 학습 내용 1. ETL 구현 1) Airflow Docker 환경 설정 ① learn-airflow Github repo PULL or CLONE ② docker-compose.yaml 수정 ③ docker compose up -d 수행 ④ 웹 UI 로그인 실습에 앞서 Docker 환경 설정 세팅하기로 한다. 기존에 진행했으면 추가 업데이트 (PULL)하거나 새로 시작하면 복사 (CLONE)하면 된다. 위 4단계를 터미널에서 진행하고나면 세팅이 완료된다. 단, 여기에서 Airflow 실행환경 관리방안에 대해 생각해볼 수 있다. 기타 환경설정값들을 어떻게 관리하고 배포할까?..
10주차 금요일, 50일차 Today I Learned Docker, K8s (5) : 서버 관리의 어려움, Container Orchestration, 쿠버네틱스 ✏️ 학습 내용 1. 서버 관리의 어려움 복잡한 다수의 서버로 구성된 시스템을 효율적으로 관리한다는 것은 쉬운 일이 아니다. 관리해야 하는 서버가 늘어난다면 어느 서버에 문제가 있는지, 어느 서비스에 문제가 있는지, 이런 문제들을 얼마나 빨리 알고 해결할 수 있을지 새로 들어온 사람이나 주니어가 잘 온보딩하려면 어떻게 해야 하는지 등 많은 문제와 고민이 생기게 된다. 이를 해결하기 위해서 문서화를 해도 현재 상황에 맞게 업데이트하는 것은 어려운 일이다. 상황에 따라 의미가 없는 경우도 많고, 많은 수의 서버를 하나하나 관리하고 명령을 실행한다..
10주차 목요일, 49일차 Today I Learned Docker, K8s (4) : Docker compose (+with airflow) ✏️ 학습 내용 1. Docker compose로 다수 컨테이너 실행하기 Docker compose란 다수의 컨테이너로 소프트웨어가 구성되는 경우 사용할 수 있는 툴이자 환경 설정 파일로, docker-compose.yml로 설정할 수 있다. 여기서 다양한 테스트 등도 수행 가능하고, 다양한 버전을 만드는 것도 일반적이다. 개별 컨테이너를 따로 관리하는 것보다 docker compose를 이용하는 것이 훨씬 더 생산성이 높다. 다만 배워야할 것도 많고 복잡해질 수는 있다. 사용하게 된다면 소프트웨어를 구성하는 모든 컨테이너에 적용된다. docker-compose...
10주차 수요일, 48일차 Today I Learned Docker, K8s (3) : Docker 명령어, Volume, cleanup, Multi-container로 구성된 소프트웨어 실행 ✏️ 학습 내용 1. Docker 명령어 정리 1) Image 관련 명령어 # 빌드하기 (애플칩으로 만들어진 맥에서 리눅스 소프트웨어 빌드 시에 플랫폼 구문 지정 필요) docker build --platform=linux/amd64 -t {name}/{name} # 로컬에 저장된 이미지 리스트 docker images docker image ls # 이미지 삭제 docker rmi {이미지} docker image rm {이미지} 2) Docker Hub 관련 명령어 docker login -u {사용자 ID} ..
10주차 화요일, 47일차 Today I Learned Docker, K8s (2) : CI/CD와 Github Actions, Test 및 Dockerization ✏️ 학습 내용 1. Dockerization 실습 웹 서비스를 Docker로 구동하기 위해서는 테스트를 수행하고, Dockerfile을 만들어 Docker Image를 빌드하고, Docker Image를 Docker Hub로 푸시하면 된다. 이를 Github Actions로 구현하여 repo의 main에 코드가 머지될 때마다 수행하도록 자동화 할 수 있다. 실습에서는 hangman 프로그램을 flask를 사용하여 웹으로 노출할 것이다. 포트 번호는 어디든 바인딩 가능하게 지정하고, flask 관련 모듈을 설치하여 진행할 것이다. Docke..
10주차 월요일, 46일차 Today I Learned Docker, K8s (1) : 도커 소개 및 설치, 간단한 예제 ✏️ 학습 내용 1. Docker 개요 및 소개 1) Airflow 운영 상의 어려움 2) Docker 소개 3) Virtual Machines vs Docker Contatiners 1) Airflow 운영 상의 어려움 만약 Airflow에서 관리해야 하는 DAG의 수가 100개를 넘어가게 된다면, 데이터 품질이나 데이터 리니지 이슈 외 소프트웨어 버전 및 라이브러리 충돌, Worker 부족, Worker 서버들의 관리와 활용도 이슈 등 다양한 이슈들이 발생할 수 있다는 어려움이 존재한다. 이를 해결하기 위해 Docker와 K8S (쿠버네틱스)를 이용할 수 있다. 라이브러리 및 모듈..
9주차 금요일, 45일차 Today I Learned 데이터 파이프라인 (5) : OLTP 복사, ELT ✏️ 학습 내용 1. OLTP 테이블 복사하기 프로덕션 데이터베이스 (MySQL, OLTP)에서 데이터 웨어하우스 (Redshift, OLAP)로 데이터를 복사해오는 실습을 진행할 것이다. 방법 1. Full Refreh 방법 2. Incremental Update ROW_NUMBER (SQL) 활용 UPSERT (Redshift 제공) 활용 프로덕션 데이터베이스는 OLTP 방식이며, 데이터 웨어하우스는 OLAP 방식이다. OLTP 테이블을 복사해서 OLAP 테이블을 만드는 것이 목적이다. 프로덕션 데이터베이스의 대표적인 예시인 MySQL에서 데이터 웨어하우스의 일종인 Redshift로 데이터를 복사..
‘^’
'til' 태그의 글 목록 (3 Page)