gpt4 book ai didi

r - 使用 R 连接到 DynamoDB

转载 作者:行者123 更新时间:2023-12-05 05:15:58 29 4
gpt4 key购买 nike

我想用 R 连接到 DynamoDB。我的最终目标是创建一个 Shiny 的应用程序来显示存储在 DynamoDB 中并经常更新的数据。所以我需要一种使用 R 检索它的有效方法。

以下引用资料提供了一种直觉,但它们不包含 R 中的 native 实现并且很长时间没有更新。

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 ) 看起来很有前途,但文档缺少示例,我找不到任何教程。

最佳答案

我想分享一些更新,以便有相同问题的人可以从这篇文章中受益:

首先,我通过一些调整弄清楚了如何使用 JDBC 驱动程序:

library(DBI)
library(RJDBC)

drv <- JDBC(
driverClass = "cdata.jdbc.dynamodb.DynamoDBDriver",
classPath = "/Applications/CData/CData JDBC Driver for DynamoDB 2018/lib/cdata.jdbc.dynamodb.jar",
identifier.quote = "'"
)

conn <- dbConnect(
drv,
url = 'jdbc:dynamodb: Access Key=xxx; SecretKey=xxx; Domain=amazonaws.com; Region=OREGON;'
)

dbListTables(conn)

其次,我意识到 reticulate 使得在 R 中运行 Python 代码变得非常方便(甚至比 rPython 更方便)并最终使用 reticulate boto3 将数据从 DynamoDB 获取到 R。您可以引用以下文档以获取更多信息:
reticulate
boto3 - DynamoDB

最后,我听说 RStudio 正在计划构建一个 NoSQL 数据库驱动程序(它将与 DBIdbplyrpool 等兼容.) 但可能不会很快推出。

随着 AWS 越来越流行,希望有人能为 AWS 创建一个像 boto3 一样全面的 R 包。

关于r - 使用 R 连接到 DynamoDB,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50960247/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com