जेफिरनेट लोगो

अमेज़ॅन ईएमआर 2.7 | के साथ ट्रिनो क्वेरीज़ को 6.15.0 गुना तेज़ी से चलाएं अमेज़न वेब सेवाएँ

दिनांक:

Trino एक खुला स्रोत वितरित SQL क्वेरी इंजन है जिसे इंटरैक्टिव विश्लेषणात्मक वर्कलोड के लिए डिज़ाइन किया गया है। AWS पर, आप ट्रिनो चला सकते हैं अमेज़ॅन ईएमआर, जहां आपके पास ओपन सोर्स ट्रिनो के अपने पसंदीदा संस्करण को चलाने की सुविधा है अमेज़ॅन इलास्टिक कम्प्यूट क्लाउड (अमेज़ॅन ईसी2) इंस्टेंसेस जिन्हें आप प्रबंधित करते हैं, या चालू अमेज़न एथेना सर्वर रहित अनुभव के लिए. जब आप अमेज़ॅन ईएमआर या एथेना पर ट्रिनो का उपयोग करते हैं, तो आपको मालिकाना, एडब्ल्यूएस विकसित अनुकूलन के साथ नवीनतम ओपन सोर्स सामुदायिक नवाचार मिलते हैं।

अमेज़ॅन ईएमआर 6.8.0 और एथेना इंजन संस्करण 2 से शुरू होकर, एडब्ल्यूएस क्वेरी योजना और इंजन व्यवहार अनुकूलन विकसित कर रहा है जो ट्रिनो पर क्वेरी प्रदर्शन में सुधार करता है। इस पोस्ट में, हम अमेज़ॅन ईएमआर 6.15.0 की तुलना ओपन सोर्स ट्रिनो 426 से करते हैं और दिखाते हैं कि टीपीसी-डीएस क्वेरीज़ अमेज़ॅन ईएमआर 2.7 ट्रिनो 6.15.0 की तुलना में 426 गुना तेजी से चलती हैं। खुला स्रोत ट्रिनो 426. बाद में, हम AWS-विकसित प्रदर्शन अनुकूलन में से कुछ की व्याख्या करते हैं जो इन परिणामों में योगदान करते हैं।

बेंचमार्क सेटअप

हमारे परीक्षण में, हमने अमेज़ॅन एस3 में संपीड़ित लकड़ी के प्रारूप में संग्रहीत 3 टीबी डेटासेट का उपयोग किया और डेटाबेस और तालिकाओं के लिए मेटाडेटा को इसमें संग्रहीत किया गया है। एडब्ल्यूएस गोंद डेटा कैटलॉग. यह बेंचमार्क असंशोधित टीपीसी-डीएस डेटा स्कीमा और तालिका संबंधों का उपयोग करता है। तथ्य तालिकाओं को दिनांक कॉलम पर विभाजित किया गया है और इसमें 200-2100 विभाजन शामिल हैं। किसी भी तालिका के लिए तालिका और स्तंभ आँकड़े मौजूद नहीं थे। हमने ओपन सोर्स ट्रिनो से टीपीसी-डीएस क्वेरीज़ का उपयोग किया गिथब भंडार बिना संशोधन के. बेंचमार्क क्वेरीज़ को दो अलग-अलग अमेज़ॅन ईएमआर 6.15.0 क्लस्टर पर क्रमिक रूप से चलाया गया: एक अमेज़ॅन ईएमआर ट्रिनो 426 के साथ और दूसरा ओपन सोर्स ट्रिनो 426 के साथ। दोनों क्लस्टरों ने 1 r5.4xlarge समन्वयक और 20 r5.4xlarge वर्कर इंस्टेंसेस का उपयोग किया।

परिणाम देखे गए

हमारे बेंचमार्क ओपन सोर्स ट्रिनो की तुलना में अमेज़ॅन ईएमआर 6.15.0 पर ट्रिनो के साथ लगातार बेहतर प्रदर्शन दिखाते हैं। अमेज़ॅन ईएमआर पर ट्रिनो का कुल क्वेरी रनटाइम ओपन सोर्स की तुलना में 2.7 गुना तेज था। निम्नलिखित ग्राफ़ बेंचमार्क क्वेरी के लिए कुल क्वेरी रनटाइम (सेकंड में) द्वारा मापा गया प्रदर्शन सुधार दिखाता है।

टीपीसी-डीएस के कई प्रश्नों ने ओपन सोर्स ट्रिनो की तुलना में पांच गुना अधिक तेजी से प्रदर्शन में वृद्धि का प्रदर्शन किया। कुछ क्वेरीज़ ने और भी बेहतर प्रदर्शन दिखाया, जैसे क्वेरी 72 जिसमें 160 गुना सुधार हुआ। निम्नलिखित ग्राफ़ रनटाइम में सबसे बड़े सुधार के साथ शीर्ष 10 टीपीसी-डीएस क्वेरी दिखाता है। संक्षिप्त प्रतिनिधित्व के लिए और ग्राफ़ में प्रदर्शन सुधारों की विषमता से बचने के लिए, हमने q72 को बाहर कर दिया है।

प्रदर्शन संवर्द्धन

अब जब हम अमेज़ॅन ईएमआर पर ट्रिनो के साथ प्रदर्शन लाभ को समझते हैं, तो आइए एडब्ल्यूएस इंजीनियरिंग द्वारा विकसित कुछ प्रमुख नवाचारों पर गहराई से विचार करें जो इन सुधारों में योगदान करते हैं।

बेहतर क्वेरी प्रदर्शन के लिए बेहतर जॉइन ऑर्डर और जॉइन प्रकार चुनना महत्वपूर्ण है क्योंकि यह प्रभावित कर सकता है कि किसी विशेष तालिका से कितना डेटा पढ़ा जाता है, कितना डेटा नेटवर्क के माध्यम से मध्यवर्ती चरणों में स्थानांतरित किया जाता है, और निर्माण के लिए कितनी मेमोरी की आवश्यकता होती है जुड़ने की सुविधा के लिए एक हैश तालिका। जॉइन ऑर्डर और जॉइन एल्गोरिदम निर्णय आम तौर पर लागत-आधारित ऑप्टिमाइज़र द्वारा किया जाने वाला एक फ़ंक्शन है, जो तालिकाओं और सबक्वेरी को कैसे जोड़ा जाता है, यह तय करके क्वेरी योजनाओं को बेहतर बनाने के लिए आंकड़ों का उपयोग करता है।

हालाँकि, तालिका आँकड़े अक्सर उपलब्ध नहीं होते हैं, पुराने हो चुके होते हैं, या बड़ी तालिकाओं पर एकत्र करने के लिए बहुत महंगे होते हैं। जब आंकड़े उपलब्ध नहीं होते हैं, तो अमेज़ॅन ईएमआर और एथेना क्वेरी योजनाओं को अनुकूलित करने के लिए एस 3 फ़ाइल मेटाडेटा का उपयोग करते हैं। S3 फ़ाइल मेटाडेटा का उपयोग जॉइन ऑर्डर या जॉइन प्रकार का निर्धारण करते समय क्वेरी में छोटी सबक्वेरी और तालिकाओं का अनुमान लगाने के लिए किया जाता है। उदाहरण के लिए, निम्नलिखित क्वेरी पर विचार करें:

SELECT ss_promo_sk FROM store_sales ss, store_returns sr, call_center cc WHERE 
ss.ss_cdemo_sk = sr.sr_cdemo_sk AND ss.ss_customer_sk = cc.cc_call_center_sk 
AND cc_sq_ft > 0

वाक्यात्मक जुड़ाव क्रम है store_sales में मिलती है store_returns में मिलती है call_center. अमेज़ॅन ईएमआर जॉइन प्रकार और ऑर्डर चयन अनुकूलन नियमों के साथ, इष्टतम जॉइन ऑर्डर निर्धारित किया जाता है, भले ही इन तालिकाओं में आंकड़े न हों। पिछली क्वेरी के लिए यदि call_center S3 फ़ाइल मेटाडेटा के माध्यम से अनुमानित आकार का अनुमान लगाने के बाद एक छोटी तालिका मानी जाती है, EMR के जुड़ाव अनुकूलन नियम शामिल हो जाएंगे store_sales साथ में call_center सबसे पहले, जॉइन को ब्रॉडकास्ट जॉइन में परिवर्तित करें, क्वेरी को तेज़ करें और मेमोरी खपत को कम करें। पुनः व्यवस्थित करने से मध्यवर्ती परिणाम का आकार कम हो जाता है, जो समग्र क्वेरी रनटाइम को और कम करने में मदद करता है।

Amazon EMR 6.10.0 और बाद के संस्करण के साथ, S3 फ़ाइल मेटाडेटा-आधारित जॉइन ऑप्टिमाइज़ेशन डिफ़ॉल्ट रूप से चालू होते हैं। यदि आप अमेज़ॅन ईएमआर 6.8.0 या 6.9.0 का उपयोग कर रहे हैं, तो आप ट्रिनो क्लाइंट से सत्र गुणों को सेट करके या अपना क्लस्टर बनाते समय ट्रिनो-कॉन्फ़िगरेशन वर्गीकरण में निम्नलिखित गुणों को जोड़कर इन अनुकूलन को चालू कर सकते हैं। को देखें एप्लिकेशन कॉन्फ़िगर करें किसी एप्लिकेशन के लिए डिफ़ॉल्ट कॉन्फ़िगरेशन को ओवरराइड करने के तरीके के विवरण के लिए।

सम्मिलित प्रकार चयन के लिए कॉन्फ़िगरेशन:

session property: rule_based_join_type_selection=true
config property: rule-based-join-type-selection=true

पुनः क्रम में शामिल होने के लिए कॉन्फ़िगरेशन:

session property: rule_based_join_reorder=true
config property: rule-based-join-reorder=true

निष्कर्ष

अमेज़ॅन ईएमआर 6.8.0 और बाद के संस्करण के साथ, आप ट्रिनो पर ओपन सोर्स ट्रिनो की तुलना में काफी तेजी से क्वेरी चला सकते हैं। जैसा कि इस ब्लॉग पोस्ट में दिखाया गया है, हमारे टीपीसी-डीएस बेंचमार्क ने अमेज़ॅन ईएमआर 2.7 पर ट्रिनो के साथ कुल क्वेरी रनटाइम में 6.15.0 गुना सुधार दिखाया। इस पोस्ट में चर्चा किए गए अनुकूलन, और कई अन्य, एथेना पर ट्रिनो क्वेरी चलाने पर भी उपलब्ध हैं जहां समान प्रदर्शन सुधार देखे गए हैं। अधिक जानने के लिए, देखें नवीनतम अमेज़ॅन एथेना इंजन पर 3% तक लागत बचत के साथ क्वेरीज़ को 70 गुना तेज़ी से चलाएं.

ग्राहकों की ओर से नवाचार करने के हमारे मिशन में, अमेज़ॅन ईएमआर और एथेना अक्सर अपने नवीनतम संस्करणों पर प्रदर्शन और विश्वसनीयता संवर्द्धन जारी करते हैं। जाँचें अमेज़ॅन ईएमआर और अमेज़न एथेना नई सुविधाओं और संवर्द्धन के बारे में जानने के लिए पेज जारी करें।


लेखक के बारे में

-भार्गवी सागी अमेज़ॅन एथेना पर एक सॉफ्टवेयर डेवलपमेंट इंजीनियर है। वह 2020 में AWS में शामिल हुईं और इंजन अपग्रेड, इंजन विश्वसनीयता और इंजन प्रदर्शन सहित अमेज़ॅन EMR और एथेना इंजन V3 के विभिन्न क्षेत्रों पर काम कर रही हैं।

सुशील कुमार शिवशंकर ईएमआर ट्रिनो और एथेना क्वेरी इंजन टीम के लिए इंजीनियरिंग मैनेजर हैं। वह 2014 से बड़े डेटा एनालिटिक्स क्षेत्र में ध्यान केंद्रित कर रहे हैं।

स्पॉट_आईएमजी

नवीनतम खुफिया

स्पॉट_आईएमजी