جب آپ کے پاس Sber ترازو ہے۔ Hive اور GreenPlum کے ساتھ Ab Initio کا استعمال

کچھ عرصہ پہلے، ہمیں بگ ڈیٹا کے ساتھ کام کرنے کے لیے ETL ٹول کا انتخاب کرنے کے سوال کا سامنا کرنا پڑا۔ پہلے استعمال شدہ Informatica BDM حل محدود فعالیت کی وجہ سے ہمارے موافق نہیں تھا۔ اس کے استعمال کو اسپارک-سبمٹ کمانڈز شروع کرنے کے لیے ایک فریم ورک میں کم کر دیا گیا ہے۔ مارکیٹ میں بہت سے ایسے اینالاگ نہیں تھے جو اصولی طور پر ڈیٹا کے حجم کے ساتھ کام کرنے کے قابل تھے جس سے ہم ہر روز ڈیل کرتے ہیں۔ آخر میں ہم نے Ab Initio کا انتخاب کیا۔ پائلٹ مظاہروں کے دوران، پروڈکٹ نے بہت زیادہ ڈیٹا پروسیسنگ کی رفتار دکھائی۔ روسی میں Ab Initio کے بارے میں تقریباً کوئی معلومات نہیں ہیں، اس لیے ہم نے Habré پر اپنے تجربے کے بارے میں بات کرنے کا فیصلہ کیا۔

Ab Initio میں بہت سی کلاسک اور غیر معمولی تبدیلیاں ہیں، جن کے کوڈ کو اس کی اپنی PDL زبان کا استعمال کرتے ہوئے بڑھایا جا سکتا ہے۔ ایک چھوٹے کاروبار کے لیے، اس طرح کا طاقتور ٹول ممکنہ طور پر حد سے زیادہ کام کرے گا، اور اس کی زیادہ تر صلاحیتیں مہنگی اور غیر استعمال شدہ ہو سکتی ہیں۔ لیکن اگر آپ کا پیمانہ Sberov's کے قریب ہے، تو Ab Initio آپ کے لیے دلچسپ ہو سکتا ہے۔

یہ کاروبار کو عالمی سطح پر علم جمع کرنے اور ایک ماحولیاتی نظام تیار کرنے میں مدد کرتا ہے، اور ایک ڈویلپر کو ETL میں اپنی مہارت کو بہتر بنانے، شیل میں اپنے علم کو بہتر بنانے، PDL زبان میں مہارت حاصل کرنے کا موقع فراہم کرتا ہے، لوڈنگ کے عمل کی بصری تصویر فراہم کرتا ہے، اور ترقی کو آسان بناتا ہے۔ فعال اجزاء کی کثرت کی وجہ سے.

اس پوسٹ میں میں Ab Initio کی صلاحیتوں کے بارے میں بات کروں گا اور Hive اور GreenPlum کے ساتھ اس کے کام کی تقابلی خصوصیات فراہم کروں گا۔

  • MDW فریم ورک کی تفصیل اور GreenPlum کے لیے اس کی تخصیص پر کام
  • Hive اور GreenPlum کے درمیان Ab Initio کارکردگی کا موازنہ
  • قریب ریئل ٹائم موڈ میں GreenPlum کے ساتھ Ab Initio کام کرنا


اس پروڈکٹ کی فعالیت بہت وسیع ہے اور اس کا مطالعہ کرنے کے لیے کافی وقت درکار ہے۔ تاہم، مناسب کام کی مہارت اور درست کارکردگی کی ترتیبات کے ساتھ، ڈیٹا پروسیسنگ کے نتائج بہت متاثر کن ہوتے ہیں۔ ڈویلپر کے لیے Ab Initio کا استعمال ایک دلچسپ تجربہ فراہم کر سکتا ہے۔ یہ ETL ڈویلپمنٹ پر ایک نیا ٹیک ہے، بصری ماحول اور اسکرپٹ جیسی زبان میں ڈاؤن لوڈ کی ترقی کے درمیان ایک ہائبرڈ۔

کاروبار اپنے ماحولیاتی نظام کو ترقی دے رہے ہیں اور یہ ٹول پہلے سے کہیں زیادہ کام آتا ہے۔ Ab Initio کے ساتھ، آپ اپنے موجودہ کاروبار کے بارے میں معلومات جمع کر سکتے ہیں اور اس علم کو پرانے اور نئے کاروبار کو بڑھانے کے لیے استعمال کر سکتے ہیں۔ Ab Initio کے متبادل میں بصری ترقی کے ماحول Informatica BDM اور غیر بصری ترقی کے ماحول Apache Spark شامل ہیں۔

Ab Initio کی تفصیل

Ab Initio، دیگر ETL ٹولز کی طرح، مصنوعات کا مجموعہ ہے۔

جب آپ کے پاس Sber ترازو ہے۔ Hive اور GreenPlum کے ساتھ Ab Initio کا استعمال

Ab Initio GDE (گرافیکل ڈیولپمنٹ انوائرمنٹ) ڈویلپر کے لیے ایک ایسا ماحول ہے جس میں وہ ڈیٹا کی تبدیلیوں کو ترتیب دیتا ہے اور انہیں تیر کی شکل میں ڈیٹا کے بہاؤ سے جوڑتا ہے۔ اس صورت میں، تبدیلیوں کے اس سیٹ کو گراف کہا جاتا ہے:

جب آپ کے پاس Sber ترازو ہے۔ Hive اور GreenPlum کے ساتھ Ab Initio کا استعمال

فنکشنل اجزاء کے ان پٹ اور آؤٹ پٹ کنکشن بندرگاہیں ہیں اور ان میں تبدیلیوں کے اندر شمار کیے گئے فیلڈز ہوتے ہیں۔ تیروں کی شکل میں بہاؤ سے جڑے ہوئے کئی گرافس کو ان کے عمل کی ترتیب میں پلان کہا جاتا ہے۔

کئی سو فعال اجزاء ہیں، جو بہت زیادہ ہے. ان میں سے بہت سے انتہائی ماہر ہیں۔ Ab Initio میں کلاسک تبدیلیوں کی صلاحیتیں دیگر ETL ٹولز کے مقابلے وسیع ہیں۔ مثال کے طور پر، Join کے متعدد آؤٹ پٹ ہیں۔ ڈیٹاسیٹس کو جوڑنے کے نتیجے کے علاوہ، آپ ان پٹ ڈیٹاسیٹس کے آؤٹ پٹ ریکارڈ حاصل کر سکتے ہیں جن کی چابیاں منسلک نہیں ہو سکیں۔ آپ کو مسترد، غلطیاں اور ٹرانسفارمیشن آپریشن کا ایک لاگ بھی مل سکتا ہے، جسے ٹیکسٹ فائل کے طور پر اسی کالم میں پڑھا جا سکتا ہے اور دوسری تبدیلیوں کے ساتھ کارروائی کی جا سکتی ہے:

جب آپ کے پاس Sber ترازو ہے۔ Hive اور GreenPlum کے ساتھ Ab Initio کا استعمال

یا، مثال کے طور پر، آپ ڈیٹا وصول کرنے والے کو ٹیبل کی شکل میں بنا سکتے ہیں اور اسی کالم میں اس سے ڈیٹا پڑھ سکتے ہیں۔

اصل تبدیلیاں ہیں۔ مثال کے طور پر، اسکین ٹرانسفارمیشن کی فعالیت تجزیاتی افعال کی طرح ہے۔ خود وضاحتی ناموں کے ساتھ تبدیلیاں ہیں: ڈیٹا بنائیں، ایکسل کو پڑھیں، نارملائز کریں، گروپس کے اندر ترتیب دیں، پروگرام چلائیں، ایس کیو ایل چلائیں، DB کے ساتھ شامل ہوں، وغیرہ۔ گراف رن ٹائم پیرامیٹرز استعمال کر سکتے ہیں، بشمول پیرامیٹرز کو پاس کرنے کا امکان آپریٹنگ سسٹم پیرامیٹرس کے ریڈی میڈ سیٹ والی فائلوں کو گراف پر منتقل کیا جاتا ہے پیرامیٹر سیٹ (psets) کہلاتا ہے۔

جیسا کہ توقع کی گئی ہے، Ab Initio GDE کا اپنا ذخیرہ ہے جسے EME (انٹرپرائز میٹا ماحولیات) کہتے ہیں۔ ڈویلپرز کو کوڈ کے مقامی ورژن کے ساتھ کام کرنے اور مرکزی ذخیرہ میں ان کی پیشرفت کو چیک کرنے کا موقع ملتا ہے۔

یہ ممکن ہے، عمل درآمد کے دوران یا گراف پر عمل کرنے کے بعد، تبدیلی کو جوڑنے والے کسی بہاؤ پر کلک کریں اور ان تبدیلیوں کے درمیان گزرنے والے ڈیٹا کو دیکھیں:

جب آپ کے پاس Sber ترازو ہے۔ Hive اور GreenPlum کے ساتھ Ab Initio کا استعمال

کسی بھی سلسلے پر کلک کرنا اور ٹریکنگ کی تفصیلات دیکھنا بھی ممکن ہے - تبدیلی نے کتنے متوازی کام کیے، کتنی لائنیں اور بائٹس کس متوازی میں لوڈ کیے گئے:

جب آپ کے پاس Sber ترازو ہے۔ Hive اور GreenPlum کے ساتھ Ab Initio کا استعمال

گراف کے عمل کو مراحل میں تقسیم کرنا اور نشان زد کرنا ممکن ہے کہ کچھ تبدیلیاں پہلے (صفر مرحلے میں) کرنے کی ضرورت ہے، اگلے مرحلے میں، اگلے مرحلے میں، دوسرے مرحلے میں، وغیرہ۔

ہر تبدیلی کے لیے، آپ نام نہاد لے آؤٹ کا انتخاب کر سکتے ہیں (جہاں اس پر عمل کیا جائے گا): متوازی یا متوازی دھاگوں کے بغیر، جن کی تعداد بتائی جا سکتی ہے۔ ایک ہی وقت میں، عارضی فائلیں جو Ab Initio تخلیق کرتا ہے جب تبدیلیاں چل رہی ہوتی ہیں، سرور فائل سسٹم اور HDFS دونوں میں رکھی جا سکتی ہیں۔

ہر تبدیلی میں، پہلے سے طے شدہ ٹیمپلیٹ کی بنیاد پر، آپ PDL میں اپنی اسکرپٹ بنا سکتے ہیں، جو تھوڑا سا شیل کی طرح ہے۔

PDL کے ساتھ آپ تبدیلیوں کی فعالیت کو بڑھا سکتے ہیں اور خاص طور پر، آپ رن ٹائم پیرامیٹرز کے لحاظ سے متحرک طور پر (رن ٹائم پر) صوابدیدی کوڈ کے ٹکڑے تیار کر سکتے ہیں۔

Ab Initio میں شیل کے ذریعے OS کے ساتھ اچھی طرح سے انضمام بھی ہے۔ خاص طور پر، Sberbank linux ksh استعمال کرتا ہے۔ آپ شیل کے ساتھ متغیرات کا تبادلہ کرسکتے ہیں اور انہیں گراف پیرامیٹرز کے طور پر استعمال کرسکتے ہیں۔ آپ شیل سے Ab Initio گراف کے نفاذ کو کال کر سکتے ہیں اور Ab Initio کا انتظام کر سکتے ہیں۔

Ab Initio GDE کے علاوہ، بہت سی دوسری مصنوعات ڈیلیوری میں شامل ہیں۔ اس کا اپنا Co>آپریشن سسٹم ہے جس کا دعویٰ ہے کہ اسے آپریٹنگ سسٹم کہا جاتا ہے۔ ایک کنٹرول> سینٹر ہے جہاں آپ ڈاؤن لوڈ کے بہاؤ کو شیڈول اور مانیٹر کر سکتے ہیں۔ Ab Initio GDE کی اجازت سے کہیں زیادہ قدیم سطح پر ترقی کرنے کے لیے پروڈکٹس موجود ہیں۔

MDW فریم ورک کی تفصیل اور GreenPlum کے لیے اس کی تخصیص پر کام

اپنی مصنوعات کے ساتھ، وینڈر MDW (Metadata Driven Warehouse) پروڈکٹ فراہم کرتا ہے، جو کہ ایک گراف کنفیگریٹر ہے جو ڈیٹا گوداموں یا ڈیٹا والٹس کو آباد کرنے کے مخصوص کاموں میں مدد کے لیے ڈیزائن کیا گیا ہے۔

اس میں اپنی مرضی کے مطابق (پروجیکٹ کے لیے مخصوص) میٹا ڈیٹا پارسر اور ریڈی میڈ کوڈ جنریٹرز موجود ہیں۔

جب آپ کے پاس Sber ترازو ہے۔ Hive اور GreenPlum کے ساتھ Ab Initio کا استعمال
ان پٹ کے طور پر، MDW کو ڈیٹا ماڈل، ڈیٹا بیس (Oracle، Teradata یا Hive) سے کنکشن قائم کرنے کے لیے ایک کنفیگریشن فائل اور کچھ دیگر سیٹنگز موصول ہوتی ہیں۔ مثال کے طور پر پروجیکٹ کا مخصوص حصہ ماڈل کو ڈیٹا بیس میں تعینات کرتا ہے۔ پروڈکٹ کا آؤٹ آف دی باکس حصہ ماڈل ٹیبلز میں ڈیٹا لوڈ کر کے ان کے لیے گراف اور کنفیگریشن فائلز تیار کرتا ہے۔ اس صورت میں، ہستیوں کو اپ ڈیٹ کرنے پر ابتدائی اور اضافی کام کے کئی طریقوں کے لیے گراف (اور پی سیٹ) بنائے جاتے ہیں۔

Hive اور RDBMS کے معاملات میں، ابتدائی اور اضافی ڈیٹا اپ ڈیٹس کے لیے مختلف گراف بنائے جاتے ہیں۔

Hive کے معاملے میں، آنے والا ڈیلٹا ڈیٹا Ab Initio Join کے ذریعے اس ڈیٹا کے ساتھ منسلک ہوتا ہے جو اپ ڈیٹ سے پہلے ٹیبل میں تھا۔ MDW میں ڈیٹا لوڈرز (Hive اور RDBMS دونوں میں) نہ صرف ڈیلٹا سے نیا ڈیٹا داخل کرتے ہیں بلکہ اس ڈیٹا کی مطابقت کے دورانیے کو بھی بند کرتے ہیں جن کی بنیادی کلیدوں کو ڈیلٹا موصول ہوتا ہے۔ اس کے علاوہ، آپ کو ڈیٹا کے غیر تبدیل شدہ حصے کو دوبارہ لکھنا ہوگا۔ لیکن یہ کرنا پڑتا ہے کیونکہ Hive میں حذف یا اپ ڈیٹ آپریشن نہیں ہوتا ہے۔

جب آپ کے پاس Sber ترازو ہے۔ Hive اور GreenPlum کے ساتھ Ab Initio کا استعمال

RDBMS کے معاملے میں، اعداد و شمار کو اپ ڈیٹ کرنے کے لیے گراف زیادہ بہتر نظر آتے ہیں، کیونکہ RDBMS میں حقیقی اپ ڈیٹ کرنے کی صلاحیتیں ہیں۔

جب آپ کے پاس Sber ترازو ہے۔ Hive اور GreenPlum کے ساتھ Ab Initio کا استعمال

موصولہ ڈیلٹا ڈیٹا بیس میں ایک انٹرمیڈیٹ ٹیبل میں لوڈ کیا جاتا ہے۔ اس کے بعد ڈیلٹا اس ڈیٹا سے جڑ جاتا ہے جو اپ ڈیٹ سے پہلے ٹیبل میں تھا۔ اور یہ ایس کیو ایل کا استعمال کرتے ہوئے تیار کردہ ایس کیو ایل استفسار کا استعمال کرتے ہوئے کیا جاتا ہے۔ اس کے بعد، ایس کیو ایل کمانڈ ڈیلیٹ+انسرٹ کا استعمال کرتے ہوئے، ڈیلٹا سے نیا ڈیٹا ٹارگٹ ٹیبل میں داخل کیا جاتا ہے اور اس ڈیٹا کی مطابقت کے دورانیے جن کی بنیادی کلیدوں کو ڈیلٹا موصول ہوتا ہے بند کر دیا جاتا ہے۔
غیر تبدیل شدہ ڈیٹا کو دوبارہ لکھنے کی ضرورت نہیں ہے۔

لہذا ہم اس نتیجے پر پہنچے کہ Hive کے معاملے میں، MDW کو پوری ٹیبل کو دوبارہ لکھنے کے لیے جانا پڑتا ہے کیونکہ Hive میں اپ ڈیٹ کا فنکشن نہیں ہوتا ہے۔ اور اپ ڈیٹ کرنے کے بعد ڈیٹا کو مکمل طور پر دوبارہ لکھنے سے بہتر کوئی چیز نہیں ہے۔ آر ڈی بی ایم ایس کے معاملے میں، اس کے برعکس، پروڈکٹ کے تخلیق کاروں نے ایس کیو ایل کے استعمال کے لیے ٹیبلز کے کنکشن اور اپڈیٹنگ کو سونپنا ضروری سمجھا۔

Sberbank میں ایک پروجیکٹ کے لیے، ہم نے GreenPlum کے لیے ڈیٹا بیس لوڈر کا ایک نیا، دوبارہ قابل استعمال عمل بنایا ہے۔ یہ اس ورژن کی بنیاد پر کیا گیا تھا جو MDW Teradata کے لیے تیار کرتا ہے۔ یہ ٹیراڈیٹا تھا، اوریکل نہیں، جو اس کے لیے سب سے قریب اور بہترین آیا، کیونکہ... ایک MPP نظام بھی ہے۔ ٹیراڈیٹا اور گرین پلم کے کام کرنے کے طریقے، نیز نحو ایک جیسے نکلے۔

مختلف RDBMSs کے درمیان MDW- اہم اختلافات کی مثالیں درج ذیل ہیں۔ GreenPlum میں، Teradata کے برعکس، جدول بناتے وقت آپ کو ایک شق لکھنے کی ضرورت ہوتی ہے۔

distributed by

Teradata لکھتے ہیں:

delete <table> all

، اور GreenPlum میں وہ لکھتے ہیں۔

delete from <table>

اوریکل میں، اصلاح کے مقاصد کے لیے وہ لکھتے ہیں۔

delete from t where rowid in (<соединение t с дельтой>)

، اور Teradata اور GreenPlum لکھتے ہیں۔

delete from t where exists (select * from delta where delta.pk=t.pk)

ہم یہ بھی نوٹ کرتے ہیں کہ Ab Initio کے GreenPlum کے ساتھ کام کرنے کے لیے، Ab Initio کلسٹر کے تمام نوڈس پر GreenPlum کلائنٹ کو انسٹال کرنا ضروری تھا۔ اس کی وجہ یہ ہے کہ ہم اپنے کلسٹر کے تمام نوڈس سے بیک وقت GreenPlum سے جڑ گئے ہیں۔ اور گرین پلم سے پڑھنے کے لیے متوازی ہونے کے لیے اور ہر ایک متوازی Ab Initio تھریڈ کو GreenPlum سے ڈیٹا کا اپنا حصہ پڑھنے کے لیے، ہمیں ایس کیو ایل کے سوالات کے "جہاں" سیکشن میں Ab Initio کے ذریعے سمجھے جانے والے ایک کنسٹرکشن کو رکھنا پڑا۔

where ABLOCAL()

اور ٹرانسفارمیشن ڈیٹا بیس سے پیرامیٹر ریڈنگ بتا کر اس تعمیر کی قدر کا تعین کریں۔

ablocal_expr=«string_concat("mod(t.", string_filter_out("{$TABLE_KEY}","{}"), ",", (decimal(3))(number_of_partitions()),")=", (decimal(3))(this_partition()))»

، جو کچھ اس طرح مرتب کرتا ہے۔

mod(sk,10)=3

، یعنی آپ کو ہر پارٹیشن کے لیے ایک واضح فلٹر کے ساتھ GreenPlum کا اشارہ کرنا ہوگا۔ دوسرے ڈیٹا بیس (ٹیراڈیٹا، اوریکل) کے لیے، Ab Initio خود بخود اس متوازی عمل کو انجام دے سکتا ہے۔

Hive اور GreenPlum کے درمیان Ab Initio کارکردگی کا موازنہ

Sberbank نے Hive کے سلسلے میں اور GreenPlum کے سلسلے میں MDW سے تیار کردہ گرافس کی کارکردگی کا موازنہ کرنے کے لیے ایک تجربہ کیا۔ تجربے کے حصے کے طور پر، Hive کے معاملے میں Ab Initio کے ایک ہی کلسٹر پر 5 نوڈس تھے، اور GreenPlum کے معاملے میں ایک الگ کلسٹر پر 4 نوڈس تھے۔ وہ. Hive کو گرین پلم پر کچھ ہارڈ ویئر کا فائدہ تھا۔

ہم نے Hive اور GreenPlum میں ڈیٹا کو اپ ڈیٹ کرنے کا ایک ہی کام انجام دینے والے گراف کے دو جوڑے پر غور کیا۔ ایک ہی وقت میں، MDW کنفیگریٹر کے ذریعہ تیار کردہ گراف شروع کیے گئے:

  • ابتدائی بوجھ + Hive ٹیبل میں تصادفی طور پر تیار کردہ ڈیٹا کا اضافی بوجھ
  • ابتدائی بوجھ + ایک ہی گرین پلم ٹیبل میں تصادفی طور پر تیار کردہ ڈیٹا کا اضافی بوجھ

دونوں صورتوں میں (Hive اور GreenPlum) انہوں نے ایک ہی Ab Initio کلسٹر پر 10 متوازی تھریڈز پر اپ لوڈز چلائے۔ Ab Initio نے HDFS میں حساب کے لیے انٹرمیڈیٹ ڈیٹا محفوظ کیا (Ab Initio کے لحاظ سے، HDFS کا استعمال کرتے ہوئے MFS لے آؤٹ استعمال کیا گیا تھا)۔ تصادفی طور پر تیار کردہ ڈیٹا کی ایک لائن نے دونوں صورتوں میں 200 بائٹس پر قبضہ کیا۔

نتیجہ اس طرح تھا:

چھتے:

Hive میں ابتدائی لوڈنگ

قطاریں داخل کی گئیں۔
6 000 000
60 000 000
600 000 000

آغاز کا دورانیہ
سیکنڈوں میں ڈاؤن لوڈ
41
203
1 601

Hive میں اضافی لوڈنگ

میں دستیاب قطاروں کی تعداد
تجربے کے آغاز میں ہدف کی میز
6 000 000
60 000 000
600 000 000

لاگو ڈیلٹا لائنوں کی تعداد
تجربے کے دوران ہدف کی میز
6 000 000
6 000 000
6 000 000

اضافہ کی مدت
سیکنڈوں میں ڈاؤن لوڈ
88
299
2 541

گرین پلم:

گرین پلم میں ابتدائی لوڈنگ

قطاریں داخل کی گئیں۔
6 000 000
60 000 000
600 000 000

آغاز کا دورانیہ
سیکنڈوں میں ڈاؤن لوڈ
72
360
3 631

گرین پلم میں اضافی لوڈنگ

میں دستیاب قطاروں کی تعداد
تجربے کے آغاز میں ہدف کی میز
6 000 000
60 000 000
600 000 000

لاگو ڈیلٹا لائنوں کی تعداد
تجربے کے دوران ہدف کی میز
6 000 000
6 000 000
6 000 000

اضافہ کی مدت
سیکنڈوں میں ڈاؤن لوڈ
159
199
321

ہم دیکھتے ہیں کہ Hive اور GreenPlum دونوں میں ابتدائی لوڈنگ کی رفتار کا انحصار ڈیٹا کی مقدار پر ہے اور، بہتر ہارڈ ویئر کی وجہ سے، یہ Hive کے لیے GreenPlum کے مقابلے میں قدرے تیز ہے۔

Hive میں بڑھتی ہوئی لوڈنگ بھی لکیری طور پر ٹارگٹ ٹیبل میں دستیاب پہلے سے بھرے ہوئے ڈیٹا کے حجم پر منحصر ہے اور حجم بڑھنے کے ساتھ ساتھ کافی آہستہ سے آگے بڑھتا ہے۔ یہ ہدف کی میز کو مکمل طور پر دوبارہ لکھنے کی ضرورت کی وجہ سے ہے۔ اس کا مطلب یہ ہے کہ بڑی میزوں پر چھوٹی تبدیلیاں لاگو کرنا Hive کے لیے اچھا استعمال نہیں ہے۔

گرین پلم میں اضافی لوڈنگ کمزور طور پر ٹارگٹ ٹیبل میں دستیاب پہلے سے لوڈ کردہ ڈیٹا کے حجم پر منحصر ہے اور کافی تیزی سے آگے بڑھتا ہے۔ یہ ایس کیو ایل جوائنز اور گرین پلم آرکیٹیکچر کی بدولت ہوا، جو ڈیلیٹ آپریشن کی اجازت دیتا ہے۔

لہذا، GreenPlum ڈیلیٹ + داخل کرنے کے طریقہ کار کا استعمال کرتے ہوئے ڈیلٹا کو شامل کرتا ہے، لیکن Hive میں حذف یا اپ ڈیٹ آپریشنز نہیں ہوتے ہیں، اس لیے ایک اضافی اپ ڈیٹ کے دوران پورے ڈیٹا کی صف کو مکمل طور پر دوبارہ لکھنے پر مجبور کیا گیا۔ بولڈ میں نمایاں کردہ سیلز کا موازنہ سب سے زیادہ ظاہر کرتا ہے، کیونکہ یہ وسائل سے متعلق ڈاؤن لوڈز کو استعمال کرنے کے سب سے عام آپشن سے مطابقت رکھتا ہے۔ ہم دیکھتے ہیں کہ گرین پلم نے اس ٹیسٹ میں Hive کو 8 بار شکست دی۔

قریب ریئل ٹائم موڈ میں GreenPlum کے ساتھ Ab Initio کام کرنا

اس تجربے میں، ہم Ab Initio کی گرین پلم ٹیبل کو تصادفی طور پر تیار کردہ ٹکڑوں کے ساتھ قریب قریب حقیقی وقت میں اپ ڈیٹ کرنے کی صلاحیت کی جانچ کریں گے۔ آئیے GreenPlum ٹیبل dev42_1_db_usl.TESTING_SUBJ_org_finval پر غور کریں، جس کے ساتھ ہم کام کریں گے۔

اس کے ساتھ کام کرنے کے لیے ہم تین Ab Initio گراف استعمال کریں گے۔

1) گراف Create_test_data.mp - HDFS میں 10 متوازی دھاگوں میں 6 قطاروں کے ساتھ ڈیٹا فائلز بناتا ہے۔ ڈیٹا بے ترتیب ہے، اس کی ساخت ہمارے ٹیبل میں داخل کرنے کے لیے ترتیب دی گئی ہے۔

جب آپ کے پاس Sber ترازو ہے۔ Hive اور GreenPlum کے ساتھ Ab Initio کا استعمال

جب آپ کے پاس Sber ترازو ہے۔ Hive اور GreenPlum کے ساتھ Ab Initio کا استعمال

2) گراف mdw_load.day_one.current.dev42_1_db_usl_testing_subj_org_finval.pset – MDW نے 10 متوازی دھاگوں میں ہمارے ٹیبل میں ڈیٹا داخل کرنے کی شروعات کرکے گراف تیار کیا (گراف (1) کے ذریعہ تیار کردہ ٹیسٹ ڈیٹا استعمال کیا جاتا ہے)

جب آپ کے پاس Sber ترازو ہے۔ Hive اور GreenPlum کے ساتھ Ab Initio کا استعمال

3) گراف mdw_load.regular.current.dev42_1_db_usl_testing_subj_org_finval.pset – تازہ موصول ہونے والے ڈیٹا (ڈیلٹا) کے ایک حصے کا استعمال کرتے ہوئے 10 متوازی دھاگوں میں ہمارے ٹیبل کی اضافی اپ ڈیٹ کرنے کے لیے MDW کے ذریعے تیار کردہ ایک گراف (1)

جب آپ کے پاس Sber ترازو ہے۔ Hive اور GreenPlum کے ساتھ Ab Initio کا استعمال

آئیے درج ذیل اسکرپٹ کو NRT موڈ میں چلائیں:

  • 6 ٹیسٹ لائنیں بنائیں
  • ایک خالی ٹیبل میں ابتدائی بوجھ ڈالیں 6 ٹیسٹ قطاریں
  • انکریمنٹل ڈاؤن لوڈ 5 بار دہرائیں۔
    • 6 ٹیسٹ لائنیں بنائیں
    • ٹیبل میں 6 ٹیسٹ قطاروں کا ایک اضافی داخل کریں (اس صورت میں، valid_to_ts ختم ہونے کا وقت پرانے ڈیٹا پر سیٹ کیا جاتا ہے اور اسی بنیادی کلید کے ساتھ مزید حالیہ ڈیٹا داخل کیا جاتا ہے)

یہ منظر نامہ ایک مخصوص کاروباری نظام کے حقیقی آپریشن کے موڈ کی تقلید کرتا ہے - نئے ڈیٹا کا کافی بڑا حصہ حقیقی وقت میں ظاہر ہوتا ہے اور اسے فوری طور پر GreenPlum میں ڈال دیا جاتا ہے۔

اب اسکرپٹ کے لاگ کو دیکھتے ہیں:

2020-06-04 11:49:11 پر Create_test_data.input.pset شروع کریں
Create_test_data.input.pset کو 2020-06-04 11:49:37 پر ختم کریں
mdw_load.day_one.current.dev42_1_db_usl_testing_subj_org_finval.pset 2020-06-04 11:49:37 پر شروع کریں
mdw_load.day_one.current.dev42_1_db_usl_testing_subj_org_finval.pset 2020-06-04 11:50:42 پر ختم کریں۔
2020-06-04 11:50:42 پر Create_test_data.input.pset شروع کریں
Create_test_data.input.pset کو 2020-06-04 11:51:06 پر ختم کریں
mdw_load.regular.current.dev42_1_db_usl_testing_subj_org_finval.pset 2020-06-04 11:51:06 پر شروع کریں
mdw_load.regular.current.dev42_1_db_usl_testing_subj_org_finval.pset 2020-06-04 11:53:41 پر ختم کریں۔
2020-06-04 11:53:41 پر Create_test_data.input.pset شروع کریں
Create_test_data.input.pset کو 2020-06-04 11:54:04 پر ختم کریں
mdw_load.regular.current.dev42_1_db_usl_testing_subj_org_finval.pset 2020-06-04 11:54:04 پر شروع کریں
mdw_load.regular.current.dev42_1_db_usl_testing_subj_org_finval.pset 2020-06-04 11:56:51 پر ختم کریں۔
2020-06-04 11:56:51 پر Create_test_data.input.pset شروع کریں
Create_test_data.input.pset کو 2020-06-04 11:57:14 پر ختم کریں
mdw_load.regular.current.dev42_1_db_usl_testing_subj_org_finval.pset 2020-06-04 11:57:14 پر شروع کریں
mdw_load.regular.current.dev42_1_db_usl_testing_subj_org_finval.pset 2020-06-04 11:59:55 پر ختم کریں۔
2020-06-04 11:59:55 پر Create_test_data.input.pset شروع کریں
Create_test_data.input.pset کو 2020-06-04 12:00:23 پر ختم کریں
mdw_load.regular.current.dev42_1_db_usl_testing_subj_org_finval.pset 2020-06-04 12:00:23 پر شروع کریں
mdw_load.regular.current.dev42_1_db_usl_testing_subj_org_finval.pset 2020-06-04 12:03:23 پر ختم کریں۔
2020-06-04 12:03:23 پر Create_test_data.input.pset شروع کریں
Create_test_data.input.pset کو 2020-06-04 12:03:49 پر ختم کریں
mdw_load.regular.current.dev42_1_db_usl_testing_subj_org_finval.pset 2020-06-04 12:03:49 پر شروع کریں
mdw_load.regular.current.dev42_1_db_usl_testing_subj_org_finval.pset 2020-06-04 12:06:46 پر ختم کریں۔

اس تصویر سے پتہ چلتا ہے:

گراف
وقت آغاز
وقت ختم کریں۔
لمبائی

Create_test_data.input.pset
04.06.2020: 11: 49: 11
04.06.2020: 11: 49: 37
00:00:26

mdw_load.day_one.current.
dev42_1_db_usl_testing_subj_org_finval.pset
04.06.2020: 11: 49: 37
04.06.2020: 11: 50: 42
00:01:05

Create_test_data.input.pset
04.06.2020: 11: 50: 42
04.06.2020: 11: 51: 06
00:00:24

mdw_load.regular.current
dev42_1_db_usl_testing_subj_org_finval.pset
04.06.2020: 11: 51: 06
04.06.2020: 11: 53: 41
00:02:35

Create_test_data.input.pset
04.06.2020: 11: 53: 41
04.06.2020: 11: 54: 04
00:00:23

mdw_load.regular.current
dev42_1_db_usl_testing_subj_org_finval.pset
04.06.2020: 11: 54: 04
04.06.2020: 11: 56: 51
00:02:47

Create_test_data.input.pset
04.06.2020: 11: 56: 51
04.06.2020: 11: 57: 14
00:00:23

mdw_load.regular.current
dev42_1_db_usl_testing_subj_org_finval.pset
04.06.2020: 11: 57: 14
04.06.2020: 11: 59: 55
00:02:41

Create_test_data.input.pset
04.06.2020: 11: 59: 55
04.06.2020: 12: 00: 23
00:00:28

mdw_load.regular.current
dev42_1_db_usl_testing_subj_org_finval.pset
04.06.2020: 12: 00: 23
04.06.2020: 12: 03: 23
00:03:00

Create_test_data.input.pset
04.06.2020: 12: 03: 23
04.06.2020: 12: 03: 49
00:00:26

mdw_load.regular.current
dev42_1_db_usl_testing_subj_org_finval.pset
04.06.2020: 12: 03: 49
04.06.2020: 12: 06: 46
00:02:57

ہم دیکھتے ہیں کہ 6 منٹ میں 000 انکریمنٹ لائنوں پر کارروائی ہوتی ہے، جو کہ کافی تیز ہے۔
ٹارگٹ ٹیبل میں موجود ڈیٹا کو اس طرح تقسیم کیا گیا:

select valid_from_ts, valid_to_ts, count(1), min(sk), max(sk) from dev42_1_db_usl.TESTING_SUBJ_org_finval group by valid_from_ts, valid_to_ts order by 1,2;

جب آپ کے پاس Sber ترازو ہے۔ Hive اور GreenPlum کے ساتھ Ab Initio کا استعمال
آپ داخل کردہ ڈیٹا کی خط و کتابت اس وقت دیکھ سکتے ہیں جب گراف لانچ کیے گئے تھے۔
اس کا مطلب ہے کہ آپ گرین پلم میں بہت زیادہ فریکوئنسی کے ساتھ ڈیٹا کی اضافی لوڈنگ چلا سکتے ہیں اور اس ڈیٹا کو گرین پلم میں داخل کرنے کی تیز رفتاری کا مشاہدہ کر سکتے ہیں۔ بلاشبہ، سیکنڈ میں ایک بار لانچ کرنا ممکن نہیں ہوگا، کیونکہ Ab Initio، کسی بھی ETL ٹول کی طرح، لانچ ہونے پر "اسٹارٹ اپ" کے لیے وقت درکار ہوتا ہے۔

حاصل يہ ہوا

Ab Initio فی الحال Sberbank میں یونیفائیڈ سیمنٹک ڈیٹا لیئر (ESS) بنانے کے لیے استعمال ہوتا ہے۔ اس پروجیکٹ میں مختلف بینکنگ کاروباری اداروں کی ریاست کا ایک متحد ورژن بنانا شامل ہے۔ معلومات مختلف ذرائع سے آتی ہیں، جن کی نقلیں ہڈوپ پر تیار کی جاتی ہیں۔ کاروباری ضروریات کی بنیاد پر، ایک ڈیٹا ماڈل تیار کیا جاتا ہے اور ڈیٹا کی تبدیلیوں کو بیان کیا جاتا ہے۔ Ab Initio معلومات کو ESN میں لوڈ کرتا ہے اور ڈاؤن لوڈ کردہ ڈیٹا نہ صرف اپنے آپ میں کاروبار کے لیے دلچسپی کا باعث ہے، بلکہ ڈیٹا مارٹس کی تعمیر کے لیے ایک ذریعہ کے طور پر بھی کام کرتا ہے۔ ایک ہی وقت میں، پروڈکٹ کی فعالیت آپ کو مختلف سسٹمز کو بطور ریسیور استعمال کرنے کی اجازت دیتی ہے (Hive، Greenplum، Teradata، Oracle)، جس سے کاروبار کے لیے مطلوبہ مختلف فارمیٹس میں ڈیٹا آسانی سے تیار کرنا ممکن ہو جاتا ہے۔

Ab Initio کی صلاحیتیں وسیع ہیں؛ مثال کے طور پر، شامل کردہ MDW فریم ورک تکنیکی اور کاروباری تاریخی ڈیٹا کو باکس سے باہر بنانا ممکن بناتا ہے۔ ڈویلپرز کے لیے، Ab Initio یہ ممکن بناتا ہے کہ وہ پہیے کو دوبارہ ایجاد نہ کیا جائے، بلکہ بہت سے موجودہ فنکشنل اجزاء کو استعمال کیا جائے، جو ڈیٹا کے ساتھ کام کرتے وقت بنیادی طور پر لائبریریوں کی ضرورت ہوتی ہے۔

مصنف Sberbank SberProfi DWH/BigData کی پیشہ ورانہ کمیونٹی میں ماہر ہے۔ SberProfi DWH/BigData پروفیشنل کمیونٹی ہڈوپ ایکو سسٹم، ٹیراڈیٹا، اوریکل ڈی بی، گرین پلم کے ساتھ ساتھ BI ٹولز Qlik، SAP BO، Tableau وغیرہ جیسے شعبوں میں قابلیت پیدا کرنے کی ذمہ دار ہے۔

ماخذ: www.habr.com

نیا تبصرہ شامل کریں