Kedro-API-Hook
介绍
Hook是一种机制,以简单一致的方式为Kedro的主要执行添加额外的行为,可用于监听任务执行进度、做出额外指定行为等功能。一些示例可能包括:
- 加载数据目录后添加日志语句
- 在节点运行之前将数据验证添加到输入,并在节点运行后将数据验证添加到输出。这使得与其他工具(如Great-Expect)集成成为可能。
- 在整个管道运行过程中添加机器学习指标跟踪,例如使用MLflow
概念
钩子由钩子规范和钩子实例组成。要将 Hooks 添加到项目中,您必须:
- 根据现有的Kedro的Hook规范,创建或修改
<your_project>/src/<package_name>/hooks.py
文件来定义一个Hook实例。 - 在
src/<your_project>/settings.py
文件中的HOOKS 键下注册 Hook实例。
Hook详述
Kedro为特定的执行点定义了Hook规范,用户可以在其中注入额外的行为。目前,kedro.framework.hooks 中提供了以下 Hook 规范:
after_catalog_created
before_node_run
after_node_run
on_node_error
before_pipeline_run
after_pipeline_run
on_pipeline_error
before_dataset_loaded
after_dataset_loaded
before_dataset_saved
after_dataset_saved
after_context_created
一般Hook函数命名规则:
一般Hook函数命名规则:<before/after>_<noun>_<past_participle>
其中:
<before/after>
并指 Hook 执行的时间,例如 或。<past_participle>before
was runafter was created<before/after>
和<past_participle>
指的是Hook执行的时间点(前/后),例如before <something> was run
orafter <something> was created.
<noun>
是指 Kedro 执行时间线中的相关组件,Kedro为这类 Hook 为其添加了额外的行为,例如catalog
,node
,pipeline
。
处理异常的Hook函数命名规则:
处理异常的Hook函数命名规则:on_<noun>_error
其中:
<noun>