这是一个后续/更新的问题:
AWS dynamodb 支持"R"编程语言
我正在寻找有关如何将表中从 DynamoDB 读取到 R 的示例或文档。
这个问题为我指明了正确的方向:
R + httr 和 EC2 API 身份验证问题
(由伟大的@hadley本人回答!
如果我必须使用 httr 然后解析 json 响应,那没关系,但我什至无法弄清楚如何格式化 POST 请求。
谢谢!
从这里重复我的答案,因为有人向我发送了这个页面,询问了类似的问题。
下面是我用于将数据从 DynamoDB 读取到 R 的简化版本。它依赖于R和Python可以交换数据的事实,而Python中名为boto的库使得从DynamoDB获取数据变得非常容易。如果这都是一个R包,那就太好了,但考虑到您可以从亚马逊获得的25GB免费存储空间,我不会抱怨。
首先,你需要一个像query_dynamo.py这样命名的 Python 脚本:
import boto3
import time
dynamodb = boto3.resource('dynamodb',
aws_access_key_id='<GET ME FROM AWS>',
aws_secret_access_key='<ALSO GET ME FROM AWS CONSOLE>',
region_name='us-east-1')
table = dynamodb.Table('comment') ###Your table name in DynamoDB here
response = table.scan()
data = response['Items']
while 'LastEvaluatedKey' in response:
response = table.scan(ExclusiveStartKey=response['LastEvaluatedKey'])
data.extend(response['Items'])
然后在 R 中执行此操作。如果你在Windows上尝试这个,你可能想尝试rPython-win。我在 Ubuntu Linux 16.04 LTS 上完成了所有这些工作。
library(rPython)
python.load("query_dynamo.py")
temp = as.data.frame(python.get('data'))
df = as.data.frame(t(temp))
rm(temp)
现在,您将拥有一个名为"df"的数据帧,其中包含您在 DynamoDB 中输入的任何内容。
您可以使用 Lambda 函数将更新流式传输到 DynamoDB 表,以连接到 Redshift,就像连接到 SQL 数据库一样,然后针对 Redshift 执行所需的大数据分析。