خرید بک لینک

سلام به دوستان

شناسایی تغییرات در داده های پایه جداول FACT
نمونه مورد بررسی: پیاده سازی سرویس CDC (Change Data Capture)
در این مثال به دنبال آن هستم که یکی از سرویس های بسیار جالب در SQL را به شما معرفی کنم. کارکرد این سرویس در لایه ETL از سیستم های BI است. با توجه به حجم بالای جداول Fact در انباره های داده، همواره بروزرسانی این جداول یکی از چالش های جدی در سیستم های BI است. مشکل اصلی در انجام این عملیات آنست که استفاده از دو روش بسیار ساده زیر در این جداول امکان پذیر نیست:
1- حذف تمام داده های جدول مقصد و بازنشانی مجدد داده ها
2- مقایسه جداول مبدا و مقصد و شناسایی تغییرات

هردوی این روش ها، باعث اتلاف قابل توجه منابع خواهند شد و در زمان کوتاه قابل انجام نخواهند بود. لذا باید به دنبال روش های دیگری بود. روش های خلاقانه زیادی برای رفع این مشکل وجود دارد ولی اغلب آنها یا نیاز به اعمال تغییرات و ساخت اشیا جدید در پایگاه داده های پایه دارند که گاهی دسترسی این عملیات برای توسعه دهندگان فراهم نیست و یا باعث تولید سربار بر روی عملیات جاری می شوند که باز مطلوب نیست.

در این بین، یکی از روش های قابل استفاده، سرویس CDC مایکروسافت است؛ این سرویس که از نسخه 2008 به بعد قابل استفاده است مبتنی بر استفاده از سرویس های پایه DB Engine و SQL Agent طراحی گردیده است. این سرویس با خواندن Log File دیتابیس مورد نظر می تواند تغییرات یک بازه زمانی را بازیابی نماید.

عملیات یا همان تراکنش های اجرا شده بر روی یک دیتابیس، در Log File آن دیتابیس ذخیره می شوند و به هریک از این عملیات یک 1 به نام LSN (Log Sequence Number) اختصاص می یابد؛ LSN یک شماره منحصربفرد منطبق با زمان است که توالی عملیات را در یک دیتابیس تعیین می نماید. بنابراین برای بازیابی تغییرات مربوط به یک بازه زمانی لازم است LSN متناظر با نقاط ابتدا و انتهای بازه شناسایی شوند و تمام تراکنش های ثبت شده بین این دو LSN خوانده شوند تا بتوان داده تغییر یافته را بر اساس آنها شبیه سازی نمود.

لینک دانلود

#ssis, #etl, #db_engine


برچسبها: ssis, etl, db_engine

+ 1 شده در یکشنبه چهاردهم آبان ۱۳۹۶ساعت 1:26&nbsp توسط سعید یوسفی

برچسب: نویسنده: حامد نیکنام تاريخ: شنبه 9 دی 1396 ساعت: 16:36

صفحه بندی