1. Airflow 如何支持数据血缘?
Airflow 1.10.15+ and 2.0.2+ 已经支持lineage backend,但只是实验性的。
Airflow 通过任务的入口和出口【 inlets and outlets of the tasks】来跟踪数据,继而实现数据血缘关系:
- 任务执行前,pre_execute方法被调用,准备数据血缘的元数据
- 在任务完成后,post_execute方法被调用,推送数据血缘元数据到XCOM【让任务彼此通信的机制】,然后写到指定的数据血缘后端【如DataHub】
数据血缘后端必须继承LineageBackend类,并实现``方法
def send_lineage(
operator: "BaseOperator",
inlets: Optional[List