Apache Sqoop-এ Incremental Import হলো একটি কার্যকর পদ্ধতি যা একটি ডাটাবেস থেকে নির্দিষ্ট পরিমাণ ডেটা নিয়মিতভাবে আপডেট বা যোগ (append) করে। এটি বিশেষত তখন প্রয়োজন হয় যখন ডাটাবেসে প্রতিনিয়ত নতুন ডেটা যোগ হয় এবং সেই ডেটা প্রক্রিয়া করার জন্য Hadoop সিস্টেমে স্থানান্তর করা প্রয়োজন। Sqoop দুটি প্রধান ইনক্রিমেন্টাল ইম্পোর্ট টেকনিক ব্যবহার করে: Append এবং LastModified।
Append Mode
Append Mode ইনক্রিমেন্টাল ইম্পোর্টের একটি প্রক্রিয়া যেখানে শুধুমাত্র নতুন ডেটা (যেগুলি আগের ইম্পোর্টের পরে যোগ হয়েছে) আপলোড করা হয়। সাধারণত, একটি ডেটাবেসের কোনো নির্দিষ্ট কলামের ভিত্তিতে এটি করা হয়, যেগুলি নতুন রেকর্ড সনাক্ত করতে ব্যবহৃত হয়। এই কলাম সাধারণত একটি সিকোয়েন্স নম্বর (যেমন id) অথবা টাইমস্ট্যাম্প হতে পারে।
Append Mode ব্যবহার করার পদ্ধতি:
- প্রাথমিক ইম্পোর্ট করা: প্রথমে সম্পূর্ণ টেবিল ইম্পোর্ট করতে হবে। একবার পূর্ণ টেবিল ইম্পোর্ট হয়ে গেলে, পরবর্তী সময়ের জন্য শুধুমাত্র নতুন রেকর্ড ইম্পোর্ট করা হবে।
Sqoop Command:
--incremental appendঅপশন ব্যবহার করে ইনক্রিমেন্টাল ইম্পোর্টের জন্য কমান্ড লিখতে হবে। উদাহরণ:sqoop import \ --connect jdbc:mysql://localhost/database_name \ --table table_name \ --incremental append \ --check-column id \ --last-value 1000 \ --target-dir /user/hadoop/dataএখানে:
--incremental append: ইঙ্গিত দেয় যে এটি append মোডে কাজ করবে।--check-column id:idকলামের উপর ভিত্তি করে নতুন রেকর্ড চেক করা হবে।--last-value 1000: সর্বশেষ ইম্পোর্ট হওয়া রেকর্ডেরidহল 1000, এই মানের পরবর্তী ডেটা ইম্পোর্ট হবে।--target-dir /user/hadoop/data: ইম্পোর্ট করা ডেটা কোথায় রাখা হবে।
LastModified Mode
LastModified Mode হলো একটি পদ্ধতি যেখানে শুধু সেই ডেটা ইম্পোর্ট করা হয় যেগুলোর টাইমস্ট্যাম্প বা নির্দিষ্ট তারিখ পরবর্তী সময়ে পরিবর্তিত বা সংশোধিত হয়েছে। এই পদ্ধতিতে সাধারণত একটি টাইমস্ট্যাম্প কলাম ব্যবহার করা হয় যা রেকর্ডের সর্বশেষ আপডেট বা সংশোধন সময় প্রদর্শন করে।
LastModified Mode ব্যবহার করার পদ্ধতি:
- প্রাথমিক ইম্পোর্ট করা: প্রথমে সম্পূর্ণ ডেটা ইম্পোর্ট করা হয়, তারপর পরবর্তী সময়ে কেবলমাত্র নতুন বা আপডেট হওয়া রেকর্ডই স্থানান্তর করা হয়।
Sqoop Command:
--incremental lastmodifiedঅপশন ব্যবহার করে ইনক্রিমেন্টাল ইম্পোর্ট করা যায়। উদাহরণ:sqoop import \ --connect jdbc:mysql://localhost/database_name \ --table table_name \ --incremental lastmodified \ --check-column last_modified \ --last-value '2024-12-01 00:00:00' \ --target-dir /user/hadoop/dataএখানে:
--incremental lastmodified: ইনক্রিমেন্টাল ইম্পোর্টের জন্য lastmodified মোড নির্ধারণ করে।--check-column last_modified:last_modifiedকলামের মান ব্যবহার করে কেবলমাত্র সেই রেকর্ডগুলি ইম্পোর্ট হবে যেগুলি নির্দিষ্ট তারিখের পর পরিবর্তিত হয়েছে।--last-value '2024-12-01 00:00:00': সর্বশেষ ইম্পোর্ট হওয়া রেকর্ডের তারিখ ও সময় (যেখানে ডেটা পরিবর্তিত হয়েছিল) সেট করা হয়।--target-dir /user/hadoop/data: ডেটা কোথায় সংরক্ষিত হবে তা নির্ধারণ করে।
সারাংশ
Apache Sqoop-এর Incremental Import পদ্ধতি, বিশেষত Append এবং LastModified মোড, ডেটাবেস থেকে সময় অনুসারে বা নতুন ডেটার উপর ভিত্তি করে ইনক্রিমেন্টাল ইম্পোর্ট করার জন্য ব্যবহার করা হয়। Append মোড নতুন রেকর্ড যোগ করার জন্য এবং LastModified মোড শুধুমাত্র পরিবর্তিত বা সংশোধিত রেকর্ডগুলো আপলোড করার জন্য উপযুক্ত। এই টেকনিকগুলো ডেটা স্থানান্তর কার্যক্রমের দক্ষতা বাড়ায় এবং Hadoop পরিবেশে নিরবচ্ছিন্ন ডেটা আপডেট প্রক্রিয়া নিশ্চিত করে।
Read more