Nếu Message Queue là Kafka thì em thường đồng bộ dữ liệu giữa MySQL và ES sử dụng Kafka Connect để setup Source-Sink. Việc này sẽ cách ly việc handle sync data giữa 2 DB ra khỏi logic code. Không biết có cách nào khác không mong anh chỉ giáo.
Cách này là đỉnh của chóp. Nhưng nó rất khó và phải level cao, test cũng ghê gớm vì mất dữ liệu... Còn ghi kép không đồng bộ là đơn giản nhưng hiệu quả.
Anh ơi, em đang dùng logstash để sync giữa 2 mysql và elastic search, nma vấn đề gặp phải là khi delete 1 row trong mysql thì logstash lại không hỗ trợ delete operator. Kết quả là khi mysql xoá và elastic vẫn search ra, về giải pháp soft delete e đã nghĩ qua nhưng bh sản phẩm ko có đủ time để chuyển sang soft delete nữa, em xin anh cho ý kiến ạ
không liên quan, tất cả cty mình làm qua thì toàn dùng soft delete và soft delete nó giống như 1 pattern khi thiết kế db. cty mà cho hard delete thì thấy họ chả coi trọng data ra cái gì.
thay vì bạn phải delete 1 row, bạn không thử 1 column isDelete chẳng hạn, bạn set isDelete = true thì bên ES đã nhận thông số như vậy, khi search bạn query kèm filter isDelete = false là oke mà
mình nhớ có cách sync db vs elasticsearch, có thể chon table muốn sync, dùng docker dựng lên cũng khá đơn giản
có bài viết nào cho em xin với ạ
Có debezium và kafka connect hỗ trợ sẵn hết rồi.
Tại sao không có công nghệ nào tích hợp mysql, Elastic search và redis luôn nhỉ?😅😅
em sử dụng entity listener trong nestjs để lắng nghe sự kiện CRUD từ RDBMS và đồng bộ vào elasticsearch thì có hợp lý không ạ.
không , giảm hiệu năng lắm
Cho em hỏi 2 cách còn lại trong video nào đấy ạ
Nếu Message Queue là Kafka thì em thường đồng bộ dữ liệu giữa MySQL và ES sử dụng Kafka Connect để setup Source-Sink. Việc này sẽ cách ly việc handle sync data giữa 2 DB ra khỏi logic code. Không biết có cách nào khác không mong anh chỉ giáo.
Cách này là đỉnh của chóp. Nhưng nó rất khó và phải level cao, test cũng ghê gớm vì mất dữ liệu... Còn ghi kép không đồng bộ là đơn giản nhưng hiệu quả.
Có phải lắng nghe binlog của MySql rồi dùng dùng Message Queue đồng bộ hoá sang ES hông anh?
Like u
Anh ơi, em đang dùng logstash để sync giữa 2 mysql và elastic search, nma vấn đề gặp phải là khi delete 1 row trong mysql thì logstash lại không hỗ trợ delete operator. Kết quả là khi mysql xoá và elastic vẫn search ra, về giải pháp soft delete e đã nghĩ qua nhưng bh sản phẩm ko có đủ time để chuyển sang soft delete nữa, em xin anh cho ý kiến ạ
không liên quan, tất cả cty mình làm qua thì toàn dùng soft delete và soft delete nó giống như 1 pattern khi thiết kế db. cty mà cho hard delete thì thấy họ chả coi trọng data ra cái gì.
thay vì bạn phải delete 1 row, bạn không thử 1 column isDelete chẳng hạn, bạn set isDelete = true thì bên ES đã nhận thông số như vậy, khi search bạn query kèm filter isDelete = false là oke mà
@@DuyTran-ls5ty mọi người cứ comment sai v đề, e hỏi có cách nào mà ko cần soft delete ko thì cứ cmt soft delete @@
Bạn thử dbzium xem (có thể mình viết sai tên)
Debezium