Presto এর কনসেপ্ট এবং টার্মিনোলজি (Coordinator, Worker)

Database Tutorials - অ্যাপাচি প্রেস্টো (Apache Presto) Presto এর মৌলিক ধারণা |
198
198

Presto একটি ডিস্ট্রিবিউটেড SQL কোয়েরি ইঞ্জিন যা বড় ডেটাসেট দ্রুত এবং কার্যকরীভাবে বিশ্লেষণ করতে সক্ষম। Presto এর আর্কিটেকচার দুটি মূল উপাদানের উপর ভিত্তি করে কাজ করে: Coordinator এবং Worker। এই দুইটি উপাদান মিলে একটি স্কেলেবল এবং উচ্চ-কার্যক্ষম সিস্টেম তৈরি করে, যা ডিস্ট্রিবিউটেড কোয়েরি প্রসেসিং নিশ্চিত করে।


Coordinator (কো-অর্ডিনেটর)

কো-অর্ডিনেটর হল Presto এর কেন্দ্রীয় উপাদান যা সার্বিক কোয়েরি ব্যবস্থাপনা, কোয়েরি প্ল্যানিং এবং ফলাফল সংগ্রহের জন্য দায়ী। এটি একটি বা একাধিক Worker নোডে কাজ ভাগ করে দেয় এবং ফলস্বরূপ আউটপুট তৈরি করে।

কো-অর্ডিনেটরের দায়িত্বসমূহ:

  1. কোয়েরি পরিকল্পনা (Query Planning):
    • কো-অর্ডিনেটর একটি SQL কোয়েরি গ্রহণ করে এবং তার একটি কার্যকরী এক্সিকিউশন প্ল্যান তৈরি করে। এই প্ল্যানটি কোয়েরির জন্য সেরা উপায়ে কাজ সম্পাদন করতে সাহায্য করে।
  2. কাজের বিভাজন (Task Assignment):
    • কো-অর্ডিনেটর কোয়েরির কাজগুলি ছোট ছোট অংশে ভাগ করে এবং এগুলিকে ডিস্ট্রিবিউটেড করা Worker নোডে পাঠায়। এটি নোডগুলির মধ্যে সমন্বয় নিশ্চিত করে।
  3. ফলাফল সংগ্রহ (Result Aggregation):
    • Worker নোডগুলি যখন তাদের কাজ শেষ করে ফলাফল পাঠায়, তখন কো-অর্ডিনেটর সেই ফলাফলগুলি একত্রিত করে এবং ক্লায়েন্টের কাছে প্রেরণ করে।
  4. কোয়েরি ত্রুটি এবং ব্যর্থতা পরিচালনা (Query Failure Handling):
    • যদি কোনও Worker ব্যর্থ হয়, তবে কো-অর্ডিনেটর সেই ত্রুটিটি চিহ্নিত করে এবং কোয়েরি পুনরায় চালানোর জন্য ব্যবস্থা নেয়।

Worker (ওয়ার্কার)

ওয়ার্কার হল Presto সিস্টেমের সেই অংশ যা কো-অর্ডিনেটরের কাছ থেকে কাজ গ্রহণ করে এবং সেই কাজগুলি প্রক্রিয়া করে। এটি ডেটার প্রক্রিয়াকরণ এবং কোয়েরি কার্যকর করার জন্য দায়ী। একাধিক Worker একসাথে কাজ করে বৃহৎ ডেটাসেটের উপর কার্যকরী বিশ্লেষণ করতে।

ওয়ার্কার এর দায়িত্বসমূহ:

  1. কাজের প্রক্রিয়াকরণ (Task Processing):
    • কো-অর্ডিনেটর থেকে কাজ পেলে, Worker সেই কাজগুলি ডেটা প্রক্রিয়া করতে শুরু করে। কাজের ধরন হতে পারে ডেটা ফিল্টার করা, জয়েন অপারেশন, অ্যাগ্রিগেশন প্রক্রিয়া ইত্যাদি।
  2. ফলাফল পাঠানো (Result Sending):
    • Worker যখন কাজ সম্পন্ন করে, তখন সেই ফলাফলগুলি কো-অর্ডিনেটরের কাছে পাঠানো হয়। একাধিক Worker মিলে একটি বড় কাজের ফলাফল একত্রিত করে।
  3. ডেটা স্ক্যানিং (Data Scanning):
    • Worker বিভিন্ন ডেটা সোর্স (যেমন HDFS, S3, বা RDBMS) থেকে ডেটা স্ক্যান করে এবং নির্দিষ্ট কোয়েরি অনুযায়ী সেই ডেটা প্রক্রিয়া করে।
  4. সাব-কোয়েরি এক্সিকিউশন (Subquery Execution):
    • কখনও কখনও, কো-অর্ডিনেটর একটি বড় কোয়েরি ছোট ছোট সাব-কোয়েরিতে ভাগ করে দেয়, যেগুলির এক্সিকিউশনও Worker নোডের দ্বারাই সম্পন্ন হয়।

Presto আর্কিটেকচারের মধ্যে Coordinator এবং Worker এর ভূমিকা

  1. Coordinator (কো-অর্ডিনেটর):
    • প্রধান ভূমিকা: কোয়েরি গ্রহণ, পরিকল্পনা এবং কাজ ভাগ করা।
    • শুধুমাত্র একটি নোডে চলতে পারে, কারণ এটি পুরো সিস্টেমের ব্যবস্থাপনা করে।
  2. Worker (ওয়ার্কার):
    • প্রধান ভূমিকা: ডেটা প্রক্রিয়া করা এবং কোয়েরি এক্সিকিউশন সম্পন্ন করা।
    • একাধিক Worker একসাথে কাজ করে যাতে ডেটা প্রসেসিংয়ের জন্য ভারী লোড বন্টিত হয় এবং স্কেল করা যায়।

Presto আর্কিটেকচারের কাজের প্রবাহ:

  1. SQL কোয়েরি পাঠানো:
    • ক্লায়েন্ট একটি SQL কোয়েরি পাঠায়।
  2. Query Plan তৈরি:
    • কো-অর্ডিনেটর কোয়েরি গ্রহণ করে এবং তার জন্য একটি এক্সিকিউশন প্ল্যান তৈরি করে।
  3. কাজ ভাগ করা:
    • কো-অর্ডিনেটর কাজের অংশগুলিকে Workers-এ ভাগ করে দেয়।
  4. কাজের প্রক্রিয়াকরণ:
    • Workers তাদের কাজগুলো প্রক্রিয়া করে এবং প্রয়োজনীয় ডেটা প্রক্রিয়া করে।
  5. ফলাফল পাঠানো:
    • Worker নোডগুলি ফলাফল কো-অর্ডিনেটরের কাছে পাঠায়, এবং কো-অর্ডিনেটর ফলাফলগুলি একত্রিত করে ক্লায়েন্টের কাছে পাঠিয়ে দেয়।

সারাংশ

Presto এর Coordinator এবং Worker দুটি প্রধান উপাদান, যেগুলি একসাথে কাজ করে একটি ডিস্ট্রিবিউটেড এবং স্কেলেবল কোয়েরি প্রক্রিয়া তৈরি করতে। Coordinator কোয়েরি পরিকল্পনা এবং কাজের বিভাজন পরিচালনা করে, এবং Workers ডেটা প্রসেসিং এবং সাব-কোয়েরি এক্সিকিউশনে সাহায্য করে।

common.content_added_by
টপ রেটেড অ্যাপ

স্যাট অ্যাকাডেমী অ্যাপ

আমাদের অল-ইন-ওয়ান মোবাইল অ্যাপের মাধ্যমে সীমাহীন শেখার সুযোগ উপভোগ করুন।

ভিডিও
লাইভ ক্লাস
এক্সাম
ডাউনলোড করুন
Promotion