Kedro术语表

数据目录

数据目录(Data Catalog)是Kedro中所有可用于数据管道的注册中心。它管理数据的加载和保存。数据目录将节点输入和输出的名称映射为Kedro数据集中的键,这些数据集可以针对不同类型的数据存储进行专门配置。

关于数据目录的更多信息

数据工程 vs 数据科学

数据工程是将数据整理成干净可靠状态的过程。数据整理是指通过解析和清理,将混乱或未加工的原始数据转化为有用的信息。

数据科学通过结合领域专业知识、编程技能以及数学和统计学知识,从数据中提取洞见。有一个老笑话:"数据科学家是这样的人,他们比计算机科学家更懂统计学,比统计学家更懂计算机科学。"

Kedro

Kedro 是一个开源的 Python 框架,用于创建可重复、可维护和模块化的数据科学代码。它将软件工程的最佳实践应用于机器学习代码,包括模块化、关注点分离和版本控制。

Kedro简介

KedroContext

一个Python类,用于保存配置和Kedro的核心功能。

KedroContext的API文档

KedroSession

KedroSession 允许您管理 Kedro 运行的生命周期,持久化运行时参数并追溯运行时参数,例如 CLI 命令标志和环境变量。

关于KedroSession的更多信息

Kedro-Viz

你可以使用Kedro-Viz来可视化你的Kedro数据管道:

  • 了解你的数据集和节点在Kedro中是如何解析的,从而理解你的数据管道是如何构建的

  • 通过使用标签可视化子管道,当您拥有大量数据集和节点时,可以清晰地了解情况

  • 搜索节点和数据集

更多信息请参阅Kedro-Viz代码库Kedro-Viz文档

层级(数据工程规范)

根据常见的数据工程惯例,一个流水线可以按照数据处理方式划分为不同层级。这种惯例使得与其他团队成员协作更加容易,因为每个人都能清楚了解进行了哪些类型的数据清洗或处理。

Kedro-Viz通过向数据目录中数据集的metadata内的kedro-viz部分添加layer属性,使得可视化这些数据处理阶段变得简单。

模块化流水线

(另请参阅 Pipeline)

在许多典型的Kedro项目中,随着项目发展,单一("主")管道的复杂性会不断增加。为了使项目保持适用性,您可以创建模块化管道,这些管道在逻辑上是隔离的且可重复使用。模块化管道更易于开发、测试和维护,并且具有可移植性,因此可以在项目之间复制和重复使用。

关于模块化管道的更多信息

节点

Kedro节点是对纯Python函数的封装,用于命名该函数的输入和输出。

(纯函数是指其输出值仅由输入值决定,不会产生任何可观察的副作用,如状态变化或可变数据修改)。

节点是流水线的基本构建单元。当一个节点的输出成为另一个节点的输入时,这些节点就可以相互连接。

关于节点的更多信息

节点执行顺序

节点执行顺序是通过解析节点之间的输入和输出数据依赖关系来确定的。流水线决定了节点的执行顺序,并不一定按照传入节点的顺序来运行。

流水线

Kedro管道用于组织节点集合的依赖关系和执行顺序,并连接输入和输出。管道通过解析依赖关系来确定节点的执行顺序。

关于管道的更多信息

臃肿的流水线: Chonky通常用来形容圆润、丰满或比一般体型更重的动物。同理,chonky pipeline指的是比常规流水线更为庞大笨重的数据处理流程。

流水线切片

这是指运行管道节点的一个子集或"切片"。您可以通过多种方式对管道进行切片,例如:

  • 通过提供特定的输入 (pipeline.from_inputs)

  • 通过指定从哪些节点开始运行管道 (pipeline.from_nodes)

  • 通过指定一个最终节点 (pipeline.to_nodes)

  • 通过标记特定节点 (pipeline.only_nodes_with_tags)

  • 通过指定特定节点 (pipeline.only_nodes)

关于流水线切片的更多信息

运行器

运行器(Runners)是使用指定数据目录执行管道的不同运行机制。

  • 顺序运行器根据依赖关系逐个执行流水线节点

  • 并行运行器通过利用多进程实现并发

  • 线程运行器使用线程实现并发执行

关于运行器的更多信息

入门指南

Kedro starters用于创建包含可直接运行或可调整扩展的代码项目。它们提供可复用的预定义示例代码和配置。Kedro starter是一个Cookiecutter模板,其中包含Kedro项目的样板代码。

关于Kedro starters的更多信息

标签

您可以为节点或管道应用标签,作为筛选执行内容的一种方式。

工作流依赖关系

在Kedro中,工作流依赖项是指您的项目(数据和机器学习工作流)所需的软件包。