의존성
의존성 (Dependencies)
Airflow를 설치할 때 필요한 추가 의존성들을 설명하는 문서예요. apache-airflow PyPI 기본 패키지가 설치하는 것과 extra 의존성, provider 배포판, extras와 providers의 차이, 그리고 시스템 수준 요구사항까지 살펴볼게요.
출처: 문서
본문
Airflow extra 의존성
apache-airflow PyPI 기본 패키지는 시작하는 데 필요한 것만 설치해요. 환경에서 유용할 것에 따라 추가 패키지를 설치할 수 있어요. 예를 들어 PostgreSQL과의 연결이 필요 없다면, 사용 중인 배포판에 해당하는 postgres-devel yum 패키지(또는 그에 상응하는 것)를 설치하는 수고를 하지 않아도 돼요.
대부분의 extra 의존성은 해당 provider 패키지에 연결돼요. 예를 들어 "amazon" extra에는 설치해야 할 대응하는 apache-airflow-providers-amazon provider 패키지가 있어요. 그런 extras로 Airflow를 설치하면 필요한 provider가 자동으로 설치돼요(그 패키지들의 PyPI 최신 버전). 다만 메인 Airflow 설치와 무관하게 provider를 자유롭게 업그레이드·설치할 수 있어요.
extras 목록과 그것들이 무엇을 활성화하는지는 package extras 참조를 확인하세요.
Provider 배포판 (Provider distributions)
Airflow는 여러 개의 별개이지만 연결된 패키지로 전달돼요. 메인 apache-airflow 패키지, 메인 airflow 기능을 구현하는 airflow-core 패키지(apache-airflow의 의존성), Dag 작성자가 Dags를 구현하는 데 사용하는 airflow-task-sdk 패키지, 그리고 여러 이른바 Airflow providers 패키지가 있어요.
기본 Airflow 설치에는 통합이 많지 않으므로 직접 설치해야 해요.
Airflow용 자체 provider를 개발하고 설치할 수도 있어요. 자세한 내용은 Providers를 참고하세요.
provider 목록과 그것들이 무엇을 활성화하는지는 Providers packages reference를 확인하세요.
extras와 providers의 차이 (Differences between extras and providers)
extras와 providers의 혼동을 방지하기 위해: Extras와 providers는 서로 다른 것이에요. 다만 많은 extras가 provider 설치로 이어질 뿐이에요.
Extras는 표준 Python setuptools 기능으로, "core" Apache Airflow에 추가 의존성 세트를 옵션 기능으로 추가할 수 있게 해줘요. 그러한 옵션 기능의 한 유형이 provider 패키지이지만, Apache Airflow의 모든 옵션 기능에 해당하는 provider가 있는 것은 아니에요.
우리는 extras setuptools 기능을 사용해 provider도 설치해요. 대부분의 extras는 provider와도 연결되어 있어요(같은 이름) — 예를 들어 apache-airflow[google] extra를 사용하면 airflow-core를 설치하고 apache-airflow-providers-google을 의존성으로 추가해요. 다만 provider를 설치하지 않는 extras도 있어요(예: github_enterprise, kerberos — 그것들은 언급된 Airflow extra 기능에 필요한 추가 의존성을 더해요). 위 세 예시는 각각 GitHub Enterprise OAuth 인증, Kerberos 통합을 추가해요. 그것들 중 어느 것도 provider가 없고, 단지 Apache Airflow airflow-core 패키지를 새 기능으로 확장할 뿐이에요.
시스템 의존성 (System dependencies)
Airflow를 설치하려면 일부 시스템 수준 요구사항이 필요해요. 다음은 Linux Debian 배포판에 필요하다고 알려진 요구사항이에요:
Debian Bookworm (12)
Debian Bookworm은 개발과 테스트의 플랫폼 선택이에요. 가장 최신 Debian 배포판이고 CI/CD 시스템에 사용하는 것이에요. 개발·테스트뿐 아니라 프로덕션 사용에도 권장해요.
sudo apt install -y --no-install-recommends apt-utils ca-certificates \
curl dumb-init freetds-bin krb5-user libgeos-dev \
ldap-utils libsasl2-2 libsasl2-modules libxmlsec1 locales libffi8 libldap-2.5-0 libssl3 netcat-openbsd \
lsb-release openssh-client python3-selinux rsync sasl2-bin sqlite3 sudo unixodbc