연결·훅
연결·훅 (Connections & Hooks)
이 페이지는 Airflow에서 외부 시스템과 통신하는 데 쓰는 Connection 개념과 이를 고수준으로 감싸는 Hook을 다뤄요. Connection은 사용자 이름·비밀번호·호스트 같은 파라미터 집합과 시스템 타입, 고유한 conn_id로 구성되며, UI나 CLI로 관리할 수 있어요. 커스텀 연결 타입을 정의하는 방법도 설명해요.
출처: 문서
본문
Airflow는 종종 다른 시스템으로 데이터를 밀고(push) 당기는데(pull) 사용되므로, 외부 시스템과 통신하는 데 사용되는 자격 증명을 저장하는 일급(first-class) Connection 개념을 갖고 있어요.
Connection은 기본적으로 사용자 이름, 비밀번호, 호스트 같은 파라미터 집합과 함께, 연결하는 시스템의 타입과 conn_id라는 고유한 이름으로 구성돼요.
이들은 UI나 CLI로 관리할 수 있어요. 생성·편집·관리에 대한 자세한 내용은 Managing Connections을 참고해요. 커스터마이즈 가능한 연결 저장소와 백엔드 옵션이 있어요.
나만의 코드에서 Connection을 직접 사용하거나, Hooks를 통해 사용하거나 템플릿에서 사용할 수 있어요:
echo {{ conn.<conn_id>.host }}
Hooks
Hook은 외부 플랫폼에 대한 고수준 인터페이스로, 그 API를 직접 치거나 특수 라이브러리를 사용하는 저수준 코드를 작성하지 않고도 빠르고 쉽게 통신할 수 있게 해줘요. 또한 Operator가 구축되는 빌딩 블록이기도 해요.
Hook은 Connection과 통합되어 자격 증명을 수집하며, 많은 Hook은 기본 conn_id를 갖고 있어요. 예를 들어 PostgresHook은 하나를 전달하지 않으면 postgres_default라는 conn_id를 가진 Connection을 자동으로 찾아요.
우리 API 문서에서 Airflow hooks의 전체 목록을 볼 수 있어요.
커스텀 연결
Airflow는 커스텀 연결 타입을 정의할 수 있게 해줘요. 이것이 Providers에서 자세히 설명되는 내용이에요 — provider는 나만의 연결을 정의할 수 있는 능력을 줘요. 연결 커스터마이즈는 어떤 provider로든 할 수 있지만, 커뮤니티가 관리하는 많은 provider도 커스텀 연결 타입을 정의해요. Apache Airflow 커뮤니티 관리 provider가 제공하는 모든 연결의 전체 목록은 Connections에서 찾을 수 있어요.