【问题标题】:Snowflake SQLAlchemy 'supports_statement_cache' warning雪花 SQLAlchemy 'supports_statement_cache' 警告
【发布时间】:2022-06-14 19:39:48
【问题描述】:

我正在使用 SQLAlchemy 从 Snowflake 查询数据并不断收到此警告:

SA 警告:方言雪花:雪花不会使用 SQL 编译缓存,因为它没有将“supports_statement_cache”属性设置为True。与以前的 SQLAlchemy 版本相比,这可能会产生重大的性能影响,包括一些性能下降。在对 SQLAlchemy 1.4 缓存支持进行适当的开发和测试后,方言维护者应设法将此属性设置为 True。或者,可以将此属性设置为 False,这将禁用此警告。 (此错误的背景:https://sqlalche.me/e/14/cprf

根据上面的链接,我对出现警告的原因有了一些了解,但我不明白应该采取哪些步骤来避免“显着的性能影响”。

版本:

雪花连接器-python==2.7.1

雪花-sqlalchemy==1.3.3

SQLAlchemy==1.4.32

连接字符串:

 from snowflake.sqlalchemy import URL
 from sqlalchemy import create_engine
 

def snowflake_connection(cred, params):

"""Connect to snowflake using connection params."""

logger.info("Connecting to snowflake...")

try:
    # connect to snowflake
    engine = create_engine(URL(
        user = cred['UN'],
        role = cred['ROLE'],
        password = cred['PWD'],
        account = params['account'],
        warehouse = params['warehouse']))

    conn = engine.connect()

    logger.info("...Connected to Snowflake.")
    return conn, engine

except Exception:
    logger.error("Failed to connect to Snowflake.", exc_info=True)
    conn.close()
    engine.dispose()
    sys.exit()

问题:

  1. 这会导致什么样的性能问题?
  2. 如何解决此警告?

【问题讨论】:

  • 在雪花连接器开发者解决它之前,您无能为力解决它 - 请参阅this issue

标签: python sqlalchemy snowflake-connector


【解决方案1】:

可以通过以下方式禁用警告:

from snowflake.sqlalchemy.snowdialect import SnowflakeDialect
SnowflakeDialect.supports_statement_cache = False

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-18
    • 1970-01-01
    • 2021-12-19
    • 1970-01-01
    • 2020-07-04
    • 2021-08-27
    • 2020-11-09
    相关资源
    最近更新 更多