Hive, Hadoop এর ওপর নির্মিত একটি ডেটাবেস ব্যবস্থাপনা সিস্টেম, যেখানে ডেটা বিশ্লেষণের জন্য বিভিন্ন ধরনের JOIN অপারেশন ব্যবহৃত হয়। JOIN অপারেশনগুলোর মাধ্যমে একাধিক টেবিলের ডেটা একত্রিত করা সম্ভব। Hive-এ, INNER JOIN, LEFT JOIN, RIGHT JOIN, এবং FULL JOIN এর মতো JOIN অপারেশন ব্যবহার করা হয়, যা ডেটাবেসের টেবিলগুলো থেকে সম্পর্কিত ডেটা বের করার জন্য ব্যবহৃত হয়।
এখানে প্রতিটি JOIN অপারেশন এবং তার ব্যবহার সম্পর্কে বিস্তারিত আলোচনা করা হলো।
INNER JOIN
INNER JOIN দুটি টেবিলের মধ্যে এমন রেকর্ডগুলো নির্বাচন করে যেখানে উভয় টেবিলের মধ্যে এক বা একাধিক কলামের মান মিলে। অর্থাৎ, যেখানে দুটি টেবিলের কলামের মান মিলবে, সেখানে শুধুমাত্র ডেটা থাকবে। যদি কোনো রেকর্ড একটি টেবিলের সাথে মিলে কিন্তু অন্য টেবিলের সাথে না মেলে, তবে সেই রেকর্ডটি রেজাল্টে অন্তর্ভুক্ত হবে না।
ব্যবহার:
SELECT a.id, a.name, b.department
FROM employees a
INNER JOIN departments b
ON a.department_id = b.id;
এখানে, employees এবং departments টেবিলের মধ্যে department_id এবং id কলামের মান মেলানো হয়েছে, এবং শুধুমাত্র সেই রেকর্ডগুলো দেখানো হবে যেখানে উভয় টেবিলের মান মেলে।
LEFT JOIN (বা LEFT OUTER JOIN)
LEFT JOIN (বা LEFT OUTER JOIN) এমন একটি JOIN অপারেশন যা বামপাশের টেবিলের সব রেকর্ড এবং ডানপাশের টেবিলের সাথে মিল পাওয়া রেকর্ডগুলো নির্বাচন করে। অর্থাৎ, বামপাশের টেবিলের সব রেকর্ড থাকবে এবং ডানপাশের টেবিলের সাথে মিল না পেলে NULL মান দেখাবে।
ব্যবহার:
SELECT a.id, a.name, b.department
FROM employees a
LEFT JOIN departments b
ON a.department_id = b.id;
এখানে, employees টেবিলের সব রেকর্ড থাকবে এবং যেসব রেকর্ডের department_id departments টেবিলের id এর সাথে মেলে, তাদের সম্পর্কিত department নামক কলামটি দেখানো হবে। যদি কোনো রেকর্ডে মিল না পাওয়া যায়, তবে department কলামে NULL দেখানো হবে।
RIGHT JOIN (বা RIGHT OUTER JOIN)
RIGHT JOIN (বা RIGHT OUTER JOIN) এমন একটি JOIN অপারেশন যা ডানপাশের টেবিলের সব রেকর্ড এবং বামপাশের টেবিলের সাথে মিল পাওয়া রেকর্ডগুলো নির্বাচন করে। এটি LEFT JOIN এর বিপরীত, অর্থাৎ ডানপাশের টেবিলের সমস্ত রেকর্ড থাকবে এবং বামপাশের টেবিলের সাথে মিল না পেলে NULL মান দেখাবে।
ব্যবহার:
SELECT a.id, a.name, b.department
FROM employees a
RIGHT JOIN departments b
ON a.department_id = b.id;
এখানে, departments টেবিলের সব রেকর্ড থাকবে এবং যেসব রেকর্ডের id employees টেবিলের department_id এর সাথে মেলে, তাদের সম্পর্কিত name দেখানো হবে। যদি কোনো রেকর্ডে মিল না পাওয়া যায়, তবে name কলামে NULL দেখানো হবে।
FULL JOIN (বা FULL OUTER JOIN)
FULL JOIN (বা FULL OUTER JOIN) দুটি টেবিলের সব রেকর্ড নিয়ে আসে। এটি LEFT JOIN এবং RIGHT JOIN এর সংমিশ্রণ, যেখানে উভয় টেবিলের সব রেকর্ড থাকবে এবং যদি কোনো রেকর্ডের মিল না পাওয়া যায়, তবে সেই কলামে NULL দেখানো হবে।
ব্যবহার:
SELECT a.id, a.name, b.department
FROM employees a
FULL JOIN departments b
ON a.department_id = b.id;
এখানে, উভয় টেবিলের সব রেকর্ড থাকবে। যেসব রেকর্ডে মিল পাওয়া যাবে, তাদের মধ্যে সম্পর্কিত ডেটা দেখানো হবে, এবং যেসব রেকর্ডের মিল পাওয়া যাবে না, তাদের জন্য NULL মান দেখানো হবে।
JOIN অপারেশনগুলোর মধ্যে পার্থক্য
| JOIN Type | বর্ণনা |
|---|---|
| INNER JOIN | উভয় টেবিলের মিল থাকা রেকর্ডগুলো নির্বাচন করা হয়। অন্যথায়, মিল না হলে রেকর্ড বাদ দেয়া হয়। |
| LEFT JOIN | বামপাশের টেবিলের সব রেকর্ড এবং ডানপাশের টেবিলের সাথে মিল পাওয়া রেকর্ডগুলো নির্বাচন করা হয়। মিল না থাকলে NULL দেখায়। |
| RIGHT JOIN | ডানপাশের টেবিলের সব রেকর্ড এবং বামপাশের টেবিলের সাথে মিল পাওয়া রেকর্ডগুলো নির্বাচন করা হয়। মিল না থাকলে NULL দেখায়। |
| FULL JOIN | উভয় টেবিলের সব রেকর্ড থাকে, মিল না থাকলে NULL দেখানো হয়। |
উপসংহার
Hive-এ INNER JOIN, LEFT JOIN, RIGHT JOIN, এবং FULL JOIN অপারেশনগুলি ডেটা বিশ্লেষণের জন্য শক্তিশালী টুলস। প্রতিটি JOIN ধরনের নিজস্ব সুবিধা এবং কার্যকারিতা রয়েছে, এবং সেগুলি নির্ভর করে কুয়েরি অনুযায়ী কোন রেকর্ডগুলি দরকার। JOIN অপারেশনগুলো ডেটার মধ্যে সম্পর্ক স্থাপন করে এবং বিভিন্ন টেবিল থেকে প্রয়োজনীয় ডেটা একত্রিত করতে সহায়তা করে, যা ডেটা বিশ্লেষণে গুরুত্বপূর্ণ ভূমিকা পালন করে।
Read more