Change Data Capture چیست و چگونه کار میکند؟
Change Data Capture به عنوان یک راهحل ایدهآل برای جابهجایی تقریباً بیدرنگ دادهها از پایگاههای داده رابطهای (مانند SQL Server یا Oracle) به انبارهای داده، دریاچههای داده یا سایر پایگاههای داده ظاهر شده است. در این پست، به اشتراک میگذاریم که چرا Change Data Capture برای هوش تجاری در زمان واقعی و مهاجرت ابری و چهار روش مختلف Change Data Capture ایدهآل است.
تراکنش های تجاری ثبت شده در پایگاه های داده رابطه ای برای درک وضعیت عملیات تجاری بسیار مهم است. از آنجایی که ارزش داده ها به سرعت در طول زمان کاهش می یابد، سازمان ها به روشی برای تجزیه و تحلیل داده ها در حین تولید نیاز دارند. برای جلوگیری از اختلال در پایگاه های داده عملیاتی، شرکت ها معمولا داده ها را برای تجزیه و تحلیل در انبارهای داده کپی می کنند.
تکثیر دادههای حساس به زمان نیز یکی از ملاحظات اصلی در مهاجرتهای ابری است، جایی که دادهها به طور مداوم در حال تغییر هستند و خاموش کردن برنامههایی که به پایگاههای داده عملیاتی متصل میشوند یک گزینه نیست.
به طور سنتی، کسبوکارها از رویکردهای دستهای برای انتقال دادهها یک یا چند بار در روز استفاده میکردند. با این حال، جابجایی دسته ای تأخیر ایجاد می کند و ارزش عملیاتی را برای سازمان کاهش می دهد.
Change Data Capture چیست؟
Change Data Capture یک فرآیند نرم افزاری است که تغییرات داده ها را در یک پایگاه داده شناسایی و ردیابی می کند. CDC با جابجایی و پردازش پیوسته داده ها به هنگام رخ دادن رویدادهای پایگاه داده جدید، حرکت بلادرنگ یا نزدیک به زمان واقعی داده ها را فراهم می کند.
در محیط های داده با سرعت بالا که در آن تصمیمات حساس به زمان گرفته می شود، Change Data Capture مناسب برای دستیابی به تکرار داده های کم تأخیر، قابل اعتماد و مقیاس پذیر است. Change Data Capture همچنین برای مهاجرتهای بدون توقف به ابر ایدهآل است.
با توجه به برنامه ریزی بیش از 80 درصد از شرکت ها برای اجرای استراتژی های چند ابری تا سال 2025 ، با توجه به نیاز به تکثیر داده ها در چندین محیط، انتخاب روش ثبت داده تغییر مناسب برای کسب و کار شما بسیار مهم تر از همیشه است.
تغییر ضبط داده برای ETL
ETL (استخراج، تبدیل، بارگذاری) یک فرآیند یکپارچه سازی داده است که در آن داده ها از منابع مختلف استخراج شده و به انبار داده، پایگاه داده یا دریاچه داده تحویل داده می شوند. داده ها را می توان با استفاده از پرس و جوهای پایگاه داده (مبتنی بر دسته ای) یا تغییر ضبط داده ها (تقریباً در زمان واقعی) استخراج کرد.
در طول مرحله تبدیل، داده ها پردازش شده و به فرمت مناسب برای مقصد مورد نظر تبدیل می شوند. در حالی که ETL قدیمی دارای یک مرحله تبدیل آهسته است، پلتفرمهای مدرن ETL پردازش مبتنی بر دیسک را با پردازش درون حافظه جایگزین میکنند تا امکان پردازش، غنیسازی و تجزیه و تحلیل بیدرنگ دادهها را فراهم کند. مرحله نهایی ETL شامل بارگذاری داده ها در مقصد مورد نظر است.
بیشتر بخوانید : آماده سازی ETL
تغییر روش های ثبت داده ها
چندین روش متداول Change Data Capture وجود دارد که می توانید بسته به نیازهای برنامه و تحمل برای سربار عملکرد، آنها را پیاده سازی کنید. در اینجا روش های متداول، نحوه کار آنها و مزایا و معایب آنها آورده شده است.
- ستون های حسابرسی
با استفاده از ستونهای موجود «LAST_UPDATED» یا «DATE_MODIFIED»، یا با افزودن آنها در صورت موجود نبودن در برنامه، میتوانید راهحل ضبط داده تغییر خود را در سطح برنامه ایجاد کنید. این رویکرد فقط ردیف هایی را بازیابی می کند که از آخرین استخراج داده ها تغییر کرده اند.
منطق CDC برای این تکنیک خواهد بود:
مرحله 1 : حداکثر مقدار هر دو ستون “Created_Time” و “Updated_Time” جدول هدف (آبی) را دریافت کنید
مرحله 2 : تمام ردیفهایی را از منبع داده انتخاب کنید که «Created_Time» بیشتر از (>) حداکثر «Created_Time» جدول هدف
مرحله 1 : حداکثر مقدار هر دو ستون “Created_Time” و “Updated_Time” جدول هدف (آبی) را دریافت کنید
مرحله 2 : تمام ردیفهایی را از منبع داده انتخاب کنید که «Created_Time» بیشتر از (>) حداکثر «Created_Time» جدول هدف باشد، که همه ردیفهای تازه ایجاد شده از زمان اجرای آخرین فرآیند CDC هستند.
مرحله 3 : همه ردیفهایی را از جدول منبع انتخاب کنید که «Updated_Time» بیشتر از (>) حداکثر «Updated_Time» جدول هدف اما کمتر از (<) حداکثر «Created_Time» آن است. دلیل حذف ردیفهای کمتر از حداکثر تاریخ ایجاد هدف این است که در مرحله 2 گنجانده شدهاند.
مرحله 4 : ردیف های جدید را از مرحله 2 وارد کنید یا ردیف های موجود از مرحله 3 را در هدف تغییر دهید.
- مزایای این روش
- می توان آن را با منطق برنامه بومی ساخت
- به هیچ ابزار خارجی نیاز ندارد
- معایب این روش
- سربار اضافی را به پایگاه داده اضافه می کند
- عبارات DML مانند حذف ها بدون اسکریپت های اضافی برای ردیابی حذف ها به هدف منتشر نمی شوند.
- مستعد خطا است و احتمالاً باعث ایجاد مشکلاتی در سازگاری داده ها می شود
این رویکرد همچنین به منابع CPU نیاز دارد تا جداول را برای داده های تغییر یافته و منابع تعمیر و نگهداری اسکن کند تا اطمینان حاصل شود که ستون DATE_MODIFIED به طور قابل اعتماد در تمام جداول منبع اعمال می شود.
دلتاهای جدول
میتوانید از ابزارهای جدول دلتا یا «tablediff» برای مقایسه دادهها در دو جدول برای عدم همگرایی استفاده کنید. سپس میتوانید از اسکریپتهای اضافی برای اعمال دلتاها از جدول منبع به هدف بهعنوان رویکرد دیگری برای تغییر جمعآوری دادهها استفاده کنید. چندین نمونه از اسکریپت های SQL وجود دارد که می توانند تفاوت دو جدول را پیدا کنند.
- مزایای این روش
- در حالی که فقط از اسکریپت های SQL بومی استفاده می کند، دید دقیقی از داده های تغییر یافته ارائه می دهد
- معایب این روش
- تقاضا برای ذخیره سازی به طور قابل توجهی افزایش می یابد زیرا به سه نسخه از منابع داده ای که در این تکنیک استفاده می شود نیاز دارید: داده اصلی، عکس فوری قبلی و عکس فوری فعلی.
- در برنامه های کاربردی با حجم کاری سنگین تراکنش، مقیاس خوبی ندارد
اگرچه این برای مدیریت ردیف های حذف شده بهتر عمل می کند، اما منابع CPU مورد نیاز برای شناسایی تفاوت ها قابل توجه است و سربار به صورت خطی با حجم داده ها افزایش می یابد. روش diff همچنین تأخیر را معرفی می کند و نمی تواند در زمان واقعی انجام شود.
برخی از ابزارهای ضبط دادههای تغییر مبتنی بر گزارش، قابلیت تجزیه و تحلیل جداول مختلف را برای اطمینان از سازگاری تکرار دارند.
CDC مبتنی بر ماشه
یکی دیگر از روشهای ایجاد تغییر در ضبط دادهها در سطح برنامه، تعریف محرکهای پایگاه داده و ایجاد گزارش تغییرات در جداول سایه است. تریگرها قبل یا بعد از دستورات INSERT، UPDATE، یا DELETE (که نشان دهنده تغییر هستند) فعال می شوند و برای ایجاد گزارش تغییرات استفاده می شوند. برخی از کاربران که در سطح SQL کار می کنند، این رویکرد را ترجیح می دهند. برخی از پایگاههای داده حتی از محرکها پشتیبانی میکنند .
با این حال، تریگرها برای هر جدول در پایگاه داده منبع مورد نیاز هستند، و آنها سربار بیشتری در ارتباط با تریگرهای در حال اجرا در جداول عملیاتی در حین انجام تغییرات دارند. علاوه بر تأثیر قابل توجهی بر عملکرد برنامه، حفظ محرک ها به عنوان تغییر برنامه منجر به بار مدیریتی می شود.
- مزایای این روش :
- جداول سایه می توانند یک گزارش غیرقابل تغییر و با جزئیات از تمام تراکنش ها ارائه دهند
- به طور مستقیم در SQL API برای برخی پایگاه های داده پشتیبانی می شود
- معایب این روش
- به طور قابل توجهی عملکرد پایگاه داده را با نیاز به چندین نوشتن در پایگاه داده هر بار که یک ردیف درج، به روز یا حذف می شود، کاهش می دهد.
- بسیاری از کاربران برنامه نمی خواهند رفتار برنامه را با معرفی تریگرها به جداول عملیاتی به خطر بیندازند. DBAها و مهندسان داده باید همیشه عملکرد هر محرکی را که به محیط آنها اضافه شده است به شدت آزمایش کنند و تصمیم بگیرند که آیا می توانند سربار اضافی را تحمل کنند یا خیر.
بیشتر بخوانید : زبان برنامه نویسی SQL
ثبت اطلاعات تغییر مبتنی بر گزارش
پایگاههای داده حاوی گزارشهای تراکنش (همچنین به نام گزارشهای تکراری) هستند که تمام رویدادهای پایگاه داده را ذخیره میکند و امکان بازیابی پایگاه داده را در صورت خرابی فراهم میکند. با ضبط دادههای تغییر مبتنی بر گزارش ، تراکنشهای پایگاه داده جدید – از جمله درجها، بهروزرسانیها و حذفها – از گزارشهای تراکنش بومی پایگاههای داده منبع خوانده میشوند.
تغییرات بدون ایجاد تغییرات در سطح برنامه و بدون نیاز به اسکن جداول عملیاتی ثبت میشوند، که هر دو باعث اضافه شدن حجم کاری اضافی و کاهش عملکرد سیستمهای منبع میشوند.
- مزایای این رویکرد
- تاثیر حداقلی بر سیستم پایگاه داده تولید – بدون نیاز به درخواست اضافی برای هر تراکنش
- می تواند قابلیت اطمینان ACID را در چندین سیستم حفظ کند
- بدون نیاز به تغییر طرحواره های سیستم پایگاه داده تولید یا نیاز به اضافه کردن جداول اضافی
- چالش های این رویکرد
- تجزیه فرمت ورود به سیستم داخلی یک پایگاه داده پیچیده است – اکثر پایگاه های داده فرمت را مستند نمی کنند و تغییراتی را در آن در نسخه های جدید اعلام نمی کنند. این به طور بالقوه شما را ملزم می کند که منطق تجزیه گزارش پایگاه داده خود را با هر انتشار پایگاه داده جدید تغییر دهید.
- به سیستمی برای مدیریت ابرداده رویدادهای تغییر پایگاه داده منبع نیاز دارد
- سطوح گزارش اضافی مورد نیاز برای تولید گزارشهای تراکنش قابل اسکن میتواند سربار عملکرد حاشیهای را اضافه کند
پلتفرم های یکپارچه سازی داده ها برای تغییر ضبط داده ها
پلتفرمهای یکپارچهسازی دادهها که بهطور بومی ضبط دادههای تغییر را انجام میدهند، میتوانند با استخراج خودکار گزارشهای تغییر پایگاهداده، در حالی که مدیریت ابردادههای اضافی برای اطمینان از قابل اعتماد بودن تکرار بین دو یا چند سیستم، پیچیدگی ذکر شده در بالا را مدیریت کنند.
پلت فرم یکپارچه سازی داده های Striim اجازه می دهد تا داده های تغییر مبتنی بر گزارش را با تأثیر کم و در زمان واقعی از پایگاه های داده شما، از جمله CDC برای Oracle و SQL Server CDC، ضبط کنید . Striim می تواند داده ها را برای اهداف مختلف از جمله Snowflake و Azure تکرار کند .
Striim به کاربران اجازه می دهد تعریف کنند که چگونه می خواهند جریان رویدادهای تغییر را دریافت کنند. به عنوان مثال، کاربران می توانند انتخاب کنند که فقط تراکنش های متعهد (همانطور که در نمودار بالا نشان داده شده است) را به عنوان یک جریان رویداد دریافت کنند. یا، به جای تراکنش های متعهد، کاربران می توانند انتخاب کنند که رویدادهای مرتب شده زمانی را در پنجره های زمانی خاص دریافت کنند.
برای حجمهای کاری بزرگتر، کاربران میتوانند یک آستانه خارج از هیپ را به گونهای پیکربندی کنند که تراکنشهای طولانیمدت به طور یکپارچه روی دیسک بافر شوند، با حداقل سربار عملکرد.
یک نسخه نمایشی را برنامه ریزی کنید و ما به شما یک راهنمای شخصی ارائه می دهیم یا Striim را در مقیاس تولید به صورت رایگان امتحان کنید! حجم داده های کوچک یا امیدوار به دستیابی سریع؟ در Striim ما همچنین یک نسخه توسعه دهنده رایگان را ارائه می دهیم .
دوره های مرتبط
دوره کامل تضمینی هوش تجاری با رویکرد کسب درآمد در داخل و خارج از کشور
آنالیز داده و هوش تجاری یکی از پردرآمدهای شغل های دنیا چه در داخل کشور و چه خارج از کشور است. ما در دوره آموزشی صفر تا صد هوش تجاری را به صورت تضمینی آموزش میدهیم.
آموزش ویدیویی هوش تجاری در SQL
شما در این دوره آموزشی (آموزش ویدیویی هوش تجاری در SQL) با مفاهیم و اصول هوش تجاری در SQL آشنا می شوید.
آموزش صفر تا صد طراحی؛ تحلیل و پیاده سازی سامانه های حرفه ای هوش تجاری با پاور بی آی
آموزش صفر تاصد طراحی، تحلیل و پیاده سازی سامانه های حرفه ای هوش تجاری با پاور بی آی در 98 ساعت و توسط اساتید مجرب آماده شده است.
آموزش صفر تا صد داشبورد سازی در سی شارپ
آموزش کامل و پروژه محور مباحث به همراه مثال کاملا عملی در محیط سی شارپ که یک محیط برنامه نویسی ماکروسافتی می باشد. دوره آموزش داشبورد سازی در سی شارپ شامل ساخت یک داشبود زیبا در محیط سی شارپ به کمک کامپوننت های ssrs و Chart.js می باشد.
آموزش کاملا حرفه ای ویدیویی هوش تجاری در Oracle
آموزش ویدیویی هوش تجاری در Oracle ابتدا به بررسی ساختار کلی هوش تجاری اوراکل پرداخته و سپس به مراحل نصب نرم افزارهای مرتبط با کار خود می پردازیم. سپس مباحث آنالیز داده و فاندامنتال کار را بررسی کرده و در خصوص ریپازیتوری و مسایل مربوط به ان صحبت می کنیم.
دیدگاهتان را بنویسید