Kedro run仍指向旧ADLS Gen2存储账户,更换存储读写源如何解决
Kedro更换ADLS Gen2存储账户异常解决方案
- 清理本地缓存
Kedro运行时会缓存编译后的配置文件,修改配置后优先执行缓存清理操作:- Kedro 0.18及以上版本运行命令:
kedro catalog clean - 旧版本直接删除项目根目录下的
.kedro文件夹、所有__pycache__目录,以及conf目录下的pyc缓存文件
- Kedro 0.18及以上版本运行命令:
- 检查catalog配置是否存在硬编码
打开conf/base/catalog.yml(对应环境的catalog文件同理),确认ADLS相关数据集的路径没有直接写死旧存储账户名:错误示例:
path: abfss://mycontainer@old_account.dfs.core.windows.net/path/to/data
这种硬编码的优先级高于credentials中的配置,需要替换为参数引用,和credentials中的配置项对应:
示例配置:# credentials.yml azure_storage: account_name: new_account account_key: xxxxx container: mycontainer# catalog.yml my_adls_dataset: type: pandas.ParquetDataSet path: abfss://${azure_storage:container}@${azure_storage:account_name}.dfs.core.windows.net/path/to/data credentials: azure_storage - 确认环境配置匹配
如果运行kedro run时指定了--env参数(如--env prod),对应conf/[环境名]目录下的配置会覆盖base目录的配置,确认你修改的是对应环境下的credentials.yml,而非仅修改了base环境的配置。 - 提前校验配置生效情况
运行命令kedro catalog list --verbose,在输出中找到对应ADLS数据集的解析后配置,即可直接确认存储账户是否已更新为新值,无需运行全量流水线即可校验配置正确性。 - 清理fsspec凭证缓存
如果上述操作均无效,可删除用户目录下的.cache/fsspec文件夹,避免fsspec复用旧的存储访问凭证。
内容的提问来源于stack exchange,提问作者Downforu
相关产品推荐
相关产品推荐

