如何使用 dplyr 和 RPostgreSQL 将 r 连接到 redshift?
Posted
技术标签:
【中文标题】如何使用 dplyr 和 RPostgreSQL 将 r 连接到 redshift?【英文标题】:how to use dplyr and RPostgreSQL to connect r to redshift? 【发布时间】:2016-10-11 05:20:19 【问题描述】:我正在尝试根据https://blogs.aws.amazon.com/bigdata/post/Tx1G8828SPGX3PK/Connecting-R-with-Amazon-Redshift 中的方法使用 dplyr 和 RPostgreSQL 将 R 连接到 Redshift
现在我知道了我的数据库、主机端口、用户名和密码。所以,这是我的代码:
> myRedshift <- src_postgres('aaa',
host = 'aaa-aaa-aaa.com',
port = 8000,
user = "xy",
password = "xy")
运行此行后,我有一个 myRedshift 列表。看起来不错。但是,当我运行时:
a <- tbl(myRedshift, "base_posdata")
问题是:数据库 aaa 包含几个文件夹,例如 a1、a2、a3。表 base_posdata 在 a1 下。所以它应该是这样的:
a <- tbl(myRedshift, "a1//base_posdata")
当然格式不正确。所以当我使用上面的代码时(a
Error in postgresqlExecStatement(conn, statement, ...) :
RS-DBI driver: (could not Retrieve the result : ERROR: relation "base_posdata" does not exist)
我猜这是因为我没有提供正确的路径。 谁能告诉我该怎么做?非常感谢。
【问题讨论】:
Postgres 的数据库模型包括数据库、模式、表和列。确保您在查询中正确解决了每个问题。 如果我使用 Alteryx 连接 Redshift 中的数据。我可以使用以下方式选择数据:1.选择表或指定查询,2.单击“表”按钮,3.选择显示为“aaa”.“a1”.“base_posdata”的表。您能否解释一下这是否意味着它是一张桌子或其他东西?我该如何处理呢?谢谢 【参考方案1】:只要想办法解决这个问题:使用 sql 之类的:
> a <- tbl(myRedshift, sql("SELECT * FROM aaa.a1.base_posdata"))
问题解决了
【讨论】:
以上是关于如何使用 dplyr 和 RPostgreSQL 将 r 连接到 redshift?的主要内容,如果未能解决你的问题,请参考以下文章
R 在使用 dplyr 或 RPostgreSQL 的模式下访问 redshift 表
如何使用 libssl 和 libpg 和 SSL 激活编译 RpostgreSQL