常见用例¶
Kedro内置了一些机制供您扩展其功能。本文档将介绍如何针对最常见的用例选择合适的扩展机制。
用例1:如何为Kedro的执行时间线添加额外行为¶
Kedro管道的执行时间线可以被视为由各种Kedro库组件执行的一系列操作,例如datasets、DataCatalog、Pipeline、Node和KedroContext。
在这些组件的生命周期不同阶段,您可能需要添加额外行为:例如,可以在节点运行之前和之后添加额外的计算用于性能分析,或者在数据集的I/O操作(即load和save操作)的之前和之后添加额外行为。
现在可以通过使用Hooks来实现,用于定义额外行为以及应在执行时间线的哪个阶段引入该行为。
用例2:如何将Kedro与其他数据源集成¶
用例3:如何添加或修改CLI命令¶
如果想为特定项目自定义Kedro内置命令(例如kedro run),可以添加一个定义自定义run()函数的cli.py文件。该文件应放置在与settings.py同级目录下(通常是src/项目名称目录)。详见cli.py文件模板。
如果你想自定义Kedro命令组中的某个命令,例如kedro pipeline或kedro jupyter,你需要从Kedro框架的cli模块导入对应的click命令组。对于kedro pipeline命令,应该使用from kedro.framework.cli.pipeline import pipeline,而对于kedro jupyter命令则使用from kedro.framework.cli.jupyter import jupyter。请注意,即使你不修改它,仍然需要添加上文代码片段中的cli click命令组。
然后,您可以通过将命令添加到点击组来添加或覆盖任何命令,如下面的代码片段所示:
@jupyter.command("notebook")
@env_option(
help="Open a notebook"
)
def notebook_run(...):
== ADD YOUR CUSTOM NOTEBOOK COMMAND CODE HERE ==
要在多个项目中复用额外的CLI命令注入功能,请参阅我们的插件系统。例如Kedro-Viz插件提供的kedro viz run命令就是这类命令的典型。该命令设计用于所有Kedro项目,因此它来自独立的插件。
注意
您的插件实现可以利用其他扩展机制,例如Hooks。
用例4:如何自定义项目的初始样板代码¶
有时您可能希望根据特定需求定制Kedro项目的初始模板。例如,您的组织可能有一个标准的CI脚本,希望包含在每个新的Kedro项目中。为此,请参阅创建Kedro启动器的指南。