You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Kedro 0.18中通过编程方式注册Data Catalog?

Kedro 0.18中编程式定义Data Catalog的替代方案

Kedro 0.18移除了register_catalog钩子,但有两种可靠方式实现编程式定义Data Catalog:

1. 重写项目上下文的_create_catalog方法

在项目的src/<你的项目名>/run.py文件中,修改ProjectContext类,重写_create_catalog方法完全自定义Catalog构建逻辑:

from kedro.framework.context import KedroContext
from kedro.io import DataCatalog, ParquetDataSet
from pathlib import Path

class ProjectContext(KedroContext):
    project_name = "<你的项目名>"
    project_version = "0.1"
    package_name = "<你的包名>"

    def _create_catalog(self, conf_catalog, conf_creds, feed_dict):
        # 动态构建路径逻辑
        PREFIX = str(Path(self.project_path) / "data" / "01_raw")
        # 自定义DataCatalog实例
        catalog = DataCatalog(
            {
                "products": ParquetDataSet(filepath=f"{PREFIX}/products.parquet"),
                # 其他数据集定义...
            }
        )
        # 若需保留YAML配置的数据集,可合并:
        # base_catalog = super()._create_catalog(conf_catalog, conf_creds, feed_dict)
        # catalog = DataCatalog({**base_catalog._data_sets, **custom_datasets})
        return catalog

这种方式会接管Kedro默认的Catalog创建流程,适合需要完全控制数据集定义的场景。

2. 手动创建Catalog并运行管道

若不需要修改项目默认上下文逻辑,可在自定义脚本中手动配置项目、创建Catalog后运行管道:

from kedro.framework.project import configure_project
from kedro.io import DataCatalog, ParquetDataSet
from kedro.pipeline import Pipeline
from <你的包名>.pipelines import create_pipeline

# 配置项目环境
configure_project("<你的项目名>")

# 动态构建数据集
PREFIX = "data/01_raw"
custom_catalog = DataCatalog(
    {
        "products": ParquetDataSet(filepath=f"{PREFIX}/products.parquet"),
        # 其他数据集...
    }
)

# 获取并运行管道
pipeline = create_pipeline()
from kedro.runner import SequentialRunner
runner = SequentialRunner()
runner.run(pipeline, custom_catalog)

这种方式更灵活,适合临时脚本或特定场景下的自定义运行逻辑。

注意事项

  • 若需使用Kedro的数据集缓存、事务等功能,创建DataCatalog时需传入正确的credentials和load_versions等参数
  • 如需混合YAML配置与编程式定义的数据集,可先加载默认YAML配置的Catalog,再合并自定义数据集

内容的提问来源于stack exchange,提问作者gants_kuhelgarten

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.13 21:45:37