แชร์ผ่าน


เพิ่มแหล่ง CDC ของฐานข้อมูล MySQL ไปยังเหตุการณ์สตรีม

หมายเหตุ

บทความนี้ประกอบด้วยการอ้างอิงถึงคําว่า SLAVEคําที่ Microsoft ไม่ใช้อีกต่อไป เมื่อลบคําศัพท์ออกจากซอฟต์แวร์เราจะลบออกจากบทความนี้

บทความนี้แสดงวิธีการเพิ่มแหล่งข้อมูลการจับภาพข้อมูลการเปลี่ยนแปลง MySQL ไปยังเหตุการณ์สตรีม ปัจจุบัน CDC ฐานข้อมูล MySQL ได้รับการสนับสนุนจากบริการต่อไปนี้ซึ่งฐานข้อมูลสามารถเข้าถึงได้แบบสาธารณะ:

  • ฐานข้อมูล Azure สําหรับ MySQL
  • Amazon RDS for MySQL
  • Amazon Aurora MySQL
  • Google Cloud SQL สําหรับ MySQL (GCP)

คู่มือนี้ใช้ Azure Database สําหรับ MySQL CDC เป็นตัวอย่าง

เมื่อแหล่งข้อมูล CDC ของฐานข้อมูล MySQL ถูกเพิ่มลงในเหตุการณ์จะบันทึกการเปลี่ยนแปลงระดับแถวไปยังตารางที่ระบุ จากนั้นการเปลี่ยนแปลงเหล่านี้สามารถดําเนินการในแบบเรียลไทม์และส่งไปยังปลายทางที่แตกต่างกันสําหรับการวิเคราะห์เพิ่มเติม

หมายเหตุ

แหล่งข้อมูลนี้ไม่ได้รับการสนับสนุนในภูมิภาคต่อไปนี้ของความจุพื้นที่ทํางานของคุณ: US3 ตะวันตก สวิตเซอร์แลนด์ตะวันตก

ข้อกำหนดเบื้องต้น

  • เข้าถึงพื้นที่ทํางานในโหมดสิทธิ์การใช้งาน Fabric capacity (หรือ) โหมดสิทธิ์การใช้งานรุ่นทดลองใช้ที่มีสิทธิ์ผู้สนับสนุนหรือสูงกว่า
  • เข้าถึงอินสแตนซ์ของฐานข้อมูล MySQL เช่น ฐานข้อมูลในฐานข้อมูล Azure สําหรับ MySQL - เซิร์ฟเวอร์แบบยืดหยุ่น
  • ฐานข้อมูล MySQL ของคุณต้องสามารถเข้าถึงได้โดยสาธารณะและไม่ได้อยู่หลังไฟร์วอลล์หรือมีความปลอดภัยในเครือข่ายเสมือน
  • ถ้าคุณไม่มีเหตุการณ์สตรีม ให้สร้างเหตุการณ์สตรีม

ตั้งค่า MySQL DB

ตัวเชื่อมต่อใช้ตัวเชื่อมต่อ Debezium MySQL เพื่อบันทึกการเปลี่ยนแปลงในฐานข้อมูล MySQL ของคุณ คุณต้องกําหนดผู้ใช้ MySQL พร้อมสิทธิ์ที่เหมาะสมในฐานข้อมูลทั้งหมดที่ตัวเชื่อมต่อการรับส่งข้อความสามารถบันทึกการเปลี่ยนแปลงได้ คุณสามารถใช้ผู้ใช้ ผู้ดูแลระบบ เพื่อเชื่อมต่อกับฐานข้อมูลซึ่งโดยปกติจะมีสิทธิ์ที่เหมาะสม หรือคุณสามารถทําตามขั้นตอนเหล่านี้เพื่อสร้างผู้ใช้ใหม่:

หมายเหตุ

ผู้ใช้ใหม่หรือบัญชีผู้ดูแลระบบและรหัสผ่านที่สอดคล้องกันจะถูกใช้เพื่อเชื่อมต่อกับฐานข้อมูลในภายหลังภายใน Eventstream

  1. mysqlที่พร้อมท์คําสั่ง ให้สร้างผู้ใช้ MySQL:

    mysql> CREATE USER 'user'@'%' IDENTIFIED BY 'password';
    
  2. ให้สิทธิ์ที่จําเป็นแก่ผู้ใช้:

    mysql> GRANT SELECT, SHOW DATABASES, REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO 'user'@'%';
    
  3. ดําเนินการสิทธิ์ของผู้ใช้ให้เสร็จสมบูรณ์:

    mysql> FLUSH PRIVILEGES;
    

หากต้องการยืนยันว่าผู้ใช้หรือผู้ดูแลระบบมีสิทธิ์ที่จําเป็นให้เรียกใช้คําสั่งนี้หรือไม่จากนั้นควรแสดงสิทธิ์ที่จําเป็นในขั้นตอนที่ #2:

SHOW GRANTS FOR user;

สําหรับข้อมูลเพิ่มเติมเกี่ยวกับการให้สิทธิ์ที่จําเป็นแก่ผู้ใช้ โปรดดู ที่ ตัวเชื่อมต่อ Debezium สําหรับ MySQL: คู่มือ Debezium

เปิดใช้งาน binlog

คุณต้องเปิดใช้งานการบันทึกไบนารีสําหรับการจําลอง MySQL แฟ้มบันทึกไบนารีบันทึกการปรับปรุงทรานแซคชันสําหรับเครื่องมือการจําลองแบบเพื่อเผยแพร่การเปลี่ยนแปลง ส่วนนี้ใช้ Azure Database สําหรับ MySQL CDC เป็นตัวอย่างเพื่อแสดงขั้นตอนการกําหนดค่า

  1. บนหน้าพอร์ทัล Azure สําหรับฐานข้อมูล Azure ของคุณสําหรับบัญชี MySQL ให้เลือก พารามิเตอร์ เซิร์ฟเวอร์ภายใต้ การตั้งค่า ในการนําทางด้านซ้าย

  2. บนหน้า พารามิเตอร์ของเซิร์ฟเวอร์ ให้กําหนดค่าคุณสมบัติต่อไปนี้ จากนั้นเลือก บันทึก

    • สําหรับ binlog_row_image ให้เลือก เต็ม

    • สําหรับ binlog_expire_logs_seconds ให้ตั้งค่าจํานวนวินาทีที่บริการรอก่อนที่ไฟล์บันทึกไบนารีจะถูกลบออก ตั้งค่าเพื่อให้ตรงกับความต้องการของสภาพแวดล้อมของคุณ ตัวอย่างเช่น 86400

    สกรีนช็อตของการตั้งค่า binlog สําหรับการจําลองแบบภายใต้พารามิเตอร์ของเซิร์ฟเวอร์

เพิ่ม MySQL DB (CDC) เป็นแหล่งข้อมูล

ถ้าคุณยังไม่ได้เพิ่มแหล่งข้อมูลใด ๆ ลงในเหตุการณ์สตรีมของคุณ ให้เลือก ใช้ไทล์แหล่งข้อมูล ภายนอก

สกรีนช็อตที่แสดงการเลือกใช้ไทล์แหล่งข้อมูลภายนอก

ถ้าคุณกําลังเพิ่มแหล่งข้อมูลไปยังเหตุการณ์สตรีมที่เผยแพร่แล้ว สลับไปยัง โหมดแก้ไข เลือก เพิ่มแหล่งข้อมูล บนริบบอน แล้วเลือก แหล่งข้อมูลภายนอก

สกรีนช็อตที่แสดงการเลือกเพิ่มแหล่งข้อมูลไปยังเมนูแหล่งข้อมูลภายนอก

บนหน้า เลือกแหล่งข้อมูล ให้ค้นหาและเลือก เชื่อมต่อ บนไทล์ MySQL DB (CDC)

สกรีนช็อตที่แสดงการเลือก MySQL DB (CDC) เป็นชนิดแหล่งข้อมูลในตัวช่วยสร้างรับเหตุการณ์

กําหนดค่าและเชื่อมต่อกับ MySQL DB (CDC)

  1. บนหน้าจอ เชื่อมต่อ ภายใต้ การเชื่อมต่อ ให้เลือก การเชื่อมต่อ ใหม่ เพื่อสร้างการเชื่อมต่อระบบคลาวด์

    สกรีนช็อตที่แสดงหน้าเชื่อมต่อ

  2. ใส่ การตั้งค่าการเชื่อมต่อต่อไปนี้ และ ข้อมูลประจําตัวการเชื่อมต่อสําหรับ MySQL DB ของคุณ จากนั้นเลือก Connect

  3. ป้อนข้อมูลต่อไปนี้เพื่อกําหนดค่าแหล่งข้อมูล MySQL DB CDC จากนั้นเลือก ถัดไป

    • Table(s): ใส่รายการของชื่อตารางที่คั่นด้วยเครื่องหมายจุลภาค ชื่อตารางแต่ละชื่อต้องเป็นไปตามรูปแบบ <database name>.<table name>ตัวอย่างเช่น my_database.users

    • ID เซิร์ฟเวอร์: ป้อนค่าที่ไม่ซ้ํากันสําหรับแต่ละเซิร์ฟเวอร์และไคลเอ็นต์การจําลองแบบในคลัสเตอร์ MySQL ค่าเริ่มต้นคือ 1000

    • พอร์ต: ปล่อยค่าเริ่มต้นไว้โดยไม่เปลี่ยนแปลง

      สกรีนช็อตของการเลือกตาราง ID เซิร์ฟเวอร์ และพอร์ตสําหรับการเชื่อมต่อ Azure MySQL DB (CDC)

    คุณยังสามารถแก้ไขชื่อแหล่งข้อมูลโดยการเลือกปุ่มดินสอสําหรับชื่อแหล่งข้อมูลในส่วนรายละเอียด Stream ทางด้านขวา

    หมายเหตุ

    ตั้งค่า ID เซิร์ฟเวอร์ที่แตกต่างกันสําหรับผู้อ่านแต่ละราย ทุกไคลเอ็นต์ฐานข้อมูล MySQL สําหรับการอ่าน binlog ควรมีรหัสเฉพาะที่เรียกว่า ID เซิร์ฟเวอร์ MySQL Server ใช้ ID นี้เพื่อรักษาการเชื่อมต่อเครือข่ายและตําแหน่ง binlog งานอื่นที่ใช้รหัสเซิร์ฟเวอร์เดียวกันอาจส่งผลให้อ่านจากตําแหน่ง binlog ไม่ถูกต้องได้ ดังนั้น ขอแนะนําให้ตั้งค่า ID เซิร์ฟเวอร์ที่แตกต่างกันสําหรับโปรแกรมอ่านแต่ละตัว

  4. บนหน้า Review + connect หลังจากตรวจทานสรุปสําหรับแหล่งข้อมูล MySQL DB CDC ให้เลือก เพิ่ม เพื่อดําเนินการกําหนดค่าให้เสร็จสมบูรณ์

    สกรีนช็อตที่แสดงหน้าตรวจสอบ + เชื่อมต่อพร้อมปุ่มเพิ่มที่เลือก

หมายเหตุ

จํานวนสูงสุดของแหล่งข้อมูลและปลายทางสําหรับหนึ่งเหตุการณ์สตรีมคือ 11

ดูเหตุการณ์ที่อัปเดตแล้ว

  1. คุณจะเห็นแหล่งข้อมูล MySQL DB (CDC) ที่เพิ่มลงในเหตุการณ์ของคุณใน โหมดแก้ไข

    สกรีนช็อตของแหล่งที่มา CDC ของ Azure MySQL DB ที่เพิ่มเข้ามาในโหมดแก้ไขพร้อมปุ่มเผยแพร่ที่เน้น

  2. เลือก เผยแพร่ เพื่อเผยแพร่การเปลี่ยนแปลง และเริ่มต้นการสตรีมข้อมูล MySQL DB CDC ไปยังกระแสข้อมูล

    สกรีนช็อตของแหล่งที่มา CDC Azure MySQL DB ที่เพิ่มเข้ามาในโหมด Live

ตัวเชื่อมต่ออื่นๆ: