Kedro 项目教程
1. 项目的目录结构及介绍
Kedro 项目的目录结构遵循一定的组织原则,以确保项目的可维护性和可扩展性。以下是一个典型的 Kedro 项目目录结构及其介绍:
kedro-project/
├── conf/
│ ├── base/
│ │ ├── catalog.yml
│ │ ├── credentials.yml
│ │ ├── logging.yml
│ │ └── parameters.yml
│ └── local/
│ └── ...
├── data/
│ ├── 01_raw/
│ ├── 02_intermediate/
│ ├── 03_primary/
│ ├── 04_features/
│ ├── 05_model_input/
│ ├── 06_models/
│ ├── 07_model_output/
│ └── 08_reporting/
├── docs/
│ └── ...
├── logs/
│ └── ...
├── notebooks/
│ └── ...
├── src/
│ ├── kedro_project/
│ │ ├── __init__.py
│ │ ├── pipelines/
│ │ │ └── ...
│ │ ├── nodes.py
│ │ └── pipeline.py
│ └── tests/
│ └── ...
├── .gitignore
├── .kedro.yml
├── README.md
└── setup.py
目录结构介绍
conf/
: 配置文件目录,包含项目的各种配置文件。base/
: 基础配置文件,如数据目录、日志配置、参数配置等。local/
: 本地配置文件,通常包含敏感信息如数据库凭证等。
data/
: 数据目录,按照数据处理的阶段进行分类存储。docs/
: 文档目录,用于存放项目文档。logs/
: 日志目录,用于存放运行时生成的日志文件。notebooks/
: Jupyter 笔记本目录,用于数据探索和实验。src/
: 源代码目录,包含项目的所有代码。kedro_project/
: 项目主代码目录。pipelines/
: 管道目录,包含各个数据处理管道的代码。nodes.py
: 节点定义文件。pipeline.py
: 管道定义文件。
tests/
: 测试代码目录。
.gitignore
: Git 忽略文件配置。.kedro.yml
: Kedro 项目配置文件。README.md
: 项目说明文档。setup.py
: 项目安装脚本。
2. 项目的启动文件介绍
Kedro 项目的启动文件通常是 src/kedro_project/__init__.py
和 src/kedro_project/pipeline.py
。这些文件负责初始化项目和定义数据处理管道。
__init__.py
这个文件是项目的入口点,负责初始化项目环境和加载必要的模块。通常包含以下内容:
from kedro.framework.project import configure_project
def run_package():
configure_project("kedro_project")
pipeline.py
这个文件定义了数据处理管道,包括节点的定义和管道的组装。示例如下:
from kedro.pipeline import Pipeline, node
from kedro_project.nodes import process_data
def create_pipeline(**kwargs):
return Pipeline(
[
node(
func=process_data,
inputs="raw_data",
outputs="processed_data",
name="process_data_node",
),
]
)
3. 项目的配置文件介绍
Kedro 项目的配置文件位于 conf/
目录下,主要包括以下几个文件:
catalog.yml
这个文件定义了数据集的存储位置和格式,示例如下:
raw_data:
type: pandas.CSVDataSet
filepath: data/01_raw/raw_data.csv
processed_data:
type: pandas.CSVDataSet
filepath: data/02_intermediate/processed_data.csv
credentials.yml
这个文件包含敏感信息如数据库凭证等,通常不会提交到版本