وقتی مقیاس Sberov دارید. استفاده از Ab Initio با Hive و GreenPlum

مدتی پیش با سوال انتخاب ابزار ETL برای کار با Big Data مواجه بودیم. راه حل قبلی Informatica BDM به دلیل عملکرد محدود مناسب ما نیست. استفاده از آن به چارچوبی برای راه اندازی دستورات spark-submit کاهش یافته است. آنالوگ های زیادی در بازار وجود نداشت که اصولاً قادر به کار با حجم داده هایی باشند که ما هر روز با آنها سروکار داریم. در نهایت Ab Initio را انتخاب کردیم. در طول نمایش آزمایشی، محصول سرعت پردازش داده بسیار بالایی را نشان داد. تقریباً هیچ اطلاعاتی در مورد Ab Initio به زبان روسی وجود ندارد، بنابراین تصمیم گرفتیم در مورد تجربه خود در Habré صحبت کنیم.

Ab Initio دارای بسیاری از تبدیل های کلاسیک و غیر معمول است که کد آنها را می توان با استفاده از زبان PDL خود گسترش داد. برای یک کسب و کار کوچک، چنین ابزار قدرتمندی احتمالاً بیش از حد است و بسیاری از قابلیت های آن ممکن است گران و بلااستفاده باشند. اما اگر مقیاس شما نزدیک به Sberov است، ممکن است Ab Initio برای شما جالب باشد.

این به یک کسب و کار کمک می کند تا دانش را در سطح جهانی انباشته کند و یک اکوسیستم را توسعه دهد، و به یک توسعه دهنده کمک می کند تا مهارت های خود را در ETL بهبود بخشد، دانش خود را در پوسته بهبود بخشد، فرصت تسلط بر زبان PDL را فراهم می کند، تصویری بصری از فرآیندهای بارگذاری ارائه می دهد و توسعه را ساده می کند. به دلیل فراوانی اجزای کاربردی.

در این پست در مورد قابلیت های Ab Initio صحبت خواهم کرد و ویژگی های مقایسه ای کار آن را با Hive و GreenPlum ارائه خواهم داد.

  • شرح چارچوب MDW و کار بر روی سفارشی سازی آن برای GreenPlum
  • مقایسه عملکرد Ab Initio بین Hive و GreenPlum
  • کارکردن Ab Initio با GreenPlum در حالت نزدیک به زمان واقعی


کارایی این محصول بسیار گسترده است و مطالعه آن به زمان زیادی نیاز دارد. با این حال، با مهارت های کاری مناسب و تنظیمات عملکرد مناسب، نتایج پردازش داده ها بسیار چشمگیر است. استفاده از Ab Initio برای یک توسعه دهنده می تواند تجربه جالبی را ارائه دهد. این یک برداشت جدید از توسعه ETL است، ترکیبی بین یک محیط بصری و توسعه دانلود به زبانی شبیه به اسکریپت.

کسب و کارها در حال توسعه اکوسیستم های خود هستند و این ابزار بیش از هر زمان دیگری به کار می آید. با استفاده از Ab Initio می توانید دانش خود را در مورد کسب و کار فعلی خود جمع آوری کنید و از این دانش برای گسترش کسب و کارهای قدیمی و باز کردن مشاغل جدید استفاده کنید. جایگزین های Ab Initio شامل محیط های توسعه بصری Informatica BDM و محیط های توسعه غیر بصری Apache Spark است.

شرح Ab Initio

Ab Initio مانند سایر ابزارهای ETL مجموعه ای از محصولات است.

وقتی مقیاس Sberov دارید. استفاده از Ab Initio با Hive و GreenPlum

Ab Initio GDE (محیط توسعه گرافیکی) محیطی برای توسعه دهنده است که در آن تبدیل داده ها را پیکربندی می کند و آنها را با جریان های داده به شکل فلش متصل می کند. در این مورد، چنین مجموعه ای از تبدیل ها را گراف می نامند:

وقتی مقیاس Sberov دارید. استفاده از Ab Initio با Hive و GreenPlum

اتصالات ورودی و خروجی اجزای عملکردی پورت‌هایی هستند و شامل فیلدهایی هستند که درون تبدیل‌ها محاسبه می‌شوند. چندین نمودار که توسط جریان ها به صورت فلش به ترتیب اجرای آنها متصل می شوند پلان نامیده می شوند.

صدها جزء کاربردی وجود دارد که بسیار زیاد است. بسیاری از آنها بسیار تخصصی هستند. قابلیت های تبدیل های کلاسیک در Ab Initio گسترده تر از سایر ابزارهای ETL است. به عنوان مثال، Join دارای چندین خروجی است. علاوه بر نتیجه اتصال مجموعه‌های داده، می‌توانید رکوردهای خروجی مجموعه داده‌های ورودی را دریافت کنید که کلیدهای آنها متصل نمی‌شوند. همچنین می توانید ردها، خطاها و گزارش عملیات تبدیل را دریافت کنید که می تواند در همان ستون به عنوان یک فایل متنی خوانده شود و با تبدیل های دیگر پردازش شود:

وقتی مقیاس Sberov دارید. استفاده از Ab Initio با Hive و GreenPlum

یا مثلاً می‌توانید یک گیرنده داده را به شکل جدول درآورید و داده‌ها را از آن در همان ستون بخوانید.

تحولات اصلی وجود دارد. برای مثال، تبدیل Scan عملکردی مشابه توابع تحلیلی دارد. تغییراتی با نام‌های خود توضیحی وجود دارد: ایجاد داده، خواندن اکسل، عادی‌سازی، مرتب‌سازی درون گروه‌ها، اجرای برنامه، اجرای SQL، پیوستن با DB و غیره. نمودارها می‌توانند از پارامترهای زمان اجرا استفاده کنند، از جمله امکان انتقال پارامترها از یا به سیستم عامل . فایل هایی با مجموعه ای از پارامترهای آماده ارسال شده به نمودار، مجموعه پارامترها (psets) نامیده می شوند.

همانطور که انتظار می رفت، Ab Initio GDE دارای مخزن مخصوص به خود به نام EME (Enterprise Meta Environment) است. توسعه دهندگان این فرصت را دارند که با نسخه های محلی کد کار کنند و پیشرفت های خود را در مخزن مرکزی بررسی کنند.

ممکن است در حین اجرا یا پس از اجرای نمودار، روی هر جریانی که تبدیل را به هم متصل می کند کلیک کنید و به داده هایی که بین این تبدیل ها منتقل شده است نگاه کنید:

وقتی مقیاس Sberov دارید. استفاده از Ab Initio با Hive و GreenPlum

همچنین می توان روی هر جریانی کلیک کرد و جزئیات ردیابی را مشاهده کرد - تبدیل در چند موازی کار کرد، چند خط و بایت در کدام یک از موازی ها بارگذاری شد:

وقتی مقیاس Sberov دارید. استفاده از Ab Initio با Hive و GreenPlum

می توان اجرای نمودار را به فازها تقسیم کرد و علامت گذاری کرد که ابتدا برخی تبدیل ها (در فاز صفر)، تبدیل های بعدی در فاز اول، بعدی ها در فاز دوم و غیره باید انجام شود.

برای هر تبدیل، می توانید به اصطلاح چیدمان (جایی که اجرا می شود) را انتخاب کنید: بدون موازی یا رشته های موازی که تعداد آنها قابل تعیین است. در عین حال، فایل‌های موقتی که Ab Initio هنگام اجرای تبدیل‌ها ایجاد می‌کند، می‌توانند هم در سیستم فایل سرور و هم در HDFS قرار گیرند.

در هر تبدیل، بر اساس قالب پیش فرض، می توانید اسکریپت خود را در PDL ایجاد کنید که کمی شبیه به یک پوسته است.

با PDL می توانید عملکرد تبدیل ها را گسترش دهید و به ویژه می توانید به صورت پویا (در زمان اجرا) قطعات کد دلخواه را بسته به پارامترهای زمان اجرا تولید کنید.

Ab Initio همچنین از طریق پوسته یکپارچه سازی خوبی با سیستم عامل دارد. به طور خاص، Sberbank از لینوکس ksh استفاده می کند. می توانید متغیرها را با پوسته مبادله کنید و از آنها به عنوان پارامترهای گراف استفاده کنید. می توانید اجرای گراف های Ab Initio را از پوسته فراخوانی کرده و Ab Initio را مدیریت کنید.

علاوه بر Ab Initio GDE، بسیاری از محصولات دیگر در تحویل گنجانده شده است. سیستم عملیاتی خود را دارد که ادعا می کند سیستم عامل نامیده می شود. یک Control>Center وجود دارد که می توانید جریان دانلود را برنامه ریزی و نظارت کنید. محصولاتی برای انجام توسعه در سطح ابتدایی تر از آن چیزی که Ab Initio GDE اجازه می دهد وجود دارد.

شرح چارچوب MDW و کار بر روی سفارشی سازی آن برای GreenPlum

همراه با محصولات خود، فروشنده محصول MDW (مجموعه انبار مبتنی بر فراداده) را نیز عرضه می کند، که یک پیکربندی گراف است که برای کمک به کارهای معمولی پر کردن انبارهای داده یا انبارهای داده طراحی شده است.

این شامل تجزیه‌کننده‌های فراداده سفارشی (مخصوص پروژه) و تولیدکننده‌های کد آماده خارج از جعبه است.

وقتی مقیاس Sberov دارید. استفاده از Ab Initio با Hive و GreenPlum
به عنوان ورودی، MDW یک مدل داده، یک فایل پیکربندی برای تنظیم اتصال به پایگاه داده (Oracle، Teradata یا Hive) و برخی تنظیمات دیگر را دریافت می کند. برای مثال، بخش خاص پروژه، مدل را در پایگاه داده مستقر می کند. بخش خارج از جعبه محصول با بارگذاری داده ها در جداول مدل، نمودارها و فایل های پیکربندی را برای آنها تولید می کند. در این مورد، نمودارها (و psets) برای چندین حالت اولیه سازی و کار افزایشی در به روز رسانی موجودیت ها ایجاد می شوند.

در موارد Hive و RDBMS، نمودارهای مختلفی برای مقداردهی اولیه و به روز رسانی افزایشی داده تولید می شود.

در مورد Hive، داده‌های دلتای ورودی از طریق Ab Initio Join با داده‌هایی که قبل از به‌روزرسانی در جدول وجود داشت، متصل می‌شوند. بارگذارهای داده در MDW (هم در Hive و هم در RDBMS) نه تنها داده‌های جدیدی را از دلتا وارد می‌کنند، بلکه دوره‌های مربوط به داده‌هایی را که کلیدهای اصلی آنها دلتا را دریافت کرده‌اند، می‌بندند. علاوه بر این، باید قسمت بدون تغییر داده را بازنویسی کنید. اما این باید انجام شود زیرا Hive عملیات حذف یا به روز رسانی ندارد.

وقتی مقیاس Sberov دارید. استفاده از Ab Initio با Hive و GreenPlum

در مورد RDBMS، نمودارها برای به روز رسانی افزایشی داده ها بهینه تر به نظر می رسند، زیرا RDBMS دارای قابلیت های به روز رسانی واقعی هستند.

وقتی مقیاس Sberov دارید. استفاده از Ab Initio با Hive و GreenPlum

دلتای دریافتی در یک جدول میانی در پایگاه داده بارگذاری می شود. پس از این، دلتا به داده هایی که قبل از به روز رسانی در جدول وجود داشت متصل می شود. و این با استفاده از SQL با استفاده از یک پرس و جوی SQL تولید شده انجام می شود. در مرحله بعد، با استفاده از دستورات SQL delete+insert، داده‌های جدید از دلتا در جدول هدف وارد می‌شوند و دوره‌های مربوط به داده‌هایی که کلیدهای اصلی آنها دلتا را دریافت کرده‌اند بسته می‌شوند.
نیازی به بازنویسی داده های بدون تغییر نیست.

بنابراین به این نتیجه رسیدیم که در مورد Hive، MDW باید کل جدول را بازنویسی کند زیرا Hive تابع به روز رسانی ندارد. و هیچ چیز بهتر از بازنویسی کامل داده ها در زمانی که به روز رسانی اختراع شده است. در مورد RDBMS، برعکس، سازندگان محصول لازم دیدند که اتصال و به روز رسانی جداول را به استفاده از SQL بسپارند.

برای پروژه ای در Sberbank، ما یک پیاده سازی جدید و قابل استفاده مجدد از یک بارگذار پایگاه داده برای GreenPlum ایجاد کردیم. این بر اساس نسخه ای که MDW برای Teradata تولید می کند انجام شد. این Teradata بود، و نه اوراکل، که برای این کار به بهترین وجه نزدیک شد، زیرا... همچنین یک سیستم MPP است. روش کار، و همچنین نحو، Teradata و GreenPlum مشابه بود.

نمونه هایی از تفاوت های مهم MDW بین RDBMS های مختلف به شرح زیر است. در 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 کار کند، لازم بود مشتری GreenPlum روی تمام گره‌های خوشه Ab Initio نصب شود. این به این دلیل است که ما به طور همزمان از تمام گره های خوشه خود به GreenPlum متصل شدیم. و برای اینکه خواندن از GreenPlum موازی باشد و هر رشته Ab Initio موازی بتواند بخش خود را از داده های GreenPlum بخواند، باید ساختاری را که توسط Ab Initio درک می شود در بخش "where" پرس و جوهای SQL قرار دهیم.

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 یک فیلتر صریح درخواست کنید. برای سایر پایگاه های داده (Teradata، Oracle)، Ab Initio می تواند این موازی سازی را به صورت خودکار انجام دهد.

مقایسه عملکرد Ab Initio بین Hive و GreenPlum

Sberbank آزمایشی را برای مقایسه عملکرد نمودارهای تولید شده توسط MDW در رابطه با Hive و در رابطه با GreenPlum انجام داد. به عنوان بخشی از آزمایش، در مورد Hive 5 گره در همان خوشه Ab Initio و در مورد GreenPlum 4 گره در یک خوشه جداگانه وجود داشت. آن ها Hive نسبت به GreenPlum مزیت سخت افزاری داشت.

ما دو جفت نمودار را در نظر گرفتیم که وظیفه به‌روزرسانی داده‌ها را در Hive و GreenPlum انجام می‌دهند. در همان زمان، نمودارهای تولید شده توسط پیکربندی MDW راه اندازی شد:

  • بار اولیه + بار افزایشی داده های تولید شده به طور تصادفی در جدول Hive
  • بار اولیه + بار افزایشی داده های تولید شده به طور تصادفی در همان جدول GreenPlum

در هر دو مورد (Hive و GreenPlum) آنها آپلودها را در 10 رشته موازی در یک خوشه Ab Initio اجرا کردند. Ab Initio داده های میانی را برای محاسبات در HDFS ذخیره کرد (از نظر Ab Initio، طرح MFS با استفاده از HDFS استفاده شد). یک خط از داده های تولید شده به طور تصادفی 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

سبز آلو:

بارگذاری اولیه در GreenPlum

ردیف ها درج شد
6 000 000
60 000 000
600 000 000

مدت زمان اولیه سازی
دانلود در چند ثانیه
72
360
3 631

بارگذاری افزایشی در GreenPlum

تعداد ردیف های موجود در
جدول هدف در ابتدای آزمایش
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 به میزان ضعیفی به حجم داده های بارگذاری شده قبلی موجود در جدول هدف بستگی دارد و به سرعت پیش می رود. این به لطف SQL Joins و معماری GreenPlum اتفاق افتاد که امکان عملیات حذف را فراهم می کند.

بنابراین، GreenPlum دلتا را با استفاده از روش delete+insert اضافه می‌کند، اما Hive عملیات حذف یا به‌روزرسانی را ندارد، بنابراین کل آرایه داده مجبور شد به طور کامل در طول یک به‌روزرسانی افزایشی بازنویسی شود. مقایسه سلول‌هایی که با پررنگ برجسته شده‌اند بسیار آشکار است، زیرا با رایج‌ترین گزینه برای استفاده از بارگیری‌های فشرده منابع مطابقت دارد. می بینیم که GreenPlum در این آزمایش 8 برابر Hive را شکست داد.

کارکردن Ab Initio با GreenPlum در حالت نزدیک به زمان واقعی

در این آزمایش، ما توانایی Ab Initio را برای به‌روزرسانی جدول GreenPlum با تکه‌های داده‌ای که به‌طور تصادفی تولید می‌شوند در زمان واقعی آزمایش می‌کنیم. بیایید جدول GreenPlum dev42_1_db_usl.TESTING_SUBJ_org_finval را در نظر بگیریم که با آن کار خواهیم کرد.

ما از سه نمودار Ab Initio برای کار با آن استفاده خواهیم کرد:

1) Graph Create_test_data.mp - فایل های داده را در HDFS با 10 ردیف در 6 رشته موازی ایجاد می کند. داده ها تصادفی هستند، ساختار آن برای درج در جدول ما سازماندهی شده است

وقتی مقیاس Sberov دارید. استفاده از Ab Initio با Hive و GreenPlum

وقتی مقیاس Sberov دارید. استفاده از Ab Initio با Hive و GreenPlum

2) نمودار mdw_load.day_one.current.dev42_1_db_usl_testing_subj_org_finval.pset - MDW نمودار تولید شده با مقداردهی اولیه درج داده ها در جدول ما در 10 رشته موازی (داده های آزمایش تولید شده توسط نمودار (1) استفاده می شود)

وقتی مقیاس Sberov دارید. استفاده از Ab Initio با Hive و GreenPlum

3) نمودار mdw_load.regular.current.dev42_1_db_usl_testing_subj_org_finval.pset - یک نمودار تولید شده توسط MDW برای به روز رسانی تدریجی جدول ما در 10 رشته موازی با استفاده از بخشی از داده های تازه دریافت شده (دلتا) تولید شده توسط نمودار (1)

وقتی مقیاس Sberov دارید. استفاده از Ab Initio با Hive و GreenPlum

بیایید اسکریپت زیر را در حالت NRT اجرا کنیم:

  • تولید 6 خط تست
  • بار اولیه 6 سطر تست را در جدول خالی وارد کنید
  • دانلود تدریجی را 5 بار تکرار کنید
    • تولید 6 خط تست
    • یک درج افزایشی 6،000،000 ردیف آزمایشی در جدول انجام دهید (در این مورد، زمان انقضای valid_to_ts روی داده های قدیمی تنظیم می شود و داده های جدیدتر با همان کلید اصلی درج می شود)

این سناریو حالت عملیات واقعی یک سیستم تجاری خاص را شبیه‌سازی می‌کند - بخش نسبتاً بزرگی از داده‌های جدید در زمان واقعی ظاهر می‌شوند و بلافاصله در GreenPlum ریخته می‌شوند.

حالا بیایید به گزارش اسکریپت نگاه کنیم:

شروع Create_test_data.input.pset در 2020-06-04 11:49:11
اتمام 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
شروع Create_test_data.input.pset در 2020-06-04 11:50:42
اتمام 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
شروع Create_test_data.input.pset در 2020-06-04 11:53:41
اتمام 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
شروع Create_test_data.input.pset در 2020-06-04 11:56:51
اتمام 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
شروع Create_test_data.input.pset در 2020-06-04 11:59:55
اتمام 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
شروع Create_test_data.input.pset در 2020-06-04 12:03:23
اتمام 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;

وقتی مقیاس Sberov دارید. استفاده از Ab Initio با Hive و GreenPlum
می توانید مطابقت داده های درج شده را با زمان راه اندازی نمودارها مشاهده کنید.
این به این معنی است که می توانید بارگذاری تدریجی داده ها را در GreenPlum در Ab Initio با فرکانس بسیار بالا اجرا کنید و سرعت بالایی را برای درج این داده ها در GreenPlum مشاهده کنید. البته، راه اندازی یک بار در ثانیه امکان پذیر نخواهد بود، زیرا 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 مسئول توسعه شایستگی ها در زمینه هایی مانند اکوسیستم Hadoop، Teradata، Oracle DB، GreenPlum، و همچنین ابزارهای BI، Qlik، SAP BO، Tableau و غیره است.

منبع: www.habr.com

اضافه کردن نظر