Skill

Hive Functions এবং Operators গাইড ও নোট

Big Data and Analytics - হাইভ (Hive)
307

Hive-এ Functions এবং Operators ডেটা প্রসেসিং এবং বিশ্লেষণের জন্য গুরুত্বপূর্ণ ভূমিকা পালন করে। Hive ব্যবহারকারীদের জন্য বিভিন্ন ধরনের বিল্ট-ইন ফাংশন এবং অপারেটর সরবরাহ করে, যা SQL-এর মতো কুয়েরি লিখে ডেটা বিশ্লেষণ এবং পরিবর্তন করতে সহায়তা করে। Hive এর ফাংশন এবং অপারেটরগুলোর মাধ্যমে ডেটাকে সহজে প্রসেস এবং ট্রান্সফর্ম করা যায়, যা বৃহৎ ডেটাসেটের উপর কার্যকরীভাবে কাজ করতে সাহায্য করে।

Hive Functions


Hive-এ বিভিন্ন ধরনের ফাংশন রয়েছে, যেমন String Functions, Mathematical Functions, Date Functions, Aggregation Functions, Collection Functions ইত্যাদি। প্রতিটি ফাংশন ডেটা প্রসেসিং এবং বিশ্লেষণের জন্য নির্দিষ্ট কাজ সম্পাদন করে।

১. String Functions

String ফাংশনগুলো স্ট্রিং ডেটার উপর কাজ করে এবং বিভিন্ন স্ট্রিং অপারেশন সম্পাদন করে।

  • length(string): একটি স্ট্রিংয়ের দৈর্ঘ্য রিটার্ন করে।

    SELECT length('Hive') FROM table;
    
  • concat(string1, string2): দুটি স্ট্রিং যোগ করে।

    SELECT concat('Hello', ' ', 'World') FROM table;
    
  • lower(string): একটি স্ট্রিংয়ের সব ক্যারেকটারকে ছোট হাতের অক্ষরে রূপান্তর করে।

    SELECT lower('HELLO') FROM table;
    
  • upper(string): একটি স্ট্রিংয়ের সব ক্যারেকটারকে বড় হাতের অক্ষরে রূপান্তর করে।

    SELECT upper('hello') FROM table;
    

২. Mathematical Functions

Mathematical ফাংশনগুলো গণনার জন্য ব্যবহৃত হয়।

  • abs(number): একটি সংখ্যা থেকে তার পরিস্কার মান রিটার্ন করে।

    SELECT abs(-10) FROM table;
    
  • round(number, decimal_places): একটি সংখ্যাকে নির্দিষ্ট দশমিক স্থান পর্যন্ত রাউন্ড করে।

    SELECT round(12.3456, 2) FROM table;
    
  • sqrt(number): একটি সংখ্যার বর্গমূল বের করে।

    SELECT sqrt(16) FROM table;
    
  • rand(): একটি র্যান্ডম দশমিক সংখ্যা রিটার্ন করে।

    SELECT rand() FROM table;
    

৩. Date Functions

Date ফাংশনগুলো তারিখ এবং সময়ের উপর কাজ করে।

  • current_date(): বর্তমান তারিখ রিটার্ন করে।

    SELECT current_date() FROM table;
    
  • unix_timestamp(string, format): একটি স্ট্রিং তারিখকে Unix টাইমস্ট্যাম্পে রূপান্তরিত করে।

    SELECT unix_timestamp('2024-12-17', 'yyyy-MM-dd') FROM table;
    
  • from_unixtime(timestamp): একটি Unix টাইমস্ট্যাম্পকে তারিখের মধ্যে রূপান্তরিত করে।

    SELECT from_unixtime(1672444800) FROM table;
    

৪. Aggregation Functions

Aggregation ফাংশনগুলো সাধারণত ডেটার সারাংশ তৈরি করতে ব্যবহৃত হয়।

  • count(*): একটি টেবিলের সারির সংখ্যা রিটার্ন করে।

    SELECT count(*) FROM table;
    
  • sum(column): একটি কলামের মোট মান রিটার্ন করে।

    SELECT sum(amount) FROM table;
    
  • avg(column): একটি কলামের গড় মান রিটার্ন করে।

    SELECT avg(amount) FROM table;
    
  • min(column): একটি কলামের সর্বনিম্ন মান রিটার্ন করে।

    SELECT min(amount) FROM table;
    
  • max(column): একটি কলামের সর্বোচ্চ মান রিটার্ন করে।

    SELECT max(amount) FROM table;
    

৫. Collection Functions

Collection ফাংশনগুলো ব্যবহারকারীদের তালিকা, সেট বা ম্যাপের মতো ডেটা সংগ্রহের সাথে কাজ করতে সহায়তা করে।

  • size(array): একটি অ্যারের আকার রিটার্ন করে।

    SELECT size(array(1, 2, 3)) FROM table;
    
  • map(): একটি ম্যাপ তৈরি করে।

    SELECT map('key1', 'value1', 'key2', 'value2') FROM table;
    

Hive Operators


Hive-এ Operators হল সিম্পল সিম্বল বা শব্দ যা কুয়েরি এক্সপ্রেশন তৈরি করার জন্য ব্যবহৃত হয়। Hive-এ বিভিন্ন ধরনের অপারেটর রয়েছে, যেমন Arithmetic Operators, Comparison Operators, Logical Operators, String Operators, ইত্যাদি।

১. Arithmetic Operators

Arithmetic অপারেটরগুলো গণনা এবং হিসাব করার জন্য ব্যবহৃত হয়।

  • + (Addition): যোগফল।

    SELECT 10 + 20 FROM table;
    
  • - (Subtraction): বিয়োগফল।

    SELECT 20 - 10 FROM table;
    
  • * (Multiplication): গুণফল।

    SELECT 10 * 20 FROM table;
    
  • / (Division): ভাগফল।

    SELECT 20 / 10 FROM table;
    
  • % (Modulus): ভাগশেষ।

    SELECT 20 % 3 FROM table;
    

২. Comparison Operators

Comparison অপারেটরগুলো দুটি মানের মধ্যে তুলনা করতে ব্যবহৃত হয়।

  • = (Equal): সমান।

    SELECT * FROM table WHERE amount = 100;
    
  • != (Not equal): সমান নয়।

    SELECT * FROM table WHERE amount != 100;
    
  • > (Greater than): বড়।

    SELECT * FROM table WHERE amount > 100;
    
  • < (Less than): ছোট।

    SELECT * FROM table WHERE amount < 100;
    
  • >= (Greater than or equal to): বড় অথবা সমান।

    SELECT * FROM table WHERE amount >= 100;
    
  • <= (Less than or equal to): ছোট অথবা সমান।

    SELECT * FROM table WHERE amount <= 100;
    

৩. Logical Operators

Logical অপারেটরগুলো শর্তযুক্ত কুয়েরি তৈরি করতে ব্যবহৃত হয়।

  • AND: দুটি শর্তের উভয়ই সত্য হলে ফলাফল প্রদান করে।

    SELECT * FROM table WHERE amount > 100 AND department = 'HR';
    
  • OR: দুটি শর্তের যেকোনো একটি সত্য হলে ফলাফল প্রদান করে।

    SELECT * FROM table WHERE amount > 100 OR department = 'IT';
    
  • NOT: একটি শর্ত বিপরীত করে।

    SELECT * FROM table WHERE NOT department = 'HR';
    

৪. String Operators

String অপারেটরগুলো স্ট্রিং ডেটার উপর কাজ করে।

  • || (Concatenation): দুটি স্ট্রিং যোগ করে।

    SELECT 'Hello' || ' ' || 'World' FROM table;
    

উপসংহার


Hive-এ Functions এবং Operators ব্যবহার করে ডেটাকে আরও কার্যকরভাবে বিশ্লেষণ এবং প্রক্রিয়াকরণ করা যায়। Hive এর ফাংশনগুলো বিভিন্ন ধরনের ডেটা প্রসেসিং যেমন স্ট্রিং, গাণিতিক, তারিখ, অ্যাগ্রিগেশন এবং কালেকশন প্রসেসিং এর জন্য ব্যবহৃত হয়, এবং অপারেটরগুলো কুয়েরি এক্সপ্রেশন তৈরি করতে সাহায্য করে। Hive এর এই বিল্ট-ইন ফাংশন এবং অপারেটরগুলো ব্যবহারকারীদের জন্য ডেটা বিশ্লেষণের কাজকে সহজ এবং দ্রুত করে তোলে।

Content added By

Built-in Functions (Mathematical, String, Date Functions)

330

Hive, Hadoop প্ল্যাটফর্মের উপরে তৈরি একটি ডেটাবেস ব্যবস্থাপনা সিস্টেম, যা বিভিন্ন ধরনের বিল্ট-ইন ফাংশন সরবরাহ করে ডেটা প্রসেসিং এবং বিশ্লেষণের জন্য। Hive এর Mathematical Functions, String Functions, এবং Date Functions ডেটা ম্যানিপুলেশন এবং বিশ্লেষণে অত্যন্ত সহায়ক।

Mathematical Functions in Hive


Hive-এর Mathematical Functions মূলত গাণিতিক হিসাব করার জন্য ব্যবহৃত হয়। এই ফাংশনগুলো মূলত সংখ্যা, গণনা, এবং গাণিতিক কাজ সম্পাদন করতে সাহায্য করে।

১. ABS(x)

এই ফাংশনটি একটি মানের পরিমাণ বা absolute value প্রদান করে।

উদাহরণ:

SELECT ABS(-100);

এটি 100 রিটার্ন করবে।

২. CEIL(x) / CEILING(x)

এই ফাংশনটি একটি ভাসমান সংখ্যা (floating point) থেকে পরবর্তী পূর্ণসংখ্যা প্রদান করে।

উদাহরণ:

SELECT CEIL(3.14);

এটি 4 রিটার্ন করবে।

৩. FLOOR(x)

এই ফাংশনটি একটি ভাসমান সংখ্যা থেকে পূর্ববর্তী পূর্ণসংখ্যা প্রদান করে।

উদাহরণ:

SELECT FLOOR(3.14);

এটি 3 রিটার্ন করবে।

৪. POWER(x, y)

এই ফাংশনটি x এর উপর y এর পাওয়ার বা exponentiation প্রদান করে।

উদাহরণ:

SELECT POWER(2, 3);

এটি 8 রিটার্ন করবে (2^3 = 8)।

৫. ROUND(x, d)

এই ফাংশনটি একটি সংখ্যা x কে d দশমিক পর্যন্ত রাউন্ড করে দেয়।

উদাহরণ:

SELECT ROUND(3.14159, 2);

এটি 3.14 রিটার্ন করবে।

৬. SQRT(x)

এই ফাংশনটি একটি সংখ্যার বর্গমূল প্রদান করে।

উদাহরণ:

SELECT SQRT(16);

এটি 4 রিটার্ন করবে।


String Functions in Hive


Hive-এর String Functions স্ট্রিং ডেটার সাথে কাজ করার জন্য ব্যবহৃত হয়। এগুলি স্ট্রিং ম্যানিপুলেশন এবং রূপান্তরের জন্য বেশ উপকারী।

১. CONCAT(str1, str2, ...)

এই ফাংশনটি একাধিক স্ট্রিং যোগ করে একটি নতুন স্ট্রিং তৈরি করে।

উদাহরণ:

SELECT CONCAT('Hello', ' ', 'World');

এটি Hello World রিটার্ন করবে।

২. LENGTH(str)

এই ফাংশনটি একটি স্ট্রিং এর দৈর্ঘ্য প্রদান করে।

উদাহরণ:

SELECT LENGTH('Hello');

এটি 5 রিটার্ন করবে।

৩. LOWER(str)

এই ফাংশনটি একটি স্ট্রিংকে ছোট অক্ষরে রূপান্তরিত করে।

উদাহরণ:

SELECT LOWER('HELLO');

এটি hello রিটার্ন করবে।

৪. UPPER(str)

এই ফাংশনটি একটি স্ট্রিংকে বড় অক্ষরে রূপান্তরিত করে।

উদাহরণ:

SELECT UPPER('hello');

এটি HELLO রিটার্ন করবে।

৫. TRIM(str)

এই ফাংশনটি স্ট্রিংয়ের শুরু এবং শেষ থেকে অপ্রয়োজনীয় স্থান (whitespace) সরিয়ে ফেলে।

উদাহরণ:

SELECT TRIM('  hello  ');

এটি hello রিটার্ন করবে।

৬. SUBSTRING(str, start, length)

এই ফাংশনটি স্ট্রিংয়ের একটি অংশ বের করে দেয়, যেখানে start পজিশন এবং length এর মান প্রদান করা হয়।

উদাহরণ:

SELECT SUBSTRING('Hello World', 1, 5);

এটি Hello রিটার্ন করবে।

৭. REPLACE(str, search, replace)

এই ফাংশনটি স্ট্রিংয়ের মধ্যে একটি নির্দিষ্ট অংশ খুঁজে রিপ্লেস করে।

উদাহরণ:

SELECT REPLACE('Hello World', 'World', 'Hive');

এটি Hello Hive রিটার্ন করবে।


Date Functions in Hive


Hive-এর Date Functions ডেটা এবং সময়ের সাথে কাজ করার জন্য ব্যবহৃত হয়। এগুলি সাধারণত তারিখ সম্পর্কিত হিসাব এবং ট্রান্সফরমেশন করতে ব্যবহৃত হয়।

১. CURRENT_DATE

এই ফাংশনটি বর্তমান তারিখ প্রদান করে।

উদাহরণ:

SELECT CURRENT_DATE;

এটি বর্তমান তারিখ যেমন 2024-12-17 রিটার্ন করবে।

২. CURRENT_TIMESTAMP

এই ফাংশনটি বর্তমান তারিখ এবং সময় প্রদান করে।

উদাহরণ:

SELECT CURRENT_TIMESTAMP;

এটি বর্তমান তারিখ এবং সময়, যেমন 2024-12-17 15:30:00 রিটার্ন করবে।

৩. DATE_ADD(date, days)

এই ফাংশনটি একটি নির্দিষ্ট তারিখে কিছু দিন যোগ করে।

উদাহরণ:

SELECT DATE_ADD('2024-12-17', 5);

এটি 2024-12-22 রিটার্ন করবে।

৪. DATE_SUB(date, days)

এই ফাংশনটি একটি নির্দিষ্ট তারিখ থেকে কিছু দিন বিয়োগ করে।

উদাহরণ:

SELECT DATE_SUB('2024-12-17', 5);

এটি 2024-12-12 রিটার্ন করবে।

৫. YEAR(date)

এই ফাংশনটি একটি তারিখ থেকে বছর (year) বের করে।

উদাহরণ:

SELECT YEAR('2024-12-17');

এটি 2024 রিটার্ন করবে।

৬. MONTH(date)

এই ফাংশনটি একটি তারিখ থেকে মাস (month) বের করে।

উদাহরণ:

SELECT MONTH('2024-12-17');

এটি 12 রিটার্ন করবে।

৭. DAY(date)

এই ফাংশনটি একটি তারিখ থেকে দিন (day) বের করে।

উদাহরণ:

SELECT DAY('2024-12-17');

এটি 17 রিটার্ন করবে।

৮. DATEDIFF(date1, date2)

এই ফাংশনটি দুটি তারিখের মধ্যে ফারাক (difference) বের করে।

উদাহরণ:

SELECT DATEDIFF('2024-12-17', '2024-12-10');

এটি 7 রিটার্ন করবে।


উপসংহার


Hive-এর Mathematical Functions, String Functions, এবং Date Functions ডেটা ম্যানিপুলেশন এবং বিশ্লেষণে খুবই কার্যকরী। Mathematical Functions দিয়ে গাণিতিক হিসাব করা যায়, String Functions দিয়ে স্ট্রিংয়ের সঙ্গে কাজ করা যায় এবং Date Functions দিয়ে তারিখ সম্পর্কিত কার্যাবলী সম্পাদন করা যায়। Hive-এর এই বিল্ট-ইন ফাংশনগুলো ডেটাবেসের মধ্যে দ্রুত এবং কার্যকরী বিশ্লেষণ করতে সাহায্য করে, যা বড় ডেটাসেটের প্রক্রিয়াকরণে গুরুত্বপূর্ণ ভূমিকা পালন করে।

Content added By

User Defined Functions (UDF) তৈরি এবং ব্যবহার

407

Hive একটি SQL-এর মতো কুয়েরি ভাষা প্রদান করে, যা ব্যবহারকারীদের জন্য ডেটা বিশ্লেষণ এবং প্রসেসিং খুব সহজ করে তোলে। যদিও Hive অনেক ইনবিল্ট ফাংশন সরবরাহ করে, তবে কখনও কখনও আপনার প্রয়োজন হতে পারে কাস্টম ফাংশন তৈরি করার, যা Hive-এর স্ট্যান্ডার্ড ফাংশন থেকে আলাদা। এই ধরনের কাস্টম ফাংশনগুলিকে User Defined Functions (UDFs) বলা হয়।

UDF (User Defined Functions) হল সেই ফাংশন যা ব্যবহারকারী নিজের প্রয়োজন অনুযায়ী তৈরি করে এবং Hive-এ রান টাইমে ব্যবহার করতে পারে। এটি HiveQL কুয়েরি ভাষার মধ্যে স্ট্যান্ডার্ড ফাংশনগুলির বাইরে একটি কাস্টম লজিক প্রয়োগ করার জন্য ব্যবহৃত হয়। Hive-এ UDF তৈরি করা এবং ব্যবহার করা যায় Java ভাষায়।

UDF কী?


UDF (User Defined Functions) হল Hive-এর জন্য কাস্টম ফাংশন যা ব্যবহারকারী Java কোড লিখে তৈরি করে। এই ফাংশনগুলি HiveQL কুয়েরি ভাষায় সাধারণত একটি বিশেষ কাজের জন্য প্রয়োগ করা হয়, যেমন ডেটা ট্রান্সফর্মেশন বা কাস্টম ক্যালকুলেশন।

UDF তৈরি করার মাধ্যমে আপনি Hive-এর বিল্ট-ইন ফাংশনের মধ্যে যেসব ফিচার নেই, সেগুলিও অন্তর্ভুক্ত করতে পারেন।

UDF তৈরি করার প্রক্রিয়া


Hive-এ একটি UDF তৈরি করতে কিছু নির্দিষ্ট ধাপ অনুসরণ করতে হয়:

১. Java ক্লাস তৈরি করা

প্রথমে, একটি Java ক্লাস তৈরি করতে হবে যা org.apache.hadoop.hive.ql.exec.UDF ক্লাস থেকে বংশপরিচিত হবে। এই ক্লাসটি evaluate() মেথড অন্তর্ভুক্ত করবে, যা কাস্টম লজিক সম্পাদন করবে এবং ফলাফল প্রদান করবে।

উদাহরণ:

package com.example.hive;

import org.apache.hadoop.hive.ql.exec.UDF;
import org.apache.hadoop.io.Text;

public class UpperCaseUDF extends UDF {
    public Text evaluate(Text input) {
        if (input == null) {
            return null;
        }
        return new Text(input.toString().toUpperCase());
    }
}

এটি একটি খুব সাধারণ UDF, যা ইনপুট হিসাবে একটি Text গ্রহণ করে এবং তা Uppercase করে ফেরত দেয়।

২. কম্পাইল করা

Java কোডটি কম্পাইল করতে হবে এবং এটি একটি JAR ফাইল হিসেবে তৈরি করতে হবে, যা Hive-এ ব্যবহার করা যাবে।

javac -classpath `hadoop classpath`:`hive classpath` UpperCaseUDF.java
jar -cf UpperCaseUDF.jar UpperCaseUDF.class

৩. Hive-এ JAR ফাইল লোড করা

আপনার তৈরি করা JAR ফাইলটি Hive-এ লোড করতে হবে। এটি করার জন্য Hive-এর ADD JAR কমান্ড ব্যবহার করা হয়।

ADD JAR /path/to/UpperCaseUDF.jar;

৪. UDF রেজিস্টার করা

একবার JAR ফাইলটি লোড হয়ে গেলে, Hive-এ সেই UDF ব্যবহারের জন্য CREATE FUNCTION কমান্ড ব্যবহার করতে হবে।

CREATE FUNCTION upper_case AS 'com.example.hive.UpperCaseUDF' USING JAR 'hdfs:///user/hive/udfs/UpperCaseUDF.jar';

৫. UDF ব্যবহার করা

এখন আপনি HiveQL কুয়েরি ভাষায় আপনার UDF ব্যবহার করতে পারবেন।

SELECT upper_case(name) FROM employee;

এই কুয়েরিটি employee টেবিলের name কলামের প্রতিটি মানকে Uppercase করে দেখাবে।


UDF তৈরি করার জন্য কিছু গুরুত্বপূর্ণ বিষয়:


  • UDF এক্সটেনশন: Hive-এর UDF তৈরি করার জন্য আপনাকে Java ক্লাসের মধ্যে UDF কনটেইনার এক্সটেন্ড করতে হবে। এটি একটি সাধারণ অভ্যন্তরীণ কাঠামো প্রদান করে যা Hive-এর জন্য ফাংশন তৈরি সহজ করে তোলে।
  • Input/Output টাইপ: UDF তৈরি করার সময় ইনপুট এবং আউটপুট টাইপ সঠিকভাবে নির্ধারণ করতে হবে। এই টাইপগুলি Hive-এর বিল্ট-ইন ডেটা টাইপগুলির মতো হতে পারে যেমন Text, IntWritable, DoubleWritable ইত্যাদি।
  • Null Handling: UDF-এ null ভ্যালুর সঠিক হ্যান্ডলিং করতে হবে। যখন ইনপুট হিসেবে null আসে, তখন উপযুক্ত আচরণ নিশ্চিত করতে হবে। উদাহরণস্বরূপ, আমাদের উপরের উদাহরণে null ইনপুট পেলে null ফেরত দেওয়ার ব্যবস্থা রয়েছে।
  • পারফরম্যান্স: UDF গুলি যখন খুব বড় ডেটাসেটের উপর প্রয়োগ করা হয়, তখন পারফরম্যান্সে প্রভাব ফেলতে পারে। সুতরাং, UDF তৈরি করার সময় এর কার্যকারিতা এবং অপ্টিমাইজেশন গুরুত্বপূর্ন।

UDF এর অন্যান্য ধরণ


  1. UDAF (User Defined Aggregation Function): এই ধরনের ফাংশনগুলি অ্যাগ্রিগেট ফাংশন হিসেবে ব্যবহৃত হয়, যেমন SUM, AVG ইত্যাদির মতো।
  2. UDTF (User Defined Table-Generating Function): এই ধরনের ফাংশনগুলি একাধিক আউটপুট রেকর্ড তৈরি করে এবং সাধারণত একটি একক ইনপুট রেকর্ডের উপর ভিত্তি করে একাধিক আউটপুট রেকর্ড প্রদান করে।

উপসংহার


User Defined Functions (UDFs) Hive-এ কাস্টম লজিক প্রয়োগের জন্য অত্যন্ত গুরুত্বপূর্ণ একটি টুল। এটি ব্যবহারকারীদের স্ট্যান্ডার্ড Hive ফাংশনগুলির বাইরে গিয়ে তাদের নিজের প্রয়োজন অনুযায়ী ফাংশন তৈরি করার সুযোগ দেয়। UDF তৈরি করতে Java ভাষা ব্যবহার করা হয়, এবং একটি JAR ফাইল তৈরি করে Hive-এ লোড করতে হয়। এটি ডেটা প্রক্রিয়াকরণ এবং বিশ্লেষণের জন্য অত্যন্ত উপকারী হতে পারে, বিশেষত যখন ডেটার নির্দিষ্ট কাস্টম ফাংশনের প্রয়োজন হয়।

Content added By

Aggregation Functions (SUM, AVG, COUNT, MAX, MIN)

303

HiveQL, Hive এর কুয়েরি ভাষা, একটি শক্তিশালী aggregation functions প্রদান করে, যা বড় ডেটাসেটের উপর বিভিন্ন ধরনের গাণিতিক ও পরিসংখ্যানিক অঙ্কন করার জন্য ব্যবহৃত হয়। এই aggregation functions ব্যবহার করে ব্যবহারকারীরা ডেটার সারাংশ তৈরি করতে পারেন, যেমন যোগফল, গড়, গোনা, সর্বোচ্চ ও সর্বনিম্ন মান নির্ধারণ করা।

এখানে HiveQL-এ ব্যবহৃত প্রধান aggregation functions এর সম্পর্কে আলোচনা করা হলো:

১. SUM() – যোগফল


SUM() ফাংশনটি ব্যবহার করা হয় একটি কলামে থাকা সমস্ত সংখ্যার যোগফল বের করতে। এটি সাধারণত সংখ্যামূলক ডেটার জন্য ব্যবহৃত হয়।

উদাহরণ:

SELECT SUM(salary) FROM employees;

এখানে salary কলামে থাকা সমস্ত বেতনের যোগফল বের করা হবে।

বিশেষত্ব:

  • এটি NULL মান উপেক্ষা করে, অর্থাৎ যেকোনো NULL মান যোগফলে অন্তর্ভুক্ত হবে না।

২. AVG() – গড়


AVG() ফাংশনটি একটি কলামের গড় মান বের করতে ব্যবহৃত হয়। এটি কলামের সমস্ত মানের যোগফল নিয়ে তার উপর ভিত্তি করে গড় নির্ধারণ করে।

উদাহরণ:

SELECT AVG(salary) FROM employees;

এখানে salary কলামের গড় বেতন বের করা হবে।

বিশেষত্ব:

  • AVG() ফাংশনটি NULL মান উপেক্ষা করে, তাই এই ফাংশনটি শুধুমাত্র ডেটার গড় পরিসংখ্যান প্রদান করে।

৩. COUNT() – গণনা


COUNT() ফাংশনটি একটি কলামে কতোটি রেকর্ড বা মান রয়েছে তা গননা করতে ব্যবহৃত হয়। এটি NULL মানও গননা করে না, শুধুমাত্র বাস্তব মান গননা করে।

উদাহরণ:

SELECT COUNT(*) FROM employees;

এখানে employees টেবিলের সমস্ত রেকর্ডের সংখ্যা (rows count) পাওয়া যাবে।

SELECT COUNT(salary) FROM employees;

এই কুয়েরি salary কলামের মধ্যে যেসব রেকর্ডে বেতন রয়েছে তার সংখ্যা গননা করবে।

বিশেষত্ব:

  • COUNT(*) পুরো টেবিলের রেকর্ড গননা করবে, যেখানে COUNT(column_name) শুধুমাত্র ঐ কলামে বাস্তব মান গননা করবে এবং NULL মান উপেক্ষা করবে।

৪. MAX() – সর্বোচ্চ মান


MAX() ফাংশনটি একটি কলামে থাকা সর্বোচ্চ মান বের করতে ব্যবহৃত হয়। এটি সাধারণত সংখ্যামূলক কলাম বা তারিখের কলামের জন্য ব্যবহৃত হয়।

উদাহরণ:

SELECT MAX(salary) FROM employees;

এখানে salary কলামে সর্বোচ্চ বেতন বের করা হবে।

বিশেষত্ব:

  • এটি NULL মান উপেক্ষা করে এবং সর্বোচ্চ মান প্রদান করে।

৫. MIN() – সর্বনিম্ন মান


MIN() ফাংশনটি একটি কলামে থাকা সর্বনিম্ন মান বের করতে ব্যবহৃত হয়। এটি সংখ্যামূলক কলাম বা তারিখের কলামের জন্য ব্যবহৃত হয়।

উদাহরণ:

SELECT MIN(salary) FROM employees;

এখানে salary কলামে সর্বনিম্ন বেতন বের করা হবে।

বিশেষত্ব:

  • এটি NULL মান উপেক্ষা করে এবং সর্বনিম্ন মান প্রদান করে।

Aggregation Functions এর ব্যবহার


Aggregation functions সাধারণত GROUP BY কুয়েরির সাথে ব্যবহার করা হয়, যাতে একাধিক গ্রুপের উপর aggregation অপারেশন করা যায়। এই ফাংশনগুলি একে অপরের সাথে কম্বাইন করেও ব্যবহার করা যায়, যেমন একসাথে গড় এবং যোগফল বের করা।

উদাহরণ ১: GROUP BY এর সাথে ব্যবহার

SELECT department, AVG(salary), MAX(salary), MIN(salary)
FROM employees
GROUP BY department;

এখানে প্রতিটি ডিপার্টমেন্টের গড়, সর্বোচ্চ এবং সর্বনিম্ন বেতন বের করা হচ্ছে।

উদাহরণ ২: COUNT() এবং SUM() এর সাথে ব্যবহার

SELECT department, COUNT(*), SUM(salary)
FROM employees
GROUP BY department;

এখানে প্রতিটি ডিপার্টমেন্টের মোট কর্মচারীর সংখ্যা এবং মোট বেতন বের করা হচ্ছে।


উপসংহার


HiveQL এর aggregation functions (যেমন SUM(), AVG(), COUNT(), MAX(), MIN()) হল Hive-এর একটি গুরুত্বপূর্ণ বৈশিষ্ট্য, যা ব্যবহারকারীদের ডেটার উপর বিভিন্ন ধরনের গাণিতিক এবং পরিসংখ্যানিক বিশ্লেষণ করতে সক্ষম করে। এই ফাংশনগুলি ডেটার সারণি (dataset) থেকে কার্যকরী তথ্য বের করতে সাহায্য করে এবং GROUP BY ক্লজের সাথে ব্যবহার করলে আরও শক্তিশালী বিশ্লেষণ সম্ভব। Hive এর মাধ্যমে বড় ডেটাসেটের উপর সহজেই বিভিন্ন গণনা করা যায়, যা Big Data বিশ্লেষণে অত্যন্ত কার্যকরী।

Content added By

Operators (Arithmetic, Relational, Logical)

348

Hive, Hadoop প্ল্যাটফর্মে ব্যবহৃত একটি ডেটাবেস ব্যবস্থাপনা সিস্টেম, যা SQL-অনুরূপ কুয়েরি ভাষা HiveQL ব্যবহার করে ডেটা বিশ্লেষণ ও ম্যানিপুলেশন করতে সাহায্য করে। HiveQL কুয়েরি ভাষায় Operators একটি গুরুত্বপূর্ণ ভূমিকা পালন করে, যা ডেটাকে বিভিন্ন ধাপে প্রক্রিয়াকরণ এবং বিশ্লেষণ করার জন্য ব্যবহৃত হয়। Hive-এ প্রধানত তিন ধরনের অপারেটর রয়েছে: Arithmetic Operators, Relational Operators, এবং Logical Operators

Arithmetic Operators


Arithmetic Operators ব্যবহার করে গাণিতিক অপারেশন (যেমন যোগ, বিয়োগ, গুণ, ভাগ) সম্পাদন করা যায়। এই অপারেটরগুলো মূলত সংখ্যা বা গণনা সংক্রান্ত ক্যালকুলেশন করতে ব্যবহৃত হয়।

সাধারণ Arithmetic Operators:

  • + (Addition): দুটি মান যোগ করার জন্য ব্যবহার করা হয়।
  • - (Subtraction): একটি মান থেকে অন্য একটি মান বিয়োগ করার জন্য ব্যবহৃত হয়।
  • * (Multiplication): দুটি মান গুণ করার জন্য ব্যবহৃত হয়।
  • / (Division): একটি মানকে অন্য একটি মান দ্বারা ভাগ করার জন্য ব্যবহৃত হয়।
  • % (Modulus): দুটি মানের ভাগফল থেকে বাকি মান নির্ধারণ করার জন্য ব্যবহৃত হয়।

উদাহরণ:

SELECT id, salary + 1000 AS new_salary FROM employee;

এটি salary কলামের সাথে 1000 যোগ করে new_salary হিসেবে নতুন মান প্রদান করবে।

SELECT id, salary * 0.1 AS bonus FROM employee;

এটি salary কলামের ১০% হিসেবে bonus প্রদান করবে।


Relational Operators


Relational Operators ব্যবহার করে মানের মধ্যে তুলনা করা হয়। এই অপারেটরগুলো সাধারণত সশর্ত কুয়েরি চালানোর জন্য ব্যবহৃত হয়, যেখানে দুটি ভ্যালুর মধ্যে সম্পর্ক নির্ধারণ করা হয়।

সাধারণ Relational Operators:

  • = (Equal to): দুটি মান সমান কিনা তা যাচাই করার জন্য।
  • <> (Not equal to): দুটি মান সমান নয় কিনা তা যাচাই করার জন্য।
  • < (Less than): একটি মান অন্য মানের চেয়ে ছোট কিনা তা যাচাই করার জন্য।
  • > (Greater than): একটি মান অন্য মানের চেয়ে বড় কিনা তা যাচাই করার জন্য।
  • <= (Less than or equal to): একটি মান অন্য মানের চেয়ে ছোট বা সমান কিনা তা যাচাই করার জন্য।
  • >= (Greater than or equal to): একটি মান অন্য মানের চেয়ে বড় বা সমান কিনা তা যাচাই করার জন্য।

উদাহরণ:

SELECT id, name FROM employee WHERE salary > 50000;

এটি salary কলামের মান যদি ৫০,০০০ এর চেয়ে বড় হয়, তবে সেই রেকর্ডগুলো নির্বাচন করবে।

SELECT id, name FROM employee WHERE department = 'HR';

এটি department কলামের মান যদি 'HR' হয়, তবে সেই রেকর্ডগুলো নির্বাচন করবে।


Logical Operators


Logical Operators ব্যবহার করে শর্তগুলো একত্রিত করা হয়। এগুলো সাধারণত WHERE ক্লজের মধ্যে একাধিক শর্ত সন্নিবেশ করার জন্য ব্যবহৃত হয়।

সাধারণ Logical Operators:

  • AND: দুটি শর্তের মধ্যে উভয় শর্তই সত্য (True) হলে ফলাফল হিসেবে সত্য প্রদান করবে।
  • OR: দুটি শর্তের মধ্যে যেকোনো একটি শর্ত সত্য (True) হলে ফলাফল হিসেবে সত্য প্রদান করবে।
  • NOT: শর্তটি সত্য হলে মিথ্যা (False) এবং মিথ্যা হলে সত্য (True) প্রদান করবে।

উদাহরণ:

SELECT id, name FROM employee WHERE salary > 50000 AND department = 'IT';

এটি salary ৫০,০০০ এর বেশি এবং department 'IT' হলে সেই রেকর্ডগুলো নির্বাচন করবে।

SELECT id, name FROM employee WHERE department = 'HR' OR department = 'Finance';

এটি department 'HR' বা 'Finance' হলে সেই রেকর্ডগুলো নির্বাচন করবে।

SELECT id, name FROM employee WHERE NOT (salary > 50000);

এটি salary ৫০,০০০ এর কম বা সমান হলে সেই রেকর্ডগুলো নির্বাচন করবে।


উপসংহার


Hive-এ Arithmetic, Relational, এবং Logical অপারেটরগুলো ডেটা বিশ্লেষণ ও প্রক্রিয়াকরণের জন্য অপরিহার্য উপাদান। Arithmetic Operators গাণিতিক হিসাব করা, Relational Operators তুলনামূলক শর্ত সন্নিবেশ করা এবং Logical Operators একাধিক শর্ত একত্রিত করা এবং বিশ্লেষণ করার জন্য ব্যবহৃত হয়। এই অপারেটরগুলো ব্যবহার করে Hive-এ জটিল কুয়েরি তৈরি করা সহজ হয় এবং ডেটার উপর কার্যকরী বিশ্লেষণ করা সম্ভব হয়।

Content added By
Promotion

Are you sure to start over?

Loading...