Hive একটি বিশাল ডেটাসেট প্রক্রিয়া এবং বিশ্লেষণের জন্য ব্যবহৃত একটি ডেটাবেস ম্যানেজমেন্ট সিস্টেম যা মূলত Hadoop প্ল্যাটফর্মের উপর তৈরি। যদিও Hive সাধারণত বড় পরিমাণে ডেটা প্রক্রিয়া করতে ব্যবহৃত হয়, এর আগের সংস্করণগুলিতে transactional support ছিল না। তবে, Hive 0.14 সংস্করণ থেকে transactional support যোগ করা হয়েছে, যা Hive-এ ACID (Atomicity, Consistency, Isolation, Durability) ট্রানজেকশন পরিচালনার সুবিধা প্রদান করে।
Hive Transactions এর ধারণা
Transactions হল একটি প্রক্রিয়া যা একাধিক কার্যকলাপকে একত্রে সম্পাদন করার জন্য ব্যবহৃত হয়, যাতে সমস্ত কার্যকলাপ সফলভাবে সম্পন্ন হলে সেগুলিকে একত্রে কমিট (commit) করা যায় এবং যদি কোনো এক কার্যকলাপ ব্যর্থ হয়, তবে সবকিছু রোলব্যাক (rollback) করা যায়। Hive-এ ট্রানজেকশনাল সাপোর্টের মাধ্যমে আপনি insert, update, delete অপারেশন পরিচালনা করতে পারেন, যা ডেটাবেসের ডেটাকে একটি সুনির্দিষ্ট অবস্থায় রাখতে সাহায্য করে।
Hive-এ Transactions এর বৈশিষ্ট্য
১. ACID Properties
Hive-এ ট্রানজেকশনগুলো ACID বৈশিষ্ট্য অনুসরণ করে, যা নিশ্চিত করে যে ডেটা সঠিকভাবে এবং নিরাপদে প্রক্রিয়া হচ্ছে। ACID বৈশিষ্ট্যগুলির মাধ্যমে Hive-এ ট্রানজেকশন সঠিকভাবে পরিচালিত হয়:
- Atomicity: একটি ট্রানজেকশনের সমস্ত অপারেশন একযোগে সম্পন্ন হয় অথবা যদি কোনো একটি অপারেশন ব্যর্থ হয়, তাহলে ট্রানজেকশনটি পুরোপুরি রোলব্যাক (rollback) করা হয়।
- Consistency: ডেটাবেসের পূর্ববর্তী অবস্থার সাথে সম্পর্কিত কোনও ধরণের অস্বাভাবিকতা (anomalies) এড়ানো হয়।
- Isolation: একাধিক ট্রানজেকশন সমান্তরালে চললে, তাদের কার্যকলাপ একে অপরকে প্রভাবিত করে না।
- Durability: একবার ট্রানজেকশন কমিট (commit) হলে, তা স্থায়ী হয়ে যায় এবং সিস্টেম পুনরায় চালু হলেও ডেটা হারানো যায় না।
২. ACID ট্রানজেকশন সমর্থন
Hive-এ ট্রানজেকশনের মাধ্যমে insert, update, এবং delete অপারেশন করা সম্ভব হয়েছে। এর আগে Hive শুধুমাত্র insert অপারেশন সমর্থন করত, কিন্তু নতুন ট্রানজেকশনাল সাপোর্টের মাধ্যমে update এবং delete অপারেশনও সম্ভব হয়েছে।
৩. Hive Transactional Tables
Hive-এ transactional tables তৈরি করতে আপনাকে কিছু কনফিগারেশন সেট করতে হবে এবং এই টেবিলগুলি ACID operations (insert, update, delete) সমর্থন করবে। Transactional tables সঠিকভাবে কাজ করার জন্য HBase বা ORC file format ব্যবহার করা উচিত।
৪. Hive’s Transactional Support with ORC Format
ORC (Optimized Row Columnar) ফরম্যাট ব্যবহার করলে Hive-এ ট্রানজেকশনাল টেবিল তৈরি এবং কার্যকরী করা অনেক সহজ হয়। ORC ফরম্যাটের জন্য acid টেবিলগুলি কার্যকরী হয়, কারণ এটি ডেটার দ্রুত অ্যাক্সেস এবং কম্প্রেশন প্রদান করে, যা ট্রানজেকশনাল কার্যকলাপের জন্য উপযুক্ত।
Hive-এ Transactional Tables তৈরি করা
Hive-এ ট্রানজেকশনাল টেবিল তৈরি করার জন্য আপনাকে কিছু নির্দিষ্ট কনফিগারেশন এবং অপশন দিতে হবে। সাধারণত ORC file format এবং transactional=true সেটিংস ব্যবহার করে ট্রানজেকশনাল টেবিল তৈরি করা হয়।
১. Hive Configuration for Transactions
Hive-এ ট্রানজেকশনাল সাপোর্ট সক্ষম করতে আপনাকে hive-site.xml ফাইলে কিছু কনফিগারেশন করতে হবে:
<property>
<name>hive.txn.manager</name>
<value>org.apache.hadoop.hive.ql.lockmgr.DbTxnManager</value>
</property>
<property>
<name>hive.support.concurrency</name>
<value>true</value>
</property>
<property>
<name>hive.enforce.bucketing</name>
<value>true</value>
</property>
<property>
<name>hive.exec.dynamic.partition.mode</name>
<value>nonstrict</value>
</property>
২. Transactional Table তৈরি করা
আপনি Hive-এ transactional table তৈরি করার জন্য TBLPROPERTIES ব্যবহার করতে হবে এবং transactional=true নিশ্চিত করতে হবে। এছাড়া, ORC ফরম্যাট ব্যবহার করতে হবে।
CREATE TABLE sales (
id INT,
amount FLOAT,
transaction_date DATE
)
STORED AS ORC
TBLPROPERTIES ('transactional'='true');
এই কুয়েরি একটি sales নামক ট্রানজেকশনাল টেবিল তৈরি করবে, যা ORC ফরম্যাটে ডেটা সঞ্চয় করবে এবং ACID অপারেশন সমর্থন করবে।
৩. Insert, Update, Delete Operations
Hive-এ ট্রানজেকশনাল টেবিল ব্যবহার করে আপনি insert, update, এবং delete অপারেশন করতে পারবেন।
Insert:
INSERT INTO TABLE sales VALUES (1, 100.0, '2024-01-01');
Update:
UPDATE sales SET amount = 120.0 WHERE id = 1;
Delete:
DELETE FROM sales WHERE id = 1;
Hive Transaction Management
১. Transaction Isolation Level
Hive-এ transaction isolation স্তর সেট করা সম্ভব। সাধারণত READ_COMMITTED এবং SERIALIZABLE দুটি স্তর রয়েছে। Hive ডিফল্টভাবে READ_COMMITTED ব্যবহৃত হয়, যার মানে হল যে, চলমান ট্রানজেকশন কেবলমাত্র শেষ হওয়া ট্রানজেকশনের ডেটা দেখতে পাবে।
২. Transaction Commit and Rollback
Hive-এ transaction commit এবং rollback প্রক্রিয়া রয়েছে। একটি ট্রানজেকশন সফল হলে commit এবং ব্যর্থ হলে rollback হয়।
-- Commit the transaction
COMMIT;
-- Rollback the transaction in case of an error
ROLLBACK;
Hive Transactions-এর সুবিধা
- ACID সাপোর্ট: Hive এখন ACID সমর্থন করে, ফলে insert, update, এবং delete অপারেশন সম্ভব হয়েছে।
- ডেটার অখণ্ডতা রক্ষা: Hive ট্রানজেকশনগুলি ACID বৈশিষ্ট্য অনুসরণ করে, তাই ডেটার অখণ্ডতা রক্ষা হয় এবং যেকোনো ভুল অথবা ব্যর্থ ট্রানজেকশনের কারণে ডেটা হারানো এড়ানো যায়।
- প্রতিযোগিতামূলক ট্রানজেকশনের ব্যবস্থাপনা: Hive এখন একাধিক ব্যবহারকারী বা প্রক্রিয়া সমান্তরালে একে অপরের ডেটা প্রভাবিত না করে কাজ করতে পারে।
- পলিসি নির্ধারণ: Hive-এ পলিসি নির্ধারণ করা সম্ভব, যেমন ডেটার জন্য ট্রানজেকশনাল টেবিল বা নির্দিষ্ট কার্যকলাপের জন্য অনুমতি প্রদান।
উপসংহার
Hive-এ transactional support ব্যবহারে ACID বৈশিষ্ট্য অনুসরণ করে ডেটার নিরাপত্তা এবং অখণ্ডতা রক্ষা করা সম্ভব হয়েছে। Hive-এ ট্রানজেকশনাল টেবিলগুলি তৈরি করার মাধ্যমে, আপনি insert, update, এবং delete অপারেশন চালাতে পারেন এবং Hive-এর ORC file format এবং ACID ট্রানজেকশন সাপোর্টের সুবিধা নিতে পারেন। এই নতুন বৈশিষ্ট্যগুলো Hive-কে বৃহৎ এবং সেকেন্ডের মধ্যে পরিবর্তিত ডেটার সঙ্গে কার্যকরভাবে কাজ করার সক্ষমতা প্রদান করে।
Read more