0
0
Apache Airflowdevops~20 mins

Task groups for visual organization in Apache Airflow - Practice Problems & Coding Challenges

Choose your learning style9 modes available
Challenge - 5 Problems
🎖️
Task Group Mastery
Get all challenges correct to earn this badge!
Test your skills under time pressure!
🧠 Conceptual
intermediate
1:30remaining
Purpose of Task Groups in Airflow
What is the main purpose of using Task Groups in an Airflow DAG?
ATo replace the need for defining task dependencies between tasks
BTo execute all tasks in the group simultaneously regardless of dependencies
CTo visually organize related tasks into a single group for better readability in the Airflow UI
DTo automatically retry failed tasks within the group without manual configuration
Attempts:
2 left
💡 Hint
Think about how Airflow UI shows tasks and how grouping helps.
💻 Command Output
intermediate
2:00remaining
Output of Task Group Structure in Airflow UI
Given the following Airflow DAG snippet using Task Groups, what will be the visual structure shown in the Airflow UI?
Apache Airflow
from airflow import DAG
from airflow.operators.dummy import DummyOperator
from airflow.utils.task_group import TaskGroup
from datetime import datetime

default_args = {'start_date': datetime(2024, 1, 1)}

dag = DAG('example_dag', default_args=default_args, schedule_interval='@daily')

start = DummyOperator(task_id='start', dag=dag)
end = DummyOperator(task_id='end', dag=dag)

with TaskGroup('group1', dag=dag) as group1:
    t1 = DummyOperator(task_id='task1')
    t2 = DummyOperator(task_id='task2')

start >> group1 >> end
AThe UI shows 'start' connected directly to 'task1' and 'task2' with no grouping
BThe UI shows five separate tasks: 'start', 'group1', 'task1', 'task2', and 'end' all ungrouped
CThe UI shows only 'start' and 'end' tasks because Task Groups hide tasks by default
DThe UI shows three nodes: 'start', a collapsed group named 'group1' containing 'task1' and 'task2', and 'end' connected in sequence
Attempts:
2 left
💡 Hint
Task Groups create a collapsible group in the UI containing the tasks inside.
Configuration
advanced
2:30remaining
Correct Task Group Definition Syntax
Which of the following code snippets correctly defines a Task Group named 'processing' with two dummy tasks inside in Airflow 2.5+?
A
processing = TaskGroup('processing')
with processing:
    task_a = DummyOperator(task_id='task_a')
    task_b = DummyOperator(task_id='task_b')
B
processing = TaskGroup('processing')
processing.task_a = DummyOperator(task_id='task_a')
processing.task_b = DummyOperator(task_id='task_b')
C
with TaskGroup('processing') as processing:
    task_a = DummyOperator(task_id='task_a')
    task_b = DummyOperator(task_id='task_b')
D
with TaskGroup('processing'):
    task_a = DummyOperator(task_id='task_a')
    task_b = DummyOperator(task_id='task_b')
Attempts:
2 left
💡 Hint
TaskGroup can be used as a context manager assigned to a variable.
Troubleshoot
advanced
1:30remaining
Error When Using Task Groups Without DAG Context
What error will occur if you define a Task Group and tasks inside it without associating them with a DAG or DAG context?
AAirflowException: TaskGroup must be used within a DAG context
BTypeError: 'NoneType' object is not iterable
CAttributeError: 'TaskGroup' object has no attribute 'dag'
DValueError: Task IDs must be unique within a DAG
Attempts:
2 left
💡 Hint
Task Groups require a DAG context to know where they belong.
🔀 Workflow
expert
2:30remaining
Task Group Dependency Behavior
Consider two Task Groups, groupA and groupB, each with multiple tasks. If you set the dependency groupA >> groupB, what is the effect on the tasks inside these groups?
AOnly the first task in groupA must complete before the first task in groupB starts
BAll tasks in groupA must complete before any task in groupB starts
CTasks in groupA and groupB run in parallel ignoring the dependency
DOnly tasks with matching task_ids in both groups depend on each other
Attempts:
2 left
💡 Hint
Task Group dependencies apply to all tasks inside the groups.