来自 R DBI 的 Redshift 中的用户定义函数

Posted

技术标签:

【中文标题】来自 R DBI 的 Redshift 中的用户定义函数【英文标题】:User defined function in Redshift from R DBI 【发布时间】:2016-09-02 19:06:32 【问题描述】:

我正在使用 DBI 包从 R 中访问 Amazon Redshift DB (PostgresSQL)。我尝试定义这个开源函数Colpivot来转置一个表:

colpivot.string <- "create or replace function colpivot(
    out_table varchar, in_query varchar, ...."

dbGetQuery(con,  colpivot.string)

我的错误:

postgresqlExecStatement(conn, statement, ...) 中的错误: RS-DBI 驱动程序:(无法检索结果:错误:语言 plpgsql 不支持创建函数。

如何定义这个函数并通过 R 在我的 redshift 表上使用它?谢谢!

【问题讨论】:

【参考方案1】:

如果您尝试在 Redshift 上创建存储过程,Redshift 不支持用户定义的函数、存储过程。

见http://docs.aws.amazon.com/redshift/latest/dg/c_unsupported-postgresql-features.html

【讨论】:

从版本 1.0.7287(2019 年 4 月下旬)开始,Amazon Redshift 现在支持存储过程。请查看文档"Creating Stored Procedures in Amazon Redshift",了解有关开始使用存储过程的更多信息。

以上是关于来自 R DBI 的 Redshift 中的用户定义函数的主要内容,如果未能解决你的问题,请参考以下文章

在 redshift 中指定数据库中的表

R 使用 dbi 更新数据库

如何在 R 中使用 DBI 连接到 bigquery 数据库后列出表的字段

在 R DBI 中绑定变量

通过DBI从Access到R的连接

DBI 从表中选择所有数据与子集数据