Apache Sqoop-এর ইম্পোর্ট অপারেশনগুলি ব্যবহারকারীদের রিলেশনাল ডাটাবেস (RDBMS) থেকে Hadoop-এর মধ্যে ডেটা আনা (import) করতে সহায়ক। এই প্রক্রিয়াটি হাদুপের HDFS (Hadoop Distributed File System), Hive, HBase ইত্যাদিতে ডেটা স্থানান্তরের জন্য ব্যবহৃত হয়।
Sqoop Import কমান্ড
Sqoop-এর import কমান্ডের মাধ্যমে ডেটা RDBMS থেকে HDFS বা অন্যান্য Hadoop স্টোরেজে স্থানান্তর করা হয়। সাধারণভাবে এর সিনট্যাক্স এইভাবে হয়:
sqoop import --connect <JDBC_URL> --username <DB_USERNAME> --password <DB_PASSWORD> --table <TABLE_NAME> --target-dir <HDFS_DIRECTORY>
এখানে:
<JDBC_URL>: ডাটাবেসের JDBC URL (যেমন MySQL, PostgreSQL, ইত্যাদি)<DB_USERNAME>: ডাটাবেসের ইউজারনেম<DB_PASSWORD>: ডাটাবেসের পাসওয়ার্ড<TABLE_NAME>: যেই টেবিলটি ইম্পোর্ট করতে চান<HDFS_DIRECTORY>: যেখানে HDFS এ ডেটা সংরক্ষণ হবে
Sqoop Import অপারেশনের বিভিন্ন ধরন
Sqoop বিভিন্ন ধরনের ডেটা ইম্পোর্ট অপারেশন সমর্থন করে, যেমন টেবিল, কলাম, শর্তসাপেক্ষ ইম্পোর্ট ইত্যাদি।
১. টেবিল ইম্পোর্ট (Table Import)
আপনি যদি একটি সম্পূর্ণ টেবিল RDBMS থেকে HDFS-এ ইম্পোর্ট করতে চান, তাহলে এই কমান্ড ব্যবহার করতে পারেন:
sqoop import --connect jdbc:mysql://localhost/db_name --username root --password root --table employees --target-dir /user/hadoop/employees_data
এটি employees টেবিলটি MySQL ডাটাবেস থেকে HDFS-এ /user/hadoop/employees_data ডিরেক্টরিতে ইম্পোর্ট করবে।
২. কলাম ইম্পোর্ট (Column Import)
যদি আপনি একটি নির্দিষ্ট টেবিলের কিছু কলাম ইম্পোর্ট করতে চান, তাহলে নিম্নলিখিত কমান্ড ব্যবহার করুন:
sqoop import --connect jdbc:mysql://localhost/db_name --username root --password root --table employees --columns "name, age, salary" --target-dir /user/hadoop/employees_columns
এটি employees টেবিল থেকে শুধুমাত্র name, age, এবং salary কলামগুলো HDFS-এ ইম্পোর্ট করবে।
৩. শর্তসাপেক্ষ ইম্পোর্ট (Conditional Import)
আপনি শর্ত দিয়ে ইম্পোর্ট করতে পারেন, অর্থাৎ শুধুমাত্র কিছু নির্দিষ্ট রেকর্ড ইম্পোর্ট করতে চান। এর জন্য --where ফ্ল্যাগ ব্যবহার করতে হবে:
sqoop import --connect jdbc:mysql://localhost/db_name --username root --password root --table employees --where "age > 30" --target-dir /user/hadoop/age_above_30
এটি employees টেবিল থেকে শুধুমাত্র age > 30 শর্ত পূরণ করা রেকর্ডগুলো HDFS-এ ইম্পোর্ট করবে।
৪. ইনক্রিমেন্টাল ইম্পোর্ট (Incremental Import)
আপনি যদি একটি টেবিলের নতুন বা পরিবর্তিত ডেটা নিয়মিতভাবে ইম্পোর্ট করতে চান, তাহলে ইনক্রিমেন্টাল ইম্পোর্ট ব্যবহার করতে পারেন। এটি বিশেষ করে দরকারী যখন আপনাকে শুধুমাত্র ডেটাবেসে নতুন ডেটা আনার প্রয়োজন হয়।
ইনক্রিমেন্টাল ইম্পোর্টের জন্য --incremental এবং --check-column ফ্ল্যাগ ব্যবহার করতে হবে:
sqoop import --connect jdbc:mysql://localhost/db_name --username root --password root --table employees --incremental append --check-column employee_id --last-value 100 --target-dir /user/hadoop/employees_incremental
এটি employee_id কলাম অনুযায়ী নতুন বা পরিবর্তিত রেকর্ডগুলো ইম্পোর্ট করবে, যেখানে employee_id এর সর্বশেষ মান ছিল ১০০।
Sqoop Import-এর সুবিধা
পারফরম্যান্স:
Sqoop ইম্পোর্ট অপারেশনগুলি উচ্চ পারফরম্যান্স এবং দক্ষতার সাথে কাজ করে, বিশেষ করে বড় ডেটাসেট ইম্পোর্টের ক্ষেত্রে।
ফাইল ফরম্যাট:
Sqoop ইম্পোর্ট করা ডেটা CSV, Avro, Parquet, ইত্যাদি বিভিন্ন ফরম্যাটে সঞ্চিত করতে সক্ষম, যা Hadoop-এর বিভিন্ন উপাদানের সাথে মানানসই।
ফাইল পার্টিশনিং:
Sqoop ডেটা পার্টিশন করে ইম্পোর্ট করতে পারে, যাতে বড় ডেটাসেটগুলো দ্রুত এবং দক্ষভাবে প্রক্রিয়া করা যায়। উদাহরণস্বরূপ, আপনি --split-by ফ্ল্যাগ ব্যবহার করে একটি কলাম ভিত্তিক ডেটা পার্টিশন করতে পারেন।
সারাংশ
Apache Sqoop-এর import অপারেশন ব্যবহার করে আপনি রিলেশনাল ডাটাবেস থেকে Hadoop সিস্টেমে ডেটা স্থানান্তর করতে পারেন। এটি বিভিন্ন ধরনের ইম্পোর্ট অপারেশন সমর্থন করে যেমন টেবিল, কলাম, শর্তসাপেক্ষ ইম্পোর্ট এবং ইনক্রিমেন্টাল ইম্পোর্ট। Sqoop ডেটা ইম্পোর্ট করার ক্ষেত্রে উচ্চ পারফরম্যান্স, ফাইল ফরম্যাটের নমনীয়তা এবং ডেটা পার্টিশনিংয়ের সুবিধা প্রদান করে।
Apache Sqoop ব্যবহার করে ডেটা ইম্পোর্ট করার জন্য বিভিন্ন কমান্ড ব্যবহৃত হয়। sqoop import কমান্ডটি সবচেয়ে সাধারণ কমান্ড যা RDBMS (রিলেশনাল ডাটাবেস ম্যানেজমেন্ট সিস্টেম) থেকে Hadoop-এর HDFS, Hive বা HBase-এ ডেটা ইম্পোর্ট করতে ব্যবহৃত হয়।
Sqoop Import Command এর গঠন
Sqoop import কমান্ডের সাধারণ গঠন:
sqoop import --connect jdbc:mysql://<db_host>:<db_port>/<db_name> \
--username <username> --password <password> \
--table <table_name> --target-dir <hdfs_target_dir>
এখানে প্রতিটি অংশের ব্যাখ্যা:
sqoop import: এটি কমান্ডের শুরু, যা Sqoop কে ডেটা ইম্পোর্ট করার নির্দেশ দেয়।--connect: এই অপশনটি ডাটাবেসের JDBC URL প্রদান করে। এটি ডাটাবেসের হোস্ট, পোর্ট এবং নামের সাথে যুক্ত থাকে। উদাহরণস্বরূপ, MySQL ডাটাবেসের জন্য এটিjdbc:mysql://localhost:3306/mydbহতে পারে।--username: ডাটাবেসে সংযোগ করার জন্য ইউজারনেম প্রদান করতে হয়।--password: ডাটাবেসে সংযোগ করার জন্য পাসওয়ার্ড প্রদান করতে হয়।--table: যে টেবিলটি থেকে ডেটা ইম্পোর্ট করতে চান তার নাম।--target-dir: এই অপশনটি HDFS-এর গন্তব্য ডিরেক্টরি নির্দিষ্ট করে, যেখানে ডেটা ইম্পোর্ট করা হবে।
উদাহরণ
ধরা যাক, আপনি MySQL ডাটাবেস থেকে একটি টেবিল employee HDFS-এর /user/hadoop/employee_data ডিরেক্টরিতে ইম্পোর্ট করতে চান। এই কাজটি করতে নিচের কমান্ডটি ব্যবহার করতে হবে:
sqoop import --connect jdbc:mysql://localhost:3306/mydb \
--username root --password mypassword \
--table employee --target-dir /user/hadoop/employee_data
এখানে:
localhost:3306: MySQL ডাটাবেসের হোস্ট এবং পোর্ট।mydb: ডাটাবেসের নাম।employee: টেবিলের নাম।/user/hadoop/employee_data: HDFS-এর গন্তব্য ডিরেক্টরি।
অতিরিক্ত অপশন
--columns: নির্দিষ্ট কলামগুলো ইম্পোর্ট করতে চাইলে এই অপশন ব্যবহার করা হয়। উদাহরণস্বরূপ:sqoop import --connect jdbc:mysql://localhost:3306/mydb \ --username root --password mypassword \ --table employee --columns "id,name,salary" \ --target-dir /user/hadoop/employee_data--where: নির্দিষ্ট শর্ত (condition) অনুসারে ডেটা ইম্পোর্ট করতে চাইলে এই অপশনটি ব্যবহার হয়। উদাহরণস্বরূপ:sqoop import --connect jdbc:mysql://localhost:3306/mydb \ --username root --password mypassword \ --table employee --where "salary > 50000" \ --target-dir /user/hadoop/high_salary_employees--split-by: ডেটার পার্টিশন (split) করার জন্য এই অপশনটি ব্যবহৃত হয়। এটি বড় ডেটাসেটগুলোকে ছোট ভাগে ভাগ করে ইম্পোর্ট করার সুবিধা প্রদান করে।
সারাংশ
Sqoop import কমান্ডের মাধ্যমে RDBMS থেকে Hadoop-এর HDFS, Hive বা HBase-এ ডেটা ইম্পোর্ট করা যায়। এর মধ্যে বিভিন্ন অপশন যেমন --connect, --username, --password, --table, এবং --target-dir ব্যবহার করা হয়। এছাড়াও, নির্দিষ্ট কলাম, শর্ত বা ডেটা পার্টিশন করার জন্য অতিরিক্ত অপশন ব্যবহার করা যায়।
Apache Sqoop ব্যবহার করে RDBMS থেকে HDFS (Hadoop Distributed File System) এ ডেটা ইম্পোর্ট করা একটি সাধারণ ও কার্যকরী প্রক্রিয়া। এটি বিশেষভাবে বড় ডেটাসেট বা রিলেশনাল ডাটাবেস থেকে Hadoop পরিবেশে ডেটা স্থানান্তর করতে ব্যবহৃত হয়। নিচে RDBMS থেকে HDFS এ ডেটা ইম্পোর্ট করার প্রক্রিয়া বিস্তারিতভাবে ব্যাখ্যা করা হয়েছে।
RDBMS থেকে HDFS এ ডেটা ইম্পোর্ট করার প্রক্রিয়া
১. Sqoop ইনস্টলেশন: প্রথমে, Sqoop সিস্টেমে ইনস্টল করা থাকতে হবে। এটি প্রক্রিয়ার প্রথম ধাপ। Sqoop ইনস্টলেশনের জন্য Java, Hadoop, এবং JDBC ড্রাইভার প্রয়োজন।
২. ডাটাবেস সংযোগ স্থাপন:
RDBMS থেকে ডেটা ইম্পোর্ট করার জন্য প্রথমে ডাটাবেসে সংযোগ স্থাপন করতে হয়। এই সংযোগ স্থাপনের জন্য JDBC URL, ইউজারনেম, পাসওয়ার্ড এবং ডাটাবেসের নাম প্রয়োজন। উদাহরণস্বরূপ, MySQL এর ক্ষেত্রে:
jdbc:mysql://localhost:3306/mydatabase
৩. ইম্পোর্ট কমান্ড:
Sqoop ব্যবহার করে RDBMS থেকে HDFS এ ডেটা ইম্পোর্ট করার জন্য sqoop import কমান্ড ব্যবহার করা হয়। এই কমান্ডের মাধ্যমে রিলেশনাল ডাটাবেস থেকে ডেটা HDFS-এ ইম্পোর্ট করা হয়। নিচে একটি উদাহরণ দেওয়া হল:
sqoop import --connect jdbc:mysql://localhost:3306/mydatabase --username root --password root --table employees --target-dir /user/hadoop/employees
এখানে:
--connect: ডাটাবেসের JDBC URL।--username: ডাটাবেসের ইউজারনেম।--password: ইউজার পাসওয়ার্ড।--table: ইম্পোর্ট করার জন্য টেবিলের নাম।--target-dir: HDFS-এ ডেটা সংরক্ষণ করার ডিরেক্টরি।
৪. ডেটা ইম্পোর্টের অপশনসমূহ:
Sqoop-এ ডেটা ইম্পোর্ট করার জন্য বিভিন্ন অপশন রয়েছে, যেমন:
--split-by: বড় টেবিলের জন্য ডেটাকে প্যারালালভাবে ইম্পোর্ট করার জন্য উপযুক্ত কলাম নির্বাচন করা।--fields-terminated-by: ডেটা ফাইলের মধ্যে সেপারেটর নির্ধারণ করা।--where: SQL কন্ডিশন ব্যবহার করে নির্দিষ্ট রেকর্ড ফিল্টার করা।
উদাহরণ:
sqoop import --connect jdbc:mysql://localhost:3306/mydatabase --username root --password root --table employees --split-by id --target-dir /user/hadoop/employees --fields-terminated-by ','
এখানে --split-by id নির্দেশনা দেয় যে ডেটাকে id কলাম ব্যবহার করে বিভক্ত (split) করে ইম্পোর্ট করা হবে।
৫. ডেটা ফরম্যাট কনভার্সন:
Sqoop ডেটাকে বিভিন্ন ফরম্যাটে রূপান্তর করতে পারে যেমন CSV, Avro, Parquet ইত্যাদি। ডেটা যখন HDFS-এ ইম্পোর্ট করা হয়, তখন ফরম্যাট নির্ধারণ করা যায়। উদাহরণস্বরূপ:
sqoop import --connect jdbc:mysql://localhost:3306/mydatabase --username root --password root --table employees --target-dir /user/hadoop/employees --as-avrodatafile
এখানে --as-avrodatafile ডেটাকে Avro ফরম্যাটে রূপান্তরিত করবে।
গুরুত্বপূর্ণ বিষয়াবলী
পারফরম্যান্স অপটিমাইজেশন:
বড় ডেটাসেট ইম্পোর্ট করার সময় Sqoop মাল্টি-থ্রেডিং বা প্যারালাল প্রসেসিং সাপোর্ট করে, যার ফলে পারফরম্যান্স উন্নত হয়। --split-by এবং --num-mappers অপশন ব্যবহার করে ডেটাকে বিভিন্ন অংশে ভাগ করে এবং একাধিক মাপার (mapper) ব্যবহার করে দ্রুত ইম্পোর্ট করা যায়।
ডেটার নিরাপত্তা:
Sqoop ডেটা ট্রান্সফার করার সময় ডাটাবেস থেকে ডেটা সুরক্ষিতভাবে ইম্পোর্ট করার জন্য SSL এবং নিরাপত্তা সম্পর্কিত অন্যান্য প্রটোকল ব্যবহার করতে পারে। এটি ডেটা ট্রান্সফারের নিরাপত্তা নিশ্চিত করে।
সারাংশ
Sqoop ব্যবহার করে RDBMS থেকে HDFS এ ডেটা ইম্পোর্ট করা একটি সহজ ও কার্যকরী প্রক্রিয়া। এটি ডেটার বড় ভলিউমকে প্যারালাল প্রসেসিং এবং অন্যান্য অপশন ব্যবহার করে দ্রুত ও কার্যকরভাবে ট্রান্সফার করতে সহায়তা করে। Sqoop-এর মাধ্যমে ডেটাকে বিভিন্ন ফরম্যাটে রূপান্তর করা সম্ভব এবং এটি Hadoop পরিবেশে ডেটা লোড করা আরও সহজ করে তোলে।
Apache Sqoop ব্যবহার করে আপনি সহজেই রিলেশনাল ডাটাবেস থেকে Hadoop-এর HDFS (Hadoop Distributed File System), Hive, HBase ইত্যাদি সিস্টেমে ডেটা ইম্পোর্ট করতে পারেন। এটি সাধারণত দুটি পদ্ধতিতে করা হয়: সরাসরি একটি টেবিল থেকে ডেটা ইম্পোর্ট করা বা একটি কাস্টম SQL কুয়েরি ব্যবহার করে ডেটা ইম্পোর্ট করা।
টেবিল থেকে ডেটা ইম্পোর্ট করা
আপনি যদি একটি সম্পূর্ণ টেবিল থেকে ডেটা ইম্পোর্ট করতে চান, তবে আপনি sqoop import কমান্ড ব্যবহার করতে পারেন। এই পদ্ধতিতে আপনি ডেটাবেসের টেবিলের সমস্ত ডেটা Hadoop-এ ইম্পোর্ট করতে পারবেন।
কমান্ডের কাঠামো:
sqoop import --connect <JDBC_URL> --username <username> --password <password> --table <table_name> --target-dir <hdfs_directory>
উদাহরণ:
ধরা যাক, আপনার MySQL ডাটাবেসে employees নামের একটি টেবিল রয়েছে, এবং আপনি এটি HDFS-এ ইম্পোর্ট করতে চান। তাহলে কমান্ডটি হবে:
sqoop import --connect jdbc:mysql://localhost:3306/mydatabase --username root --password root123 --table employees --target-dir /user/hadoop/employees
এই কমান্ডের মাধ্যমে employees টেবিলের সমস্ত ডেটা HDFS-এর /user/hadoop/employees ডিরেক্টরিতে ইম্পোর্ট হবে।
SQL কুয়েরি ব্যবহার করে ডেটা ইম্পোর্ট করা
আপনি যদি শুধুমাত্র টেবিলের একটি নির্দিষ্ট অংশ বা কাস্টম কুয়েরি থেকে ডেটা ইম্পোর্ট করতে চান, তবে --query অপশন ব্যবহার করতে হবে। এতে আপনি একটি কাস্টম SQL কুয়েরি ব্যবহার করে ডেটা ইম্পোর্ট করতে পারবেন।
কমান্ডের কাঠামো:
sqoop import --connect <JDBC_URL> --username <username> --password <password> --query "<SQL_QUERY> WHERE <conditions> AND \$CONDITIONS" --target-dir <hdfs_directory> --split-by <column_name>
$CONDITIONS হল একটি বিশেষ প্লেসহোল্ডার যা Sqoop ব্যবহৃত পার্টিশনিং কন্ডিশন হিসেবে কাজ করে।
উদাহরণ:
ধরা যাক, আপনার MySQL ডাটাবেসে employees টেবিল রয়েছে, এবং আপনি শুধু salary ৫০০০০ এর বেশি এমন ডেটা ইম্পোর্ট করতে চান। কমান্ডটি হবে:
sqoop import --connect jdbc:mysql://localhost:3306/mydatabase --username root --password root123 --query "SELECT * FROM employees WHERE salary > 50000 AND \$CONDITIONS" --target-dir /user/hadoop/high_salary_employees --split-by employee_id
এখানে:
--queryদ্বারা কাস্টম SQL কুয়েরি ব্যবহার করা হয়েছে।\$CONDITIONSSqoop দ্বারা স্বয়ংক্রিয়ভাবে যুক্ত করা হবে যাতে ডেটা সঠিকভাবে পার্টিশন করা যায়।--split-byঅপশনটি দিয়ে পার্টিশন কলাম নির্বাচন করা হয়, যা ইম্পোর্টের গতি উন্নত করতে সাহায্য করে।
অতিরিক্ত অপশনস
ইম্পোর্ট ফাইলের ফরম্যাট:
আপনি ডেটা ইম্পোর্টের ফাইল ফরম্যাটও নির্ধারণ করতে পারেন। উদাহরণস্বরূপ,--as-avrodatafileব্যবহার করলে ডেটা Avro ফরম্যাটে ইম্পোর্ট হবে।sqoop import --connect jdbc:mysql://localhost:3306/mydatabase --username root --password root123 --table employees --target-dir /user/hadoop/employees_avro --as-avrodatafileকলাম নির্দিষ্ট করা:
আপনি যদি শুধুমাত্র নির্দিষ্ট কিছু কলাম ইম্পোর্ট করতে চান, তবে--columnsঅপশন ব্যবহার করতে পারেন।sqoop import --connect jdbc:mysql://localhost:3306/mydatabase --username root --password root123 --table employees --columns "employee_id, name, salary" --target-dir /user/hadoop/employees_columns
সারাংশ
Sqoop-এর মাধ্যমে আপনি রিলেশনাল ডাটাবেস থেকে Hadoop সিস্টেমে ডেটা ইম্পোর্ট করতে পারেন দুটি প্রধান পদ্ধতিতে: একটি সম্পূর্ণ টেবিল থেকে এবং একটি কাস্টম SQL কুয়েরি ব্যবহার করে। SQL কুয়েরি ব্যবহার করে আপনি ডেটার নির্দিষ্ট অংশ বা শর্ত অনুযায়ী ডেটা ইম্পোর্ট করতে পারবেন। --query অপশন এবং --split-by অপশন ব্যবহার করলে ইম্পোর্ট প্রক্রিয়া দ্রুত ও কার্যকরী হয়।
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