Airflow 썸네일형 리스트형 [Airflow] Airflow API를 통해 모니터링하기 Airflow APIAirflow는 현재 실행되고 있는 airflow의 상태 등을 알 수 있고, 외부에서 조작이 가능하도록 하는 API를 제공하고 있다. 이 API를 사용하기 위해서는 몇 가지 설정이 필요하다. Airflow API 활성화airflow.cfg의 api 섹션에서 auth_backend의 값을 변경해야 한다. 일반적으로 docker-compose.yaml파일을 사용할 경우 이미 설정이 되어있는 것을 확인할 수 있다.# docker-compose.yaml 파일 &airflow-common-env ... AIRFLOW__API__AUTH_BACKENDS: 'airflow.api.auth.backend.basic_auth,airflow.api.auth.backend... 더보기 [Airflow/Slack] Airflow DAG 실패 시 Slack으로 알림 보내기 Slack은 Webhook이라는 기능을 통해 Post 명령으로 특정 채널에 메시지를 보낼 수 있는 기능을 지원한다. 이를 이용해 Airflow DAG에서 에러가 발생할 때, Slack에 메시지를 보내는 기능을 구현해보자. 1. 알림을 전달할 채널 생성(또는 선택)나는 test할 워크스페이스와 채널을 미리 만들어두었다. 2. Slack app 생성https://api.slack.com/messaging/webhooks Sending messages using incoming webhooksCreate an incoming webhook with a unique URL to which you send a JSON payload with message text and options.api.slack.com위 .. 더보기 [Airflow] CustomSensor 만들어 활용하기 Sensor는 지난 포스팅에서 알 수 있듯 특정 DAG 또는 task의 실행 여부를 판단하는 역할을 한다. (참고: Airflow의 기본 센서 (BashSensor, FileSensor, PythonSensor) [Airflow] Airflow의 기본 센서 (BashSensor, FileSensor, PythonSensor)Airflow에서의 센서란?(공식문서: https://airflow.apache.org/docs/apache-airflow/stable/core-concepts/sensors.html) 센서는 오퍼레이터의 일종으로 특정 조건을 파악하는 것에 특화된 오퍼레이터라고 할 수 있다. 미minding-deep-learning.tistory.com 이번에는 Custom Sensor를 만들어 활용.. 더보기 [Airflow] Connection Type 신규 추가하는 방법 외부 서비스를 Airflow를 통해 이용하기 위해서 Hook을 사용하기 위해서는 그에 맞는 Connection이 먼저 등록되어야 한다. 하지만 Airflow에서 Connetion을 등록할 때 기본적으로 제공되는 Connection Type에 자신이 원하는 서비스가 존재하지 않을 수 있다. 그럴 때에는 직접 Connection Type을 추가해주어야 한다. Connection Type 추가하기 Airflow에서 외부 서비스를 Hook으로 제공해주고 있으나 Connection Type이 없는 경우가 종종 있다. 예를 들어 HDFS와 Hive의 경우 Connection Type에 해당 서비스가 보이지 않는 점을 확인할 수 있다. Connection Type에 노출되는 외부 서비스들은 기본적으로 패키지가 설치.. 더보기 [Airflow] Postgres Hook bulk_load 문제점, Custom Hook으로 bulk_load() 해보기 이 글은 인프런 강의 'Airflow 마스터 클래스'를 듣고 작성한 글이다. Postgres Hook 이전 포스팅 (2024.07.27 - [Minding's Programming/Knowledge] - [Airflow] Connection과 Hook)에서 살펴보았듯이 Hook은 여러 외부 서비스를 이용할 때 개인정보를 코드에 기입할 필요없이 편리하게 이용하게 해주는 Airflow의 기능 중 하나다. 그 중 bulk_load는 탭으로 나뉘어진 파일을 DB table에 업로드할 수 있도록하게 해주는 메서드인데, 공식문서에 따르면 아래와 같은 형식을 파라미터 인자값으로 받는다. (공식 문서: https://airflow.apache.org/docs/apache-airflow-providers-postgres.. 더보기 [Airflow] Connection과 Hook 지난 포스팅에서 Docker를 통해 custom postgresDB 연결을 위한 컨테이너를 만들고 해당 DB에 연결하는 것까지 실습해보았다. ( Postgres 컨테이너 추가해 DB 접속하기 글 링크 ) [Airflow/Docker] Postgres 컨테이너 추가해 DB 접속하기docker-compose.yaml 파일 수정해 Postgres 컨테이너 추가하기 먼저 docker-compose.yaml 파일을 열어 services 항목에 아래 내용을 추가한다.services postgres_custom: image: postgres:13 environment: POSTGRES_USER: minding POSTGRES_minding-deep-learning.tistory.com 이제 연결한 PostgresDB.. 더보기 [Airflow/Docker] Postgres 컨테이너 추가해 DB 접속하기 docker-compose.yaml 파일 수정해 Postgres 컨테이너 추가하기 먼저 docker-compose.yaml 파일을 열어 services 항목에 아래 내용을 추가한다.services postgres_custom: image: postgres:13 environment: POSTGRES_USER: minding POSTGRES_PASSWORD: minding POSTGRES_DB: minding TZ: Asia/Seoul volumes: - postgres-custom-db-volume:/var/lib/postgresql/data ports: - 5432:5432 # 외부에서 접속할 수 있도록 포트 노출 또한 pos.. 더보기 [Airflow/Docker] Docker-compose.yaml 파일 해석 Docker Compose? Docker Compose는 1개 이상의 도커 컨테이너를 생성할 때 사용하는 스크립트 하나를 뜻하며, 컨테이너들의 설정을 관리(컨테이너 실행 순서, 컨테이너 네트워크 등)할 수 있도록 해주는 Docker의 기능 중 하나다. 스크립트는 docker-compose.yaml 이라는 이름의 파일에 컨테이너들의 설정 내용을 입력하면 되고, Docker Compose 서비스를 시작하기 위해서는 yaml 파일이 있는 디렉토리에서 아래 명령어를 입력하면 실행된다. (Docker 서비스가 설치되어 있다는 가정 하에)sudo docker compose up docker-compose.yaml 파일 해석 yaml 파일은 json이나 xml과 같이 key, value로 구성되며 계층적인 구조를 .. 더보기 이전 1 2 3 4 다음