Apache Airflow Provider for Segment

raw JSON →
3.9.4 verified Mon Apr 27 auth: no python

Apache Airflow provider for Segment, enabling integration with Segment's APIs. Current version 3.9.4, released as part of the Airflow providers ecosystem. Follows Airflow's release cadence.

pip install apache-airflow-providers-segment
error ModuleNotFoundError: No module named 'airflow.providers.segment'
cause The provider package is not installed.
fix
Run 'pip install apache-airflow-providers-segment'.
error ImportError: cannot import name 'SegmentTrackEventOperator' from 'airflow.providers.segment.operators'
cause Using an old import path; operator moved to 'segment' module in version 3.0.0.
fix
Use 'from airflow.providers.segment.operators.segment import SegmentTrackEventOperator'.
error airflow.exceptions.AirflowNotFoundException: The conn_id `segment_default` isn't defined
cause No Airflow connection configured for Segment.
fix
Create a connection via UI (Conn Id: segment_default, Conn Type: Segment) or pass write_key directly to operator.
error TypeError: __init__() got an unexpected keyword argument 'write_key'
cause Version incompatibility; older provider expects a connection ID instead of write_key.
fix
Upgrade to provider >=3.0.0 or use connection ID parameter 'segment_conn_id'.
breaking In provider version 3.0.0, the operator was renamed from SegmentTrackEventOperator to SegmentTrackEventOperator (no change) but the module path changed from segment_track_event to segment.
fix Use import 'from airflow.providers.segment.operators.segment import SegmentTrackEventOperator'.
deprecated Python 3.9 support is deprecated as of Airflow 2.10; expect removal in future versions.
fix Upgrade to Python 3.10+.
gotcha The write_key is required; if not provided, the hook will raise AirflowNotFoundException.
fix Pass write_key explicitly via operator or set via Airflow connection.

Minimal DAG using SegmentTrackEventOperator. Replace 'YOUR_WRITE_KEY' with actual key.

from datetime import datetime
from airflow import DAG
from airflow.providers.segment.operators.segment import SegmentTrackEventOperator

with DAG(dag_id='segment_example', start_date=datetime(2021,1,1), schedule_interval=None) as dag:
    track_event = SegmentTrackEventOperator(
        task_id='track_event',
        write_key='YOUR_WRITE_KEY',
        user_id='test_user',
        event='Test Event',
        properties={'key': 'value'}
    )