在dask.read_sql_table中添加application_name作为参数时出错

时间:2019-04-11 05:49:21

标签: python sqlalchemy psycopg2 dask

我正在尝试从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(),使用配置   PGD​​ialect_psycopg2 / QueuePool / Engine。请检查关键字   参数适用于这种组件组合。

2 个答案:

答案 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)

  • PostgreSQL数据库:

以下内容在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")