Psycopg2 是不是允许使用 Python 在 redshift 上运行 udf create 查询?

Posted

技术标签:

【中文标题】Psycopg2 是不是允许使用 Python 在 redshift 上运行 udf create 查询?【英文标题】:Does Psycopg2 allow udf create queries to run on redshift using Python?Psycopg2 是否允许使用 Python 在 redshift 上运行 udf create 查询? 【发布时间】:2017-02-27 21:45:40 【问题描述】:

我可以使用 python 通过 psycopg2 连接到 aws-redshift,我可以查询表并取回数据等...

但是,当我尝试通过 psycopg2 运行 create udf 函数时,没有任何反应,没有错误返回,但没有创建任何内容。

这是我的代码:

def _applyFunctionToDB():
    con=psycopg2.connect(dbname = redhsiftDatabase, host = redshiftHost, port = '5439', user = redshiftUser, password = redshiftPwd)
    cur = con.cursor()
    udf=_fileOpenWrite(udfFile)
    size = os.stat(udfFile).st_size
    udfCode=udf.read(size)
    cur.execute(udfCode)
    con.close()

我已经通过调试器运行它并且所有部分都在那里,但是当在光标上调用“执行”方法时没有任何反应。

如果有人对这里可能发生的事情有任何建议和/或想法,请提出建议。

谢谢!

【问题讨论】:

【参考方案1】:

在此处发布后找到答案:Copying data from S3 to AWS redshift using python and psycopg2

我需要调用一个提交。

所以,在上面的代码中执行后添加con.commit

【讨论】:

以上是关于Psycopg2 是不是允许使用 Python 在 redshift 上运行 udf create 查询?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Python 上使用“pip”安装 psycopg2?

python使用psycopg2

尝试使用 psycopg2.sql 在 python 中创建 Redshift 表

如何在 Python 中使用 psycopg2-binary?

使用带有 Lambda 的 psycopg2 插入 Redshift (Python)

python DBUtils 线程池 连接 Postgresql(多线程公用线程池,DB-API : psycopg2)