如何使用 RPostgreSQL 将表写入 Panoply?

Posted

技术标签:

【中文标题】如何使用 RPostgreSQL 将表写入 Panoply?【英文标题】:How to write tables into Panoply using RPostgreSQL? 【发布时间】:2020-02-17 23:09:24 【问题描述】:

我正在尝试使用 RPostgreSQL 包将表写入我的数据仓库

library(DBI)
library(RPostgreSQL)

pano = dbConnect(dbDriver("PostgreSQL"),
                 host = 'db.panoply.io',
                 port = '5439',
                 user = panoply_user,
                 password = panoply_pw,
                 dbname = mydb)

RPostgreSQL::dbWriteTable(pano, "mtcars", mtcars[1:5, ])

我收到此错误:

Error in postgresqlpqExec(new.con, sql4) : 
  RS-DBI driver: (could not Retrieve the result : ERROR:  syntax error at or near "STDIN"
LINE 1: ..."hp","drat","wt","qsec","vs","am","gear","carb" ) FROM STDIN
                                                                  ^
)

上面的代码以 0 行 0 字节表的形式写入 Panoply。列似乎已正确输入 Panoply,但没有其他内容出现。

【问题讨论】:

【参考方案1】:

最重要的红移 postgresql。

Redshift 不使用 Postgres 批量加载程序。 (因此不允许使用标准输入)。

有许多可用选项可供您根据需要进行选择,尤其是考虑到数据量。

对于大量数据,您应该先写入 s3,然后使用 redshift 复制命令。 有很多选择看看 https://github.com/sicarul/redshiftTools

对于低音量,请参阅 inserting multiple records at once into Redshift with R

【讨论】:

以上是关于如何使用 RPostgreSQL 将表写入 Panoply?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 dplyr 和 RPostgreSQL 将 r 连接到 redshift?

如何在不使用 HDP 3.1 中的仓库连接器的情况下将表从 spark 中写入 hive

将表写入特定文件夹

如何中断 R 中的 RPostgresql 查询

使用 RPostgreSQL 和 dplyr 将 R 连接到 Redshift 的理论是啥

R 在使用 dplyr 或 RPostgreSQL 的模式下访问 redshift 表