본문 바로가기
728x90

apache airflow9

[Airflow] KubernetesPodOperator 사용법 정리 1. KubernetesPodOperator란?Kubernetes 위에 정의한 자원과 빌드한 이미지를 Pod를 생성해 실행 시킬 수 있는 Airflow OperatorCeleryExecutor, KubernetesExecutor 모두 가능하다(kubernetes cluster만 있다면)2. Pod 설정 항목private image 저장소 URLetl_image_url = "이미지 저장소 URL"# task에 아래와 같이 사용image=etl_image_url, # task 내 image property에 private image repository url을 입력 image pull secretspod에 배포할 이미지를 가져올 때 secret 지정from kubernet.. 2024. 4. 27.
[Airflow] DAG Parsing, DAG Processor 정리 + import와 parsing error 이슈 정리 Airflow DAG Parsingscheduler에 dag_processor라는것이 포함되어 있고, 이것이 dag를 parsing하는 역할을 해줌 1. 이슈 정리Airflow on k8s 이전을 위해 DAG를 개발계의 k8s에 gitsync를 시켜둔 상황import error가 나와 확인 해보니 version up에 따른 method 명칭 변경따라서 명칭을 변경하거나 사용하지 않은 library는 import문에서 제거아무리 기다려도 변경사항 반영이 안된 채로 계속 import에러가 잔류실제 코드는 gitsync를 통해 동기화 됐고, 컨테이너에 들어가서 확인해봐도 동기화 된 상태2. 원인airflow dag 내부에 운영계에 있는 RDB, Redshift와 connect.. 2024. 4. 27.
[Airflow] Airflow 암호화 fernet key 정리 Airflow Metastore를 이관하면서 암호화된 정보를 이관될 metastore에 어떻게 적용하는지, 암호화된 값은 어떻게 확인하는지 정리해봤습니다.1. 정의대칭형 암호화에서 사용되는 키Python 암호화 라이브러리인 cryptography 패키지에서 제공하는 대칭키 암호화 방식 중 하나128비트(16바이트) 또는 256비트(32바이트)의 임의의 바이트 시퀀스로 구성됩니다. 이 키를 사용하여 데이터를 암호화하고 복호화할 수 있습니다. Fernet은 블록 암호 기술 중 하나인 AES를 기반으로 합니다.Fernet은 base64 인코딩을 사용하여 키를 인코딩하고 디코딩Fernet은 키를 생성할 때 32바이트(256비트)의 임의의 바이트 시퀀스를 사용합니다. 이 바이트 시퀀스는 base6.. 2024. 4. 27.
[Airflow] Metastore version, RDBMS 종류에 따른 차이 정리 최근에 Airflow Metastore에 있는 데이터 이관을 하면서 Metastore 이관 관점에서 Metastore에 관련된 테이블, 컬럼 정보들을 정리해봤습니다.1. Airflow version별 metastore의 구성 차이2.1.3(PostgreSQL)1) 테이블 수28개 테이블ab_permissionab_permission_viewab_permission_view_roleab_register_userab_userab_user_roleab_view_menualemberic_versionconnectiondagdag_codedag_pickledag_rundag_tagimport_errorjoblogrendered_task_instance_fieldssens.. 2024. 4. 27.
[Airflow] Airflow로 ETL 파이프라인 V2 만들기 (Variables + TaskGroup을 활용한 Task Factory 구현) 이번 포스트에는 저번에 작성했었던 각 작업들을 통합하여 만든 DAG인 ETL 파이프라인 구축하기 V1에서 중복된 태스크는 줄이고, 병렬실행을 도입시켰으며, task를 정의한 Variables 변수에 따라 Dynamic하게 갯수와 이름이 변하게 되게 끔 구성하였습니다. 저번에 작성한 포스트를 보고 싶으시다면 아래의 링크를 확인해주세요. https://spidyweb.tistory.com/506 [Airflow] Airflow로 ETL 파이프라인 만들기(python, EMR, glue crawler, Email, Slack, DB반영) 이번 포스트에는 회사에서 수동으로 처리하고 있던 일회성 ETL작업을 Airflow DAG으로 묶어서 파이프라인을 만든 경험에대해서 소개해드리겠습니다. 기존 업무 처리방식과 A.. 2024. 2. 9.
[Airflow] Amazon linux2에 docker-compose로 airflow 설치하기 AWS EC2에서 Amazon linux2 OS로 서버가 실행되고 있는 상황에서 부터 시작하겠습니다. 1. docker 설치 $ sudo yum update -y $ sudo yum install docker -y docker 시작 $ sudo systemctl start docker $ sudo service docker start 2. docker-compose 설치 및 권한 부여 1) docker-compose 설치 $ sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose 2) docker-co.. 2023. 3. 22.
[Airflow] Airflow cluster, celery executor + flower + RabbitMQ 환경 구성하기 이번 포스트에는 AWS EC2 3대로 구성된 airflow cluster를 CeleryExecutor로 설치해보겠습니다. 서버 구성 스펙 OS - Amazon linux2 AMI (HVM) - Kernel 5.10, SSD Volume type instance type - t2.Large 2vCPUs, 8GiB Memory storage - 30GB gp2 node 1: postgresql, redis, airflow webserver, airflow scheduler, airflow flower, airflow worker(queue1) node 2: airflow worker(queue2) node 3: airflow worker(queue3) 네트워크 SG group inboud rules outb.. 2023. 1. 9.
[Airflow] docker-compose.yml로 airflow 설치하기 이번 포스트에는 docker-compose.yml를 이용하여 간단하게 airflow를 설치해보겠습니다. airflow 개념과 용어에 대해 공부하고 싶으신 분은 아래의 링크를 참조해주세요. https://spidyweb.tistory.com/295 [BigData] Apache Airflow 설치 및 실습 하기 series (1) Airflow란? DAG란? 안녕하세요 이번 포스트에는 Airflow의 개념에 대해서 알아보고 어떤 역할을 하는지, 그리고 핵심인 DAG파일에 대해서 알아보겠습니다. 1. Apahce Airflow란? 에어비앤비에서 python기반으로 개발한 워크 spidyweb.tistory.com 1. docker 설치 https://spidyweb.tistory.com/277 [Docker.. 2023. 1. 7.
[Airflow] Airflow 설치 + mysql로 DB지정하기 +서비스(데몬으로) 등록하기 1. Apache Airflow 설치 1) AIRFLOW 설치 및 부가적으로 필요한 패키지 설치 sudo apt-get update sudo apt install python3-pip 2) 부가적으로 필요한 패키지 설치 pip3 install cryptography psycopg2-binary boto3 botocore sudo apt install libmysqlclient-dev -y pip3 install mysqlclient 3) airflow 설치 pip3 install apache-airflow 설치하고 나면 /home/호스트/.local/bin 디렉토리에 관련된 파일들이 저장됨 cd ~ nano .profile export AIRFLOW_HOME=/home/호스트/airflow 2. sqli.. 2022. 2. 10.
728x90