Airflow Connections에 DB정보를 입력해서 사용하는 방법입니다.
Connections에 DB 접속 정보를 저장하면 아래와 같이 DB Operator를 Import 후 conn_id로 호출해서 사용할 수 있습니다(포스팅은 Oracle 기준으로 진행).
Airflow DB Connection 사용 예시 (Airflow 1.10.13 버전)
# Airflow 1.10.13 버전 기준
# Airflow 2.X 버전 : airflow.providers.oracle.operators.oracle에 OracleOperator가 있음
from airflow.operators.oracle_operator import OracleOperator
# from airflow.providers.oracle.operators.oracle import OracleOperator ← 2.X버전 Connector 위치
db_conn = OracleOperator(
task_id='create_table',
oracle_conn_id='oracle_conn_main',
sql=['DROP TABLE month_sales', 'CREATE TABLE month_sales AS SELECT * FROM product.month_sales']
)
위처럼 conn_id로 호출에서 DB를 사용하면 코드나 Configuration 파일에 접속 정보가 노출되지 않아 보안측면에서 안전합니다.
상세 내용은
1. DB 접속 정보 저장 후 확인하기
2. Connection 활용하기
2가지로 나눠 포스팅하겠습니다.
DB 접속 정보 저장 후 확인하기
1. Airflow-Webserver에서 Connections Create
- Admin → Connections → Create 클릭

2. DB 접속 정보 입력하기
- Connection 입력화면에서 접속정보 입력
- 주요 항목들
- Conn Id : Connection ID로 DB Operator에서 Conn Id를 사용해 DB에 접속할 수 있음 (Dag Task에서 사용)
- Conn Type : DB 종류 선택
- Host : DB 접속 정보 (IP 주소 또는 Enpoint 정보 입력)
- Login, Password, Port : 접속정보 입력
- Extra : {"Key" : "Value"} 형태로 추가 정보들 입력, 오라클의 경우 SID 입력 필수 (DB별로 상이)

3. DB 접속 확인
- Data Profiling → Ad Hoc Query에서 Query 요청을 통해 DB 정상 접속 확인 하기

- Conn id로 DB를 선택하고 해당 DB에 Query 요청 (Run! 클릭)
- Search에서 검색도 가능
- DB Conn id가 보이지 않을 경우 : 해당 DB의 Client 프로그램을 Airflow 서버에 설치해야 합니다.

이상으로 Airflow DB Connection 설정 내용은 마치고, 다음번에는 DB Connection 사용방법을 소개하겠습니다.
참고자료
1. 프로도의 머릿속, [airflow의 connections에서 oracle 연결 정보 설정하기, https://leebaro.tistory.com/entry/airflow%EC%9D%98-connection%EC%97%90%EC%84%9C-oracle-%EC%97%B0%EA%B2%B0-%EC%A0%95%EB%B3%B4-%EC%84%A4%EC%A0%95%ED%95%98%EA%B8%B0
2. Apache-airflow, Documentation, https://airflow.apache.org/docs/apache-airflow-providers-oracle/stable/_api/airflow/providers/oracle/operators/oracle/index.html#module-airflow.providers.oracle.operators.oracle
3. Astronomer, Using Airflow to Execute SQL, https://www.astronomer.io/guides/airflow-sql-tutorial
'데이터사이언스 > Airflow' 카테고리의 다른 글
| 적은 리소스로 Airflow 설치하기 (LocalExecutor, Docker) (0) | 2022.08.08 |
|---|---|
| [Airflow] Docker로 Airflow 설치 시 기본 패스워드 변경 (0) | 2022.02.15 |
| [Airflow] Airflow log 정기적으로 삭제하기 (mtime 활용 Logrotate 설정) (0) | 2021.09.18 |