🪄 Debezium: جادوی پشت ضبط داده و تکرار غیر همگام (رایگان)

Summarize this content to 400 words in Persian Lang
🪝 تیزر
آیا تا به حال در موقعیتی قرار گرفتید که:
تیم 🇦 داده ها را فشار می دهد در یک پایگاه داده معین (مثلاً MySQL،…) با نرم افزار سفارشی خاص خود
تیم 🇧 باید این تغییرات داده را دریافت کند (INSERT، UPDATE، DELETE) به عنوان رویدادها تا بتوانند آنها را در یک پایگاه داده دیگر قرار دهند (MariaDB، PostgreSQL،…)
نرم افزار پایه قابل تغییر نیست: شما باید “با آن مقابله کن”
به عنوان مثال، انگیزه تیم B ممکن است برای دستیابی به علم داده، RealTime Analytics، ذخیره در یک datalake، …
👉 این پست وبلاگ به این مورد اختصاص داده شده است … و با کمال تعجب: راه حل های منبع باز برای دستیابی به این جادو وجود دارد!
🤔 درباره “چرا”
Debezium “چرا” پروژه بسیار ساده است:
“پایگاه های داده خود را به جریان رویدادهای تغییر تبدیل کنید”
… حتی برای سیستم هایی مانند “میراث”:
👂 چگونه کار نمی کند (چرا عالی است)
نکته کلیدی در اینجا برای یادآوری این است که Debezium به عنوان یک پروکسی در مقابل پایگاه داده عمل نمی کندو این زیباترین قسمت است.
نکته کلیدی این است که Debezium به معنای واقعی کلمه به تغییرات پایگاه داده گوش می دهدهر چه اسمشان را بگذارید:
، سپس این رویدادها را در قالب استاندارد مشترک به پیام های کافکا ارسال کنید… منتظر بمانید تا بعداً توسط یک یا چند مصرف کننده استفاده شود.
🪄 چگونه کار می کند
جادو در گردش کار زیر قرار دارد:
ثبت تغییرات داده ها در سطح پایگاه داده (WAL برای پستها، آرشیولاگها، هر چه که آنها را بنامید…)
ارسال/استریم رویدادها این کافکا است
رویدادهای کافکا را مصرف کنید بنابراین آنها را می توان به هر سرویس داده شخص ثالث فشار داد 3'. JDBC: به عنوان مثال “رویدادها را از موضوعات منبع متعدد مصرف کنید، و سپس با استفاده از درایور JDBC، آن رویدادها را در یک پایگاه داده رابطهای تنظیم کنید.”
🍿 نسخه ی نمایشی از ابتدا
در زیر نسخه ی نمایشی زنده می توانستم از ابتدا انجام دهم، اما با دنبال کردن دستورالعمل های پیش فرض برای نمونه MySQL:
🔭 جلوتر بروید
🪝 تیزر
آیا تا به حال در موقعیتی قرار گرفتید که:
- تیم 🇦 داده ها را فشار می دهد در یک پایگاه داده معین (مثلاً MySQL،…) با نرم افزار سفارشی خاص خود
-
تیم 🇧 باید این تغییرات داده را دریافت کند (
INSERT
،UPDATE
،DELETE
) به عنوان رویدادها تا بتوانند آنها را در یک پایگاه داده دیگر قرار دهند (MariaDB، PostgreSQL،…) - نرم افزار پایه قابل تغییر نیست: شما باید “با آن مقابله کن”
به عنوان مثال، انگیزه تیم B ممکن است برای دستیابی به علم داده، RealTime Analytics، ذخیره در یک datalake، …
👉 این پست وبلاگ به این مورد اختصاص داده شده است … و با کمال تعجب: راه حل های منبع باز برای دستیابی به این جادو وجود دارد!
🤔 درباره “چرا”
Debezium
“چرا” پروژه بسیار ساده است:
“پایگاه های داده خود را به جریان رویدادهای تغییر تبدیل کنید”
… حتی برای سیستم هایی مانند “میراث”:
👂 چگونه کار نمی کند (چرا عالی است)
نکته کلیدی در اینجا برای یادآوری این است که Debezium به عنوان یک پروکسی در مقابل پایگاه داده عمل نمی کندو این زیباترین قسمت است.
نکته کلیدی این است که Debezium به معنای واقعی کلمه به تغییرات پایگاه داده گوش می دهدهر چه اسمشان را بگذارید:
، سپس این رویدادها را در قالب استاندارد مشترک به پیام های کافکا ارسال کنید… منتظر بمانید تا بعداً توسط یک یا چند مصرف کننده استفاده شود.
🪄 چگونه کار می کند
جادو در گردش کار زیر قرار دارد:
-
ثبت تغییرات داده ها در سطح پایگاه داده (
WAL
برای پستها، آرشیولاگها، هر چه که آنها را بنامید…) - ارسال/استریم رویدادها این کافکا است
- رویدادهای کافکا را مصرف کنید بنابراین آنها را می توان به هر سرویس داده شخص ثالث فشار داد 3'. JDBC: به عنوان مثال “رویدادها را از موضوعات منبع متعدد مصرف کنید، و سپس با استفاده از درایور JDBC، آن رویدادها را در یک پایگاه داده رابطهای تنظیم کنید.”
🍿 نسخه ی نمایشی از ابتدا
در زیر نسخه ی نمایشی زنده می توانستم از ابتدا انجام دهم، اما با دنبال کردن دستورالعمل های پیش فرض برای نمونه MySQL:
https://www.youtube.com/watch?v=vxP2EBGwpv0
🔭 جلوتر بروید