{"id":23261,"library":"apache-airflow-providers-apache-drill","title":"Apache Airflow Provider for Apache Drill","description":"The Apache Airflow provider for Apache Drill allows you to integrate Drill's SQL query engine with Airflow, enabling execution of Drill queries via the DrillOperator and DrillHook. Version 3.3.2 is the latest, supporting Airflow 2.x+ and Python >=3.10. Release cadence follows Airflow's provider schedule.","status":"active","version":"3.3.2","language":"python","source_language":"en","source_url":"https://github.com/apache/airflow/tree/main/airflow/providers/apache/drill","tags":["airflow","provider","drill","sql","etl"],"install":[{"cmd":"pip install apache-airflow-providers-apache-drill","lang":"bash","label":"Install provider"}],"dependencies":[{"reason":"Core Airflow framework","package":"apache-airflow","optional":false},{"reason":"SQLAlchemy dialect for Apache Drill","package":"sqlalchemy-drill","optional":false}],"imports":[{"note":"Incorrect path: operator moved under providers.apache.drill in Airflow 2.0","wrong":"from airflow.operators.drill_operator import DrillOperator","symbol":"DrillOperator","correct":"from airflow.providers.apache.drill.operators.drill import DrillOperator"},{"note":"Hook moved under providers.apache.drill in Airflow 2.0","wrong":"from airflow.hooks.drill_hook import DrillHook","symbol":"DrillHook","correct":"from airflow.providers.apache.drill.hooks.drill import DrillHook"}],"quickstart":{"code":"from airflow import DAG\nfrom airflow.providers.apache.drill.operators.drill import DrillOperator\nfrom datetime import datetime\n\nwith DAG(\n    dag_id='drill_example',\n    start_date=datetime(2023, 1, 1),\n    schedule_interval='@daily',\n    catchup=False,\n) as dag:\n    drill_query = DrillOperator(\n        task_id='query_drill',\n        sql='SELECT * FROM cp.`employee.json` LIMIT 10',\n        drill_conn_id='drill_default',\n    )","lang":"python","description":"Minimal DAG using DrillOperator to run a SQL query on Apache Drill."},"warnings":[{"fix":"Use correct imports: from airflow.providers.apache.drill.operators.drill import DrillOperator","message":"In Airflow 2.0, all provider operators/hooks moved under airflow.providers.apache.drill. The old paths (airflow.operators.drill_operator) will raise ImportError.","severity":"breaking","affected_versions":">=2.0.0"},{"fix":"Use get_connection if available, or refer to provider docs.","message":"The DrillHook's get_conn method may be deprecated in favor of get_connection in future releases. Check provider version changelog.","severity":"deprecated","affected_versions":"3.x.x"}],"env_vars":null,"last_verified":"2026-05-01T00:00:00.000Z","next_check":"2026-07-30T00:00:00.000Z","problems":[{"fix":"Install the provider: pip install apache-airflow-providers-apache-drill","cause":"Provider package not installed or Airflow version too old (pre-2.0).","error":"ModuleNotFoundError: No module named 'airflow.providers.apache.drill'"},{"fix":"Ensure drill_sqlalchemy or sqlalchemy-drill is installed and connection URI is correct (e.g., drill+sadrill://...).","cause":"Drill connection string misconfiguration or missing SQLAlchemy dialect.","error":"sqlalchemy.exc.InvalidRequestError: Could not reflect: could not get column names for table"}],"ecosystem":"pypi","meta_description":null,"install_score":null,"install_tag":null,"quickstart_score":null,"quickstart_tag":null}