ClickHouse — công cụ phân tích thời gian thực trong nền tảng

← Trang chủ
Phân tích & dữ liệu

ClickHouse — công cụ phân tích thời gian thực trong nền tảng

Stack của 4buildsite có ClickHouse — cơ sở dữ liệu dạng cột được thiết kế riêng cho phân tích khối lượng lớn. Đây là nền tảng để chúng tôi xây dựng module thống kê lưu lượng truy cập và doanh số của nền tảng (đang phát triển): dữ liệu luôn thuộc về bạn, báo cáo được tính trên một hệ thống tách biệt khỏi website của bạn — kiến trúc được thiết kế đúng như vậy.

ClickHouse là gì và vì sao chúng tôi dùng

ClickHouse là cơ sở dữ liệu OLAP (phân tích trực tuyến) dạng cột, được tạo ra tại Yandex cho Yandex.Metrica — một trong những hệ thống phân tích web lớn nhất thế giới — và được mở mã nguồn năm 2016 theo giấy phép Apache 2.0. Nó được xây dựng cho đúng một việc và làm việc đó rất hiệu quả: tổng hợp nhanh trên khối lượng dữ liệu khổng lồ. Trong kiến trúc 4buildsite, ClickHouse là công cụ được chọn cho lớp thống kê: mỗi lượt truy cập, mỗi cú nhấp chuột và mỗi đơn hàng đều trở thành một sự kiện có thể phân tích.

Bí quyết nằm ở lưu trữ dạng cột: thay vì đọc toàn bộ từng “hàng”, ClickHouse chỉ đọc những cột mà báo cáo cần và xử lý chúng theo các khối lớn, vector hóa. Vì vậy, một câu hỏi như “hôm qua tôi có bao nhiêu khách truy cập, theo từng trang, theo từng nguồn” được trả lời trên hàng triệu sự kiện — điều mà cơ sở dữ liệu hướng hàng thông thường rất khó làm được.

Đây không phải công nghệ ngách: Cloudflare dùng nó để phân tích lưu lượng HTTP ở quy mô toàn cầu, còn Uber, eBay và Spotify dùng nó cho phân tích và xử lý log ở khối lượng rất lớn. Trên 4buildsite, chính công cụ này là một phần của stack nền tảng — bạn không cần thuê đội kỹ sư dữ liệu.

Thống kê tách biệt khỏi website — module được thiết kế như thế nào

Module thống kê của nền tảng đang được phát triển và kiến trúc của nó rất đơn giản: các sự kiện truy cập được thu thập bất đồng bộ và ghi vào ClickHouse, hoàn toàn tách biệt với các máy chủ phân phối trang của bạn. Khách truy cập không phải chờ phân tích, vì việc thu thập chạy tách biệt với máy chủ phân phối trang. Không có script theo dõi bên thứ ba nặng nề trên trang — việc thu thập ở mức tối thiểu và là first-party.

Các báo cáo trong panel.4buildsite.net sẽ được tính trực tiếp trong ClickHouse: lưu lượng theo trang, nguồn khách truy cập, tỷ lệ chuyển đổi, doanh số theo sản phẩm. Các phép tổng hợp thường dùng được tính trước qua materialized view ở mỗi lần ghi, nên bảng điều khiển không phải chạy lại một phép tính nặng mỗi lần bạn xem.

  • Lưu lượng trực tiếp: lượt truy cập, trang, nguồn và thiết bị — có thể truy vấn sau khi thu thập
  • Doanh số theo sản phẩm, đơn hàng và tỷ lệ chuyển đổi của cửa hàng, tổng hợp qua materialized view
  • Lịch sử nhiều tháng, nhiều năm với chi phí thấp — nén dạng cột giảm dung lượng lưu trữ nhiều lần so với dữ liệu thô
  • Tách biệt khỏi website: thu thập bất đồng bộ, báo cáo chạy trên hệ thống riêng

PostgreSQL + ClickHouse: vì sao chúng tôi dùng cả hai

Stack nền tảng kết hợp hai cơ sở dữ liệu vì chúng làm những việc khác nhau về bản chất. PostgreSQL là sổ cái giao dịch (OLTP): đơn hàng, thanh toán, tồn kho, tài khoản người dùng — những thao tác phải chính xác từng cái một, với bảo đảm giao dịch. ClickHouse là phòng phân tích (OLAP): đọc hàng triệu sự kiện cùng lúc để trả lời câu hỏi của bạn về lưu lượng và doanh số.

Nếu các báo cáo nặng chạy trên cùng cơ sở dữ liệu đang xử lý đơn hàng, mỗi báo cáo sẽ cạnh tranh tài nguyên với những khách hàng đang thanh toán đúng lúc đó. Việc tách OLTP/OLAP giảm đáng kể xung đột này: báo cáo nặng không chạy trên cùng cơ sở dữ liệu với đơn hàng của khách. Mỗi công cụ làm đúng việc mà nó được tạo ra để làm.

  • PostgreSQL: đơn hàng, thanh toán Stripe, tồn kho, khách hàng — tính đúng đắn của giao dịch
  • ClickHouse: sự kiện truy cập, báo cáo, thống kê — tổng hợp ở khối lượng lớn
  • Thiết kế sao chép dữ liệu giao dịch liên quan sang ClickHouse dưới dạng sự kiện, nên báo cáo doanh số không bao giờ chạm vào cơ sở dữ liệu đang phục vụ cửa hàng của bạn

Phân tích first-party, thân thiện quyền riêng tư — thay cho Google Analytics

Nguyên tắc của module thống kê: dữ liệu website của bạn nằm trên hạ tầng của nền tảng. Dữ liệu không được gửi cho Google hay các mạng quảng cáo khác, không bị bán và không bị gộp với hồ sơ người dùng bên ngoài. Đó là phân tích first-party theo đúng nghĩa đen: dữ liệu về khách truy cập là của bạn.

Vì cách tiếp cận này không dùng cookie theo dõi của bên thứ ba, việc tuân thủ GDPR trở nên đơn giản hơn nhiều. Về bối cảnh: năm 2022, các cơ quan bảo vệ dữ liệu của Áo, Pháp và Ý đã tuyên bố việc dùng Google Analytics không tuân thủ GDPR do việc chuyển dữ liệu sang Hoa Kỳ. Với phân tích first-party đặt tại châu Âu, cả nhóm rủi ro này biến mất ngay từ đầu.

Cũng có một lợi ích thực tế trực tiếp: các báo cáo tính trong ClickHouse không bị lấy mẫu và không xuất hiện trễ hàng giờ như các báo cáo chuẩn trong công cụ phân tích miễn phí thường gặp. Số liệu đầy đủ, được tính từ chính các sự kiện đã thu thập.

Báo cáo cửa hàng và marketplace — module sẽ mang lại gì

Với cửa hàng trực tuyến, ClickHouse sẽ hỗ trợ trả lời những câu hỏi quan trọng: sản phẩm nào bán được, nguồn nào mang lại khách hàng thực sự mua, giỏ hàng bị bỏ dở ở đâu. Với marketplace nhiều người bán, cùng các phép tổng hợp đó sẽ chạy trên toàn bộ đơn hàng: khối lượng theo từng người bán, hoa hồng, sản phẩm hàng đầu theo danh mục — không cần xuất thủ công và không cần bảng tính.

Và ở quy mô lớn, chi phí vẫn được kiểm soát. Nén dạng cột giảm dữ liệu nhiều lần so với định dạng thô, nên bạn lưu được nhiều năm lịch sử với chi phí lưu trữ thấp. Khi lưu lượng tăng từ hàng nghìn lên hàng triệu sự kiện, các phép tổng hợp vẫn chạy trên cùng kiến trúc — công cụ được thiết kế cho hàng tỷ dòng ngay từ đầu, không phải vá thêm về sau.

Ưu điểm và hạn chế

Ưu điểm

  • Tổng hợp trên hàng triệu sự kiện nhờ lưu trữ dạng cột và vector hóa.
  • Thu thập tách biệt khỏi hệ thống phục vụ trang: phân tích chạy trên hệ thống riêng.
  • Dữ liệu lưu lượng thuộc về bạn, nằm trên hạ tầng của nền tảng — không chuyển sang Google hay mạng quảng cáo.
  • Không có cookie theo dõi của bên thứ ba — tuân thủ GDPR đơn giản hơn.
  • Nén dạng cột mạnh — lưu nhiều năm lịch sử với chi phí lưu trữ thấp.
  • Mã nguồn mở (Apache 2.0), không có giấy phép theo khối lượng — chi phí không phình ra khi lưu lượng tăng.

Hạn chế

  • Không phải cơ sở dữ liệu giao dịch — cập nhật hoặc xóa từng dòng là thao tác nặng; vì vậy đơn hàng và thanh toán nằm trong PostgreSQL.
  • Được tối ưu cho ghi theo lô lớn; nhiều lần chèn nhỏ, thường xuyên cần được gom lô — nền tảng xử lý việc này, nhưng đó là hạn chế thật của công cụ.
  • JOIN phức tạp kém linh hoạt hơn trong PostgreSQL — lược đồ sự kiện phải được thiết kế cho phân tích ngay từ đầu.
  • Tra cứu một dòng đơn lẻ (point lookup) chậm hơn so với cơ sở dữ liệu OLTP có chỉ mục — nó không thay thế cơ sở dữ liệu chính của cửa hàng.

Kết luận nhanh

ClickHouse là lựa chọn đúng cho phân tích ở khối lượng lớn: thống kê lưu lượng và doanh số gần thời gian thực, bằng dữ liệu của chính bạn, mà không dùng chung tài nguyên với hệ thống phục vụ website. Với đơn hàng, thanh toán và tồn kho thì PostgreSQL vẫn giữ vai trò — vì vậy stack 4buildsite kết hợp cả hai, mỗi bên làm tốt nhất việc của mình. Module thống kê xây dựng trên ClickHouse đang được phát triển.

Bảng thông số kỹ thuật

Khả năngGiới hạn / ngưỡngCách dùng điển hình
Tổng hợp phân tíchTổng hợp trên hàng triệu sự kiện (dạng cột + vector hóa)Chậm khi tra cứu từng dòng — không dành cho truy vấn điểm OLTPBáo cáo lưu lượng và doanh số (module thống kê, đang phát triển)
Nạp sự kiệnKhối lượng lớn, ghi theo lôChèn nhỏ, thường xuyên cần gom lô / async insertThu thập pageview, cú nhấp chuột, đơn hàng
Lưu trữ & nénNén dạng cột (LZ4/ZSTD), nhỏ hơn dữ liệu thô nhiều lầnDữ liệu rất ngẫu nhiên nén kém hơnLịch sử sự kiện nhiều tháng, nhiều năm, chi phí thấp
Cập nhật & xóaMutation bất đồng bộ cho các chỉnh sửa thỉnh thoảngKhông phù hợp với UPDATE từng dòng thường xuyênXóa theo GDPR (dữ liệu của một người dùng, theo yêu cầu)
Materialized viewTổng hợp được tính trước ở mỗi lần ghiPhải định nghĩa trước các phép tổng hợp, theo từng báo cáoBảng điều khiển: doanh số theo ngày, sản phẩm, nguồn
Thời gian thựcSự kiện có thể truy vấn sau khi xảy raKhông phải hệ thống streaming ở mức mili giâyThống kê lưu lượng và chuyển đổi gần thời gian thực

ClickHouse so với PostgreSQL so với Google Analytics / BigQuery — cho phân tích

Tiêu chíClickHouse (4buildsite)PostgreSQL (cho phân tích)Google Analytics / BigQuery
Tốc độ tổng hợp ở khối lượng lớnTổng hợp trên hàng triệu dòng nhờ lưu trữ dạng cộtSuy giảm rõ rệt trên hàng chục triệu dòng (lưu trữ theo hàng)BigQuery nhanh; GA4 có báo cáo chuẩn tổng hợp sẵn, không có truy vấn tự do
Quyền sở hữu dữ liệu / GDPRDữ liệu của bạn, trên hạ tầng của nền tảng, tại châu ÂuDữ liệu của bạn, trên máy chủ của bạnDữ liệu nằm ở Google; việc GA chuyển dữ liệu sang Hoa Kỳ bị các cơ quan EU xác định là không tuân thủ GDPR năm 2022
Cookie & sự đồng ýKhông có cookie theo dõi của bên thứ baTùy thuộc vào cách bạn tự triển khaiCần banner đồng ý để theo dõi
Thời gian thựcDữ liệu có thể truy vấn sau khi thu thậpCó thể, nhưng báo cáo nặng làm tải cơ sở dữ liệu giao dịchBáo cáo chuẩn GA4 có thể trễ hàng giờ; BigQuery streaming tốn thêm phí
Chi phí ở khối lượng lớnMã nguồn mở — chi phí chỉ là hạ tầng, đã gồm trong gói đăng kýTăng theo chỉ mục, vacuum và phần cứng ở khối lượng lớnBigQuery tính phí theo khối lượng truy vấn; gói doanh nghiệp của GA đắt
Tác động đến tốc độ websiteTách biệt — thu thập bất đồng bộ, báo cáo trên hệ thống riêngBáo cáo có thể cạnh tranh với đơn hàng trên cùng cơ sở dữ liệuScript bên thứ ba (gtag.js) trên trang — thêm JavaScript và request bên ngoài

Câu hỏi thường gặp

ClickHouse có làm chậm website hoặc cửa hàng của tôi không?

Không. ClickHouse chạy trên một hệ thống tách biệt với hệ thống phục vụ trang của bạn — kiến trúc được thiết kế đúng như vậy. Các sự kiện truy cập được gửi bất đồng bộ, và báo cáo không bao giờ chạm vào cơ sở dữ liệu của cửa hàng.

Tại sao không dùng Google Analytics cho đơn giản?

Có ba lý do. Dữ liệu thuộc về bạn, nằm trên hạ tầng của nền tảng, không phải ở Google. Bạn không cần cookie theo dõi của bên thứ ba, nên tuân thủ GDPR đơn giản hơn — năm 2022, các cơ quan của Áo, Pháp và Ý đã xác định GA không tuân thủ GDPR. Và báo cáo đầy đủ, không bị lấy mẫu hay trễ hàng giờ.

ClickHouse khác PostgreSQL thế nào — vì sao cần cả hai?

PostgreSQL là cơ sở dữ liệu giao dịch (OLTP): xử lý đơn hàng, thanh toán và tồn kho từng cái một, với bảo đảm về tính đúng đắn. ClickHouse là cơ sở dữ liệu phân tích (OLAP): đọc hàng triệu sự kiện cùng lúc để làm báo cáo. Việc tách đôi giúp giảm nguy cơ một báo cáo nặng làm chậm đơn hàng của khách.

Dữ liệu lưu lượng của tôi có an toàn và tuân thủ GDPR không?

Có — ngay từ thiết kế. Thống kê là first-party: chúng nằm trên hạ tầng của nền tảng, tại châu Âu, và không bao giờ bị bán hay chia sẻ với mạng quảng cáo. Cách tiếp cận này không dùng cookie theo dõi của bên thứ ba, và dữ liệu của một người dùng có thể bị xóa theo yêu cầu, theo đúng GDPR.

Thống kê “thời gian thực” đến mức nào?

Một sự kiện — lượt truy cập, cú nhấp chuột, đơn hàng — có thể truy vấn trong báo cáo sau khi xảy ra. Các phép tổng hợp trên khoảng thời gian dài (nhiều tháng, nhiều năm) vẫn được xử lý hiệu quả, vì ClickHouse được xây dựng chính xác cho loại truy vấn này.

Tôi có cần cài đặt gì để có thống kê trên website không?

Bạn sẽ không cần. Module thống kê đang được phát triển và được xây dựng như một phần của nền tảng: khi nó hoạt động trong bảng quản trị, việc thu thập sẽ tự động bắt đầu cho các website đã xuất bản — không cần cài script và không cần tài khoản bên ngoài.

4b2b.net
Hệ sinh thái kinh doanh
4conta.ro
Kế toán
4invoices.net
Ứng dụng hóa đơn
4expenses.net
Quản lý chi phí
4notify.net
Thông báo
4hosting.net
Lưu trữ web
4database.net
Cơ sở dữ liệu
4buildsite.net
Trình tạo website
4myapp.net
Trình tạo ứng dụng
4avatars.net
Avatar AI
4chaty.net
Chatbot AI
4webagency.net
Phần mềm cho agency web
4softedu.net
Website giáo dục
4softcrm.net
Nền tảng CRM
4softerp.net
Hệ thống ERP
4softhr.net
Quản lý nhân sự
4mystaff.net
Cổng nhân viên
4myprojects.net
Quản lý dự án
4mycontracts.net
Hợp đồng
4docs.net
Quản lý tài liệu
4appointments.net
Đặt lịch hẹn
4marketingonline.net
Tiếp thị
4insurance.net
Bảo hiểm
4property.net
Bất động sản
4lawyers.net
Phần mềm pháp lý
4mygarage.net
Garage ô tô
4driving.net
Trường dạy lái xe
4fleet.net
Quản lý đội xe
4myevents.net
Sự kiện
4therapy.net
Trị liệu
4clinics.net
Phòng khám
4dental.net
Phòng khám nha khoa
4restaurants.net
Nhà hàng
4beautify.net
Salon làm đẹp
4gym.net
Phòng tập thể hình
4guards.net
Công ty bảo vệ
4softvet.net
Phòng khám thú y
4softauto.net
Phần mềm kinh doanh ô tô
4construct.net
Công ty xây dựng
4marketplace.net
Sàn thương mại
4shopy.net
Cửa hàng trực tuyến
4pricing.net
So sánh giá
4salefood.net
Giao đồ ăn
4rentify.net
Cho thuê
4transports.net
Vận tải
4agencytravel.net
Công ty du lịch
4hotel.net
Quản lý khách sạn
4ong.net
Quản lý tổ chức phi lợi nhuận