Bird
Raised Fist0
Apache Airflowdevops~20 mins

Task documentation and tags in Apache Airflow - Practice Problems & Coding Challenges

Choose your learning style10 modes available
Challenge - 5 Problems
🎖️
Airflow Task Documentation Master
Get all challenges correct to earn this badge!
Test your skills under time pressure!
🧠 Conceptual
intermediate
1:30remaining
Purpose of task documentation in Airflow

Why is it important to add documentation to Airflow tasks?

ATo provide clear explanations for task behavior and improve maintainability
BTo increase the execution speed of the task
CTo automatically retry failed tasks
DTo reduce the number of tasks in a DAG
Attempts:
2 left
💡 Hint

Think about how documentation helps others understand the task.

💻 Command Output
intermediate
1:30remaining
Output of task tags in Airflow UI

What is the visible effect of adding tags to an Airflow task in the Airflow UI?

Apache Airflow
from airflow import DAG
from airflow.operators.dummy import DummyOperator
from datetime import datetime
with DAG('example_dag', start_date=datetime(2024,1,1)) as dag:
    task = DummyOperator(task_id='dummy_task', tags=['tag1', 'tag2'])
AThe tags appear as clickable labels next to the task in the Airflow UI
BThe tags change the task execution order
CThe tags cause the task to run multiple times
DThe tags are not shown anywhere in the Airflow UI
Attempts:
2 left
💡 Hint

Tags help organize and filter tasks visually.

❓ Configuration
advanced
2:00remaining
Correct way to add documentation to an Airflow task

Which code snippet correctly adds documentation to an Airflow task using the doc_md attribute?

Atask = DummyOperator(task_id='task1', doc_string='This task does nothing.')
Btask = DummyOperator(task_id='task1', doc_md='''This task does nothing.''')
Ctask = DummyOperator(task_id='task1', doc='This task does nothing.')
Dtask = DummyOperator(task_id='task1', documentation='This task does nothing.')
Attempts:
2 left
💡 Hint

Check the exact attribute name Airflow expects for markdown documentation.

❓ Troubleshoot
advanced
2:00remaining
Why task tags are not visible in Airflow UI

You added tags to your Airflow tasks but they do not appear in the Airflow UI. What is the most likely cause?

ATags only appear if the DAG is paused
BThe tags attribute must be a string, not a list
CThe Airflow version is older than 2.0 which does not support task tags
DTags require a special plugin to be visible
Attempts:
2 left
💡 Hint

Check the Airflow version compatibility for task tags.

✅ Best Practice
expert
2:30remaining
Recommended practice for documenting complex Airflow tasks

For a complex Airflow task with multiple steps and conditions, what is the best practice for documentation?

ASkip documentation to avoid clutter
BAdd a short comment in the DAG file only
CRely on task_id naming to explain the task
DUse <code>doc_md</code> with detailed markdown including code snippets and explanations
Attempts:
2 left
💡 Hint

Think about clarity and maintainability for others reading the task.

Practice

(1/5)
1. What is the main purpose of adding documentation to an Airflow task using doc_md?
easy
A. To explain what the task does for better understanding
B. To change the task execution order
C. To assign tags for task grouping
D. To increase task execution speed

Solution

  1. Step 1: Understand the role of doc_md in Airflow

    doc_md is used to add markdown documentation to a task, explaining its purpose and behavior.
  2. Step 2: Differentiate documentation from other features

    Documentation does not affect execution order, tags, or speed; it only improves clarity.
  3. Final Answer:

    To explain what the task does for better understanding -> Option A
  4. Quick Check:

    Task documentation = Explanation [OK]
Hint: Documentation explains task purpose, not execution or tags [OK]
Common Mistakes:
  • Confusing documentation with tags
  • Thinking documentation changes task order
  • Assuming documentation affects performance
2. Which of the following is the correct way to add tags to an Airflow task in Python code?
easy
A. task = PythonOperator(task_id='task1', python_callable=my_func, tag='tag1')
B. task = PythonOperator(task_id='task1', python_callable=my_func, tags=['tag1', 'tag2'])
C. task = PythonOperator(task_id='task1', python_callable=my_func, tags='tag1,tag2')
D. task = PythonOperator(task_id='task1', python_callable=my_func, labels=['tag1', 'tag2'])

Solution

  1. Step 1: Recall the correct parameter for tags

    Airflow tasks accept a tags parameter as a list of strings to assign multiple tags.
  2. Step 2: Check syntax correctness

    task = PythonOperator(task_id='task1', python_callable=my_func, tags=['tag1', 'tag2']) uses tags=['tag1', 'tag2'] which is the correct syntax. Other options use incorrect parameter names or types.
  3. Final Answer:

    task = PythonOperator(task_id='task1', python_callable=my_func, tags=['tag1', 'tag2']) -> Option B
  4. Quick Check:

    Tags parameter = list of strings [OK]
Hint: Use tags as a list with key 'tags' in operator [OK]
Common Mistakes:
  • Using 'tag' instead of 'tags'
  • Passing tags as a comma string
  • Using 'labels' instead of 'tags'
3. Given this Airflow task code snippet, what will be the value of task.doc_md?
task = PythonOperator(
    task_id='example_task',
    python_callable=lambda: print('Hello'),
    doc_md="""This task prints a greeting message."""
)
medium
A. None
B. "Prints a message"
C. SyntaxError
D. "This task prints a greeting message."

Solution

  1. Step 1: Identify the doc_md assignment

    The task is created with doc_md set to a triple-quoted string describing the task.
  2. Step 2: Understand doc_md stores the documentation string

    The doc_md attribute holds the exact string provided, so it will be "This task prints a greeting message.".
  3. Final Answer:

    "This task prints a greeting message." -> Option D
  4. Quick Check:

    doc_md value = given string [OK]
Hint: doc_md stores the exact documentation string given [OK]
Common Mistakes:
  • Assuming doc_md is None if not printed
  • Confusing doc_md with task output
  • Expecting syntax error from triple quotes
4. You wrote this Airflow task but it fails to assign tags properly:
task = PythonOperator(
    task_id='task_fail',
    python_callable=my_func,
    tag=['data', 'etl']
)
What is the error and how to fix it?
medium
A. Parameter should be 'tags' not 'tag'; fix by changing to tags=['data', 'etl']
B. PythonOperator does not support tags; remove the tag parameter
C. Tags must be a string, not a list; fix by tags='data,etl'
D. The task_id is invalid; change task_id to 'task_fail_1'

Solution

  1. Step 1: Identify the incorrect parameter name

    The code uses tag instead of the correct tags parameter for assigning tags.
  2. Step 2: Correct the parameter name and keep the list format

    Changing tag=['data', 'etl'] to tags=['data', 'etl'] fixes the issue.
  3. Final Answer:

    Parameter should be 'tags' not 'tag'; fix by changing to tags=['data', 'etl'] -> Option A
  4. Quick Check:

    Correct parameter name = tags [OK]
Hint: Use 'tags' plural, not 'tag' singular [OK]
Common Mistakes:
  • Using 'tag' instead of 'tags'
  • Passing tags as a string instead of list
  • Blaming task_id for tag issues
5. You want to organize your Airflow DAG tasks by adding documentation and tags. Which code snippet correctly adds both a markdown description and multiple tags to a task?
hard
A. task = PythonOperator(task_id='task1', python_callable=my_func, doc_md=['Runs ETL process'], tags='etl,daily')
B. task = PythonOperator(task_id='task1', python_callable=my_func, documentation='Runs ETL process', tag=['etl', 'daily'])
C. task = PythonOperator(task_id='task1', python_callable=my_func, doc_md='Runs ETL process', tags=['etl', 'daily'])
D. task = PythonOperator(task_id='task1', python_callable=my_func, doc_md='Runs ETL process', labels=['etl', 'daily'])

Solution

  1. Step 1: Verify correct parameter names and types

    doc_md should be a string with markdown text, and tags should be a list of strings.
  2. Step 2: Check each option for correctness

    task = PythonOperator(task_id='task1', python_callable=my_func, doc_md='Runs ETL process', tags=['etl', 'daily']) uses doc_md='Runs ETL process' (string) and tags=['etl', 'daily'] (list), which is correct. Others use wrong parameter names or types.
  3. Final Answer:

    task = PythonOperator(task_id='task1', python_callable=my_func, doc_md='Runs ETL process', tags=['etl', 'daily']) -> Option C
  4. Quick Check:

    doc_md = string, tags = list [OK]
Hint: Use doc_md as string and tags as list for both features [OK]
Common Mistakes:
  • Using 'documentation' instead of 'doc_md'
  • Passing tags as string instead of list
  • Using 'labels' instead of 'tags'
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard