7 điểm bởi evisdrenova 2024-05-09 | Chưa có bình luận nào. | Chia sẻ qua WhatsApp

Xin chào mọi người trên Hada News, chúng tôi rất vui được ra mắt Neosync!

Neosync là một nền tảng mã nguồn mở giúp các nhà phát triển tạo ra các phiên bản đã được ẩn danh và các phiên bản dữ liệu tổng hợp từ dữ liệu production, để cải thiện kiểm thử cục bộ, gỡ lỗi và trải nghiệm lập trình viên mà không gặp rủi ro về quyền riêng tư hay bảo mật.

Hầu hết các nhà phát triển và đội ngũ đều có một số script seed cơ sở dữ liệu để tạo dữ liệu giả cho cơ sở dữ liệu local và staging. Vấn đề mà chúng tôi nghe từ các nhà phát triển là: ở local thì tính năng có vẻ hoạt động tốt, nhưng khi lên production lại phát sinh lỗi và các trường hợp ngoại lệ do dữ liệu seed không đại diện cho dữ liệu production. Vấn đề thứ hai là khi gỡ lỗi lỗi xảy ra trong production, không có cách tốt để có được dữ liệu đủ gần với dữ liệu production.

Việc dùng trực tiếp dữ liệu production có thể giải quyết các vấn đề này, nhưng phần lớn các đội ngũ không thể làm vậy vì 1. các vấn đề về quyền riêng tư/bảo mật và 2. quy mô dữ liệu.

Vì vậy, chúng tôi bắt tay vào giải quyết cả hai vấn đề đó với Neosync.

Chúng tôi giải quyết vấn đề quyền riêng tư và bảo mật bằng cách sử dụng ẩn danh hóa và dữ liệu tổng hợp. Với hơn 40 transformer dựng sẵn (hoặc bạn có thể tự viết bằng code), bạn có thể ẩn danh PII hoặc dữ liệu nhạy cảm để sử dụng an toàn ở local. Ngoài ra, thay vì ẩn danh dữ liệu, bạn cũng có thể tạo dữ liệu tổng hợp ngay từ đầu có hình thức giống dữ liệu production và được điều chỉnh để phù hợp với schema hiện có của cơ sở dữ liệu.

Vấn đề thứ hai là quy mô. Một số cơ sở dữ liệu production quá lớn để chứa trên local hoặc có nhiều dữ liệu hơn mức cần thiết. Đôi khi bạn cũng muốn gỡ lỗi dữ liệu của một khách hàng cụ thể và cần một cách chỉ lọc dữ liệu của họ. Chúng tôi giải quyết điều này bằng subsetting. Bạn chỉ cần truyền một truy vấn SQL để lọc các bảng, và Neosync sẽ xử lý toàn bộ phần phức tạp.

Cốt lõi của Neosync là khả năng xử lý tính toàn vẹn tham chiếu. Khi làm việc với cơ sở dữ liệu quan hệ, sẽ có khóa chính, khóa ngoại, ràng buộc duy nhất, phụ thuộc vòng trong cùng bảng và giữa các bảng, sequence, v.v.

Vì vậy, dù bạn đang ẩn danh dữ liệu hay tạo dữ liệu tổng hợp, bạn cần một cách để bảo toàn các ràng buộc và quan hệ đó; nếu không, schema sẽ bị hỏng.

Neosync xử lý việc này một cách minh bạch. Nếu có vấn đề về ràng buộc như khóa ngoại bị hỏng, cột mới cần ánh xạ, khóa ngoại không cho phép null, v.v., công cụ sẽ thông báo để bạn có thể hành động và sửa lại.

Cách hoạt động như sau:

  1. Kết nối cơ sở dữ liệu nguồn và đích.

  2. Xác định loại job và quyết định có chạy theo lịch hay không. Job đồng bộ sẽ đồng bộ dữ liệu từ nguồn sang đích, còn job tạo dữ liệu sẽ tạo dữ liệu tổng hợp từ đầu và stream sang đích.

  3. Xác định schema và các bảng cần đồng bộ và chuyển đổi. Bạn có thể chọn các transformer để xác định cách ẩn danh dữ liệu hoặc tạo dữ liệu tổng hợp ở cấp độ cột, hoặc dùng dữ liệu tổng hợp do AI tạo ra để sinh dữ liệu cho cơ sở dữ liệu đích.

  4. Cuối cùng, bạn có thể xác định subset. Đây là cách lọc dữ liệu được gửi sang đích. Để làm điều đó, bạn có thể cung cấp truy vấn SQL tùy chỉnh hoặc bộ lọc.

Chỉ vậy thôi! Job sẽ chạy theo lịch mà bạn đã thiết lập. Chúng tôi xử lý retry, backoff và tính toàn vẹn tham chiếu trên toàn bộ cơ sở dữ liệu. Chúng tôi cũng cung cấp API, CLI và Github Actions để bạn có thể dùng Neosync trong pipeline CI nhằm nạp dữ liệu cho cơ sở dữ liệu CI.

Neosync là một dự án mã nguồn mở được viết bằng Go và Typescript, có thể chạy bằng Helm hoặc Docker compose. Chúng tôi cũng cung cấp nền tảng hosted với gói miễn phí khá hào phóng.

Chúng tôi mong nhận được phản hồi và luôn hoan nghênh mọi đóng góp.

Chưa có bình luận nào.

Chưa có bình luận nào.