使用Snowflake的SQLAlchemy Toolkit能否获取sfqid属性?
Snowflake SQLAlchemy Toolkit 获取Query ID的方法
可以获取,Snowflake的SQLAlchemy Toolkit底层封装的就是snowflake-connector-python驱动,只需要获取到底层原生的连接或指针对象,就可以直接读取sfqid属性。
两种常用获取方式:
- 方式1:先获取原生连接再执行查询,直接读取指针对象的
sfqid
from sqlalchemy import create_engine # 替换为你自己的Snowflake连接串 engine = create_engine("snowflake://<user>:<password>@<account>/<database>/<schema>?warehouse=<warehouse>") with engine.connect() as conn: # 获取Snowflake原生驱动连接对象 raw_conn = conn.connection.driver_connection with raw_conn.cursor() as cursor: cursor.execute("SELECT CURRENT_VERSION()") # 直接获取当前查询的Query ID query_id = cursor.sfqid print(f"本次查询ID: {query_id}")
- 方式2:使用SQLAlchemy标准API执行查询后,从原生连接获取最近一次查询的ID
from sqlalchemy import create_engine, text engine = create_engine("snowflake://<your-connection-string>") with engine.connect() as conn: # 正常使用SQLAlchemy API执行查询 result = conn.execute(text("SELECT CURRENT_VERSION()")) # 从底层原生连接直接读取最近一次查询的ID,不需要额外创建指针 query_id = conn.connection.driver_connection.last_query_id print(f"本次查询ID: {query_id}")
注:官方文档没有单独说明该用法,是因为该操作属于SQLAlchemy通用的「访问底层原生驱动对象」的能力,不属于Snowflake SQLAlchemy包的自定义封装功能。
内容的提问来源于stack exchange,提问作者Eric Shepherd
相关产品推荐
相关产品推荐

