Kedro架构概览¶
在工作中利用Kedro有多种方式,您可以:
承诺使用Kedro的全部功能(框架、项目、启动器和库);这样能更好地发挥Kedro的全部价值主张
您可以将Kedro作为Python库使用其部分功能,如DataCatalog(输入/输出)、OmegaConfigLoader、Pipelines和Runner;这最适合那些不想采用Kedro项目模板的工作流程
或者,您可以为Kedro开发扩展,例如自定义启动器、插件、钩子等
从高层次来看,Kedro主要由五个核心部分组成:

Kedro项目¶
作为数据管道开发人员,您将与一个Kedro项目进行交互,该项目包含以下内容:
conf/目录,包含项目的配置信息,例如数据目录配置、参数等。src目录包含项目的源代码,其中包括:pipelines目录,包含您的流水线源代码。settings.py文件包含项目的设置,例如库组件注册、自定义钩子注册等。所有可用设置都在项目设置章节中列出并进行了说明。pipeline_registry.py文件定义了项目流水线,即可以通过kedro run --pipeline命令运行的流水线。__main__.py文件作为项目在package mode中的主要入口点。
pyproject.toml通过提供项目元数据来标识项目根目录,包括:package_name: 项目包的有效Python包名称。project_name: 项目的可读名称。kedro_init_version: 生成项目时使用的Kedro版本。
Kedro框架¶
Kedro框架作为Kedro项目与Kedro库组件之间的接口。Kedro框架的主要构建模块包括:
Kedro 入门模板¶
你可以使用Kedro starter来生成包含样板代码的Kedro项目。我们维护了一套官方starter,但你也可以选择使用自定义starter。
Kedro库¶
Kedro库由多个独立单元组成,每个单元负责数据管道中的某一计算环节:
OmegaConfigLoader提供了解析和加载Kedro项目中定义配置的实用功能。pipeline提供了一系列抽象概念来建模数据管道。runner为数据管道的不同执行策略提供了抽象层。io提供了一系列抽象来处理项目中的输入/输出操作,包括DataCatalog和多种Dataset实现。
Kedro扩展¶
你也可以通过Kedro扩展来增强项目中的Kedro功能,这些扩展可以是自定义启动器、包含额外钩子实现的Python库、额外的CLI命令(如Kedro-Viz),或是自定义库组件实现。
如果您创建了一个Kedro扩展,我们欢迎各种形式的贡献。请查阅我们的Kedro贡献指南。对kedro-datasets的数据集贡献是最常被接受的,因为它们不需要对框架本身进行任何修改。不过,我们也鼓励对任何其他kedro-plugins的贡献。