استخراج، تبدیل، بارگذاری

| تبدیل داده (رایانش) |
|---|
| مفاهیم |
| زبانهای تبدیل |
| روشها و تبدیلها |
| کاربردها |
| مرتبط |
| زبانهای تبدیل |
استخراج، تبدیل، بارگذاری (کوتهنوشت: ETL) یک فرایند سهمرحلهای در رایانش است که در آن دادهها از یک منبع ورودی استخراج میشوند، سپس تبدیل میگردند (که شامل پاکسازی نیز می شود) و در نهایت در یک مخزن داده خروجی بارگذاری میشوند. دادهها میتوانند از یک یا چند منبع گردآوری شوند و همچنین میتوانند به یک یا چند مقصد خروجی ارسال شوند. پردازش ایتیاِل معمولاً با استفاده از نرمافزارهای کاربردی انجام میشود، اما میتواند به صورت دستی توسط اپراتورهای سیستم نیز انجام گیرد. نرمافزارهای ایتیاِل معمولاً کل این فرایند را به صورت خودکار انجام میدهند و میتوانند به صورت دستی یا بر اساس زمانبندیهای تکرارشونده، چه به عنوان کارهای منفرد و چه به صورت مجموعهای از کارها در قالب یک دسته، اجرا شوند.
یک سامانه ایتیاِل که به درستی طراحی شده باشد، دادهها را از سامانههای مبدأ استخراج میکند، استانداردهای مربوط به نوع داده و اعتبار داده را اعمال میکند و اطمینان حاصل میکند که دادهها از نظر ساختاری با الزامات خروجی مطابقت دارند. برخی از سامانههای ایتیاِل همچنین میتوانند دادهها را در قالبی آماده گزارشدهی و ارائه تحویل دهند، بهگونهای که توسعهدهندگان نرمافزار بتوانند برنامههایشان را بسازند و کاربران نهایی بتوانند بر اساس آن تصمیمگیری کنند.[۱]
فرایند ایتیاِل اغلب در انبارداری داده مورد استفاده قرار میگیرد.[۲] سامانههای ایتیاِل معمولاً دادههای چندین برنامه کاربردی (سامانه) مختلف را ادغام و یکپارچه میکنند. این سامانهها اغلب توسط تأمینکنندگان مختلف توسعه یافته و پشتیبانی میشوند یا بر روی سختافزارهای رایانهای جداگانه میزبانی میگردند. سامانههای جداگانهای که دادههای اولیه را در خود دارند، غالباً توسط ذینفعان مختلف مدیریت و بهرهبرداری میشوند. برای مثال، یک سامانه حسابداری هزینه، ممکن است دادههایی را از قسمتهای حقوق و دستمزد، فروش و تدارکات دریافت و با یکدیگر ترکیب کند.
استخراج داده شامل بیرونکشیدن دادهها از منابع همگن یا ناهمگن است؛ تبدیل داده، دادهها را از طریق پاکسازی و تبدیل، به قالب یا ساختار ذخیرهسازی مناسب برای اهداف پرسوجو و تحلیل آماده میکند. و در نهایت، بارگذاری داده به درج دادهها در پایگاه داده مقصد نهایی، مانند یک ذخیرهگاه داده عملیاتی، یک دادهگاه، یک دریاچه داده یا یک انبار داده اشاره دارد.[۳][۴]
ایتیاِل و گونه دیگر آن ایاِلتی (استخراج، بارگذاری، تبدیل) بطور فزایندهای در انبارهای داده مبتنی بر ابر مورد استفاده قرار میگیرند. کاربردهای این رویکردها تنها به پردازش دستهای محدود نمیشود، بلکه شامل جریانسازی بلادرنگ[الف] نیز هست.
مراحل
[ویرایش]استخراج
[ویرایش]پردازشهای ایتیاِل شامل استخراج دادهها از سامانههای منبع است. در بسیاری از موارد، این مرحله مهمترین جنبه ایتیاِل بهشمار میآید، زیرا استخراج صحیح دادهها زمینهساز موفقیت فرایندهای بعدی است. بیشتر پروژههای انبار داده، اجباراً دادههای سامانههای با مبدأ متفاوت را ترکیب میکنند. هر سامانه جداگانه ممکن است از سازماندهی داده و/یا قالب متفاوتی استفاده کند. قالبهای رایج منابع داده شامل پایگاههای داده رابطهای، پایگاههای داده پرونده تخت، اکسامال و جیسان هستند، اما میتوانند شامل ساختارهای پایگاه داده غیررابطهای مانند سامانه مدیریت اطلاعات آیبیام یا دیگر ساختارهای داده مانند روش دسترسی به ذخیرهسازی مجازی[ب](کوتهنوشت: VSAM) یا روش دسترسی ترتیبی نمایهشده[پ](کوتهنوشت: ISAM) نیز باشند، یا حتی قالبهایی که از منابع خارجی بوسیله روشهایی مانند یک خزش وب یا خزش و استخراج داده بهدست میآیند. زمانی که نیازی به ذخیرهسازی میانی برای داده وجود ندارد، روش دیگری برای اجرای ایتیاِل استفاده میشود که شامل جریانسازی منبع داده استخراجشده و بارگذاری آن به صورت برخط و بلادرنگ در پایگاه داده مقصد میشود.
بخش مرحله استخراج به طور ذاتی شامل اعتبارسنجی دادهها خواهد بود تا مشخص شود آیا دادههای دریافتشده از منابع، دارای مقادیر صحیح یا مورد انتظار در یک دامنه مشخص هستند یا خیر (برای مثال، یک الگو، مقدار پیشفرض یا فهرست مقادیر). اگر دادهها از قوانین اعتبارسنجی عبور نکنند، به طور کامل یا جزئی رد میشوند. دادههای ردشده در حالت ایدهآل به سامانه مبدأ گزارش داده میشوند تا برای تحلیل بیشتر، شناسایی، اصلاح رکوردهای نادرست، و یا انجام آمادهسازی و ساماندهی داده مورد استفاده قرار گیرند.
تبدیل
[ویرایش]در مرحله تبدیل داده، مجموعهای از قواعد یا توابع بر روی دادههای استخراجشده اعمال میشود تا آنها برای بارگذاری در مقصد نهایی آماده شوند.
یکی از کارکردهای مهم مرحله تبدیل، پاکسازی داده است که هدف آن تنها انتقال دادههای «معتبر» به مقصد است. چالش اصلی در زمانی که سامانههای مختلف با یکدیگر تعامل دارند، مربوط به رابطها و شیوههای ارتباطی سامانهها است. مجموعهکاراکترهایی که ممکن است در یک سامانه در دسترس باشند، ممکن است لزوماً در سامانههای دیگر وجود نداشته باشند.
در موارد دیگر، برای برآوردهکردن نیازهای تجاری و فنی سرور یا انبار داده، ممکن است یک یا چند مورد از انواع تبدیل زیر مورد نیاز باشد:
- انتخاب تنها برخی ستونها برای بارگذاری (یا انتخاب ستونهای تهی برای عدم بارگذاری). برای مثال، اگر داده مبدأ دارای سه ستون (که «ویژگی» نیز نامیده میشوند) با نامهای شناسه_موقعیت_شغلی، سن و حقوق باشد، انتخاب ممکن است تنها شناسه_موقعیت_شغلی و حقوق را در بر گیرد. یا سازوکار انتخاب میتواند همه رکوردهایی را که در آنها مقدار حقوق وجود ندارد (حقوق = null) نادیده بگیرد.
- ترجمه مقادیر کدگذاریشده. برای مثال، اگر سامانه مبدأ، مرد را با «۱» و زن را با «۲» کدگذاری کرده باشد، اما انبار داده مرد را با «M» و زن را با «F» نمایش دهد.
- کدگذاری مقادیر متنی آزاد. برای مثال، نگاشت «Male» به «M».
- استخراج یک مقدار محاسبهشده جدید. برای مثال، میزان_فروش = تعداد * قیمت واحد.
- مرتبسازی یا ترتیبدهی دادهها بر اساس فهرستی از ستونها برای بهبود کارایی جستوجو.
- پیوند دادهها از چندین منبع (برای مثال، جستوجو یا ادغام) و حذف دادههای تکراری.
- تجمیع. برای مثال، رولآپ – خلاصهسازی چندین ردیف داده – مانند محاسبه کل فروش برای هر فروشگاه و برای هر منطقه.
- تولید مقادیر کلید جانشین.
- ترانهاده یا محورسازی (تبدیل چندین ستون به چندین ردیف یا برعکس).
- شکستن یک ستون به چندین ستون. برای مثال، تبدیل یک فهرست جداشده با ویرگول که به صورت یک رشته در یک ستون مشخص شده است، به مقادیر جداگانه در ستونهای مختلف.
- تفکیک ستونهای تکرارشونده.
- جستوجو و اعتبارسنجی دادههای مرتبط از جدولها یا پروندههای مرجع.
- اعمال هر نوع اعتبارسنجی داده. عدم موفقیت در اعتبارسنجی میتواند منجر به رد کامل داده، رد جزئی یا حتی عدم رد شود و در نتیجه، بسته به طراحی قواعد و نحوه مدیریت استثناها، هیچکدام، بخشی یا تمام دادهها به مرحله بعدی منتقل میشوند؛ بسیاری از تبدیلهای بالا میتوانند منجر به بروز استثنا شوند، برای مثال زمانی که ترجمه یک کد با کدی ناشناخته در دادههای استخراجشده مواجه شود.
بارگذاری
[ویرایش]مرحله بارگذاری، دادهها را در مقصد نهایی قرار میدهد؛ مقصدی که میتواند هر نوع مخزن دادهای باشد، از جمله یک پرونده تخت ساده با جداکنندهها یا یک انبار داده. بسته به نیازهای سازمان، این فرایند میتواند بسیار متفاوت باشد.
برخی انبارهای داده ممکن است اطلاعات موجود را با اطلاعات تجمیعی جدید بازنویسی و جایگزین کنند. بهروزرسانی دادههای استخراجشده معمولاً به صورت دورهای مثلاً روزانه، هفتگی یا ماهانه انجام میشود.
دیگر انبارهای داده (یا حتی بخشهایی از همان انبار داده) ممکن است دادههای جدید را در قالب تاریخ و در بازههای زمانی منظم – برای مثال، ساعتی – بارگذاری کنند. برای درک این موضوع، انبار دادهای را در نظر بگیرید که ملزم است سوابق فروش یک سال گذشته را نگهداری کند. این انبار داده، هر دادهای را که قدیمیتر از یک سال باشد با دادههای جدیدتر جایگزین میکند. با این حال، ورود دادهها برای هر بازه یکساله به صورت تاریخی انجام میشود. زمانبندی و دامنه جایگزینی یا افزودن دادهها، یک انتخابهای راهبردی در طراحی این سیستمها هستند که به زمان در دسترس و نیازهای کسبوکار وابستهاند. سامانههای پیچیدهتر میتوانند تاریخچه و ردپای حسابرسی تمامی تغییرات دادههای بارگذاریشده در انبار داده را نگهداری کنند.
از آنجا که مرحله بارگذاری با یک پایگاه داده تعامل دارد، قیود تعریفشده در شِمای پایگاه داده – و همچنین در تریگرهایی که هنگام بارگذاری داده فعال میشوند – اعمال میگردند (برای مثال، یکتایی، یکپارچگی ارجاعی و فیلدهای اجباری) که این موارد نیز به بهبود کلی کیفیت داده در فرایند ایتیاِل کمک میکنند.
برای مثال در این مورد، یک مؤسسه مالی را در نظر بگیرید که ممکن است اطلاعات مربوط به یک مشتری را در چندین واحد سازمانی در اختیار داشته باشد و هر واحد، اطلاعات آن مشتری را به شیوهای متفاوت ثبت کرده باشد. واحد عضویت ممکن است مشتری را با نام فهرست کند، در حالی که واحد حسابداری ممکن است همان مشتری را با شماره شناسایی کند. ایتیاِل میتواند همه این عناصر دادهای را گردآوری کرده و آنها را در قالبی یکنواخت، مثلاً برای ذخیره در یک پایگاه داده یا انبار داده، یکپارچه کند.
روش دیگری که شرکتها از ایتیاِل استفاده میکنند، انتقال دائمی اطلاعات به یک برنامه کاربردی دیگر است. برای نمونه، برنامه جدید ممکن است از تأمینکننده پایگاه داده متفاوتی استفاده کند و به احتمال زیاد شِمای پایگاه داده کاملاً متفاوتی داشته باشد. دراینجا ایتیاِل میتواند برای تبدیل دادهها به قالبی مناسب جهت استفاده برنامه جدید بهکار رود.
فازهای اضافی
[ویرایش]یک چرخه ایتیاِل در دنیای واقعی ممکن است شامل مراحل اجرایی اضافی نیز باشد، برای مثال:
- آغاز چرخه
- ساخت دادههای مرجع
- استخراج (از منابع)
- اعتبارسنجی
- تبدیل ( پاکسازی، اعمال قوانین کسبوکار، بررسی یکپارچگی داده، ایجاد دادههای تجمیعی یا تفکیکی )
- مرحله میانی (بارگذاری در جدولهای مرحلهبندی، در صورت استفاده)
- گزارشهای حسابرسی (برای مثال، در مورد میزان انطباق با قوانین کسبوکار؛ همچنین در صورت بروز خطا، برای کمک به تشخیص و اصلاح)
- انتشار (در جدولهای مقصد)
- بایگانیسازی
چالشهای طراحی
[ویرایش]فرایندهای ایتیاِل میتوانند شامل پیچیدگی قابل توجهی باشند و در صورت طراحی نادرست سامانههای ایتیاِل، مشکلات عملیاتی جدی ممکن است رخ دهد.
تنوع دادهها
[ویرایش]دامنه مقادیر داده یا کیفیت داده در یک سامانه عملیاتی ممکن است در زمان تعیین قواعد اعتبارسنجی و تبدیل، فراتر از انتظارات طراحان باشد. نمایهسازی داده یک منبع داده در طی تحلیل داده میتواند شرایط دادهای را که قرار است با پیروی از قواعد تبدیل مدیریت شوند شناسایی کند و در نتیجه به اصلاح قواعد اعتبارسنجی که به صورت صریح و ضمنی در فرایند ایتیاِل پیادهسازی شدهاند منجر شود.
انبارهای داده معمولاً از مجموعهای متنوع از منابع داده با قالبها و اهداف متفاوت ساخته میشوند. ازاینرو، ایتیاِل فرایندی کلیدی برای گردآوری همه دادهها در یک محیط استاندارد و همگن است.
تحلیل طراحی[۵] باید مقیاسپذیری یک سامانه ایتیاِل را در طول چرخه عمر استفاده از آن، از جمله درک حجم دادههایی که باید در چارچوب موافقتنامههای سطح خدمات پردازش شوند، تعیین کند. طول مدت زمانی که برای استخراج از سامانههای مبدأ در دسترس است ممکن است تغییر کند، که این میتواند به این معنا باشد که همان مقدار داده باید در زمان کمتری پردازش شود. برخی سامانههای ایتیاِل باید بتوانند برای بهروزرسانی انبارهای داده با دهها ترابایت داده، مقیاسپذیری لازم برای پردازش ترابایتها داده را داشته باشند. افزایش حجم دادهها ممکن است به طراحیهایی نیاز داشته باشد که بتوانند از دسته دادههای روزانه به ریزدستههای چندروزه و تا یکپارچهسازی با صف پیغام یا ثبت تغییرات داده به صورت بلادرنگ برای تبدیل و بهروزرسانی پیوسته مقیاس یابند.
یکتایی کلیدها
[ویرایش]کلیدهای یکتا نقش مهمی در همه پایگاههای داده رابطهای ایفا میکنند، زیرا همه چیز را به هم متصل میکنند. یک کلید یکتا ستونی است که یک موجودیت مشخص را نمایندگی میکند، در حالی که یک کلید بیرونی ستونی در جدول دیگر است که به یک کلید اصلی ارجاع میدهد. کلیدها میتوانند از چندین ستون تشکیل شوند که در این صورت «کلید مرکب» نامیده میشوند. در بسیاری از موارد، کلید اصلی یک عدد صحیحِ که به صورت خودکار تولیدشده است و برای موجودیت کسبوکارِ نمایشدادهشده هیچ معنای ذاتی ندارد و صرفاً برای مقاصد پایگاه داده رابطهای وجود دارد — که معمولاً از آن با عنوان کلید جانشین یاد میشود.
از آنجا که معمولاً بیش از یک منبع داده در انبار بارگذاری میشود، کلیدها یک دغدغه مهم هستند که باید به آن پرداخته شود. برای مثال، مشتریان ممکن است در چندین منبع داده نمایش داده شوند؛ مثلاً در یک منبع از شماره تأمین اجتماعی به عنوان کلید اصلی، در منبعی دیگر از شماره تلفن، و در منبع سوم از یک کلید جانشین استفاده شده باشد. با این حال، یک انبار داده ممکن است به تجمیع همه اطلاعات مشتری در یک بعد واحد نیاز داشته باشد.
روش پیشنهادی برای رسیدگی به این دغدغه، افزودن یک کلید جانشینِ انبار است که به عنوان کلید بیرونی از جدول واقعیت استفاده میشود.[۶]
معمولاً بهروزرسانیها در دادههای منبعِ مربوط به یک بُعد رخ میدهند که بدیهی است باید در انبار داده نیز منعکس شوند.
اگر کلید اصلی دادههای منبع برای گزارشگیری لازم باشد، بُعد پیشاپیش آن قطعه اطلاعات را برای هر سطر در خود دارد. اگر دادههای منبع از یک کلید جانشین استفاده کنند، انبار باید آن را ردیابی کند، حتی اگر هرگز در پرسوجوها یا گزارشها استفاده نشود؛ این کار با ایجاد یک جدول مراجعه و جستجو انجام میشود که شامل کلید جانشین انبار و کلید منشأ است.[۷] به این ترتیب، بُعد با کلیدهای جانشینِ سامانههای منبع مختلف آلوده نمیشود، در حالی که قابلیت بهروزرسانی حفظ میگردد.
جدول مراجعه و جستجو، بسته به ماهیت دادههای منبع به شیوههای مختلفی استفاده میشود.
پنج نوع برای بررسی وجود دارد؛ که سه مورد آن در اینجا آمده است:
- نوع ۱
- سطرِ بُعد بهسادگی بهروزرسانی میشود تا با وضعیت کنونی سامانه منبع مطابقت یابد؛ انبار تاریخچه را ثبت نمیکند؛ جدول مراجعه و جستجو برای شناسایی سطر بُعدی که باید بهروزرسانی یا بازنویسی شود استفاده میشود
- نوع ۲
- یک سطر جدید در بُعد با وضعیت جدید سامانه منبع افزوده میشود؛ یک کلید جانشین جدید تخصیص مییابد؛ کلید منبع دیگر در جدول مراجعه و جستجو یکتا نیست
- ثبت کامل
- یک سطر جدید در بُعد با وضعیت جدید سامانه منبع افزوده میشود، در حالی که سطر بُعد قبلی بهروزرسانی میشود تا نشان دهد دیگر فعال نیست و زمان غیرفعالسازی ثبت میشود.
کارایی
[ویرایش]فروشندگان ایتیاِل سامانههای رکوردی خود را با نرخ چندین ترابایت (TB) در ساعت (یا حدود ۱ گیگابایت در ثانیه) با استفاده از سرورهای قدرتمند دارای چندین سیپیيو، چندین دیسک سخت، چندین اتصال شبکه گیگابیتی و حافظه زیاد بنچمارک میکنند.
در دنیای واقعی، کندترین بخش یک فرایند ایتیاِل معمولاً در مرحله بارگذاری پایگاه داده رخ میدهد. پایگاههای داده ممکن است به دلیل مدیریت همزمانی، حفظ یکپارچگی و شاخصها عملکرد کندی داشته باشند. بنابراین، برای کارایی بهتر، ممکن است بهکارگیری موارد زیر منطقی باشد:
- به منظور دستیابی به استخراج با سرعت بالا، و/یا برای کاهش بار روی سامانه منبع، به جای پرسوجو از پایگاه داده هر زمان که ممکن است از روش استخراج مسیر مستقیم[ت] یا تخلیه انبوه هر زمان که ممکن است شود
- اجرای بیشتر پردازشهای مرحله تبدیل، خارج از فضای پایگاه داده
- استفاده از عملیات بارگذاری انبوه هر زمان که ممکن است
با این حال، حتی با استفاده از عملیات انبوه، دسترسی به پایگاه داده معمولاً گلوگاه فرایند ایتیاِل است. برخی روشهای متداول برای افزایش کارایی عبارتاند از:
- پارتیشنبندی جداول (و شاخصها): تلاش برای هماندازه نگهداشتن پارتیشنها (مراقب مقادیر null باشید که میتوانند پارتیشنبندی را نامتوازن کنند)
- اجرای تمامی اعتبارسنجیها در لایه ایتیاِل پیش از بارگذاری: غیرفعالکردن بررسی یکپارچگی در جداول پایگاه داده مقصد در هنگام بارگذاری
- غیرفعالکردن محرک در جداول پایگاه داده مقصد در هنگام بارگذاری: شبیهسازی اثر آنها به عنوان یک گام جداگانه
- تولید شناسهها در لایه ایتیاِل (نه در پایگاه داده)
- حذف اندیس (روی یک جدول یا پارتیشن) پیش از بارگذاری و ایجاد مجدد آنها پس از بارگذاری
- استفاده از بارگذاری انبوه موازی در صورت امکان. این روش زمانی که جدول پارتیشنبندی شده باشد یا شاخصی وجود نداشته باشد به خوبی عمل میکند (توجه: تلاش برای بارگذاری موازی در یک جدول (یا پارتیشن) یکسان معمولاً باعث نداخل و قفل میشود)
- اگر نیازی به انجام درج، بهروزرسانی یا حذف وجود دارد، مشخص کنید کدام سطرها باید به هر روش پردازش شوند و سپس این سه عملیات را به صورت جداگانه در پایگاه داده انجام دهید. اغلب میتوان درجها را به صورت بارگذاری انبوه انجام داد، اما بهروزرسانیها و حذفها معمولاً از طریق یک اِیپیآی (با استفاده از اسکیوال) انجام میشوند
اینکه برخی عملیات در پایگاه داده انجام شوند یا خارج از آن، ممکن است مستلزم مصالحه باشد. برای مثال، حذف دادههای تکراری با استفاده از distinct ممکن است در پایگاه داده کند باشد؛ بنابراین انجام آن در خارج از پایگاه داده منطقی است. از سوی دیگر، اگر استفاده از distinct به طور قابلتوجهی (مثلاً ۱۰۰ برابر) تعداد سطرهای استخراجشده را کاهش دهد، آنگاه منطقی است که حذف تکرارها هرچه زودتر در پایگاه داده و پیش از تخلیه داده انجام شود.
یکی از علل رایج مشکلات در ایتیاِل، تعداد زیاد وابستگیها میان کارهای ایتیاِل است. برای مثال، کار «B» نمیتواند آغاز شود تا زمانی که کار «A» به پایان نرسیده است. معمولاً میتوان با نمایش همه فرایندها روی یک نمودار و تلاش برای سادهسازی آن با بیشینهکردن استفاده از موازیسازی و کوتاه نگه داشتن «زنجیره»های پردازش متوالی، به کارایی بهتری دست یافت. باز هم، پارتیشنبندی جداول بزرگ و شاخصهای آنها میتواند بسیار کمککننده باشد.
مسئله رایج دیگر زمانی رخ میدهد که دادهها میان چندین پایگاه داده پراکنده باشند و پردازش به صورت ترتیبی در آن پایگاهها انجام شود. گاهی از تکثیر پایگاه داده به عنوان روشی برای رونوشت دادهها میان پایگاهها استفاده میشود، که میتواند از سرعت کل فرایند به طور قابلتوجهی بکاهد. راهحل متداول، کاهش نمودار پردازش به تنها سه لایه است:
- منابع
- لایه مرکزی ایتیاِل
- مقاصد
این رویکرد امکان میدهد پردازش حداکثر بهره را از موازیسازی ببرید. برای مثال، اگر لازم باشد دادهها در دو پایگاه داده بارگذاری شوند، میتوان بارگذاریها را به صورت موازی اجرا کرد (به جای بارگذاری در اولی و سپس تکثیر به دومی).
گاهی پردازش باید به صورت ترتیبی انجام شود. برای نمونه، دادههای بُعدی (مرجعی) پیش از آن که بتوان سطرهای اصلی جدول واقعیت را دریافت و اعتبارسنجی کرد، مورد نیاز هستند و باید وجود داشته باشند.
رایانش موازی
[ویرایش]برخی پیادهسازیهای نرمافزاری ایتیاِل شامل پردازش موازی هستند. این امر مجموعهای از روشها را برای بهبود کارایی کلی ایتیاِل هنگام کار با حجمهای بزرگ داده فراهم میکند.
کاربردهای ایتیاِل سه نوع اصلی از موازیسازی را پیادهسازی میکنند:
- داده: با تقسیم یک فایل ترتیبی واحد به فایلهای داده کوچکتر برای فراهمکردن دسترسی موازی
- خط لوله: امکان اجرای همزمان چندین مؤلفه روی یک جریان داده، برای مثال جستوجوی یک مقدار در رکورد ۱ همزمان با افزودن دو فیلد به رکورد ۲
- مؤلفه: اجرای همزمان چندین فرایند روی جریانهای داده متفاوت در یک کار واحد، برای مثال مرتبسازی یک فایل ورودی در حالی که دادههای تکراری از فایل ورودی دیگر حذف میشوند
هر سه نوع موازیسازی معمولاً به صورت ترکیبی در یک کار یا وظیفه واحد عمل میکنند.
یکی از دشواریهای دیگر در این حوزه، اطمینان نسبی از سازگار بودن دادههای در حال بارگذاری است. از آنجا که پایگاههای داده منبع مختلف ممکن است چرخههای بهروزرسانی متفاوتی داشته باشند (برخی هر چند دقیقه و برخی دیگر طی چند روز یا هفته بهروزرسانی میشوند)، ممکن است یک سامانه ایتیاِل مجبور باشد برخی دادهها را نگه دارد تا زمانی که همه منابع همگام شوند. به همین ترتیب، در مواردی که یک انبار داده باید با محتوای یک سامانه منبع یا با دفتر کل عمومی تطبیق داده شود، ایجاد نقاط همگامسازی و تطبیق ضروری میشود.
بازیابی بعد از خرابی
[ویرایش]رویههای انبار داده معمولاً یک فرایند بزرگ ایتیاِل را به بخشهای کوچکتر تقسیم میکنند که به صورت ترتیبی یا موازی اجرا میشوند. برای پیگیری جریانهای داده، منطقی است که هر سطر داده با «row_id» و هر بخش از فرایند با «run_id» برچسبگذاری شود. در صورت بروز خرابی، وجود این شناسهها به بازگردانی و اجرای مجدد بخشِ ناموفق کمک میکند.
بهترین رویهها، استفاده از نقاط وارسی[ث] را توصیه میکنند. این نقاط در واقع وضعیتهایی هستند که در آنها مراحل مشخصی از فرایند تکمیل شدهاند. پس از رسیدن به یک نقطه وارسی، بهتر است که همهچیز روی دیسک نوشته شود، برخی فایلهای موقت پاکسازی شوند، وضعیت ثبت شود و اقداماتی از این دست انجام گیرد.
پیادهسازیها
[ویرایش]یک چارچوب ایتیاِل مستقر شده، میتواند اتصالپذیری و مقیاسپذیری را بهبود بخشد. یک ابزار ایتیاِل مناسب باید قادر باشد با انواع گوناگون دادهپایگاه رابطهای ارتباط برقرار کند و قالبهای مختلف فایلِ مورد استفاده در سراسر یک سازمان را بخواند. ابزارهای ایتیاِل شروع به مهاجرت به سامانههای یکپارچهسازی کاربردهای سازمانی یا حتی گذرگاه سرویس سازمانی کردهاند. این سامانهها اکنون فعالیتهایی به مراتب فراتر از صرفاً استخراج، تبدیل و بارگذاری داده را پوشش میدهند. بسیاری از فروشندگان ایتیاِل امروزه قابلیتهایی همچون نمایهسازی داده، کیفیت داده و فراداده را نیز ارائه میکنند. یکی از موارد استفاده رایج ابزارهای ایتیاِل، تبدیل فایلهای سیاِسوی به قالبهایی است که توسط پایگاههای داده رابطهای قابل خواندن باشند. روند تبدیل میلیونها رکورد با استفاده از ابزارهای ایتیاِل تسهیل میشود. این ابزارها به کاربران امکان میدهند خوراکها/فایلهای دادهای شبیه سیاِسوی را وارد کرده و با حداقل میزان کدنویسی آنها را در یک پایگاه داده درج کنند.
ابزارهای ایتیاِل معمولاً توسط طیف گستردهای از متخصصان استفاده میشوند و شامل دانشجویان علوم رایانه که به دنبال واردکردن سریع مجموعهدادههای بزرگ هستند تا معماران پایگاه داده که مسئول مدیریت حسابهای سازمانیاند میشود. ابزارهای ایتیاِل به ابزاری تبدیل شدهاند که میتوان برای دستیابی به بیشینه کارایی به آنها اتکا کرد. این ابزارها در اغلب موارد دارای یک رابط کاربری گرافیکی هستند که به کاربران کمک میکند به جای آن که برنامههای بزرگی برای تجزیه فایلها و تغییر انواع داده بنویسند، دادهها را به صورت بصری و با استفاده از یک نگاشتگر داده دیداری تبدیل کنند.
در حالی که ابزارهای ایتیاِل به طور سنتی برای توسعهدهندگان و کارکنان فناوری اطلاعات بودهاند، شرکت پژوهشی گارتنر نوشته است که روند جدید، ارائه این قابلیتها به کاربران کسبوکار است تا بتوانند خودشان در صورت نیاز اتصالها و یکپارچهسازیهای داده را ایجاد کنند، نه این که به کارکنان IT مراجعه کنند.[۸] گارتنر این کاربران غیر فنی را شهروند یکپارچهساز مینامد.
پردازش تراکنش برخط
[ویرایش]
در کاربردهای پردازش تراکنش برخط (کوتهنوشت: OLTP)، تغییرات ناشی از هر نمونه منفرد اواِلتیپی شناسایی شده و در قالب یک تصویر لحظهای[ج]، یا یک دسته از بهروزرسانیها ثبت میشوند. یک نمونه ایتیاِل میتواند برای گردآوری دورهای همه این دستهها، تبدیل آنها به یک قالب مشترک، و بارگذاری آنها در یک دریاچه داده یا انبار داده مورد استفاده قرار گیرد.
ایتیاِل مجازی
[ویرایش]مجازیسازی داده میتواند برای پیشبرد پردازش ایتیاِل مورد استفاده قرار گیرد. بهکارگیری مجازیسازی داده در ایتیاِل امکان حل رایجترین وظایف ایتیاِل، یعنی مهاجرت داده و یکپارچهسازی کاربردها برای چندین منبع داده پراکنده را فراهم کرده است. ایتیاِل مجازی با بازنمایی انتزاعی اشیا یا موجودیتهایی کار میکند که از انواع منابع داده رابطهای، نیمهساختیافته و داده بدون ساختار گردآوری شدهاند. ابزارهای ایتیاِل میتوانند از مدلسازی شیءگرا بهره ببرند و با بازنماییهای موجودیتها که به صورت پایدار در یک معماری متمرکزِ قطب و اقماری ذخیره شدهاند کار کنند. چنین مجموعهای که شامل بازنمایی موجودیتها یا اشیای گردآوریشده از منابع داده برای پردازش ایتیاِل است، «مخزن فراداده» نامیده میشود و میتواند در حافظه قرار داشته باشد یا به صورت پایدار ذخیره شود. با استفاده از یک مخزن فراداده پایدار، ابزارهای ایتیاِل میتوانند از پروژههای یکباره به میانافزارهای پایدار گذار کنند و همسانسازی داده و نمایهسازی داده را به صورت سازگار و تقریباً بلادرنگ انجام دهند.
استخراج، بارگذاری، تبدیل
[ویرایش]استخراج، بارگذاری، تبدیل (کوتهنوشت: ELT) گونهای از ایتیاِل است که در آن داده استخراجشده ابتدا در سامانه مقصد بارگذاری میشود.[۹] معماری خط لوله تحلیلی همچنین باید این موضوع را در نظر بگیرد که پاکسازی و غنیسازی دادهها در کجا انجام شود[۹] و همچنین ابعاد چگونه همگونسازی شوند.[۱] از جمله مزایای یک فرایند ایاِلتی میتوان به سرعت و توانایی رسیدگی آسانتر به دادههای ساختیافته و بدون ساختار اشاره کرد.[۱۰]
کتاب «جعبهابزار ایتیاِل در انبار داده» نوشته رالف کیمبال و جو کسرتا (وایلی، ۲۰۰۴)، که به عنوان کتاب درسی برای دورههای آموزش فرایندهای ایتیاِل در انبار داده استفاده میشود، به این موضوع پرداخته است.[۱۱]
انبارهای داده مبتنی بر ابر مانند آمازون ردشیفت، بیگکوئری گوگل، تحلیلهای سیناپسی مایکروسافت آژور و اسنو فلیک توان محاسباتی با مقیاسپذیری بسیار بالا فراهم کردهاند. این امر به کسبوکارها اجازه میدهد از تبدیلهای پیشبارگذاری صرفنظر کرده و داده خام را در انبارهای داده خود تکثیر کنند؛ و سپس میتوانند در صورت نیاز با استفاده از اسکیوال آنها را تبدیل کنند.
پس از استفاده از ایاِلتی، دادهها ممکن است تحت پردازش بیشتری قرار بگیرد و در یک بازارچه داده[چ] ذخیره شوند.[۱۲]
بیشتر ابزارهای یکپارچهسازی داده به سمت ایتیاِل گرایش دارند، در حالی که ایاِلتی در تجهیزات پایگاه داده و انبار داده محبوب است. به طور مشابه، انجام تیایاِل (تبدیل، استخراج، بارگذاری) نیز امکانپذیر است که در آن دادهها ابتدا روی یک بلاکچین تبدیل میشوند (به عنوان روشی برای ثبت تغییرات داده، برای مثال سوزاندن توکن) و سپس استخراج و در یک مخزن داده دیگر بارگذاری میگردند.[۱۳]
جستارهای وابسته
[ویرایش]- ایجاد، خواندن، روزآمدی و حذف (CRUD)
- پاکسازی داده
- ادغام داده
- دادهگاه
- شبکه داده، یک ساختار داده مبتنی بر دامنه
- تبادل الکترونیکی داده (EDI)
- معماری سازمانی
- پردازش تحلیلی برخط (OLAP)
یادداشتها
[ویرایش]مراجع
[ویرایش]- 1 2 Ralph., Kimball (2004). The data warehouse ETL toolkit : practical techniques for extracting, cleaning, conforming, and delivering data. Caserta, Joe, 1965-. Indianapolis, IN: Wiley. ISBN 978-0764579233. OCLC 57301227.
- ↑ Denney, MJ (2016). "Validating the extract, transform, load process used to populate a large clinical research database". International Journal of Medical Informatics. 94: 271–4. doi:10.1016/j.ijmedinf.2016.07.009. PMC 5556907. PMID 27506144.
- ↑ Zhao, Shirley (2017-10-20). "What is ETL? (Extract, Transform, Load) | Experian". Experian Data Quality. Retrieved 2018-12-12.
- ↑ Pott, Trevor (4 June 2018). "Extract, transform, load? More like extremely tough to load, amirite?". The Register. Retrieved 2018-12-12.
- ↑ Zhao, Shirley (2017-10-20). "What is ETL? (Extract, Transform, Load) | Experian". Experian Data Quality. Retrieved 2018-12-12.
- ↑ Zhao, Shirley (2017-10-20). "What is ETL? (Extract, Transform, Load) | Experian". Experian Data Quality. Retrieved 2018-12-12.
- ↑ Golfarelli/Rizzi, Data Warehouse Design, p. 291
- ↑ Amazon Web Services, Data Warehousing on AWS, p. 9
- 1 2 Amazon Web Services, Data Warehousing on AWS, p. 9
- ↑ Amazon Web Services, Data Warehousing on AWS, p. 9
- ↑ Amazon Web Services, Data Warehousing on AWS, p. 9
- ↑ Amazon Web Services, Data Warehousing on AWS, p. 9
- ↑ Amazon Web Services, Data Warehousing on AWS, p. 9