【发布时间】:2018-06-21 04:11:52
【问题描述】:
我想用 R 连接到 DynamoDB。我的最终目标是创建一个闪亮的应用程序来显示存储在 DynamoDB 中并经常更新的数据。所以我需要一种有效的方法来使用 R 检索它。
以下参考资料提供了一种直觉,但它们不包括 R 中的本机实现,并且很长时间没有更新。
r language support for AWS DynamoDB
AWS dynamodb support for "R" programming language
R + httr and EC2 api authentication issues
正如上面的答案中提到的,通过rPython 在 R 中运行 Python 将是一个选项,因为有用于 Python 的 SDK,例如 boto3。
另一种选择是通过 RJDBC 使用 JDBC 驱动程序,我尝试过:
library(RJDBC)
drv <- JDBC(
driverClass = "cdata.jdbc.dynamodb.DynamoDBDriver",
classPath = "MyInstallationDir\lib\cdata.jdbc.dynamodb.jar",
identifier.quote = "'"
)
conn <- dbConnect(
drv,
"Access Key=xxx;Secret Key=xxx;Domain=amazonaws.com;Region=OREGON;"
)
(Access Key 和 Secret Key 替换为 xxx)我得到了错误:
Error in .verify.JDBC.result(jc, "Unable to connect JDBC to ", url) : Unable to connect JDBC to Access Key=xxx;Secret Key=xxx;Domain=amazonaws.com;Region=OREGON;
在这个问题上最好的做法是什么? R 是否有可行的本地解决方案?如果有人能指出我正确的方向,我将不胜感激。
注意:包 aws.dynamodb (https://github.com/cloudyr/aws.dynamodb) 看起来很有希望,但文档缺少示例,我找不到任何教程。
【问题讨论】:
-
您是否尝试过 AWS API 文档?您可以使用简单的 HTTP 调用与 Dynamo 进行交互,不需要用于 python 或 R 的高级 SDK...docs.aws.amazon.com/amazondynamodb/latest/APIReference/…
-
@RenatoByrro;我尝试过,但发现它非常痛苦。我对 HTTP 调用没有太多经验。非常欢迎您在下面发布示例解决方案。
-
我对 R 不熟悉。在 Python 中连接到外部数据库是一件小事,而且它的数据科学库非常强大。机会是您在 R 中尝试做的任何事情,在 Python 中也有一种方法可以做。您的用例不可以选择仅依赖 Python 而不是 R 吗?
-
R 也为关系数据库提供了非常强大的工具,但对于 NoSQL 则没有。我最终受益于
boto3在构建闪亮应用程序时将数据提取到 R 中。 -
您可能希望在以下包中达到峰值:github.com/Appsilon/shiny.collections。如果基于比 ReThinkDB 更成熟的数据库平台提供这样的东西,那就太好了。
标签: r amazon-web-services amazon-dynamodb rjdbc rpython