0

[Open Source] #181 - Swetrix: Hệ thống phân tích Web "Zero-Cookie" với Nest.js, ClickHouse và kiến trúc phân tách OLTP/OLAP đỉnh cao

Trong bối cảnh các quy định về quyền riêng tư (GDPR, CCPA) ngày càng khắt khe, việc sử dụng các công cụ theo dõi dựa trên Cookie như Google Analytics đang trở thành rào cản pháp lý và kỹ thuật. Swetrix ra đời như một giải pháp thay thế mã nguồn mở mạnh mẽ, cung cấp khả năng phân tích web toàn diện (Pageviews, Custom Events, Funnels, User Flow) mà không cần xâm phạm quyền riêng tư của người dùng. Với sự kết hợp giữa hiệu năng cực hạn của ClickHouse và tính linh hoạt của AI, Swetrix biến dữ liệu thô thành tri thức hành động một cách minh bạch và an toàn.

Dưới góc độ kỹ thuật, Swetrix là một minh chứng xuất sắc về việc ứng dụng Kiến trúc Cơ sở dữ liệu Hybrid, kỹ thuật Ẩn danh hóa qua Hashing và tích hợp AI LLM vào quy trình phân tích dữ liệu lớn.

Github: https://github.com/swetrix/swetrix


🛠️ 1. Nền tảng công nghệ: Sức mạnh của Hybrid Persistence

Swetrix không tin tưởng vào một loại cơ sở dữ liệu duy nhất, thay vào đó nó sử dụng "đúng người đúng việc" cho từng loại dữ liệu:

  • Backend Core (Nest.js & TypeScript): Sử dụng framework Nest.js để xây dựng hạ tầng API hướng module, đảm bảo tính an toàn kiểu dữ liệu và dễ dàng mở rộng các tính năng mới.
  • OLAP Engine (ClickHouse): Đây là "trái tim" xử lý số liệu. ClickHouse (Column-oriented DBMS) cho phép Swetrix thực hiện các truy vấn aggregation trên hàng tỷ dòng dữ liệu sự kiện chỉ trong vài mili giây, điều mà các database truyền thống như MySQL không thể đáp ứng.
  • OLTP Store (MySQL): Quản lý các dữ liệu giao dịch và cấu hình như thông tin người dùng, tổ chức, dự án và các thiết lập cảnh báo thông qua TypeORM.
  • Real-time Layer (Redis & WebSockets): Sử dụng Redis để quản lý cache và trạng thái trực tuyến (Heartbeat), kết hợp với WebSockets để cập nhật số lượng khách truy cập thời gian thực trên Dashboard.

🏗️ 2. Trụ cột kiến trúc: Quyền riêng tư và Phân tách dữ liệu

Kiến trúc của Swetrix được thiết kế quanh hai nguyên tắc cốt lõi: Bảo mật và Hiệu năng.

  • Cookieless Tracking Architecture: Swetrix hoàn toàn loại bỏ Cookie. Thay vào đó, hệ thống sử dụng một lớp SaltService để tạo ra định danh ẩn danh (Hash) dựa trên IP và User Agent của khách. Kỹ thuật này đảm bảo tính duy nhất của khách truy cập trong phiên làm việc mà không lưu lại dấu vết cá nhân vĩnh viễn.
  • OLTP vs OLAP Segregation: Bằng cách tách biệt luồng ghi dữ liệu người dùng (MySQL) và luồng ghi dữ liệu sự kiện (ClickHouse), Swetrix đảm bảo rằng các báo cáo phân tích nặng nề sẽ không bao giờ làm ảnh hưởng đến tốc độ đăng nhập hoặc quản trị tài khoản của người dùng.
  • Advanced AI Analysis Layer: Tích hợp các mô hình ngôn ngữ lớn (Claude 3.5 Sonnet) qua OpenRouter. AI không chỉ trả lời văn bản mà được cung cấp ngữ cảnh (Context) từ dữ liệu ClickHouse để thực hiện các phân tích xu hướng chuyên sâu theo yêu cầu của người dùng.

🔄 3. Workflow: Vòng đời của một Sự kiện phân tích (Sequence Diagram)

Sơ đồ mô tả hành trình từ lúc khách truy cập trang web đến khi dữ liệu xuất hiện trên biểu đồ AI:

image.png


⚡ 4. Các kỹ thuật "Pro-level" trong mã nguồn

  1. Multi-layer Bot Detection: Sử dụng hệ thống Middleware và Decorator (bot-detection.guard.ts) kết hợp với phân tích dấu vân tay trình duyệt để lọc bỏ chính xác các lượt truy cập giả mạo từ Scraper và Crawler, đảm bảo số liệu kinh doanh luôn "sạch".
  2. User Flow & Funnel Orchestration: Swetrix tự xây dựng các thuật toán truy vấn đường đi của người dùng (User Paths) trên ClickHouse, cho phép nhà tiếp thị nhìn thấy chính xác vị trí khách hàng bị "rơi rụng" trong phễu chuyển đổi.
  3. Real-time Heartbeat Monitoring: Kỹ thuật duy trì kết nối WebSocket để tính toán chính xác thời gian thực tế người dùng ở lại trên một trang (Time on page), khắc phục điểm yếu của các công cụ phân tích tĩnh.
  4. Error Tracking Integration: Không chỉ dừng lại ở lượt xem, Swetrix cung cấp SDK để ghi lại các lỗi JavaScript từ phía Client, giúp đội ngũ kỹ thuật nhanh chóng phát hiện các vấn đề gây ảnh hưởng đến trải nghiệm người dùng.

⚖️ 5. So sánh chiến lược

Tiêu chí Swetrix Google Analytics Plausible / Matomo
Quyền riêng tư Tuyệt đối (No-cookie) Thấp (Có theo dõi) Cao
Lưu trữ dữ liệu ClickHouse (Siêu nhanh) Proprietary PostgreSQL / MySQL
Tự lưu trữ (Self-host) Hỗ trợ mạnh (Docker) Không Có hỗ trợ
Phân tích AI Tích hợp sâu Cơ bản Không có
Quy mô xử lý Hàng tỷ sự kiện Vô hạn Trung bình

✅ Kết luận: Tại sao Swetrix là hạ tầng phân tích thế hệ mới?

Swetrix chứng minh rằng chúng ta có thể có được những hiểu biết sâu sắc về dữ liệu mà không cần phải thỏa hiệp về quyền riêng tư hay hiệu năng. Việc kết hợp giữa Nest.jsClickHouse đã tạo ra một hệ thống phân tích ở đẳng cấp doanh nghiệp, sẵn sàng cho cả những website có lưu lượng truy cập khổng lồ.

Đối với các kỹ sư Backend, nghiên cứu Swetrix giúp bạn hiểu sâu về:

  • Kỹ thuật tối ưu hóa ClickHouse cho bài toán Analytics.
  • Cách xây dựng hệ thống Tracking ẩn danh tuân thủ GDPR.
  • Tư duy thiết kế AI-Integrated Analytics thực thụ.


All rights reserved

Viblo
Hãy đăng ký một tài khoản Viblo để nhận được nhiều bài viết thú vị hơn.
Đăng kí