如何在catalog.yml中为SQLQueryDataSet查询传入参数实现插值?
如何在catalog.yml中为SQLQueryDataSet的SQL查询传入参数
完全可以实现SQL查询的参数插值,但你示例中的写法需要调整,不能直接用${id},得借助框架的参数注入机制(以Kedro为例,因为pandas.SQLQueryDataSet是Kedro的DataSet类型):
第一步:在参数文件中定义要传入的参数
在conf/base/parameters.yml里添加参数配置:query_params: id: 123第二步:修改catalog.yml的SQL模板
使用Jinja2模板语法引用参数,替换你的原始配置:person: type: pandas.SQLQueryDataSet sql: "SELECT * FROM public.people WHERE id = {{ params.query_params.id }};" credentials: db_credentials第三步:动态传参(可选)
如果需要在运行时指定不同的id值,可以通过kedro run命令的--params选项传入:kedro run --params query_params.id=456
注意:Kedro的catalog.yml默认支持Jinja2模板插值,所以必须用{{ ... }}的语法来引用参数,而不是${id}这种格式。
内容的提问来源于stack exchange,提问作者Nikola
相关产品推荐
相关产品推荐

