对AWS DynamoDB的语言支持

时间:2013-09-21 18:35:12

标签: r amazon-web-services amazon-dynamodb httr

这是对此的跟进/更新问题:

AWS dynamodb support for "R" programming language

我正在寻找有关如何从DynamoDB读入表格的示例或文档。

这个问题指出了我正确的方向:

R + httr and EC2 api authentication issues

(伟大的@hadley自己回答!)。

如果我必须使用httr然后解析json响应,这是可以的,但我甚至无法弄清楚如何格式化POST请求。

谢谢!

2 个答案:

答案 0 :(得分:2)

here重复我的回答,因为有人向我发送了此页面,询问了类似的问题。

这是我用于将数据从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中放置的内容。

答案 1 :(得分:0)

您可以stream updates使用Lambda functionConnect to Redshiftconnect to a SQL databasethis post,然后执行针对Redshift所需的大数据分析。

相关问题