หมายเหตุ
การเข้าถึงหน้านี้ต้องได้รับการอนุญาต คุณสามารถลอง ลงชื่อเข้าใช้หรือเปลี่ยนไดเรกทอรีได้
การเข้าถึงหน้านี้ต้องได้รับการอนุญาต คุณสามารถลองเปลี่ยนไดเรกทอรีได้
บทความนี้แสดงวิธีการเพิ่มแหล่งข้อมูลการจับภาพข้อมูลการเปลี่ยนแปลง MySQL ไปยังเหตุการณ์สตรีม
ตัวเชื่อมต่อ Azure MySQL Database Change Data Capture (CDC) ช่วยให้คุณสามารถบันทึกสแนปช็อตของข้อมูลปัจจุบันในฐานข้อมูล Azure MySQL คุณระบุตารางที่จะตรวจสอบและรับการแจ้งเตือนเมื่อมีการเปลี่ยนแปลงระดับแถวต่อมาใดๆ กับตาราง เมื่อบันทึกการเปลี่ยนแปลงในสตรีมแล้ว คุณสามารถประมวลผลข้อมูล CDC นี้แบบเรียลไทม์และส่งไปยังปลายทางต่างๆ ภายใน Fabric เพื่อประมวลผลหรือวิเคราะห์เพิ่มเติม
ปัจจุบัน CDC ฐานข้อมูล MySQL ได้รับการสนับสนุนจากบริการต่อไปนี้ซึ่งฐานข้อมูลสามารถเข้าถึงได้แบบสาธารณะ:
- <ค 0>Azure Database for MySQL
- Amazon RDS สําหรับ MySQL
- Amazon Aurora MySQL
- Google Cloud SQL สําหรับ MySQL (GCP)
คู่มือนี้ใช้ Azure Database for MySQL CDC เป็นอดีต amp เลอ
เมื่อแหล่งข้อมูล CDC ของฐานข้อมูล MySQL ถูกเพิ่มลงในเหตุการณ์จะบันทึกการเปลี่ยนแปลงระดับแถวไปยังตารางที่ระบุ จากนั้นการเปลี่ยนแปลงเหล่านี้สามารถดําเนินการในแบบเรียลไทม์และส่งไปยังปลายทางที่แตกต่างกันสําหรับการวิเคราะห์เพิ่มเติม
ข้อกำหนดเบื้องต้น
- การเข้าถึงพื้นที่ทํางานในโหมดสิทธิ์การใช้งานความจุ Fabric (หรือ) โหมดสิทธิ์การใช้งานรุ่นทดลองใช้ที่มีสิทธิ์ Contributor หรือสูงกว่า
- เข้าถึงอินสแตนซ์ของฐานข้อมูล MySQL เช่น: ฐานข้อมูลใน Azure Database for MySQL - Flexible Server
- ฐานข้อมูล MySQL ของคุณควรสามารถเข้าถึงได้แบบสาธารณะและไม่อยู่หลังไฟร์วอลล์หรือรักษาความปลอดภัยในเครือข่ายเสมือน ถ้าอยู่ในเครือข่ายที่มีการป้องกัน ให้เชื่อมต่อโดยใช้การแทรกเครือข่ายเสมือนของตัวเชื่อมต่อ Eventstream
- ถ้าคุณไม่มีเหตุการณ์สตรีม ให้สร้างเหตุการณ์สตรีม
ตั้งค่าฐานข้อมูล MySQL
ตัวเชื่อมต่อใช้ตัวเชื่อมต่อ Debezium MySQL เพื่อบันทึกการเปลี่ยนแปลงในฐานข้อมูล MySQL ของคุณ คุณต้องกําหนดผู้ใช้ MySQL พร้อมสิทธิ์ที่เหมาะสมในฐานข้อมูลทั้งหมดที่ตัวเชื่อมต่อการรับส่งข้อความสามารถบันทึกการเปลี่ยนแปลงได้ คุณสามารถใช้ ผู้ใช้ผู้ดูแลระบบ โดยตรงเพื่อเชื่อมต่อกับฐานข้อมูล ซึ่งโดยปกติจะมีสิทธิ์ที่เหมาะสม หรือคุณสามารถทําตามขั้นตอนเหล่านี้เพื่อสร้างผู้ใช้ใหม่:
หมายเหตุ
ผู้ใช้ใหม่หรือบัญชีผู้ดูแลระบบและรหัสผ่านที่เกี่ยวข้องจะถูกใช้เพื่อเชื่อมต่อกับฐานข้อมูลในภายหลังภายใน Eventstream
mysqlที่พร้อมท์คําสั่ง ให้สร้างผู้ใช้ MySQL:mysql> CREATE USER 'user'@'%' IDENTIFIED BY 'password';ให้สิทธิ์ที่จําเป็นแก่ผู้ใช้:
mysql> GRANT SELECT, SHOW DATABASES, REPLICATION REPLICA, REPLICATION CLIENT ON *.* TO 'user'@'%';หมายเหตุ
เมื่อการล็อกการอ่านส่วนกลางไม่พร้อมใช้งาน เช่นเดียวกับในตัวเลือกที่โฮสต์ เช่น Amazon Relational Database Service (RDS) หรือ Aurora ระบบจะใช้การล็อกระดับตารางเพื่อสร้างสแนปช็อตที่สอดคล้องกัน ในกรณีนี้ คุณจําเป็นต้องให้สิทธิ์
LOCK TABLESแก่ผู้ใช้ นอกจากนี้ เพื่อสนับสนุนFLUSHการดําเนินการในระหว่างสแนปช็อต คุณอาจต้องให้สิทธิ์RELOADหรือFLUSH_TABLESสิทธิ์การใช้งานด้วยดําเนินการสิทธิ์ของผู้ใช้ให้เสร็จสมบูรณ์:
mysql> FLUSH PRIVILEGES;
หากต้องการยืนยันว่าผู้ใช้หรือผู้ดูแลระบบมีสิทธิ์ที่จําเป็นให้เรียกใช้คําสั่งนี้หรือไม่จากนั้นควรแสดงสิทธิ์ที่จําเป็นในขั้นตอนที่ #2:
SHOW GRANTS FOR user;
สําหรับข้อมูลเพิ่มเติมเกี่ยวกับการให้สิทธิ์ที่จําเป็นแก่ผู้ใช้ โปรดดู ที่ ตัวเชื่อมต่อ Debezium สําหรับ MySQL: คู่มือ Debezium
เปิดใช้งาน binlog
คุณต้องเปิดใช้งานการบันทึกไบนารีสําหรับการจําลอง MySQL แฟ้มบันทึกไบนารีบันทึกการปรับปรุงทรานแซคชันสําหรับเครื่องมือการจําลองแบบเพื่อเผยแพร่การเปลี่ยนแปลง ส่วนนี้ใช้ Azure Database for MySQL CDC เป็นตัวอย่างเพื่อแสดงขั้นตอนการกําหนดค่า
บนหน้าพอร์ทัล Azure สําหรับบัญชี Azure Database for MySQL ของคุณ ให้เลือก Server parameters ภายใต้ Settings ในการนําทางด้านซ้าย
บนหน้า พารามิเตอร์ของเซิร์ฟเวอร์ ให้กําหนดค่าคุณสมบัติต่อไปนี้ จากนั้นเลือก บันทึก
สําหรับ binlog_row_image ให้เลือก เต็ม
สําหรับ binlog_expire_logs_seconds ให้ตั้งค่าจํานวนวินาทีที่บริการรอก่อนที่ไฟล์บันทึกไบนารีจะถูกลบออก ตั้งค่าเพื่อให้ตรงกับความต้องการของสภาพแวดล้อมของคุณ ตัวอย่างเช่น 86400
เพิ่ม MySQL Database (DB) Change Data Capture (CDC) เป็นแหล่งที่มา
หากคุณยังไม่ได้เพิ่มแหล่งข้อมูลใดๆ ลงในสตรีมเหตุการณ์ของคุณ ให้เลือกไทล์ เชื่อมต่อแหล่งข้อมูล คุณยังสามารถเลือก เพิ่มแหล่งข้อมูล>Connect บนริบบิ้นได้อีกด้วย
หากคุณกําลังเพิ่มแหล่งที่มาไปยังสตรีมเหตุการณ์ที่เผยแพร่แล้ว ให้เปลี่ยนเป็นโหมดแก้ไข บน Ribbon ให้เลือก เพิ่มแหล่งข้อมูล Connect>
บนหน้า เลือกแหล่งข้อมูล ให้ค้นหาและเลือก เชื่อมต่อ บนไทล์ MySQL DB (CDC)
กําหนดค่าและเชื่อมต่อกับ MySQL DB (CDC)
บนหน้าจอ เชื่อมต่อ ภายใต้ การเชื่อมต่อ ให้เลือก การเชื่อมต่อ ใหม่ เพื่อสร้างการเชื่อมต่อระบบคลาวด์
ป้อนการตั้งค่าการเชื่อมต่อและข้อมูลประจําตัวการเชื่อมต่อต่อไปนี้สําหรับฐานข้อมูล MySQL ของคุณ แล้วเลือก เชื่อมต่อ
Server: ที่อยู่เซิร์ฟเวอร์ของฐานข้อมูล MySQL ของคุณ ตัวอย่างเช่น my-mysql-server.mysql.database.azure.com
ฐานข้อมูล: ชื่อฐานข้อมูล ตัวอย่างเช่น my_database
ชื่อการเชื่อมต่อ: สร้างขึ้นโดยอัตโนมัติ หรือคุณสามารถป้อนชื่อใหม่สําหรับการเชื่อมต่อนี้
ชื่อผู้ใช้และรหัสผ่าน : ใส่ข้อมูลประจําตัวสําหรับฐานข้อมูล MySQL ของคุณ ตรวจสอบให้แน่ใจว่าคุณใส่บัญชีผู้ดูแลเซิร์ฟเวอร์หรือบัญชีผู้ใช้ที่สร้างขึ้นโดยมีสิทธิ์ที่จําเป็นที่มอบให้
ป้อนข้อมูลต่อไปนี้เพื่อกําหนดค่าแหล่งข้อมูล MySQL DB CDC จากนั้นเลือก ถัดไป
พอร์ต: ค่าเริ่มต้นคือ 3306 ถ้าการเชื่อมต่อระบบคลาวด์ที่คุณเลือกได้รับการกําหนดค่าใน จัดการการเชื่อมต่อและเกตเวย์ตรวจสอบให้แน่ใจว่าหมายเลขพอร์ตตรงกับชุดนั้น หากไม่ตรงกัน หมายเลขพอร์ตในการเชื่อมต่อระบบคลาวด์ใน จัดการการเชื่อมต่อและเกตเวย์ จะมีความสําคัญมากขึ้น
ตาราง: เลือกตารางทั้งหมดหรือป้อนชื่อตาราง หากคุณเลือกรายการหลัง ให้ระบุตารางโดยใช้รายการตัวระบุตารางที่คั่นด้วยเครื่องหมายจุลภาค (
databaseName.tableName) หรือนิพจน์ปกติที่ถูกต้อง เช่น:- ใช้
databaseName.test.*เพื่อเลือกตารางทั้งหมดที่มีชื่อเริ่มต้นด้วยdatabaseName.test - ใช้
databaseName\.(test1|test2)เพื่อเลือกdatabaseName.test1และdatabaseName.test2
คุณสามารถผสมรูปแบบทั้งสองได้โดยใช้เครื่องหมายจุลภาค ขีดจํากัดอักขระทั้งหมดสําหรับรายการทั้งหมดคือ 102,400 อักขระ
- ใช้
ID เซิร์ฟเวอร์: ป้อนค่าที่ไม่ซ้ํากันสําหรับแต่ละเซิร์ฟเวอร์และไคลเอ็นต์การจําลองแบบในคลัสเตอร์ MySQL ค่าเริ่มต้นคือ 1000
หมายเหตุ
ตั้งค่า ID เซิร์ฟเวอร์ที่แตกต่างกันสําหรับผู้อ่านแต่ละราย ทุกไคลเอ็นต์ฐานข้อมูล MySQL สําหรับการอ่าน binlog ควรมี ID ที่ไม่ซ้ํากัน ซึ่งเรียกว่า ID ของเซิร์ฟเวอร์ MySQL Server ใช้ ID นี้เพื่อรักษาการเชื่อมต่อเครือข่ายและตําแหน่ง binlog งานอื่นที่ใช้รหัสเซิร์ฟเวอร์เดียวกันอาจส่งผลให้อ่านจากตําแหน่ง binlog ไม่ถูกต้องได้ ดังนั้น ขอแนะนําให้ตั้งค่า ID เซิร์ฟเวอร์ที่แตกต่างกันสําหรับโปรแกรมอ่านแต่ละตัว
คุณสามารถขยาย การตั้งค่าขั้นสูง เพื่อเข้าถึงตัวเลือกการกําหนดค่าเพิ่มเติมสําหรับแหล่งที่มา CDC ของฐานข้อมูล MySQL:
-
โหมดการล็อกสแนปช็อต: ตัวเลือกคือ:
-
Minimal (default): ระงับการล็อกการอ่านส่วนกลางเฉพาะในช่วงเริ่มต้นเพื่อบันทึกสคีมาและข้อมูลเมตา ส่วนที่เหลือของสแนปช็อตใช้ทรานแซคชัน REPEATABLE READ ซึ่งทําให้สามารถอัปเดตขณะอ่านข้อมูลได้ -
Extended: รักษาการล็อกการอ่านส่วนกลางตลอดระยะเวลาสแนปช็อต โดยบล็อกการเขียนทั้งหมด ใช้เพื่อความสอดคล้องอย่างเต็มที่หากการบล็อกการเขียนเป็นที่ยอมรับได้ -
None: ข้ามการรับการล็อกตารางระหว่างสแนปช็อต ปลอดภัยเฉพาะเมื่อไม่มีการเปลี่ยนแปลง Schema เกิดขึ้นระหว่างกระบวนการ
-
-
โหมดการจัดการทศนิยม: ระบุวิธีที่ตัวเชื่อมต่อจัดการ
DECIMALและNUMERICค่าคอลัมน์:-
Precise: แสดงค่าโดยใช้ประเภททศนิยมที่แน่นอน (เช่น JavaBigDecimal) เพื่อให้มั่นใจถึงความแม่นยําและความถูกต้องอย่างเต็มที่ในการแสดงข้อมูล -
Double: แปลงค่าเป็นจํานวนจุดทศนิยมลอยตัวที่มีความแม่นยําสองเท่า ตัวเลือกนี้ช่วยปรับปรุงการใช้งานและประสิทธิภาพ แต่อาจส่งผลให้สูญเสียความแม่นยํา -
String: เข้ารหัสค่าเป็นสตริงที่จัดรูปแบบ ตัวเลือกนี้ทําให้ง่ายต่อการใช้ในระบบดาวน์สตรีม แต่สูญเสียข้อมูลความหมายเกี่ยวกับประเภทตัวเลขดั้งเดิม
-
-
โหมดสแนปช็อต: ระบุเกณฑ์สําหรับการดําเนินการสแนปช็อตเมื่อตัวเชื่อมต่อเริ่มทํางาน:
-
Initial: ตัวเชื่อมต่อจะเรียกใช้สแนปช็อตเฉพาะเมื่อไม่มีการบันทึกออฟเซ็ตสําหรับชื่อเซิร์ฟเวอร์เชิงตรรกะ หรือหากตรวจพบว่าสแนปช็อตก่อนหน้านี้ล้มเหลวในการทําให้เสร็จสมบูรณ์ หลังจากสแนปช็อตเสร็จสมบูรณ์ ตัวเชื่อมต่อจะเริ่มสตรีมเรกคอร์ดเหตุการณ์สําหรับการเปลี่ยนแปลงฐานข้อมูลในภายหลัง -
InitialOnly: ตัวเชื่อมต่อจะเรียกใช้สแนปช็อตเฉพาะเมื่อไม่มีการบันทึกออฟเซ็ตสําหรับชื่อเซิร์ฟเวอร์เชิงตรรกะ หลังจากสแนปช็อตเสร็จสิ้น ขั้วต่อจะหยุดทํางาน จะไม่เปลี่ยนเป็นการสตรีมเพื่ออ่านเหตุการณ์การเปลี่ยนแปลงจากบิงล็อก -
NoData: ตัวเชื่อมต่อเรียกใช้สแนปช็อตที่บันทึกเฉพาะ Schema แต่ไม่ใช่ข้อมูลตารางใดๆ ตั้งค่าตัวเลือกนี้ถ้าคุณไม่ต้องการสแนปช็อตข้อมูลที่สอดคล้องกัน แต่คุณต้องการเฉพาะการเปลี่ยนแปลงที่เกิดขึ้นตั้งแต่ตัวเชื่อมต่อเริ่มทํางาน
-
-
โหมดการล็อกสแนปช็อต: ตัวเลือกคือ:
รายละเอียดสตรีมหรือแหล่งที่มา
บนหน้า เชื่อมต่อ ให้ทําตามขั้นตอนใดขั้นตอนหนึ่งเหล่านี้โดยพิจารณาจากว่าคุณกําลังใช้ Eventstream หรือ Real-Time ฮับ
สตรีมเหตุการณ์:
ในบานหน้าต่าง รายละเอียดแหล่งที่มา ทางด้านขวา ให้ทําตามขั้นตอนเหล่านี้:
สําหรับ ชื่อแหล่งที่มา ให้เลือกปุ่ม ดินสอ เพื่อเปลี่ยนชื่อ
โปรดสังเกตว่า ชื่อ Eventstream และ ชื่อสตรีม เป็นแบบอ่านอย่างเดียว
ฮับReal-Time:
ในส่วน รายละเอียดสตรีม ทางด้านขวา ให้ทําตามขั้นตอนเหล่านี้:
เลือกพื้นที่ทํางาน Fabric ที่คุณต้องการสร้างสตรีมเหตุการณ์
สําหรับ ชื่อสตรีมเหตุการณ์ ให้เลือกปุ่ม ดินสอ และป้อนชื่อสําหรับสตรีมเหตุการณ์
ค่า ชื่อสตรีม จะถูกสร้างขึ้นให้คุณโดยอัตโนมัติโดยการผนวก -stream ต่อท้ายชื่อของสตรีมเหตุการณ์ สตรีมนี้จะปรากฏบนหน้า สตรีมข้อมูลทั้งหมดของ ฮับแบบเรียลไทม์เมื่อตัวช่วยสร้างเสร็จสิ้น
เลือก ถัดไป ที่ด้านล่างของหน้า กําหนดค่า
ตรวจสอบและเชื่อมต่อ
บนหน้าจอ ตรวจสอบ + เชื่อมต่อ ให้ตรวจสอบข้อมูลสรุป แล้วเลือก เพิ่ม (สตรีมเหตุการณ์) หรือ เชื่อมต่อ (ฮับReal-Time)
ดูเหตุการณ์ที่อัปเดตแล้ว
คุณจะเห็นแหล่งข้อมูล MySQL DB (CDC) ที่เพิ่มลงในเหตุการณ์ของคุณใน โหมดแก้ไข
เลือก เผยแพร่ เพื่อเผยแพร่การเปลี่ยนแปลง และเริ่มต้นการสตรีมข้อมูล MySQL DB CDC ไปยังกระแสข้อมูล
เนื้อหาที่เกี่ยวข้อง
ตัวเชื่อมต่ออื่นๆ:
- สตรีมข้อมูล Amazon Kinesis
- <ค 0>Azure Cosmos DB
- <ค 0>Azure Event Hubs
- <ค 0>Azure IoT Hub
- Azure SQL Database การบันทึกข้อมูลการเปลี่ยนแปลง (CDC)
- บรรจบกัน Kafka
- ปลายทางแบบกําหนดเอง
- ผับ/ย่อย Google Cloud
- ฐานข้อมูล PostgreSQL CDC
- ข้อมูลตัวอย่าง
- เหตุการณ์ Azure Blob Storage
- Fabric เหตุการณ์พื้นที่ทํางาน