Chuyển đổi data từ SQL Server sang Maria DB
Xin chào mọi người , hiện em đang có một project về Quản lý khách sạn , dữ liệu hiện tại đang lưu trong SQL Server ( hàng ngàn record ) . Giờ em muốn thiết kế ứng dụng web dùng giải pháp API để chuyển data từ SQL Server sang Maria DB . Hiện em chưa có hướng giải quyết bài toán . Mọi người có thể cho em một hướng giải quyết được với ạ.
sql server
maria db
Remain: 5
1 Answer

monkey
Beginner
monkey
Beginner
- Hàng ngàn record là con số quá nhỏ em ạ, tuy nhiên nếu em vẫn lo ngại dữ liệu quá lớn và hiệu năng kém, em có thể tham khảo 1 trong các cách phân trang dữ liệu này nhé: https://tvd12.com/data-pagination/
Mỗi lần gọi API em sẽ lấy ra một trang cho đến khi nào đến trang cuối thì thôi, cách đơn giản nhất là ORDER BY trường id em ạ.
- Tuy nhiên anh nghĩ là em hoàn toàn có thể kết nối đến 2 database cùng 1 lúc và mã nguồn sẽ kiểu thế này em ạ:
<span><span>class</span> <span>Migrator</span> </span>{ <span>private</span> SqlServerRepository sqlServerRepository; <span>private</span> MariaDBRepository mariaDBRepository; <span>private</span> MigrateHistoryRepository migrateHistoryRepository; <span><span>public</span> <span>void</span> <span>migrate</span><span>()</span> </span>{ Thread newThread = <span>new</span> Thread(() -> { <span>long</span> lastId = migrateHistoryRepository.getLastMigratedId(); <span>while</span> (<span>true</span>) { List<Entity> entities = sqlServerRepository.findByIdGt(lastId); <span>if</span> (entities.isEmpty()) { <span>break</span> } mariaDBRepository.save(entities); lastId = entities.get(entities.size() - <span>1</span>).getId(); } }); newThread.start(); } } <span><span>interface</span> <span>MigrateHistoryRepository</span> </span>{ <span><span>void</span> <span>saveLastMigratedId</span><span>(<span>long</span> lastMigratedId)</span></span> <span><span>long</span> <span>getLastMigratedId</span><span>()</span></span> } <span><span>interface</span> <span>SqlServerRepository</span> </span>{ <span>@EzyQuery</span>(<span>"SELECT e FROM Entity e WHERE e.id > ?0"</span>) <span>List<Entity> <span>findByIdGt</span><span>(<span>long</span> idExclusive)</span></span> } <span><span>interface</span> <span>MariaDBRepository</span> </span>{ <span><span>void</span> <span>save</span><span>(Entity entity)</span></span> <span><span>void</span> <span>save</span><span>(List<Entity> entities)</span></span> } <span>@Data</span> <span><span>class</span> <span>Entity</span> </span>{ <span>private</span> <span>long</span> id; }
-
1