Ghi lại dữ liệu thay đổi (CDC)

Jan 25 2023
Cung cấp dữ liệu nhanh hơn, hiệu quả hơn và không làm giảm độ chính xác của dữ liệu. Bởi Siddharth Pal DevOps Team, Hike Insights từ dữ liệu là một trong những phần quan trọng nhất của bất kỳ sản phẩm nào, nhưng khi bạn tạo một ứng dụng trò chơi, việc lấy các thay đổi dữ liệu từ cơ sở dữ liệu nguồn và đưa chúng vào kho dữ liệu thậm chí còn quan trọng hơn gần thời gian thực.

Cung cấp dữ liệu nhanh hơn, hiệu quả hơn và không làm giảm độ chính xác của dữ liệu.

Bởi Siddharth Pal Nhóm DevOps, Hike

Thông tin chi tiết từ dữ liệu là một trong những phần quan trọng nhất của bất kỳ sản phẩm nào, nhưng khi bạn tạo một ứng dụng trò chơi, điều quan trọng hơn nữa là lấy các thay đổi dữ liệu từ cơ sở dữ liệu nguồn và đưa chúng vào kho dữ liệu gần thời gian thực.

CDC hiệu quả hơn và nhanh hơn so với nhập dữ liệu hàng loạt, làm cho nó trở thành giải pháp phù hợp cho các nhóm dữ liệu và BI, những người cần đưa dữ liệu vào hệ thống và phân tích dữ liệu đó một cách nhanh chóng.

Chúng tôi đã có một trường hợp sử dụng thú vị khi chúng tôi thậm chí bắt đầu nghĩ đến CDC cho tất cả các bộ dữ liệu chính của mình vào ngày 21 tháng 8 năm 2017 và triển khai nó. Chúng tôi đã làm việc trên quy trình CDC trong hơn một năm với tất cả các thay đổi phần mềm mới nhất và di chuyển dữ liệu nguồn, tôi rất vui được chia sẻ với bạn trong blog này. Trong thời gian này, chúng tôi đã thêm một số cơ sở dữ liệu và chuyển sang phân đoạn cơ sở dữ liệu cho các ứng dụng kinh doanh quan trọng hơn.

Tại sao chúng tôi quyết định áp dụng CDC?

Các trường hợp sử dụng như trạng thái gửi tiền hoặc rút tiền, trạng thái phiên trò chơi cho một trò chơi nhất định, phát hiện điểm bất thường, chiến dịch thời gian thực, mô hình học máy, phân tích hoạt động và nhiều dữ liệu cần thiết khác trong thời gian gần và cũng cần ghi lại mọi thay đổi trong dữ liệu.

Thiết lập đường ống CDC

Vì vậy, bạn sẽ bắt đầu từ đâu nếu muốn thiết lập quy trình CDC?

  1. Khởi chạy cụm kafka tối thiểu 3 nút.
  2. Tải xuống trình kết nối debezium ổn định tương thích với phiên bản cơ sở dữ liệu của bạn và cài đặt nó trên máy chủ môi giới hoặc nút chuyên dụng của bạn.
  3. Thiết lập kết nối mạng giữa cơ sở hạ tầng được cung cấp.
  4. Tạo người dùng chỉ đọc trong cơ sở dữ liệu nguồn.
  5. MongoDB:
  6. MySQL:
    • MySQL:

    Chúng ta đã đạt được những gì?

    Chuyển từ ETL truyền thống sang steam giải quyết hai vấn đề lớn sau:

    1. Tải tăng đột biến theo định kỳ : Các truy vấn lớn ảnh hưởng đến độ trễ và cuối cùng là trải nghiệm người dùng, đó là lý do tại sao chúng tôi thiết lập một máy chủ phụ bổ sung để lên lịch cho các công việc hàng loạt.
    2. Các quyết định kinh doanh bị trì hoãn : Các quyết định kinh doanh dựa trên dữ liệu bị trì hoãn bởi tần suất bỏ phiếu của chúng tôi.

    Chạy lệnh gọi curl để theo dõi trạng thái trình kết nối trong công cụ giám sát của bạn.

    Bước tiếp theo

    CDC đã chứng tỏ là một nền tảng hiệu quả đối với chúng tôi và chúng tôi biết rằng mình có thể làm được nhiều hơn với nó.

    Trong bước tiếp theo, chúng tôi đang nghiên cứu nhiều cách hơn như sau:

    1. CDC có thể dùng như một công cụ sao lưu dữ liệu để tránh mất mát.
    2. Điều tra thêm bằng cách sử dụng các công cụ BI hoặc dưới dạng quy trình đầu vào cho đường dẫn AI/máy học.