Airflow从2.2.0升级到2.9.0后Snowflake模块弃用警告解决咨询
解决Airflow升级后Snowflake模块的Deprecated警告
这个警告是因为Airflow从2.3版本开始,把各数据库的SQL Hook统一整合到airflow.providers.common.sql.hooks.sql模块,原Snowflake专属的Hook已被标记为废弃,会在Airflow 3.0彻底移除。具体修改步骤如下:
替换导入语句
把原来的:from airflow.providers.snowflake.hooks.snowflake import SnowflakeHook改成:
from airflow.providers.common.sql.hooks.sql import SqlHook调整Hook实例化方式
原来用SnowflakeHook创建实例的代码:hook = SnowflakeHook(snowflake_conn_id='your_snowflake_conn')替换为SqlHook的动态获取方式:
hook = SqlHook.get_hook(conn_id='your_snowflake_conn')只要你的Airflow连接配置里,该连接的
conn_type是snowflake,SqlHook会自动匹配对应的Snowflake实现,无需额外配置。方法调用无需修改
原SnowflakeHook的常用方法(比如run()、get_records()、get_first()等)在SqlHook中都有完全兼容的实现,直接保留原来的方法调用逻辑即可。验证修改效果
改完后运行对应的DAG,检查警告是否消失,同时确认任务能正常执行,确保SQL操作和数据库连接都正常工作。
内容的提问来源于stack exchange,提问作者Abe Brandsma
相关产品推荐
相关产品推荐

