행궁동 데이터 엔지니어

반응형

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 클릭

Ariflow-Webserver : 버전 1.10.13

 

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별로 상이)

DB접속정보 입력, 접속정보 입력 후 Save

 

3. DB 접속 확인

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

Ad Hoc Query 이동

  • 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

 

반응형

이 글을 공유합시다

facebook twitter kakaoTalk kakaostory naver band