Presto Query Execution Plan (QEP) হল একটি ডকুমেন্টেশন বা ডায়াগ্রাম যা SQL কোয়েরি এক্সিকিউশনের প্রতিটি ধাপকে বিশ্লেষণ করে। এটি কোয়েরি অপ্টিমাইজেশন, কোয়েরি সম্পাদন এবং কার্যকরী ফলাফল লাভের জন্য গুরুত্বপূর্ণ একটি সরঞ্জাম। Presto QEP আপনাকে একটি কোয়েরি কিভাবে সম্পাদিত হচ্ছে এবং কোয়েরির বিভিন্ন ধাপে কীভাবে ডেটা প্রসেস করা হচ্ছে তা বুঝতে সাহায্য করে।
Presto এর Query Execution Plan বিভিন্ন ধাপে বিভক্ত থাকে, যার মধ্যে প্রধানত কোয়েরি পরিকল্পনা, কোয়েরি পার্সিং, কোয়েরি অপ্টিমাইজেশন, ডিস্ট্রিবিউটেড প্রসেসিং, এবং ফলাফল পুনরুদ্ধার অন্তর্ভুক্ত।
প্রথমে, Presto কোয়েরি টেক্সটটি পঠনযোগ্য আকারে প্রক্রিয়া করে। এটি SQL কোয়েরিকে একটি অভ্যন্তরীণ রূপে (abstract syntax tree - AST) রূপান্তরিত করে, যা পরবর্তী প্রক্রিয়ার জন্য প্রস্তুত।
এটি এক্সিকিউশন প্ল্যান তৈরি করার প্রথম ধাপ। Presto কোয়েরি থেকে বিভিন্ন উপাদান এবং অপারেশন আলাদা করে এবং অপারেশনাল প্ল্যান তৈরির জন্য এগুলোর অর্ডার নির্ধারণ করে। এখানে নিম্নলিখিত ধাপগুলো অন্তর্ভুক্ত থাকতে পারে:
Presto কোয়েরি পরিকল্পনার পরবর্তী ধাপে অপ্টিমাইজেশন প্রক্রিয়া চলে। এখানে কোয়েরি প্ল্যানটি অপ্টিমাইজ করা হয়, যাতে এটি আরও কার্যকরভাবে চালানো যায়। Presto কিছু সাধারণ অপ্টিমাইজেশন কৌশল ব্যবহার করে:
Presto একটি ডিস্ট্রিবিউটেড SQL ইঞ্জিন হওয়ায়, কোয়েরি এক্সিকিউশন প্ল্যান একাধিক Worker Node এর মধ্যে বিভক্ত করা হয়। Presto Coordinator এই কাজটি পরিচালনা করে এবং Worker Node গুলিকে নির্দিষ্ট কাজ (টাস্ক) দেয়।
কোয়েরি এক্সিকিউশনের শেষে, Worker Node গুলি তাদের প্রক্রিয়া করা ফলাফলটি Coordinator-এ পাঠায়, যা সবগুলো ফলাফল একত্রিত করে শেষ ফলাফল প্রস্তুত করে এবং ব্যবহারকারীকে সরবরাহ করে।
Presto কোয়েরি এক্সিকিউশনের পরিকল্পনা দেখতে আপনি EXPLAIN কিওয়ার্ড ব্যবহার করতে পারেন।
উদাহরণ:
EXPLAIN SELECT * FROM hive.default.orders WHERE order_status = 'shipped';
এটি আপনাকে কোয়েরি এক্সিকিউশনের পরিকল্পনা দেখাবে, যেখানে প্রতিটি স্টেপে কী ঘটছে এবং কীভাবে Presto কোয়েরিটি কার্যকর করছে, তা বিশ্লেষণ করা যাবে।
Presto-এর Query Execution Plan কিছু মূল অংশে বিভক্ত থাকে:
GROUP BY
বা COUNT
অপারেশন থাকে, তাহলে এখানে সেই Aggregation প্রক্রিয়া করা হয়।Presto Query Execution Plan আপনাকে একটি কোয়েরি কিভাবে সম্পাদিত হচ্ছে তা বিস্তারিতভাবে দেখায়। এটি কোয়েরি অপ্টিমাইজেশন এবং ডিবাগিংয়ের জন্য অত্যন্ত গুরুত্বপূর্ণ একটি টুল, বিশেষত বড় ডেটাসেট বা জটিল কোয়েরি সম্পাদন করার সময়। Presto-তে EXPLAIN
কিওয়ার্ড ব্যবহার করে আপনি আপনার কোয়েরির এক্সিকিউশন প্ল্যান দেখতে এবং তার ভিত্তিতে প্রয়োজনীয় অপ্টিমাইজেশন করতে পারবেন।
Read more