2015-01-23 13 views
5

से डेटा कॉपी करना मेरे पास 500 मिलियन रिकॉर्ड युक्त MySQL में एक तालिका है।MySQL से अमेज़ॅन DynamoDB

  1. जावा एपीआई: इस दृष्टिकोण के साथ समस्या यह है कि यह धीमी है, यह भी डेटाबेस के लिए कनेक्शन कभी कभी गिरा दिया जाता है मैं आयात करने के लिए अमेज़न DynamoDB.I के लिए इस तालिका को समझने वहाँ यह करने के लिए दो तरीके हैं चाहता हूँ।

  2. अमेज़ॅन डेटा आयात पाइपलाइन: वादा करता है, लेकिन मैं डायनामो डीबी द्वारा मान्यता प्राप्त प्रारूप में MySQL से डेटा कैसे निर्यात करूं?

कृपया मुझे दोनों के बीच सबसे अच्छा संभव दृष्टिकोण दें।

उत्तर

7

एडब्ल्यूएस में दो सेवाएं हैं जो आपको ऑपरेशन करने में मदद कर सकती हैं।

  • डाटा पाइपलाइन
  • ईएमआर हाइव

डाटा पाइपलाइन

एक बहुत ही सरल तरीके के साथ क्लस्टर - अगर आपकी "स्कीमा" इसी तरह के हैं (मैं हमेशा स्कीमा के बारे में बात करने के लिए अजीब लगता डायनेमोडीबी के लिए) - MySQL से S3 तक निर्यात करना होगा, फिर S3 से डायनेमो डीबी में आयात करना होगा।

डाटा पाइपलाइन सेटअप तुमको कार्यों

http://docs.aws.amazon.com/datapipeline/latest/DeveloperGuide/dp-copydata-mysql.html http://docs.aws.amazon.com/datapipeline/latest/DeveloperGuide/dp-importexport-ddb-part1.html

करने में मदद करने के लिए आप आगे एक भी पाइप लाइन है कि आयात और निर्यात प्रदर्शन के विकास के द्वारा इस प्रक्रिया में सुधार कर सकते दो ट्यूटोरियल है। यदि आपको आयात और निर्यात के बीच डेटा को बदलने की आवश्यकता है, तो आपको अपना परिवर्तन कोड विकसित करना होगा और इसे पाइपलाइन से निष्पादित करना होगा।

डेटा पाइपलाइन शर्तों में, यह एक गतिविधि कहलाता है। एक गतिविधि एक शेल स्क्रिप्ट के रूप में सरल हो सकती है या एक ईएमआर पर चल रहे एक हाइव/हडोप/पिग एप्लिकेशन के रूप में जटिल हो सकती है। http://docs.aws.amazon.com/datapipeline/latest/DeveloperGuide/dp-concepts-activities.html

डेटा पाइपलाइन आपको नियमित समय अंतराल पर अपना निष्पादन भी निर्धारित करने देगी।

हाइव और ईएमआर

हाइव एसक्यूएल डेटा स्रोतों में हेरफेर करने के आदेशों लिखने के लिए एक Hadoop उपकरण है। हाइव एसक्यूएल को एक हडोप एप्लिकेशन में अनुवाद करता है जो क्लस्टर पर चलाया जाता है। आप एडब्ल्यूएस लोचदार मानचित्र क्लस्टर को कम करें (एक प्रबंधित सेवा हैडऑप क्लस्टर) पर हाइव चला सकते हैं।

ईएमआर पर हाइव गैर रिलेशन डेटा स्रोतों से कनेक्ट हो सकता है, जैसे S3 या DynamoDB डेटाबेस पर फ़ाइलें। यह आपको डायनेमो डीबी के शीर्ष पर एसक्यूएल कथन लिखने की अनुमति देता है!

आपके उपयोग के मामले में, आपको एक हाइव स्क्रिप्ट लिखनी होगी जो MySQL से पढ़ेगी और डायनेमो डीबी को लिखें। आप मानक (हाइव) एसक्यूएल एक्सप्रेशन का उपयोग कर डेटा को बदल सकते हैं।

हाइव के बारे में अधिक ईएमआर पर: http://docs.aws.amazon.com/ElasticMapReduce/latest/DeveloperGuide/emr-hive.html

DynamoDB और हाइव के बारे में अधिक: http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/EMRforDynamoDB.Walkthrough.html http://docs.aws.amazon.com/ElasticMapReduce/latest/DeveloperGuide/EMRforDynamoDB.html

0

अन्य जवाब के अलावा, मुझे लगता है कि dynamodb के लिए csv या tsv प्रारूप फ़ाइलों को पहचानता है उल्लेख करना चाहते हैं आयात। हम csv फ़ाइल से थोक लोड डेटा में लोचदार मानचित्र को कम करके HIVE एसक्यूएल का भी उपयोग कर सकते हैं। केवल एक चीज जिस पर हमें विचार करने की आवश्यकता है - अगर हम csv पर टेबल डंप करने के लिए विंडोज का उपयोग करते हैं तो हमें यह सुनिश्चित करना होगा कि विंडोज सिस्टम \r\n की लाइन समाप्त होने से लाइन को \n द्वारा प्रतिस्थापित किया जा सके ताकि इसे अमेज़ॅन के साथ अनुपालन किया जा सके।

+0

मेरा उत्तर @ प्रभु को पूरा करने के लिए धन्यवाद। मैंने भी HIVE का उल्लेख किया। कृपया ध्यान दें कि कनवर्ट करना \ r \ n से \ n एक अमेज़ॅन आवश्यकता नहीं है लेकिन \ n यूनिक्स सिस्टम और लिनक्स के लिए लाइन समाप्ति के लिए मानक है। –

+0

जो हमेशा दर्द होता है! हर जगह – OK999

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