패키지 extras 참조
패키지 extras 참조 (Reference for package extras)
고급설치를 하려면 Airflow가 제공하는 다양한 extras를 알아야 해요. Airflow 3부터는 여러 독립적인 배포(distribution) 패키지로 나뉘어 설치되며, 각 패키지마다 선택적으로 설치할 수 있는 extras가 있어요. 이 페이지에서는 Airflow의 공식 배포 패키지들과, 코어/메타/프로바이더/그룹 extras의 전체 목록과 설치 명령을 정리해서 보여드릴게요.
출처: 문서
본문
Airflow 배포 패키지
Airflow 3부터 Airflow는 기존의 providers 위에 여러 독립적이고 격리된 배포 패키지로 분리되었어요. 이 배포 패키지 전반에 걸쳐 의존성도 격리되고 단순화되었죠.
원래의 apache-airflow 배포 패키지와 extras를 통한 설치 방법이 여전히 예전처럼 동작하고, scheduler, webserver, triggerer, worker 역할을 할 수 있는 완전한 Airflow 설치를 제공하지만, 이제 apache-airflow 패키지는 다른 모든 배포 패키지를 설치하는 meta-package에요. 특정 구성 요소를 실행하는 데 필요한 배포 패키지만 설치할 수도 있어요.
다음 배포 패키지를 사용할 수 있어요:
| apache-airflow-core | Airflow scheduler, webserver, triggerer 코드를 포함하는 핵심 배포 패키지예요. | 여러 프로바이더에 걸쳐 Airflow 핵심 시스템의 기능을 향상시키는 선택적 기능을 추가하는 Core extras. 모든 선택적 기능을 함께 설치하는 extras를 그룹화해요. |
| apache-airflow-task-sdk | worker에서 태스크를 실행하는 데 필요한 배포 패키지예요. | 선택적 extras 없음 |
| apache-airflow-providers-* | Airflow와 외부 시스템, 타사 소프트웨어 및 서비스의 통합을 포함하는 배포 패키지예요. 일반적으로 operators, hooks, sensors, triggers를 제공하고, logging handlers, executors 등 특정 서비스나 시스템에 묶인 다양한 유형의 확장도 제공해요. | 각 프로바이더 배포 패키지에는 고유한 선택적 extras가 있을 수 있어요 |
| apache-airflow | (필수) apache-airflow-core (항상 apache-airflow와 같은 버전) apache-airflow-task-sdk (최신)을 설치하는 meta-배포-패키지예요. | 모든 core extras, extras를 통한 모든 프로바이더 패키지. 이는 Airflow 2의 이전 설치 방법과 하위 호환됩니다. 그룹 extras: all-core - apache-airflow-core 패키지의 모든 extras를 설치하는 extra, all - 모든 core extras와 모든 프로바이더 패키지(선택적 extras 제외)를 설치하는 extra. |
위에서 언급했듯이 Airflow에는 설치 시 기능을 추가할 수 있는 선택적 "extras"가 여러 개 있어요. 이 extras는 사용자가 설치를 관리하는 좋은 방법일 뿐만 아니라, Airflow에 기여하려는 기여자가 프로바이더를 통해 선택적 통합(Airflow 통합 포함) 기능을 기여할 때도 유용해요.
다음은 Apache Airflow의 모든 추가 의존성 목록이에요.
코어 Airflow extras
이들은 코어 Airflow의 기능을 확장하는 코어 Airflow extras예요. 프로바이더 패키지를 설치하지 않고, 제공된 패키지에 필요한 python 의존성만 설치해요. 동일한 extras가 airflow-core 패키지 extras로도 사용 가능해요.
| extra | install command | enables |
|---|---|---|
| extra | install command | enables |
| async | pip install 'apache-airflow[async]' | Gunicorn용 비동기 worker 클래스 |
| graphviz | pip install 'apache-airflow[graphviz]' | Dag를 그래픽 출력으로 변환하는 Graphviz 렌더러 |
| kerberos | pip install 'apache-airflow[kerberos]' | Kerberized 서비스(Hadoop, Presto, Trino)용 Kerberos 통합 |
| memray | pip install 'apache-airflow[memray]' | memray로 메모리 프로파일링에 필요 |
| otel | pip install 'apache-airflow[otel]' | OpenTelemetry 메트릭에 필요 |
| sentry | pip install 'apache-airflow[sentry]' | 애플리케이션 로깅 및 모니터링용 Sentry 서비스 |
| standard | pip install apache-airflow[standard]' | 표준 hooks 및 operators |
| statsd | pip install 'apache-airflow[statsd]' | StatsD 메트릭에 필요 |
Meta-airflow 패키지 extras
Airflow 3은 여러 패키지로 릴리스돼요. apache-airflow 패키지는 독립형 설치로 Airflow를 실행할 때 다른 모든 패키지를 설치하는 meta-package이며, Airflow 코어 기능을 확장하지는 않지만 Airflow나 일부 프로바이더가 사용할 수 있는 다른 패키지를 설치하려는 사용자에게 유용한 extras도 여러 개 있어요.
| extra | install command | enables |
|---|---|---|
| extra | install command | enables |
| aiobotocore | pip install 'apache-airflow[aiobotocore]' | Amazon 통합용 비동기(deferrable) operators 지원 |
| amazon-aws-auth | pip install apache-airflow[amazon-aws-auth] | Amazon-aws-auth AWS 인증 |
| cloudpickle | pip install apache-airflow[cloudpickle] | Cloudpickle hooks 및 operators |
| github-enterprise | pip install 'apache-airflow[github-enterprise]' | GitHub Enterprise 인증 백엔드 |
| google-auth | pip install 'apache-airflow[google-auth]' | Google 인증 백엔드 |
| graphviz | pip install 'apache-airflow[graphviz]' | Dag를 그래픽 출력으로 변환하는 Graphviz 렌더러 |
| gunicorn | pip install 'apache-airflow[gunicorn]' | API 서버용 롤링 worker 재시작을 지원하는 Gunicorn 서버 |
| ldap | pip install 'apache-airflow[ldap]' | 사용자용 LDAP 인증 |
| leveldb | pip install 'apache-airflow[leveldb]' | google 프로바이더에서 leveldb extra를 사용하는 데 필요 |
| pandas | pip install 'apache-airflow[pandas]' | Airflow와 호환되는 Pandas 라이브러리 설치 |
| polars | pip install 'apache-airflow[polars]' | Polars hooks 및 operators |
| rabbitmq | pip install 'apache-airflow[rabbitmq]' | Celery 백엔드로서 RabbitMQ 지원 |
| s3fs | pip install 'apache-airflow[s3fs]' | Airflow FS로서 S3 지원 |
| saml | pip install 'apache-airflow[saml]' | Amazon 프로바이더에서 SAML 인증 지원 |
| uv | pip install 'apache-airflow[uv]' | uv 설치 - 빠른 Rust 기반 패키지 설치기 (실험적) |
프로바이더 extras
이 프로바이더 extras는 단순히 프로바이더를 설치하는 편의 extras예요. 프로바이더 패키지와 필요한 의존성을 단일 명령으로 설치할 수 있어서 PIP가 충돌하는 의존성을 해결할 수 있어요. 이는 설치된 Airflow와 프로바이더 모두에 대해 '유효한' 의존성 버전을 반복해서 설치하려는 첫 설치 시에 매우 유용해요.
예를 들어 아래 명령은 다음을 설치해요:
apache-airflow apache-airflow-core apache-airflow-task-sdk apache-airflow-providers-amazon apache-airflow-providers-google apache-airflow-providers-apache-spark
Airflow 커뮤니티가 3.3.2 버전이 릴리스될 때 제공한 constraint 파일에 기반한 일관된 의존성 집합으로 설치돼요.
pip install apache-airflow[google,amazon,apache-spark]==3.3.2 \
--constraint "https://raw.githubusercontent.com/apache/airflow/constraints-3.3.2/constraints-3.10.txt"
이렇게 하면 Airflow 3.3.2 릴리스 시점에 릴리스된 버전의 프로바이더가 설치된다는 점에 유의하세요. 나중에 프로바이더의 최신 버전을 사용하려면 수동으로 업그레이드할 수 있어요.
또한 이러한 extras는 apache-airflow 배포 패키지에서만 사용할 수 있어요. Airflow 2에서 그랬던 것처럼 모든 airflow 패키지를 함께 설치하는 편리한 방법이기 때문이에요. airflow-core나 airflow-task-sdk를 별도로 설치할 때 프로바이더를 원한다면 apache-airflow-providers-* 배포 패키지로 별도로 설치해야 해요.
Apache 소프트웨어 extras
이들은 다른 Apache 프로젝트와의 통합에 필요한 의존성을 추가하는 extras예요 (apache.atlas와 apache.webhdfs는 자체 프로바이더가 없다는 점에 유의하세요 - 커스텀 bash/python 프로바이더에서 사용할 수 있는 추가 라이브러리만 설치해요).
| extra | install command | enables |
|---|---|---|
| extra | install command | enables |
| apache-atlas | pip install 'apache-airflow[apache-atlas]' | Apache Atlas |
| apache-beam | pip install 'apache-airflow[apache-beam]' | Apache Beam operators & hooks |
| apache-cassandra | pip install 'apache-airflow[apache-cassandra]' | Cassandra 관련 operators & hooks |
| apache-drill | pip install 'apache-airflow[apache-drill]' | Drill 관련 operators & hooks |
| apache-druid | pip install 'apache-airflow[apache-druid]' | Druid 관련 operators & hooks |
| apache-flink | pip install 'apache-airflow[apache-flink]' | Flink 관련 operators & hooks |
| apache-hdfs | pip install 'apache-airflow[apache-hdfs]' | HDFS hooks 및 operators |
| apache-hive | pip install 'apache-airflow[apache-hive]' | 모든 Hive 관련 operators |
| apache-iceberg | pip install 'apache-airflow[apache-iceberg]' | Apache Iceberg hooks |
| apache-impala | pip install 'apache-airflow[apache-impala]' | 모든 Impala 관련 operators & hooks |
| apache-kafka | pip install 'apache-airflow[apache-kafka]' | 모든 Kafka 관련 operators & hooks |
| apache-kylin | pip install 'apache-airflow[apache-kylin]' | 모든 Kylin 관련 operators & hooks |
| apache-livy | pip install 'apache-airflow[apache-livy]' | 모든 Livy 관련 operators, hooks & sensors |
| apache-pig | pip install 'apache-airflow[apache-pig]' | 모든 Pig 관련 operators & hooks |
| apache-pinot | pip install 'apache-airflow[apache-pinot]' | 모든 Pinot 관련 hooks |
| apache-spark | pip install 'apache-airflow[apache-spark]' | 모든 Spark 관련 operators & hooks |
| apache-tinkerpop | pip install apache-airflow[apache-tinkerpop] | Apache-tinkerpop hooks 및 operators |
| apache-webhdfs | pip install 'apache-airflow[apache-webhdfs]' | HDFS hooks 및 operators |
외부 서비스 extras
이들은 외부 서비스(클라우드 기반 또는 온프레미스)와의 통합에 필요한 의존성을 추가하는 extras예요.
| extra | install command | enables |
|---|---|---|
| extra | install command | enables |
| airbyte | pip install 'apache-airflow[airbyte]' | Airbyte hooks 및 operators |
| akeyless | pip install 'apache-airflow[akeyless]' | Akeyless Vault secrets 및 hooks |
| alibaba | pip install 'apache-airflow[alibaba]' | Alibaba Cloud |
| apprise | pip install 'apache-airflow[apprise]' | Apprise Notification |
| amazon | pip install 'apache-airflow[amazon]' | Amazon Web Services |
| asana | pip install 'apache-airflow[asana]' | Asana hooks 및 operators |
| atlassian-jira | pip install 'apache-airflow[atlassian-jira]' | Jira hooks 및 operators |
| microsoft-azure | pip install 'apache-airflow[microsoft-azure]' | Microsoft Azure |
| clickhousedb | pip install 'apache-airflow[clickhousedb]' | ClickHouse hooks 및 operators |
| cloudant | pip install 'apache-airflow[cloudant]' | Cloudant hook |
| cohere | pip install 'apache-airflow[cohere]' | Cohere hook 및 operators |
| databricks | pip install 'apache-airflow[databricks]' | Databricks hooks 및 operators |
| datadog | pip install 'apache-airflow[datadog]' | Datadog hooks 및 sensors |
| dbt-cloud | pip install 'apache-airflow[dbt-cloud]' | dbt Cloud hooks 및 operators |
| dingding | pip install 'apache-airflow[dingding]' | Dingding hooks 및 sensors |
| discord | pip install 'apache-airflow[discord]' | Discord hooks 및 sensors |
| pip install 'apache-airflow[facebook]' | Facebook Social | |
| github | pip install 'apache-airflow[github]' | GitHub operators 및 hook |
| pip install 'apache-airflow[google]' | Google Cloud | |
| hashicorp | pip install 'apache-airflow[hashicorp]' | Hashicorp Services (Vault) |
| openai | pip install 'apache-airflow[openai]' | Open AI hooks 및 operators |
| opsgenie | pip install 'apache-airflow[opsgenie]' | OpsGenie hooks 및 operators |
| pagerduty | pip install 'apache-airflow[pagerduty]' | Pagerduty hook |
| pgvector | pip install 'apache-airflow[pgvector]' | pgvector operators 및 hook |
| pinecone | pip install 'apache-airflow[pinecone]' | Pinecone Operators 및 Hooks |
| qdrant | pip install 'apache-airflow[qdrant]' | Qdrant Operators 및 Hooks |
| salesforce | pip install 'apache-airflow[salesforce]' | Salesforce hook |
| sendgrid | pip install 'apache-airflow[sendgrid]' | sendgrid로 이메일 보내기 |
| segment | pip install 'apache-airflow[segment]' | Segment hooks 및 sensors |
| slack | pip install 'apache-airflow[slack]' | Slack hooks 및 operators |
| snowflake | pip install 'apache-airflow[snowflake]' | Snowflake hooks 및 operators |
| tableau | pip install 'apache-airflow[tableau]' | Tableau hooks 및 operators |
| tabular | pip install 'apache-airflow[tabular]' | Tabular hooks |
| telegram | pip install 'apache-airflow[telegram]' | Telegram hooks 및 operators |
| vertica | pip install 'apache-airflow[vertica]' | Airflow 백엔드로서 Vertica hook 지원 |
| vespa | pip install 'apache-airflow[vespa]' | Vespa hooks 및 operators |
| weaviate | pip install 'apache-airflow[weaviate]' | Weaviate hook 및 operators |
| yandex | pip install 'apache-airflow[yandex]' | Yandex.cloud hooks 및 operators |
| ydb | pip install 'apache-airflow[ydb]' | YDB hooks 및 operators |
| zendesk | pip install 'apache-airflow[zendesk]' | Zendesk hooks |
로컬 설치 소프트웨어 extras
이들은 일반적으로 Airflow 배포의 일부로 설치되는 다른 소프트웨어 패키지와의 통합에 필요한 의존성을 추가하는 extras예요. 이 중 일부는 Airflow가 내장 LocalExecutor 외에 다른 실행자를 사용해 태스크를 실행할 수 있게 해줘요.
| extra | install command | brings | enables executors |
|---|---|---|---|
| extra | install command | brings | enables executors |
| arangodb | pip install 'apache-airflow[arangodb]' | ArangoDB operators, sensors 및 hook | |
| celery | pip install 'apache-airflow[celery]' | Celery 의존성 및 sensor | CeleryExecutor |
| cncf-kubernetes | pip install 'apache-airflow[cncf-kubernetes]' | Kubernetes 클라이언트 라이브러리, KubernetesPodOperator 등 | KubernetesExecutor |
| docker | pip install 'apache-airflow[docker]' | Docker hooks 및 operators | |
| edge3 | pip install 'apache-airflow[edge3]' | HTTP를 통해 Edge Workers를 scheduler에 연결 | EdgeExecutor |
| elasticsearch | pip install 'apache-airflow[elasticsearch]' | Elasticsearch hooks 및 Log Handler | |
| exasol | pip install 'apache-airflow[exasol]' | Exasol hooks 및 operators | |
| fab | pip install 'apache-airflow[fab]' | FAB 인증 관리자 | |
| git | pip install 'apache-airflow[git]' | Git bundle 및 hook | |
| github | pip install 'apache-airflow[github]' | GitHub operators 및 hook | |
| influxdb | pip install 'apache-airflow[influxdb]' | Influxdb operators 및 hook | |
| ibm-mq | pip install 'apache-airflow[ibm-mq]' | IBM MQ hook 및 trigger | |
| jenkins | pip install 'apache-airflow[jenkins]' | Jenkins hooks 및 operators | |
| mongo | pip install 'apache-airflow[mongo]' | Mongo hooks 및 operators | |
| microsoft-mssql | pip install 'apache-airflow[microsoft-mssql]' | Microsoft SQL Server operators 및 hook | |
| mysql | pip install 'apache-airflow[mysql]' | MySQL operators 및 hook | |
| neo4j | pip install 'apache-airflow[neo4j]' | Neo4j operators 및 hook | |
| odbc | pip install 'apache-airflow[odbc]' | MS SQL Server를 포함한 ODBC 데이터 소스 | |
| openfaas | pip install 'apache-airflow[openfaas]' | OpenFaaS hooks | |
| oracle | pip install 'apache-airflow[oracle]' | Oracle hooks 및 operators | |
| postgres | pip install 'apache-airflow[postgres]' | PostgreSQL operators 및 hook | |
| presto | pip install 'apache-airflow[presto]' | 모든 Presto 관련 operators & hooks | |
| redis | pip install 'apache-airflow[redis]' | Redis hooks 및 sensors | |
| samba | pip install 'apache-airflow[samba]' | Samba hooks 및 operators | |
| singularity | pip install 'apache-airflow[singularity]' | Singularity 컨테이너 operator | |
| teradata | pip install 'apache-airflow[teradata]' | Teradata hooks 및 operators | |
| trino | pip install 'apache-airflow[trino]' | 모든 Trino 관련 operators & hooks |
기타 extras
이들은 일반적으로 표준 프로토콜을 통해 외부 시스템과의 통합을 지원하는 extras예요.
Preinstalled 열에 *가 있는 항목은 Airflow가 설치될 때 항상 미리 설치되는 extras(프로바이더)를 나타내요.
| extra | install command | enables | Preinstalled |
|---|---|---|---|
| extra | install command | enables | Preinstalled |
| common-ai | pip install 'apache-airflow[common-ai]' | Common AI Operators 및 Hooks | |
| common-compat | pip install 'apache-airflow[common-compat]' | 이전 Airflow용 호환 코드 | |
| common-io | pip install 'apache-airflow[common-io]' | Core IO Operators | |
| common-messaging | pip install 'apache-airflow[common-messaging]' | Core Messaging Operators | |
| common-sql | pip install 'apache-airflow[common-sql]' | Core SQL Operators | |
| ftp | pip install 'apache-airflow[ftp]' | FTP hooks 및 operators | |
| grpc | pip install 'apache-airflow[grpc]' | Grpc hooks 및 operators | |
| http | pip install 'apache-airflow[http]' | HTTP hooks, operators 및 sensors | |
| imap | pip install 'apache-airflow[imap]' | IMAP hooks 및 sensors | |
| jdbc | pip install 'apache-airflow[jdbc]' | JDBC hooks 및 operators | |
| keycloak | pip install apache-airflow[keycloak] | Keycloak hooks 및 operators | |
| microsoft-psrp | pip install 'apache-airflow[microsoft-psrp]' | PSRP hooks 및 operators | |
| microsoft-winrm | pip install 'apache-airflow[microsoft-winrm]' | WinRM hooks 및 operators | |
| openlineage | pip install 'apache-airflow[openlineage]' | OpenLineage 이벤트 보내기 | |
| opensearch | pip install 'apache-airflow[opensearch]' | Opensearch hooks 및 operators | |
| papermill | pip install 'apache-airflow[papermill]' | Papermill hooks 및 operators | |
| sftp | pip install 'apache-airflow[sftp]' | SFTP hooks, operators 및 sensors | |
| smtp | pip install 'apache-airflow[smtp]' | SMTP hooks 및 operators | |
| sqlite | pip install 'apache-airflow[sqlite]' | SQLite hooks 및 operators | |
| ssh | pip install 'apache-airflow[ssh]' | SSH hooks 및 operators | |
| informatica | pip install 'apache-airflow[informatica]' | Informatica hooks 및 operators |
그룹 extras
그룹 extras는 편의 extras예요. 이러한 extra는 많은 선택적 의존성을 함께 설치해요. 프로덕션에서 사용하는 것은 권장되지 않지만, CI, 개발 및 테스트 목적으로는 유용해요.
| extra | install command | enables |
|---|---|---|
| extra | install command | enables |
| all | pip install apache-airflow[all] | 모든 프로바이더를 포함한 모든 선택적 의존성 |
| all-core | pip install apache-airflow[all-core] | 모든 선택적 코어 의존성 |
| all-task-sdk | pip install apache-airflow[all-task-sdk] | 모든 선택적 task SDK 의존성 |