본문 바로가기
반응형

Minding's Programming/Airflow27

[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를 만들어 활용.. 2024. 8. 5.
[Airflow] Airflow의 기본 센서 (BashSensor, FileSensor, PythonSensor) Airflow에서의 센서란?(공식문서: https://airflow.apache.org/docs/apache-airflow/stable/core-concepts/sensors.html) 센서는 오퍼레이터의 일종으로 특정 조건을 파악하는 것에 특화된 오퍼레이터라고 할 수 있다. 미리 설정한 조건이 만족되기를 기다리고, 만족된다면 True를 반환하는 task를 가지고 있다. 모든 센서는 BaseSensorOperator를 상속해 구현되며, 상속 시에는 __init()__ 함수와 poke(context) 함수의 재정의가 필요하다. 이 중 센싱(Sensing)하는 로직은 poke 함수에 정의되어야 한다. BaseSensorOperator 기준 파라미터는 아래와 같다.soft_fail (bool)Timeout으로.. 2024. 7. 31.
[Airflow] Connection Type 신규 추가하는 방법 외부 서비스를 Airflow를 통해 이용하기 위해서 Hook을 사용하기 위해서는 그에 맞는 Connection이 먼저 등록되어야 한다. 하지만 Airflow에서 Connetion을 등록할 때 기본적으로 제공되는 Connection Type에 자신이 원하는 서비스가 존재하지 않을 수 있다. 그럴 때에는 직접 Connection Type을 추가해주어야 한다.  Connection Type 추가하기 Airflow에서 외부 서비스를 Hook으로 제공해주고 있으나 Connection Type이 없는 경우가 종종 있다. 예를 들어 HDFS와 Hive의 경우 Connection Type에 해당 서비스가 보이지 않는 점을 확인할 수 있다. Connection Type에 노출되는 외부 서비스들은 기본적으로 패키지가 설치.. 2024. 7. 31.
[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.. 2024. 7. 29.
[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.. 2024. 7. 27.
[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.. 2024. 7. 26.
728x90
반응형