Skip to Sidebar Skip to Content
اقرأ-تك اقرأ-تك
ضيفنا الكريم

  • قائمة القراءة
  • تسجيل الدخول
  • الرئيسية
  • المقالات
  • خطط الاشتراك
  • - اصدارتنا
  • ورقة وقلم
  • مدونات فطين
  • شنطة مبرمج
  • النشرة الأسبوعية
  • كنوز
  • - تعرف علينا
  • من نحن
  • الشراكات
  • كتاب المحتوى
  • اكتب معنا
  • تواصل معنا
  • - بنود الخدمة
  • سياسة الخصوصية
  • الشروط والأحكام
الوسوم
  • Backend
  • Distributed Systems
  • System Design
  • Databases
  • LinkedIn
  • X
  • Facebook
  • Telegram
  • GitHub
جميع الحقوق محفوظة لمنصة اقرأ-تِك 2024©
Change Data Capture at Pinterest
  • Distributed Systems
  • Databases
  • Microservices
  • System Design
  • Data Engineering

Change Data Capture at Pinterest

في عالم النهاردة واللي بيعتمد على البيانات بشكل كبير، الشركات محتاجة تعالج وتحلل البيانات بشكل لحظي عشان تاخد قرارات صح. وتقنية الـ Change Data Capture (CDC) ظهرت كحل سحري واعتمدت عليها Pinterest في قواعد بياناتها .

  • Mahmoud Youssef by Mahmoud Youssef
    Mahmoud Youssef Mahmoud Youssef
    CEO & Founder
    • X
    • Facebook
    • Website
  • 21 Dec, 2024
  • •
  • 2 min read
  • Share on X
  • Share on Facebook
  • Share on LinkedIn
  • Share on Pinterest
  • Email

المقدمة

في عالم النهاردة واللي بيعتمد على البيانات بشكل كبير، الشركات محتاجة تعالج وتحلل البيانات بشكل لحظي عشان تاخد قرارات صح. وتقنية الـ Change Data Capture (CDC) ظهرت كحل سحري واعتمدت عليها Pinterest في قواعد بياناتها .

الـ CDC بتساعد المؤسسات إنها تتابع وتلتقط التغييرات اللي بتحصل في قواعد البيانات بتاعتها بكفاءة وعشان كده في المقال ده، هنكتشف يعني إيه CDC، وليه هي مهمة، وإزاي Pinterest قدروا يطبقوا حلول الـ CDC بشكل عام لكل قواعد البيانات بتاعتهم.


يعني إيه Change Data Capture؟

الـ CDC عبارة عن مجموعة من أنماط التصميم اللي بتستخدم لتحديد وتتبع التغييرات في قاعدة البيانات، زي الإضافات (inserts)، والتحديثات (updates)، وعمليات الحذف (deletes).

التقنية دي بتسمح للتطبيقات إنها تستجيب للتغييرات دي في وقت لحظي Realtime، وده بيخليها جزء أساسي في تكامل البيانات (Data Integration)، وكذلك في الـ (replication)، وعملية المزامنة الخاصة بقواعد البيانات وبعضها.

Change Data Capture (CDC)

ليه الـ CDC مهمة؟

  1. معالجة البيانات بشكل لحظي (Realtime): الـ CDC بتمكّننا من معالجة البيانات لحظة بلحظة عن طريق انها بتلتقط التغييرات أول بأول. وده مهم للتطبيقات اللي بتحتاج معلومات محدثة الـ Fraud Detection Systems أو الـ Recommendation Engines.
  2. تكامل البيانات (Data Integration): من خلال التقاط التغييرات أول بأول، الـ CDC بتسهّل تكامل البيانات بين أنظمة مختلفة. وده مفيد في البيئات اللي فيها تطبيقات متعددة بتحتاج توصل لنفس البيانات وتعالجها وممكن تكون ليها قواعد بيانات مختلفة ولكن هي محتاجة نفس البيانات.
  3. تقليل الحمل على الـ Source Systems: بدل ما نعمل تحميل كامل للبيانات ونعملها كلها Loading وبعدين ننقلها كلها .. فالـ CDC بتسحب التغييرات اللي حصلت، وده بيقلل الحمل على الأنظمة المصدرية وبيحسّن الأداء.
  4. الـ Audit & Compliance: الـ CDC بتوفر طريقة موثوقة لتتبع التغييرات اللي حصلت وده مناسب جدًا للـ Auditing والـ Compliance، فبتضمن إن كل التعديلات متسجلة وقابلة للتتبع.

رحلة Pinterest في تنفيذ الـ CDC

خلونا دلوقتي نشوف رحلة Pinterest وازاي قدروا يطبقوا وينفذوا الـ CDC في قواعد البيانات بتاعتهم وإنهم يبنوا حاجة Generic تتماشى مع الـ System بتاعهم ونشوف ايه التحديات اللي قابلوها واتصرفوا معاها ازاي.

تحديات الـ CDC السابقة

في الماضي، فرق مختلفة في Pinterest نفذت حلول CDC منفصلة عشان يلبوا احتياجات محددة خاصة بيهم. ورغم إنها كانت فعّالة لغرضها، إلا إن الحلول دي سببت عدم رضا للمستخدمين بسبب التباينات اللي ظهرت، وعدم وضوح المسؤوليات مين مسئول عن ايه، ومشاكل من ناحية الموثوقية أو الـ Reliability.


بناء Generic CDC

عشان فريق Pinterest يحل التحديات دي، قرروا إنهم يبنوا حل CDC Generic ويكون معتمد على Debezium™ من Red Hat. الحل ده بيهدف إلى:

  • ضمان أنظمة موثوقة (Reliable)، بزمن استجابة منخفض يعني Low-Latency، وتكون قابلة للتوسع Scalable، مع ضمان معالجة البيانات على الأقل مرة واحدة وده اللي بنسميه At Least Once Processing.
  • دعم الـ Distributed Databases بشكل كبير.
  • تنفيذ Load Balancing قوي وتقليل التأثير على قواعد البيانات الأساسية.
  • توفير إمكانيات للـ Configuration والـ Observability متقدمة للمستخدمين.

Pinterest CDC Architecture

البنية التحتية لقواعد البيانات في Pinterest بتتميز بالتوزيع العالي Highly Distribution، وكل وحدة موزعة بنسميها shard. بعض قواعد البيانات الكبيرة ممكن يكون فيها حوالي 10,000 shard. وعلى الرغم من إن Debezium Connector المفتوح المصدر، زي MySQL Connector، بيشتغل بشكل سلس مع shard واحدة فقط.

Pinterest CDC Architecture

فالتحدي كان في توافقه مع قواعد البيانات الموزعة بتاعة Pinterest خصوصًا إن هم عندهم Distributed Architecture.

هذا المقال مخصص للأعضاء المنتسبين لخطط الاشتراك المدفوعة فقط

اشترك الآن وتصفح كافة المقالات المميزة واستمتع بمحتوى حصري وابق على اطلاع دائم بالتحديثات المستمرة.

اشترك الآن 🚀

هل لديك حساب؟ تسجيل الدخول

في هذا المقال
اشترك الآن واكمل قراءة المقال
قناة اقرأ-تِك على التليجرام قناة اقرأ-تِك على التليجرام

مقالات ذات صلة

  • Streaming Service System Design Use Case 1 min read

    Streaming Service System Design Use Case

    Mohamed Aly Mohamed Aly • 21 Oct, 2025
    Mohamed Aly Mohamed Aly
    Software Engineer
    • Website
  • Alerts & Alarms System Design 2 min read

    Alerts & Alarms System Design

    Mohamed Aly Mohamed Aly • 10 Oct, 2025
    Mohamed Aly Mohamed Aly
    Software Engineer
    • Website
  • Halo Gameplay Scales Beyond Billion of Games Using Saga Pattern 4 min read

    Halo Gameplay Scales Beyond Billion of Games Using Saga Pattern

    Mahmoud Youssef Mahmoud Youssef • 26 Sep, 2025
    Mahmoud Youssef Mahmoud Youssef
    CEO & Founder
    • X
    • Facebook
    • Website
  • Redis Persistence 1 min read

    Redis Persistence

    Mahmoud Youssef Mahmoud Youssef • 4 Jul, 2025
    Mahmoud Youssef Mahmoud Youssef
    CEO & Founder
    • X
    • Facebook
    • Website
  • Building Scalable Financial Systems with Microservices 1 min read

    Building Scalable Financial Systems with Microservices

    Mohammed Gamal Mohammed Gamal • 30 Jun, 2025
    Mohammed Gamal Mohammed Gamal
    FinTech Backend Lead
    • Website
  • High Availability in Distributed Systems 1 min read

    High Availability in Distributed Systems

    Oussama Djaidri Oussama Djaidri • 27 Jun, 2025
    Oussama Djaidri Oussama Djaidri
    Front-End Engineer
    • Website
  • Idempotency in APIs 2 min read

    Idempotency in APIs

    Oussama Djaidri Oussama Djaidri • 16 Jun, 2025
    Oussama Djaidri Oussama Djaidri
    Front-End Engineer
    • Website
  • gRPC 1 min read

    gRPC

    Mahmoud Youssef Mahmoud Youssef • 4 Jun, 2025
    Mahmoud Youssef Mahmoud Youssef
    CEO & Founder
    • X
    • Facebook
    • Website
  • API Gateway 1 min read

    API Gateway

    Mahmoud Youssef Mahmoud Youssef • 21 May, 2025
    Mahmoud Youssef Mahmoud Youssef
    CEO & Founder
    • X
    • Facebook
    • Website
  • How YouTube Supports Billions of Users With MySQL 2 min read

    How YouTube Supports Billions of Users With MySQL

    Mahmoud Youssef Mahmoud Youssef • 19 Apr, 2025
    Mahmoud Youssef Mahmoud Youssef
    CEO & Founder
    • X
    • Facebook
    • Website

اشترك الآن بنشرة اقرأ‑تِك الأسبوعية

لا تدع أي شيء يفوتك. واحصل على أحدث المقالات المميزة مباشرة إلى بريدك الإلكتروني وبشكل مجاني!

اقرأ-تك اقرأ-تك
  • الرئيسية
  • المقالات
  • خطط الاشتراك
  • - اصدارتنا
  • ورقة وقلم
  • مدونات فطين
  • شنطة مبرمج
  • النشرة الأسبوعية
  • كنوز
  • - تعرف علينا
  • من نحن
  • الشراكات
  • كتاب المحتوى
  • اكتب معنا
  • تواصل معنا
  • - بنود الخدمة
  • سياسة الخصوصية
  • الشروط والأحكام
الوسوم
  • Backend
  • Distributed Systems
  • System Design
  • Databases
  • LinkedIn
  • X
  • Facebook
  • Telegram
  • GitHub
جميع الحقوق محفوظة لمنصة اقرأ-تِك 2024©