यह सवाल पहले से ही अभी तक एडब्ल्यूएस मंचों पर पोस्ट किया गया है, लेकिन करने के लिए हास्यास्पद धीमी राईट रहता अनुत्तरित https://forums.aws.amazon.com/thread.jspa?threadID=94589अमेज़न DynamoDB (PHP एपीआई)
मैं कम आइटम की एक लंबी सूची की एक आरंभिक अपलोड (प्रदर्शन करने के लिए कोशिश कर रहा हूँ उनमें से लगभग 120 मिलियन), उन्हें बाद में अद्वितीय कुंजी द्वारा पुनर्प्राप्त करने के लिए, और यह डायनेमो डीबी के लिए एक आदर्श मामला जैसा लगता है।
हालांकि, मेरी वर्तमान लेखन गति बहुत धीमी है (प्रति 100 लिखने में लगभग 8-9 सेकंड) जो प्रारंभिक अपलोड लगभग असंभव बनाता है (इसमें वर्तमान गति के साथ लगभग 3 महीने लगेंगे)।
मैं एडब्ल्यूएस मंचों एक जवाब की तलाश में पढ़ा है और पहले से ही निम्नलिखित बातें करने की कोशिश की:,
मैं एकल "put_item" से बदल 25 मदों की बैच राईट (अनुशंसित अधिकतम बैच लिखने आकार) पर कॉल करता है और मेरी प्रत्येक वस्तु 1 केबी से छोटी है (जिसे भी अनुशंसित किया जाता है)। मेरे 25 आइटमों के लिए भी 1 केबी के तहत भी यह बहुत सामान्य है, लेकिन इसकी गारंटी नहीं है (और इससे कोई फर्क नहीं पड़ता क्योंकि मुझे लगता है कि डायनेमोडीबी के लिए केवल एक आइटम आकार महत्वपूर्ण है)।
मैं हाल ही में पेश किए गए ईयू क्षेत्र (मैं ब्रिटेन में हूं) का उपयोग set_region ('dynamodb.eu-west-1.amazonaws.com') पर कॉल करके सीधे अपने प्रवेश बिंदु को निर्दिष्ट करता हूं क्योंकि स्पष्ट रूप से कोई अन्य तरीका नहीं है PHP एपीआई में ऐसा करने के लिए। एडब्ल्यूएस कंसोल से पता चलता है कि एक उचित क्षेत्र में तालिका, जो काम करता है।
मैंने अक्षम_एसएसएल() (100 प्रति रिकॉर्ड 1 सेकंड प्राप्त करने) को कॉल करके SSL अक्षम कर दिया है।
फिर भी, 100 आइटमों का परीक्षण सेट (25 आइटमों के लिए 4 बैच लिखने के कॉल) इंडेक्स में 8 सेकंड से कम नहीं लेते हैं। प्रत्येक बैच लिखने के अनुरोध में लगभग 2 सेकंड लगते हैं, इसलिए यह पहला नहीं है जैसे तत्काल है और परिणामस्वरूप अनुरोध धीमे होते हैं।
मेरी तालिका प्रावधान थ्रूपुट 100 लिखने और 100 पढ़ने वाली इकाइयां हैं जो अब तक पर्याप्त होनी चाहिए (उच्च सीमाओं के साथ-साथ मामले में, कोई प्रभाव नहीं)।
मुझे यह भी पता है कि अनुरोध क्रमिकरण पर कुछ खर्च हैं, इसलिए शायद मैं अपने अनुरोधों को "जमा" करने के लिए कतार का उपयोग कर सकता हूं, लेकिन क्या यह वाकई बैच_writes के लिए बहुत मायने रखता है? और मुझे नहीं लगता कि यह समस्या है क्योंकि यहां तक कि एक भी अनुरोध बहुत लंबा लगता है।
मैंने पाया कि कुछ लोग अनुरोधों को गति देने के लिए एपीआई में कर्ल हेडर ("अपेक्षा:" विशेष रूप से) को संशोधित करते हैं, लेकिन मुझे नहीं लगता कि यह एक उचित तरीका है, और एपीआई को तब से अपडेट किया गया है सलाह पोस्ट की गई थी।
मेरा एप्लिकेशन चालू होने वाला सर्वर ठीक है - मैंने पढ़ा है कि कभी-कभी सीपीयू लोड छत के माध्यम से जाता है, लेकिन मेरे मामले में सबकुछ ठीक है, यह केवल नेटवर्क अनुरोध है जो बहुत लंबा लगता है।
मैं अब अटक गया हूं - क्या मैं कुछ और कोशिश कर सकता हूं? अगर मैंने पर्याप्त प्रदान नहीं किया है तो कृपया अधिक जानकारी मांगने के लिए स्वतंत्र महसूस करें।
अन्य हालिया धागे, जाहिर है, एक ही समस्या पर, here (हालांकि अब तक कोई जवाब नहीं है)।
यह सेवा अल्ट्रा-फास्ट होने वाली है, इसलिए मैं वास्तव में बहुत ही शुरुआत में उस समस्या से परेशान हूं।
लगता है जैसे आपको SQL सर्वर जैसे संबंधपरक डेटाबेस की आवश्यकता है। बस 'SqlBulkCopy' डेटा में। SQL सर्वर वेब स्केल है, अगर आप पूछ रहे हैं। –
मुझे यहां डीबी रिलेशनल की आवश्यकता नहीं है (यह कोई वास्तविक सूचकांक वाला वास्तविक सूचकांक नहीं है) लेकिन हाँ, अगर मेरे पास कोई अन्य विकल्प नहीं है तो मैं अपने एसक्यूएल या सोलर को पीछे हटने की सोच रहा हूं। फिर भी अभी भी मैं समझने के लिए उत्सुक हूं कि उस दृष्टिकोण के साथ क्या गलत है। – Yuriy
आपकी फ़ोरम पोस्ट को उत्तर दिया गया है: https://forums.aws.amazon.com/thread.jspa?messageID=365597#365597 –