MySQL থেকে ডেটা ওয়ারহাউস পর্যন্ত বেশিরভাগ পাইপলাইন সময়সূচী SELECT-ভিত্তিক সিঙ্ক ব্যবহার করে, যা বর্তমান সطرগুলোকে আগের স্ন্যাপশটের সাথে তুলনা করে কাজ করে। এই পদ্ধতিটি চালানোর মধ্যে ডিলিট এবং মধ্যবর্তী আপডেট চूকে যায়, এবং বড় টেবিল স্ক্যানের সময় উত্পাদন ডেটাবেসে ভারী বোঝা পেলে।
পরিবর্তন ডেটা ক্যাপচার (CDC) সরাসরি MySQL-এর বাইনারি লগ (binlog) থেকে পড়ে, এবং যেন যেন ঘটে, প্রতিটি INSERT, UPDATE এবং DELETE কে ক্রমবদ্ধভাবে পূর্ণ সطرের অবস্থা সহ ক্যাপচার করে। প্রতি ঘন্টায় চালানোর একটি CDC পাইপলাইন মৌলিকভাবে প্রতি মিনিটে চালানোর ব্যাচ সিঙ্কের চেয়ে আরও বিশ্বাসনীয়, কারণ এটি ঘটে যাওয়া সব কিছু ক্যাপচার করে, শুধুমাত্র সর্বশেষ স্ন্যাপশট নয়।
বিনলগের মাধ্যমে CDC-এর জন্য MySQL-এর নির্দিষ্ট কনফিগারেশনের প্রয়োজন হয়: ROW ফরম্যাটে বাইনারি লগিং এবং পূর্ণ সطرের ছবি সহ (binlog_row_image=FULL), binlog_row_value_options কে PARTIAL_JSON-এ সেট করা উচিত নয়, REPLICATION SLAVE, REPLICATION CLIENT, SELECT, RELOAD এবং SHOW DATABASES অনুমোদন সহ একটি রিপ্লিকেশন ব্যবহারকারী, প্রতিটি রিপ্লিকেশন ক্লায়েন্টের জন্য অনন্য server-id, এবং ডাউনটাইম কভার করার জন্য যথেষ্ট binlog ধারন (ডিফল্ট 30 দিন)।
Erathos মতো পরিচালিত প্ল্যাটফর্ম স্ন্যাপশট মোড বাছাই, server-id সংঘর্ষ থেকে রক্ষা, এবং binlogs পurgia হওয়ার সময় পুনরুদ্ধার লজিক পরিচালনা করে। একবার CDC সঠিকভাবে পরিবর্তনগুলো ক্যাপচার করলে, BigQuery-এ ডেটা ল্যান্ড করা সহজ হয় — প্রতিটি পরিবর্তন ইভেন্ট একটি সطر অপারেশনে মানচিত্রিত হয়। গতির চেয়ে সম্পূর্ণতা অগ্রাধিকার: একটি পাইপলাইন যা কখনও কখনও পিছনে পড়তে পারে কিন্তু কখনও ভুল নয়, তা সময়ে চলা কিন্তু অপূর্ণ ডেটা ল্যান্ড করার পাইপলাইনের চেয়ে ভাল।
মূল entidades: কোম্পানিগুলো: Erathos, BigQuery, MySQL
উৎস: Hacker News · সারাংশ: HeadlinesBriefing