منصوبے کے بارے میں

Apache Hudi (Hadoop Upserts Deletes and Incrementals) ایک اوپن سورس ڈیٹا لیک ہاؤس پلیٹ فارم ہے جو ایک اعلیٰ کارکردگی والے اوپن ٹیبل فارمیٹ کے گرد بنایا گیا ہے۔ یہ تنظیموں کو متعدد کلاؤڈ ڈیٹا ماحول میں ڈیٹا کی انجسٹ، انڈیکس، اسٹوریج، سرو، ٹرانسفارم اور انتظام کرنے کے قابل بناتا ہے، جبکہ ڈیٹا کو کلاؤڈ اسٹوریج پر اوپن فارمیٹس میں برقرار رکھتا ہے۔ اہم صلاحیتیں شامل ہیں: **انجسٹ**: Apache Spark اور Apache Flink صارفین کے لیے بلٹ ان ٹولز، جو آدھے درجن فائل فارمیٹس، ڈیٹا بیس چینج لاگز اور اسٹریمنگ ڈیٹا سسٹمز کو سپورٹ کرتے ہیں۔ بیرونی ڈیٹا ذرائع لانے کے لیے Kafka Connect sink شامل ہے۔ **اسٹوریج**: بہتر اسٹوریج فارمیٹ جو قطار اور کالم ڈیٹا دونوں کو سپورٹ کرتا ہے۔ تبدیلی کی تاریخ کو ٹریک کرنے کے لیے ٹائم لائن میٹا ڈیٹا، فائل سائز اور لے آؤٹ کے خودکار انتظام کے لیے شماریات کا استعمال، ڈیٹا ورژننگ اور ریکوری کے لیے سیو پوائنٹس، اور ارتقاء کے ساتھ اسکیما ٹریکنگ شامل ہے۔ **انڈیکسنگ**: اسکیل ایبل انڈیکسنگ سب سسٹم جو سنیپ شاٹ کوئریز کو تیز کرتا ہے، اور لکھنے کے ذریعے خود بخود برقرار رہتا ہے۔ فائل لسٹنگ، کالم لیول اور پارٹیشن لیول شماریات کو ٹریک کرتا ہے تاکہ موثر کوئری پلاننگ ہو۔ قطار پر مبنی فائل فارمیٹس اور بلوم فلٹرز کے ذریعے ریکارڈ لیول انڈیکسنگ فراہم کرتا ہے، نیز فزیکل اسٹوریج پارٹیشننگ سے الگ ایکسپریشن انڈیکس کے ذریعے منطقی پارٹیشننگ۔ **لکھنا**: رول بیک/ریسٹور سپورٹ کے ساتھ ایٹمک کمٹس۔ ریکارڈ لیول انڈیکس کا استعمال کرتے ہوئے تیز اپسرٹ/ڈیلیٹ آپریشنز۔ لکھنے والوں اور کوئریز کے درمیان سنیپ شاٹ آئسولیشن۔ دونوں آپٹیمسٹک کنکرنسی کنٹرول (ریلیشنل ڈیٹا ماڈل کے لیے Read-Modify-Write) اور نان بلاکنگ کنکرنسی کنٹرول (آؤٹ آف آرڈر/لیٹ ڈیٹا ہینڈلنگ کے ساتھ اسٹریمنگ ڈیٹا ماڈل) پیش کرتا ہے۔ **کوئریز**: ایک ہی ٹیبل پر متعدد کوئری اقسام: سنیپ شاٹ کوئری (تازہ ترین کمٹ شدہ حالت)، انکریمنٹل کوئری (ایک نقطہ وقت کے بعد تبدیلیاں)، چینج-ڈیٹا-کیپچر کوئری (پہلے/بعد کی تصاویر کے ساتھ چینج اسٹریم)، ٹائم-ٹریول کوئری (مخصوص وقت پر ٹیبل)، اور ریڈ آپٹیمائزڈ کوئری (کمپیکشن کے ذریعے کالم اسٹوریج کارکردگی)۔ **ٹیبل مینجمنٹ**: خودکار، ہینڈز فری ٹیبل سروسز جو 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 کا استعمال کرتا ہے اور جامع ٹیسٹ پروفائلز (یونٹ، فنکشنل، انٹیگریشن) فراہم کرتا ہے۔