apache-airflow-providers-openlineage
变更日志¶
2.2.0¶
新特性¶
新特性: 在 OpenLineage 监听器中添加对任务手动状态更改通知的支持 (#49040)
新特性: 显式将 Airflow 日志级别传播到 OL 客户端 (#49108)
新特性: 在 airflow facet 中 DAG 对象里添加 owner_links (#49085)
杂项¶
在 Airflow 2 路径后守卫导入 (#49209)
移除多余的 else 块 (#49199)
日常维护: 更新 OpenLineage 客户端要求到 >=1.31.0 (#49083)
2.1.3¶
杂项¶
将 ObjectStoragePath 移动并附加到 Task SDK (#48906)
使 '@task' 从 airflow.sdk 导入 (#48896)
2.1.2¶
Bug 修复¶
修复: 调整 Airflow 3 中针对 RuntimeTaskInstance 的 OpenLineage DefaultExtractor (#47673)
停止尝试在 OpenLineage worker 中重新配置 ORM (#47580)
修复: 重新添加在调度器上为 OpenLineage 监听器配置 ORM 的功能 (#48049)
修复: 从 OpenLineage 中移除对 get_inlet_defs 和 get_outlet_defs 的使用 (#48792)
将 Context 中的 datetime 对象转换为 Pendulum 对象 (#48592)
修复: OpenLineage BaseExtractor 的 on_failure 应默认调用 on_complete (#48456)
修复因装饰器移动到标准提供程序而导致的 OL 测试问题 (#48808)
杂项¶
为 SparkSubmitOperator 添加 OpenLineage 配置注入功能 (#47508)
新特性: 将 dagrun 的 end_date 和 duration 添加到 OL facet (#47901)
在 TaskReschedule 中使用 TaskInstance ID 作为外键 (FK),而非多个字段 (#47459)
序列化复合 transport 中包含的 http transports (#47444)
在 SDK 中实现任务级别的 "on" 回调 (#48002)
在任务运行前计算重试资格 (#47996)
在 task sdk 中实现 triggering_asset_events (#48650)
细微调整: 记录更多关于捕获的 OpenLineage 异常的详细信息 (#48459)
为 openlineage provider 方法添加后向兼容性 (#48406)
2.1.1¶
Bug 修复¶
修复: 修复 Airflow 2.9 中 OpenLineage 数据集时间表序列化问题 (#47150)
杂项¶
日常维护: 更新 OpenLineage provider.yaml 中 'execution_timeout' 的描述 (#47448)
移除旧的 'task run' 命令和 LocalTaskJob (#47453)
将 task_sdk 移至独立的 task-sdk 分发包 (#47451)
将 uuid6 移至 openlineage 的开发依赖 (#47464)
撤销从 OpenLineage provider 中移除 'external_trigger' 的操作 (#47383)
实现过时 DAG 捆绑包清理 (#46503)
将 'external_trigger' 检查替换为 DagRunType (#45961)
运行时上下文不应包含 start_date 作为键 (#46961)
将 flit 升级到 3.11.0 (#46938)
2.1.0¶
新特性¶
更改监听器 API,在 TaskSDK 中添加对任务实例监听器的基本支持,使 OpenLineage provider 支持 Airflow 3 的监听器接口 (#45294)
新特性: 为所有 OL 事件添加 ProcessingEngineRunFacet (#46283)
新特性: 自动将 OL transport 信息注入到 spark 作业中 (#45326)
新特性: 为一些 SQL 到 GCS 的 Operator 添加 OpenLineage 支持 (#45242)
新特性: 在 DataprocCreateBatchOperator 中自动将 OL 信息注入到 spark 作业中 (#44612)
Bug 修复¶
更新 OpenLineage 发射器以处理可为空的 logical_date (#46722)
修复: OL SQL 解析为 sqlalchemy engine 添加 try-except 块 (#46366)
OpenLineage: 在完成/失败事件中包含 'AirflowDagRunFacet' (#45615)
杂项¶
为 openlineage 添加 uuid6 作为依赖项 (#46653)
移除 AirflowContextDeprecationWarning,因为 Airflow 3 的所有上下文都应是干净的 (#46601)
移除 OTel Provoder 中对 Airflow 3 Deprecation Warning 的依赖 (#46600)
AIP-72: 将 Secrets Masker 移至 task SDK (#46375)
为 DagRun 模型添加 run_after 列 (#45732)
移除旧的 lineage 相关内容 (#45260)
开始将 mapped task 移植到 SDK (#45627)
日常维护: 更新 OpenLineage provider 中 DatabaseInfo 的 docstring (#45638)
移除可以直接导入的 'typing_compat' 中的类 (#45589)
更新了指向 gcstogcsoperator 的 404 超链接 (#45311)
在 task sdk 中传递 on_task_instance_failed 的错误 (#46941)
2.0.0¶
注意
此提供程序版本仅适用于 Airflow 2.9+,具体说明请参阅 Apache Airflow 提供程序支持策略。
破坏性变更¶
警告
所有已弃用的类、参数和特性已从 OpenLineage 提供程序包中移除。引入了以下破坏性变更
工具
从
openlineage.utils
模块中移除了normalize_sql
函数。
移除 OpenLineage 中的 Provider 弃用项 (#44636)
新特性¶
在 OpenLineage 的 dagrun 级别事件运行 ID 生成中添加 clear_number (#44617)
利用更多信息确定性地生成 OpenLineage run_id (#43936)
新特性: 在 DataprocSubmitJobOperator 中自动将 OL 信息注入到 spark 作业中 (#44477)
杂项¶
移除对 AIRFLOW_V_2_9_PLUS 的引用 (#44987)
将 provider 中最低支持的 Airflow 版本提升至 Airflow 2.9.0 (#44956)
在 provider 中检查 Airflow 版本的一致方式 (#44686)
为 OpenLineage 添加基本系统测试 (#43643)
将 Asset 面向用户的组件移至 task_sdk (#43773)
在整个代码库中将 execution_date 重命名为 logical_date (#43902)
1.14.0¶
新特性¶
为 DbApiHook, PrestoHook, 和 TrinoHook 添加分号去除支持 (#41916)
将 ProcessingEngineRunFacet 添加到 OL DAG Start 事件 (#43213)
Bug 修复¶
在 OpenLineage 信息中也为 Airflow 2 序列化 asset/dataset 时间表条件 (#43434)
OpenLineage: 实例化 OpenLineageClient 时接受完整的配置 (#43740)
杂项¶
暂时将 openlineage 限制在 <1.24.0 版本以下 (#43732)
将 python operator 移至 Standard provider (#42081)
1.13.0¶
新特性¶
新特性(providers/openlineage): 在 common provider 中使用 asset (#43111)
杂项¶
对 compat import 忽略 attr-defined (#43301)
细微调整: 从 OL 的 AirflowJobFacet 中移除 taskgroup 的 tooltip (#43152)
openlineage provider 需要 1.2.1 版本的 common.compat (#43039)
1.12.2¶
杂项¶
更改导入以使用 BashOperator 的 Standard provider (#42252)
核心和 provider 放弃对 python3.8 的支持 (#42766)
将 dataset 相关的 python 变量名重命名为 asset (#41348)
1.12.1¶
Bug 修复¶
修复: 修复 OpenLineage dag start 事件未被发送的问题 (#42448)
修复: 修复错误堆栈跟踪格式化中的拼写错误,以获得更清晰的输出 (#42017)
1.12.0¶
新特性¶
新特性: 在发送 DagRun 时通知潜在的序列化失败,不序列化不必要的参数,为监听器提供异常防护 (#41690)
Bug 修复¶
修复: 在 openlineage InfoJsonEncodable 中将列表转换为扁平化字符串 (#41786)
杂项¶
日常维护: 提升 OL provider 依赖版本 (#42059)
在 OpenLineage provider 中将 execution date 迁移到 dag_run.logical_date (#41889)
统一 DAG schedule 参数并将默认值更改为 None (#41453)
1.11.0¶
注意
此提供程序版本仅适用于 Airflow 2.8+,具体说明请参阅 Apache Airflow 提供程序支持策略。
新特性¶
新特性: 为所有 OpenLineage 事件添加 debug facet (#41217)
新特性: 在 AirflowRunFacet 的 DAG 信息中添加 fileloc (#41311)
新特性: 移除 OpenLineage 客户端已弃用的 from_environment() 方法 (#41310)
新特性: OpenLineage 监听器捕获 hook 级别的 lineage (#41482)
Bug 修复¶
修复: 获取任务依赖项而不将任务树序列化为字符串 (#41494)
修复: 修复当 OpenLineage on_start 方法缺失时,返回空数据而非 None (#41268)
修复: 将 dagTree 替换为 downstream_task_ids (#41587)
杂项¶
将 provider 中最低支持的 Airflow 版本提升至 Airflow 2.8.0 (#41396)
日常维护: 移除 openlineage 的弃用警告 (#41284)
1.10.0¶
新特性¶
在 COMPLETE/FAIL 事件中添加 AirflowRun (#40996)
openlineage: 扩展 custom_run_facets,使其也在 complete 和 fail 时执行 (#40953)
openlineage: 将 OpenLineage provider 迁移到 V2 facets。 (#39530)
openlineage: 为 dag runEvents 添加 AirflowRunFacet (#40854)
[AIP-62] 将 AIP-60 URI 转换为 OpenLineage (#40173)
能够在 OpenLineage 事件中添加自定义 facet (#38982)
openlineage: 在 common.compat 中添加方法,以避免强制 hook 对每个 2.10 hook lineage 调用都使用 try/except (#40812)
openlineage: 使用 airflow 从配置提供的 getter (#40790)
openlineage: 添加配置以根据配置设置包含 'full' 任务信息 (#40589)
将 TaskInstance 的 log_url 添加到 OpenLineage facet (#40797)
openlineage: 在 airflow run facet 的任务信息中添加可延迟信息 (#40682)
Bug 修复¶
针对 airflow 2.10 修复调整 default extractor 的 on_failure 检测 (#41094)
openlineage: 使 attrs.define 中 slots 的值在所有 OL 使用中保持一致 (#40992)
将用于 DagRun 的 facets 的 'slots' 设置为 True (#40972)
openlineage: 修复/添加 AirflowRunFacet 中的一些任务属性 (#40725)
杂项¶
openlineage: 将 dt.now 替换为 airflow.utils.timezone.utcnow (#40887)
openlineage: 移除已弃用的 parentRun facet 键 (#40681)
1.9.1¶
Bug 修复¶
修复 OpenLineage 解析带 MappedOperator 的 dag 树的问题 (#40621)
1.9.0¶
新特性¶
本地任务作业: 添加超时设置,以防止过早终止 on_task_instance_success 监听器 (#39890)
openlineage: 在 sql parser 调用点附近添加一些调试日志 (#40200)
将任务 SLA 和排队时间信息添加到 AirflowRunFacet (#40091)
将错误堆栈跟踪添加到 OpenLineage 任务事件 (#39813)
引入 AirflowJobFacet 和 AirflowStateRunFacet (#39520)
OpenLineage runIds 使用 UUIDv7 (#39889)
openlineage: 在单独的进程中执行提取和消息发送 (#40078)
在 AirflowRunFacet 中添加一些已移除的任务属性 (#40371)
Bug 修复¶
openlineage, redshift: 在 Airflow 2.10 以下版本中不调用 DB 获取 schema (#40197)
修复: 修复 Airflow standalone 上调度器使用 OL provider 时崩溃的问题 (#40459)
细微调整: 修复日志级别 (#40461)
修复: 修复在 OL facet 中以正确的键提供堆栈跟踪的问题 (#40372)
杂项¶
修复: 修复 airflow providers 的 sqa 弃用问题 (#39293)
在 ruff 中启用强制执行 pydocstyle 规则 D213。 (#40448)
1.8.0¶
警告
在 Airflow 2.10.0 中,我们修复了 try_number 的工作方式。对于 Airflow >= 2.10.0,请使用 apache-airflow-providers-openlineage >= 1.8.0
。较旧的 Airflow 版本不受影响,如果您运行了不兼容的版本,将抛出异常并要求您升级提供程序版本。
新特性¶
调度器处理 try_number 的递增 (#39336)
Bug 修复¶
修复: 防止在 extractor 无法导入时出错 (#39736)
在调度器中派生的 OpenLineage 进程中重新配置 ORM。 (#39735)
其他¶
chore: 更新配置检索 docstring 并调整 pool_size (#39721)
移除 Google 和 Snowflake provider 中的 'openlineage.common' 依赖项。 (#39614)
使用 'ProcessPoolExecutor' 而非 'ThreadPoolExecutor'。 (#39235)
misc: 添加自定义 provider 运行时检查 (#39609)
更快的 'airflow_version' 导入 (#39552)
简化 'airflow_version' 导入 (#39497)
openlineage: 通知已捕获记录的异常 (#39493)
chore: 添加更多 OpenLineage 日志以方便调试 (#39136)
1.7.1¶
其他¶
openlineage, snowflake: 不为 Snowflake 运行外部查询 (#39113)
1.7.0¶
新特性¶
添加 lineage_job_namespace 和 lineage_job_name OpenLineage 宏 (#38829)
openlineage: 添加“opt-in”选项 (#37725)
错误修复¶
fix: 从 facets 中移除冗余的 operator 信息 (#38264)
fix: disabled_for_operators 现在会停止整个事件的发送 (#38033)
fix: 在检索 Airflow 配置时添加回退机制以避免引发错误 (#37994)
fix: 修复 parent id 宏并移除未使用的 utils (#37877)
其他¶
避免在测试之外使用 'assert' (#37718)
为 TaskInstance 上的 'task' 添加默认值 / 修复 TaskInstancePydantic 上的 attrs (#37854)
1.6.0¶
新特性¶
feat: 为 event_size 和 extraction time 添加 OpenLineage 指标 (#37797)
feat: 为 File 和 User Airflow 的 lineage entities 添加 OpenLineage 支持 (#37744)
[OpenLineage] 添加对 JobTypeJobFacet 属性的支持。 (#37255)
chore: 更新 OpenLineage ExtractorManager 中的注释和日志记录 (#37622)
错误修复¶
fix: 在 DefaultExtractor.extract_on_complete 中检查 operator 是否被禁用 (#37392)
其他¶
docs: 更新整个 OpenLineage Provider 文档。 (#37620)
1.5.0¶
新特性¶
feat: 在为 task instance 生成 OpenLineage run_id 时添加 dag_id。 (#36659)
1.4.0¶
新特性¶
添加对 Redshift SQL 的 OpenLineage 支持。 (#35794)
1.3.1¶
错误修复¶
修复拼写错误。 (#36362)
1.3.0¶
新特性¶
feat: 为 COMPLETE 和 FAIL 事件添加 parent_run_id (#36067)
添加基本指标到统计信息收集器。 (#35368)
错误修复¶
fix: 修复 OpenLineage FAIL 事件的 run_id (#36051)
修复并重新应用 provider 文档的模板 (#35686)
其他¶
移除 ClassVar 注释。 (#36084)
1.2.1¶
其他¶
在 'create_filter_clauses' 中将 schema filter 转换为大写 (#35428)
1.2.0¶
新特性¶
从 SQL operators 发送列血缘信息。 (#34843)
1.1.1¶
其他¶
调整 OpenLineage provider 中的日志级别 (#34801)
1.1.0¶
新特性¶
允许在 operator 级别禁用 openlineage (#33685)
错误修复¶
修复 'get_custom_facets' 中的导入。 (#34122)
其他¶
将 Airflow provider 中的某些模块导入移入类型检查块,以改进模块导入 (#33754)
添加对 DBT Cloud 的 OpenLineage 支持。 (#33959)
重构 provider 中不必要的跳转 (#33833)
重构: 在 provider 中用 comprehensions 替换 lambdas (#33771)
1.0.2¶
错误修复¶
openlineage: 不在 executor 中运行 task instance listener (#33366)
openlineage: 不尝试从已弃用的配置中屏蔽 Proxy 对象 (#33393)
openlineage: 在 listener 中防御性地检查提供的日期时间 (#33343)
其他¶
添加对 Trino 的 OpenLineage 支持。 (#32910)
简化其他 provider 中关于 len() 的条件 (#33569)
用适当的格式化替换 repr() (#33520)
1.0.1¶
错误修复¶
openlineage: 如果未配置则禁用运行 listener (#33120)
当没有解析到 schema 时,不使用 database 作为回退。 (#32959)
其他¶
openlineage, bigquery: 为 BigQueryExecuteQueryOperator 添加 openlineage 方法支持 (#31293)
将 openlineage 配置移至 provider (#33124)
1.0.0¶
provider 的初始版本。