প্রকল্প সম্পর্কে

Apache Hudi (Hadoop Upserts Deletes and Incrementals) একটি ওপেন-সোর্স ডেটা লেকহাউস প্ল্যাটফর্ম যা একটি উচ্চ-পারফরম্যান্স ওপেন টেবিল ফরম্যাটের উপর নির্মিত। এটি সংস্থাগুলিকে একাধিক ক্লাউড ডেটা পরিবেশে ডেটা গ্রহণ, সূচীকরণ, সংরক্ষণ, পরিবেশন, রূপান্তর এবং পরিচালনা করতে সক্ষম করে, পাশাপাশি ক্লাউড স্টোরেজে ওপেন ফরম্যাটে ডেটা বজায় রাখে। মূল ক্ষমতাগুলির মধ্যে রয়েছে: **গ্রহণ (Ingestion)**: Apache Spark এবং Apache Flink ব্যবহারকারীদের জন্য বিল্ট-ইন টুল, যা অর্ধ-ডজন ফাইল ফরম্যাট, ডেটাবেস পরিবর্তন লগ এবং স্ট্রিমিং ডেটা সিস্টেম সমর্থন করে। বাহ্যিক ডেটা উৎস আনার জন্য একটি Kafka Connect সিঙ্ক অন্তর্ভুক্ত। **সংরক্ষণ (Storage)**: অপ্টিমাইজড স্টোরেজ ফরম্যাট যা সারি এবং কলামার উভয় ধরনের ডেটা সমর্থন করে। পরিবর্তনের ইতিহাস ট্র্যাক করার জন্য টাইমলাইন মেটাডেটা, পরিসংখ্যান ব্যবহার করে স্বয়ংক্রিয় ফাইল আকার ও বিন্যাস ব্যবস্থাপনা, ডেটা সংস্করণকরণ ও পুনরুদ্ধারের জন্য সেভপয়েন্ট এবং বিবর্তনসহ স্কিমা ট্র্যাকিং বৈশিষ্ট্যযুক্ত। **সূচীকরণ (Indexing)**: স্কেলেবল সূচীকরণ সাবসিস্টেম যা স্ন্যাপশট কোয়েরি ত্বরান্বিত করে এবং রাইট দ্বারা স্বয়ংক্রিয়ভাবে রক্ষণাবেক্ষণ করা হয়। দক্ষ কোয়েরি পরিকল্পনার জন্য ফাইল তালিকা, কলাম-স্তর এবং পার্টিশন-স্তর পরিসংখ্যান ট্র্যাক করে। সারি-ভিত্তিক ফাইল ফরম্যাট এবং ব্লুম ফিল্টারের মাধ্যমে রেকর্ড-স্তরের সূচীকরণ প্রদান করে, পাশাপাশি ভৌত স্টোরেজ পার্টিশনিং থেকে বিচ্ছিন্ন এক্সপ্রেশন ইনডেক্স ব্যবহার করে লজিক্যাল পার্টিশনিং। **রাইটিং (Writing)**: রোলব্যাক/রিস্টোর সমর্থনসহ অ্যাটমিক কমিট। রেকর্ড-স্তরের সূচী ব্যবহার করে দ্রুত আপসার্ট/ডিলিট অপারেশন। রাইটার এবং কোয়েরির মধ্যে স্ন্যাপশট আইসোলেশন। অপ্টিমিস্টিক কনকারেন্সি কন্ট্রোল (রিলেশনাল ডেটা মডেলের জন্য Read-Modify-Write) এবং নন-ব্লকিং কনকারেন্সি কন্ট্রোল (আউট-অফ-অর্ডার/দেরিতে আসা ডেটা হ্যান্ডলিংসহ স্ট্রিমিং ডেটা মডেল) উভয়ই অফার করে। **কোয়েরি (Queries)**: একটি একক টেবিলে একাধিক কোয়েরি ধরন: স্ন্যাপশট কোয়েরি (সর্বশেষ কমিটেড অবস্থা), ইনক্রিমেন্টাল কোয়েরি (একটি নির্দিষ্ট সময় থেকে পরিবর্তন), চেঞ্জ-ডেটা-ক্যাপচার কোয়েরি (আগে/পরে ইমেজসহ পরিবর্তন স্ট্রিম), টাইম-ট্রাভেল কোয়েরি (নির্দিষ্ট সময়ের টেবিল) এবং রিড অপ্টিমাইজড কোয়েরি (কম্প্যাকশনের মাধ্যমে কলামার স্টোরেজ পারফরম্যান্স)। **টেবিল ব্যবস্থাপনা (Table Management)**: স্বয়ংক্রিয়, হ্যান্ডস-ফ্রি টেবিল পরিষেবা যা Spark/Flink রাইটারে সংহত বা স্বাধীনভাবে পরিচালিত। ব্যর্থতা হ্যান্ডলিংসহ কনফিগারযোগ্য সময়সূচি। স্টোরেজ পুনরুদ্ধারের জন্য ক্লিনিং এবং TTL ব্যবস্থাপনা। ডেটা বিন্যাস অপ্টিমাইজেশনের জন্য ক্লাস্টারিং এবং স্পেস-ফিলিং কার্ভ অ্যালগরিদম। সারি-ভিত্তিক ডেটার কলামার ফরম্যাটে অ্যাসিঙ্ক্রোনাস কম্প্যাকশন। চলমান অপারেশনের সময় সামঞ্জস্যপূর্ণ সূচক নির্মাণ। Hive Metastore, AWS Glue, Google BigQuery, Apache XTable এবং আরও অনেক কিছুর সাথে ক্যাটালগ সিঙ্ক্রোনাইজেশন। Hudi একাধিক Spark সংস্করণ (3.3 থেকে 4.2) এবং Flink সংস্করণ (1.18 থেকে 2.2) সহ বিল্ডিং সমর্থন করে, Scala 2.12/2.13 বিকল্পসহ। প্রকল্পটি বিল্ডের জন্য Maven ব্যবহার করে এবং ব্যাপক টেস্ট প্রোফাইল (ইউনিট, ফাংশনাল, ইন্টিগ্রেশন) প্রদান করে।