ARTICLE DETAIL

建站实战干货

来自一线的建站与推广经验沉淀,每一条都经过真实交付验证。

使用 Kedro Spaceflights Starter 搭建项目:从 `kedro new` 到依赖安装与配置安全实践

2026/9/15 19:57:33 拓冰建站 浏览量
使用 Kedro Spaceflights Starter 搭建项目:从 `kedro new` 到依赖安装与配置安全实践 使用 Kedro Spaceflights Starter 搭建项目从kedro new到依赖安装与配置安全实践【免费下载链接】kedroKedro is a toolbox for production-ready data science. It uses software engineering best practices to help you create data engineering and data science pipelines that are reproducible, maintainable, and modular.项目地址: https://gitcode.com/GitHub_Trending/ke/kedro本指南以 Kedro 官方 Spaceflights 教程为背景完整演示如何通过uvx kedro new --starter spaceflights-pandas从零创建一个包含可运行示例代码的 Kedro 项目并使用uv sync安装依赖、uv run kedro info验证环境。读完本文你将掌握kedro new的 starter 用法与底层实现原理、项目虚拟环境的标准工作流以及conf/local/credentials.yml等敏感配置的安全存放规范为后续的数据集配置与管道开发打好基础。前置条件环境要求与工具链在创建项目之前请确认你的机器满足以下条件Python 3.10Kedro 支持 macOS、Linux 和 Windows。官方建议为每一个 Kedro 项目创建独立的虚拟环境以隔离项目间的 Python 依赖。gitKedro 的 starter 模板通过 git 从远程仓库拉取请在终端中执行git -v确认已安装。uv本教程推荐使用uv一个快速、现代的 Python 包与项目管理器来运行 Kedro。uvx是uv tool run的别名它会在临时的隔离环境中运行命令自动处理依赖。什么是uvx使用uvx可以让你在不将 Kedro 安装进系统或虚拟环境的情况下运行它每次运行时uvx都会在干净的临时环境中下载并运行 Kedro。如果你更倾向于标准安装例如 pip 虚拟环境可以参考 安装指南其中覆盖了 uv、pipx、conda 等多种方式。创建新项目kedro new --starter导航到你想存放项目的目录然后执行以下命令从 Kedro Spaceflights starter 生成项目uvx kedro new --starter spaceflights-pandas --name spaceflights该命令会创建一个spaceflights目录其中填充了一整套可运行的示例代码——包括conf配置目录、data数据目录、src源码目录含data_engineering与data_science两个示例管道、tests测试目录、pyproject.toml与requirements.txt等文件。kedro new底层是如何工作的从源码结构看kedro new命令实现在 kedro/framework/cli/starters.py 中。它本质上是对 Cookiecutter 模板引擎的封装命令通过click定义了一系列选项--starter、--name、--config、--checkout、--directory、--tools、--example、--telemetry在 starters.py 的new函数中完成以下流程校验各 CLI 参数的组合合法性例如--starter不能与--example、--tools同时使用通过_get_starters_dict()将 starter 别名解析为KedroStarterSpec包含alias、template_path、directory、origin四个字段映射到远端模板仓库解析prompts.yml确定需要向用户询问的信息如project_name并从cookiecutter.json生成默认上下文最终调用 cookiecutter 的cookiecutter()函数生成项目。Starter 别名与官方模板清单Spaceflights starter 的spaceflights-pandas别名定义于 starters.py 中的_OFFICIAL_STARTER_SPECS。官方维护的 starter 别名还包括astro-airflow-iris基于 Iris 数据集、面向 Airflow Astronomer 部署的示例项目spaceflights-pysparkSpaceflights 教程的 PySpark 版本databricks-iris面向 Databricks 部署的 Iris 示例support-agent-langgraph演示基于 LangGraph 的 agentic 工作流管道。在终端执行以下命令可以查看全部可用别名kedro starter list--starter参数除了使用别名外还可以接受本地目录路径或 cookiecutter 支持的远程 VCS 仓库 URL。例如uvx kedro new --starter githttps://github.com/kedro-org/kedro-starters.git --directory spaceflights-pandas如果你希望锁定 starter 的特定版本tag、分支或 commit可以配合--checkout参数。从源码的_select_checkout_branch_for_cookiecutter可以看到未显式指定时Kedro 会默认 checkout 当前 Kedro 版本对应的模板分支以保证模板与框架版本匹配。更完整的 starter 用法说明见 Kedro starters。交互式与非交互式创建当--name未提供时kedro new会进入交互模式根据prompts.yml询问project_name并据此自动推导repo_name和python_package。你也可以通过--config 配置文件路径传入 YAML 配置文件实现完全非交互式的项目创建如 CI 场景。此外--tools参数可控制在项目中预置哪些工具配置如lint、test、docs、pyspark等。进入项目并同步依赖项目创建完成后导航到项目根目录。所谓项目根目录是指包含项目全部文件与子目录的顶层文件夹cd spaceflights接下来创建虚拟环境并安装项目依赖。Kedro 项目的pyproject.toml声明了全部依赖requirements.txt仅为兼容旧工作流保留。使用uv一键完成环境创建与依赖同步uv sync注意环境切换项目创建后你将在项目自己的虚拟环境中工作。uv sync和uv run创建并使用项目环境而不再使用uvx所用的临时环境。如果你更习惯 pip 工作流也可以执行pip install -r requirements.txt。验证安装kedro info与版本检查依赖安装完成后验证你的安装是否正确uv run kedro info该命令会打印 Kedro 的 ASCII art 图形与版本号。Kedro 官方建议使用与本教程配套测试过的 Kedro 版本1.0.0。要查看当前安装的版本请在终端执行kedro -VKedro 遵循语义化版本Semantic Versioning规范同一 minor 系列内的补丁升级通常无需额外操作而 0.x 系列的 minor 升级或 1.0 之后的 major 升级可能包含不兼容变更升级前应查阅 RELEASE.md 中的迁移说明。更多安装方式pip、pipx、conda 等见 安装指南。可选步骤日志与凭据配置配置日志你可以在工作流的这一阶段配置 日志系统但本教程不会使用它。Kedro 默认使用INFO级别展示日志便于跟踪kedro run的管道进度其默认日志配置位于 kedro/framework/project/default_logging.yml通过 Rich logging handler 格式化消息与渲染异常。若需自定义可通过KEDRO_LOGGING_CONFIG环境变量指向项目自己的conf/logging.yml。存放凭据如果项目使用的数据源需要用户名、密码等凭据请将它们添加到conf/local/credentials.yml。该文件由项目模板自动生成其中已包含注释形式的示例例如 S3 的aws_access_key_id/aws_secret_access_key与 SQL 的username/password写法见 credentials.yml 模板。这与 Kedro 的配置环境机制紧密相关conf/base/默认配置环境存放跨环境通用的默认设置会写入版本控制conf/local/存放用户特定或受保护的配置如安全密钥不应加入版本控制。Kedro 通过OmegaConfigLoader递归扫描conf文件夹先加载conf/base再用conf/local覆盖同名配置项从而实现对凭据的隔离管理。配置加载规则与config_patterns的完整说明见 配置文档。配置最佳实践防止机密数据泄露无论是初学者还是生产项目都应当遵守以下安全红线不要将数据提交到版本控制原始数据与中间产物体积大且可能敏感应通过.gitignore排除data/目录。不要提交 Notebook 的输出单元未删除输出单元时数据乃至凭据可能悄悄混入 notebook 文件并被提交。不要把凭据放进conf/目录敏感信息应始终存放在conf/local/文件夹中并且该文件夹不得纳入版本控制。Kedro 的这套约定从项目模板层面就为安全设计留出了空间conf/local/天然用于承载用户特定与受保护内容而conf/base/只存放可公开共享的默认配置。更多细节可查阅 配置基础文档。下一步进入 Spaceflights 教程至此你的 Kedro 项目已经创建完成、依赖已安装、环境验证通过。接下来就可以按照 Spaceflights 教程 的完整步骤继续推进——该教程共约 30 分钟依次包含以下阶段设置数据将companies.csv、reviews.csv、shuttles.xlsx三个数据集放入data/01_raw并在conf/base/catalog.yml中注册见 Set Up Data创建管道编写节点nodes并组装为管道选择顺序或并行运行方式添加另一条管道扩展出独立的data_science管道测试项目使用 pytest 编写并运行项目测试打包项目构建文档并打包分发。在构建管道的过程中你会在conf/base/catalog.yml中看到如下形式的注册条目——这是理解 Kedro Data Catalog 的关键起点companies: type: pandas.CSVDataset filepath: data/01_raw/companies.csv reviews: type: pandas.CSVDataset filepath: data/01_raw/reviews.csv shuttles: type: pandas.ExcelDataset filepath: data/01_raw/shuttles.xlsx load_args: engine: openpyxl # 现代 Excel 引擎Kedro 0.18.0 起的默认值如果教程过程中遇到问题可先查阅 Spaceflights 教程 FAQ其中列出了数据集加载失败、Data Catalog 依赖缺失、管道运行报错等常见问题的排查方法。【免费下载链接】kedroKedro is a toolbox for production-ready data science. It uses software engineering best practices to help you create data engineering and data science pipelines that are reproducible, maintainable, and modular.项目地址: https://gitcode.com/GitHub_Trending/ke/kedro创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考