2013-01-08 14 views
5

क्या कोई भी प्रोग्रामिंग भाषा का उपयोग करके अमेज़ॅन डायनेमोड में सफलतापूर्वक CRUD रिकॉर्ड करने में सक्षम है? मैं भाषा बाइंडिंग के इस संदर्भ समर्थित पाया:"आर" प्रोग्रामिंग भाषा के लिए AWS डायनेमोड समर्थन

http://aws.typepad.com/aws/2012/04/amazon-dynamodb-libraries-mappers-and-mock-implementations-galore.html

ओह, कोई आर हम एक बड़े पैमाने पर डेटा का उपयोग कर परियोजना के लिए dynamodb विचार कर रहे हैं, लेकिन हमारी मुख्य विश्लेषक आर में सबसे ज्यादा आरामदायक है, इसलिए हम तलाश रहे हैं हमारे विकल्प।

+0

मैंने इस उद्देश्य के लिए आर पैकेज बनाने पर विचार किया है, लेकिन आखिरकार इसके बजाय php का उपयोग करने का निर्णय लिया। यहां अपना दस्तावेज बनाने के लिए आपको दस्तावेज देना होगा, मुझे लगता है: http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/MakingHTTPRequests.html आप शायद आरसीआरएल पैकेज का उपयोग करना चाहेंगे एपीआई – Rguy

+0

तक पहुंचने में सहायता मैंने डायनेमोड के लिए पायथन कोड पर एक त्वरित रूप से देखा था, और ऐसा लगता है कि आपको पहले बहुत कम स्तर के सामान्य अमेज़ॅन एपीआई एक्सेस सामग्री को लागू करना होगा। मुझे संदेह है कि आर ने अभी तक आर में ऐसा किया है। आप कुछ पायथन कोड को कॉल करने के लिए 'system' का उपयोग कर सकते हैं, लेकिन आप कुछ दक्षता खो देंगे। – Spacedman

+0

ईएमआर पर एस 3 या एचडीएफएस के साथ काम करने के लिए मौजूदा आर पुस्तकालयों का उपयोग करना संभव होगा, और – Guy

उत्तर

1

इस के लिए कई दृष्टिकोण हैं ... मेरे दो जोड़ते हैं: हाइव और स्ट्रीमिंग के साथ

1- ईएमआर।

हाइव DynamoDB क्वेरी करने के लिए इस्तेमाल किया जाएगा और उस Haddop स्ट्रीमिंग के लिए एक इनपुट के रूप में इस्तेमाल किया जा सकता है, कि किसी भी भाषा कि पढ़ सकते हैं और मानक आईओ से लिखना, आर

सहित बेशक

कि होगा सकता है के साथ इस्तेमाल किया जा सकता अपने सामान्य आर कार्यक्रम और पर्यावरण से बहुत अलग हो, लेकिन यह "बड़े डेटा" उपकरण का लाभ उठाएगा।

2- JVM में आर-ish

आप JVM के लिए एक अनुसंधान दुभाषिया (जैसे Renjin रूप में) या JVM में एक इसी तरह की भाषा का उपयोग करते हैं, तो आप एडब्ल्यूएस जावा SDK और DynamoDB का उपयोग करने में सक्षम होगा पुस्तकालय सीधे, और यह डेवलपर के लिए अधिक परिचित हो सकता है, लेकिन आप अपने डेटा के "bigness" को संभालने के लिए जिम्मेदार होंगे।

2

डायनेमो डीबी से डेटा में पढ़ने के लिए मैं जो उपयोग कर रहा हूं उसका एक सरलीकृत संस्करण यहां है। यह इस तथ्य पर निर्भर करता है कि आर और पायथन डेटा का आदान-प्रदान कर सकते हैं, और पाइथन में boto नामक लाइब्रेरी को डेटा प्राप्त करना वास्तव में आसान बनाता है DynamoDB। अगर यह सब एक आर पैकेज था, तो यह साफ होगा, लेकिन मैं 25 जीबी मुफ्त स्टोरेज को अमेज़ॅन से प्राप्त कर सकता हूं।

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']) 

फिर आर में आप यह करते हैं:

सबसे पहले, आप ऐसा नाम query_dynamo.py की तरह एक अजगर स्क्रिप्ट की जरूरत है। यदि आप विंडोज़ पर यह कोशिश कर रहे हैं, तो आप इसके बजाय rPython-win आज़मा सकते हैं। मैंने यह सब उबंटू लिनक्स 16.04 एलटीएस पर किया था।

library(rPython) 


python.load("query_dynamo.py") 
temp = as.data.frame(python.get('data')) 
df = as.data.frame(t(temp)) 
rm(temp) 

अब आपके पास डाइनेमो डीबी में जो कुछ भी रखा गया है, उसके साथ "डीएफ" नामक डेटाफ्रेम होगा।

+0

अनजाने में, मैं इसे काम पर नहीं ला सकता। ऐसा लगता है कि कोड आर के साथ निष्पादित करता है, लेकिन मुझे लगता है कि पाइथन परिणाम आर – StatsStudent

+1

पर वापस लौटने के लिए प्रतीत नहीं होता है, बिना पाइथन स्क्रिप्ट के नीचे उद्धरण के "प्रिंट (डेटा)" जोड़ें और फिर इसे अकेले चलाएं। मेरा पहला अनुमान "डेटा" ऑब्जेक्ट पॉप्युलेट नहीं हो रहा है। – CalZ

+0

ठीक है, इसलिए बहुत सारे घंटों और पीछे और आगे परीक्षण के बाद, मुझे यह विंडोज़ पर काम करने के लिए मिला, लेकिन केवल आंशिक रूप से। मैंने डेवलपर की वेबसाइट पर जो व्यवहार देखा है, उसका विस्तृत विवरण दिया है: https://github.com/cjgb/rPython-win/issues/16। मैं जानना चाहता हूं कि क्या आप इन समस्याओं का अनुभव करते हैं। आपकी मदद के लिए धन्यवाद @ कैलज़! – StatsStudent

संबंधित मुद्दे