поддержка языка r для AWS DynamoDB

Это последующий/обновленный вопрос:

Поддержка AWS dynamodb для языка программирования R

Я ищу примеры или документацию о том, как читать таблицы из DynamoDB в R.

Этот вопрос указал мне правильное направление:

проблемы аутентификации API R + httr и EC2

(отвечает сам великий @hadley!).

Это нормально, если мне нужно использовать httr, а затем анализировать ответ json, но я даже не могу понять, как отформатировать запрос POST.

Спасибо!


person JayCo    schedule 21.09.2013    source источник
comment
Моя компания (Analytical Flavor Systems) сейчас работает над пакетом с открытым исходным кодом для запросов к DynamoDB из R. Я опубликую ссылку здесь, когда пакет будет выпущен.   -  person JayCo    schedule 30.07.2014
comment
какие-либо обновления для вашего пакета DynamoDB - R?   -  person Markus Schmidberger    schedule 26.08.2014


Ответы (2)


Повторяю свой ответ из здесь, так как кто-то отправил мне эту страницу с подобным вопросом.

Вот упрощенная версия того, что я использую для чтения данных из DynamoDB в R. Она основана на том факте, что R и Python могут обмениваться данными, а также на библиотеке под названием boto в Python упрощает получение данных из DynamoDB. Было бы здорово, если бы все это было в пакете R, но я не буду жаловаться, учитывая 25 ГБ бесплатного хранилища, которое вы можете получить от Amazon.

Во-первых, вам нужен скрипт Python с именем query_dynamo.py:

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.

person CalZ    schedule 01.05.2017
comment
Просто отметил это. - person CalZ; 01.05.2017

Вы можете потоковые обновления в таблицу DynamoDB с помощью функция Lambda на Подключитесь к Redshift так же, как подключиться к базе данных SQL, а затем выполнить необходимую аналитику больших данных с помощью Redshift.

person Alexander Patrikalakis    schedule 13.02.2017