我正在尝试从postgres中的表创建一个dask数据框。 我想通过 application_name ='myapp'作为标准 用于监视和跟踪数据库活动。
但是当我尝试添加参数时,出现以下错误。
ddf = dd.read_sql_table('table',
uri,
schema='schema',
index_col='index_col',
engine_kwargs={'application_name':'myapp'})
TypeError:无效的参数'application_name'发送到 create_engine(),使用配置 PGDialect_psycopg2 / QueuePool / Engine。请检查关键字 参数适用于这种组件组合。
答案 0 :(得分:1)
原来正确的语法是
ddf = dd.read_sql_table('table',
uri,
schema='schema',
index_col='index_col',
engine_kwargs={'connect_args': {'application_name': 'myapp'})
因为调用sqlalchemy引擎看起来像
engine = create_engine(uri, connect_kwargs={'application_name':' myapp'})
答案 1 :(得分:0)
以下内容在sqlalchemy==1.3.10
# Establish database connection via sqlalchemy
sqlalchemy_connection_kwargs = {'connect_args': {'application_name': 'herles_application'}}
connection = create_engine(sqlalchemy_connection_string, **sqlalchemy_connection_kwargs)
如果您使用的是psycopg2-binary==2.8.4
本机连接
native_connection = psycopg2.connect(user=cred['username'],
password=cred['password'],
host=cred['host'],
port=cred['port'],
database=cred['databaseName'],
application_name="herles_application")