Các bạn cho mình hỏi là process elasticsearch sync data với mysql như thế nào?
1, Khi insert/update/delete 1 bản ghi vào table ở mysql thì elasticsearch sẽ đồng bộ dữ liệu lên như thế nào? Các bước đồng bộ?
2, Sẽ đồng bộ lại toàn bộ dữ liệu của table hay chỉ đồng bộ bản ghi bản ghi đang thao tác.
3, Nếu chỉ đồng bộ bản ghi đang thao tác thì nếu insert ES sẽ add index cho bản ghi , update thì sẽ giữ nguyên index có đúng không?
1. Luôn phải có 1 trường nào đó để nhận diện được dữ liệu thay đổi, thường là trường updated_at thì mới detect được việc update, còn nếu chỉ qua id tăng dần thì sẽ chỉ nhận biết được có dữ liệu thêm mới. Delete bản ghi mà xoá hẳn, không phải kiểu update cờ là deleted thì cũng sẽ không nhận biết được dữ liệu cần xoá đi khỏi ES. Các bước bao gồm:
2. Sẽ chỉ đồng bộ lại các dữ liệu thay đổi, vì nếu cứ update liên tục vào ES thì khả năng sẽ rất tốn ổ cứng và dữ liệu mới sẽ bị cập nhận chậm.
3. Lần cuối mình làm việc với ES thì là đúng, khi index dữ liệu với cùng id, nó sẽ trả ở response 1 trường báo là update
thanks b nhé