Добавлена пропущенная иллюстрация

This commit is contained in:
2025-12-06 20:33:36 +03:00
parent f84f08b50f
commit a2bbceaebc
@@ -177,6 +177,43 @@ with TaskGroup("data_loading") as loading_group:
Обратите внимание: при использовании TaskGroup последовательность задач указывается внутри группы после объявления всех задач, а в конце DAG описывается последовательность выполнения самих групп.
Ниже приведена упрощённая схема зависимостей между тремя группами задач:
```mermaid
flowchart LR
%% group1
subgraph G1["group1"]
g1_t1["task1"]
g1_t2["task2"]
g1_t3["task3"]
g1_t1 --> g1_t2
g1_t1 --> g1_t3
end
%% group2
subgraph G2["group2"]
g2_t1["task1"]
g2_t2["task2"]
g2_t1 --> g2_t2
end
%% group3
subgraph G3["group3"]
g3_t1["task1"]
g3_t2["task2"]
g3_t1 --> g3_t2
end
%% зависимости между группами
g1_t2 --> g3_t1
g1_t3 --> g3_t1
g2_t2 --> g3_t1
```
Визуально в интерфейсе Airflow группы задач отображаются как один узел с небольшим индикатором. Клик по нему разворачивает или сворачивает вложенные задачи, что значительно улучшает восприятие DAG с большим количеством задач и связей, особенно когда в них десятки и сотни задач.
TaskGroup — это удобный способ логической группировки задач, который помогает упростить код и представить сложные пайплайны более компактно.
@@ -312,8 +349,8 @@ def get_file_path(file_name):
return os.path.join(os.path.expanduser('~/data'), file_name)
def load_customer_data():
url = 'https://example.com/customer_data.csv'
df = pd.read_csv(url)
file_path = get_file_path('customer_data.csv')
df = pd.read_csv(file_path)
engine = create_engine(DATABASE_URL)
df.to_sql('customers', engine, index=False, if_exists='replace', schema='staging')
@@ -396,8 +433,8 @@ def get_file_path(file_name):
return os.path.join(os.path.expanduser('~/data'), file_name)
def load_customer_data():
url = 'https://example.com/customer_data.csv'
df = pd.read_csv(url)
file_path = get_file_path('customer_data.csv')
df = pd.read_csv(file_path)
engine = create_engine(DATABASE_URL)
df.to_sql('customers', engine, index=False, if_exists='replace', schema='staging')