Free Astronomer Apache Airflow 3 Fundamentals practice test
20 questions for the Astronomer Apache Airflow 3 Fundamentals exam, taken from our 55-question bank and spread across its 4domains by their weighting. No sign-up needed: pick an answer to check it, or open “Show answer & explanation” under any question.
A. An instantiation of a DAG for a specific logical/execution date, containing task instances for that run
A DAG run is a specific execution of a DAG for a given logical/execution date, and it contains the task instances for that run. The DAG file (B) is the definition, an operator (C) defines a task, and the scheduler (D) is a component, not a run.
Question 2 · Airflow Concepts and Architecture
What is the role of the Airflow Metadata Database?
Show answer & explanation
Correct answer: A
A. It stores the state of DAGs, task instances, runs, connections, variables, and more
The metadata database persists Airflow's state — DAG runs, task instance states, connections, variables, XComs, and history. It doesn't execute task code (B), render the UI (C, that's the webserver), or cache datasets (D).
Question 3 · Airflow Concepts and Architecture
Which statement BEST describes the relationship between Airflow and the systems it orchestrates?
Show answer & explanation
Correct answer: A
A. Airflow triggers and coordinates work on external systems (databases, Spark, cloud services); it is an orchestrator, not typically the heavy data processor
Airflow's role is orchestration: it schedules and coordinates tasks that usually push work to external systems (warehouses, Spark, cloud APIs). It doesn't do the heavy processing in its scheduler (B), replace external compute (C), or limit tasks to SQL (D) — tasks can run Python, Bash, and many operators.
Question 4 · Airflow Concepts and Architecture
What is Apache Airflow primarily designed to do?
Show answer & explanation
Correct answer: B
B. Programmatically author, schedule, and monitor workflows (pipelines) as code
Airflow is a workflow orchestration platform: you define pipelines as code (DAGs), and it schedules and monitors their execution. It's not a file store (D), a database engine (A), or an in-memory data-processing engine (C) — it orchestrates tasks that may call such systems.
Question 5 · Airflow Concepts and Architecture
What does the Airflow Webserver provide?
Show answer & explanation
Correct answer: C
C. The web-based user interface for viewing, triggering, and monitoring DAGs and tasks
The Webserver serves the Airflow UI, where users inspect DAGs, view task states and logs, and trigger runs. Scheduling (D) is the Scheduler's job, execution (B) is the Executor/workers', and state storage (A) is the metadata database's.
Question 6 · Airflow Concepts and Architecture
In the Airflow architecture, where is the definition of a DAG located?
Show answer & explanation
Correct answer: D
D. In a Python file in the DAGs folder, parsed by the Scheduler and Webserver
DAGs are Python files placed in the DAGs folder; the Scheduler and Webserver parse these files to build the DAG structure. They aren't stored only as binary in the database (A), kept solely in executor memory (C), or in browser storage (B).
Question 7 · Authoring and Scheduling DAGs
Which schedule value causes a DAG to have NO automatic schedule (only manual/triggered runs)?
Show answer & explanation
Correct answer: A
A. schedule=None
schedule=None means the DAG is only run when manually triggered (or triggered by another DAG), with no automatic schedule. @daily (B), '* * * * *' (C, every minute), and @hourly (D) all define automatic schedules.
Question 8 · Authoring and Scheduling DAGs
What is the purpose of a DAG's start_date?
Show answer & explanation
Correct answer: A
A. It defines the logical date from which the DAG's scheduling begins (the earliest run the scheduler will consider)
start_date establishes the point from which Airflow begins scheduling DAG runs (the first logical date considered). It's not the file creation time (B), a task timeout (C), or a UI color setting (D).
Question 9 · Authoring and Scheduling DAGs
A DAG has schedule='@hourly' and start_date of yesterday with catchup=True. What happens when enabled?
Show answer & explanation
Correct answer: B
B. Airflow backfills an hourly run for each hour from the start_date to now
With @hourly, a start_date yesterday, and catchup=True, Airflow schedules a run for each hourly interval from the start_date to the present (backfill). It doesn't run once (C), every minute (A), or never (D).
Question 10 · Authoring and Scheduling DAGs
In Airflow, the 'logical date' (formerly execution_date) of a DAG run represents what?
Show answer & explanation
Correct answer: D
D. The start of the data interval the run is responsible for — not necessarily the wall-clock time it actually runs
The logical date marks the data interval a run covers; because of scheduling, a run for a given interval typically executes at the END of that interval, so the logical date differs from the actual run time. It's not the finish time (A), file timestamp (B), or server uptime (C).
Question 11 · Authoring and Scheduling DAGs
What are default_args used for when defining a DAG?
Show answer & explanation
Correct answer: D
D. To provide a dictionary of default parameters (like retries, retry_delay, owner) applied to all tasks in the DAG
default_args is a dictionary of parameters (e.g., owner, retries, retry_delay, email_on_failure) applied to every task in the DAG unless overridden. It's not solely the schedule (A), a data store (C), or a server config (B).
Question 12 · Authoring and Scheduling DAGs
Which expression sets task_a to run BEFORE task_b (task_b depends on task_a)?
Show answer & explanation
Correct answer: C
C. task_a >> task_b
The >> operator sets a downstream dependency: task_a >> task_b means task_a runs first and task_b depends on it. task_a << task_b (B) is the reverse, and == (D) and + (A) are not dependency operators.
Question 13 · Authoring and Scheduling DAGs
A team wants a newly enabled DAG to run ONLY going forward, without backfilling all historical intervals since its start_date. What should they set?
Show answer & explanation
Correct answer: A
A. catchup=False on the DAG
Setting catchup=False makes Airflow schedule only from the current interval forward, skipping historical backfill. A future start_date (B) delays all runs, schedule=None (C) disables scheduling entirely, and deleting the database (D) is destructive and wrong.
Question 14 · Operators, Tasks, and Dependencies
What is an OPERATOR in Airflow?
Show answer & explanation
Correct answer: A
A. A template that defines a single unit of work; instantiating it creates a task
An operator is a predefined template for a unit of work (e.g., run Bash, run Python, transfer data); when you instantiate an operator in a DAG, you create a task. It's not the scheduler (B), a connection (C), or the UI (D).
Question 15 · Operators, Tasks, and Dependencies
What are XComs used for in Airflow?
Show answer & explanation
Correct answer: D
D. Passing small amounts of data between tasks (cross-communication)
XComs (cross-communications) let tasks push and pull small pieces of data (like an ID or a value) to share between them. They are NOT meant for large data (C) — use external storage for that; they don't define schedules (A) or render the UI (B).
Question 16 · Operators, Tasks, and Dependencies
What is a SENSOR in Airflow?
Show answer & explanation
Correct answer: A
A. A special type of operator that waits for a condition to be met (e.g., a file to arrive, a time to pass) before succeeding
A sensor is an operator that waits (polls) until a condition is true — a file exists, a partition lands, a time is reached — then allows downstream tasks to proceed. It's not a dashboard (B), index (C), or executor (D).
Question 17 · Operators, Tasks, and Dependencies
A downstream task should run only if ALL of its upstream tasks succeeded. Which trigger rule is this (and is it the default)?
Show answer & explanation
Correct answer: C
C. all_success — and yes, it is the default trigger rule
all_success means the task runs only if every upstream task succeeded, and it is the default trigger rule. one_failed (B) triggers when an upstream fails, all_done (D) triggers when upstreams finish regardless of outcome, and 'dummy' (A) is not a standard trigger rule.
Question 18 · Monitoring, the UI, and the CLI
In the Airflow UI, task instances are color-coded by state. What does a task colored to indicate 'failed' tell you?
Show answer & explanation
Correct answer: A
A. The task instance ran and ended in error; check its logs to diagnose
A failed-state task ran and errored; the next step is to open its logs to find the cause. It doesn't mean scheduled (B), succeeded (C), or undefined (D) — those are different states/situations.
Question 19 · Monitoring, the UI, and the CLI
Which statement about monitoring Airflow with the UI is TRUE?
Show answer & explanation
Correct answer: D
D. The UI lets you inspect DAG structure (Graph), run history (Grid/Calendar), task states, and logs — the primary way to observe and debug pipelines
The Airflow UI is the main observability tool: Graph for structure, Grid/Calendar for history, per-task states, and logs — plus actions to trigger and clear tasks. It's not limited to starting the scheduler (C), it does show logs (A), and it is interactive, not read-only (B).
Question 20 · Monitoring, the UI, and the CLI
Which Airflow CLI command triggers a manual run of a DAG?
Show answer & explanation
Correct answer: B
B. airflow dags trigger <dag_id>
airflow dags trigger <dag_id> starts a manual DAG run. dags delete (D) removes DAG records, tasks clear (C) clears task state, and db reset (A) wipes the metadata database — none simply triggers a run.
Pick an answer on each question to check it. 20 questions in this test.
35 more Astronomer Apache Airflow 3 Fundamentals questions
Sign up free to start practising, or subscribe (from $4.97/mo) for the full 55-question bank, flashcards.