02 Ứng dụng nền
Tham quan ứng dụng taxi NYC đang chạy, sau khi ClickHouse đã có dữ liệu, để bạn hiểu hình dạng của nó trước khi mở rộng.
Điểm khởi đầu
Bạn đang ở build-workshop-v1 (đã chọn ở Module 00) — không cần checkout. Hãy dự trù
khoảng 5 phút.
Stack workshop bạn đã khởi động ở module 00 vẫn nên đang chạy.
Yêu cầu tiên quyết: module 00 và 01 đã hoàn thành (stack khỏe mạnh, ClickHouse đã có dữ liệu),
front end truy cập được tại http://localhost:8080/.
Vì sao
Bạn không thể mở rộng thứ mình chưa từng thấy. Giờ khi kho dữ liệu của bạn đã được nạp mồi (module 01), hãy dành vài phút để hiểu hình dạng của ứng dụng: hai dashboard dùng để làm gì, front end, back end, và các database ăn khớp với nhau thế nào, và panel AI chat nằm ở đâu. Đây là module duy nhất không có gì để xây, và điều đó là có chủ ý — bạn định hướng ở đây, rồi mở rộng ứng dụng với dữ liệu trực tiếp, agent, và khả năng quan sát trong các module tiếp theo.
Mục tiêu
Có thể mô tả, mỗi thứ trong một câu, dashboard Ops dùng để làm gì, dashboard Historical dùng để làm gì, và dữ liệu của ứng dụng đến từ đâu (dữ liệu lịch sử bạn đã nạp mồi vào ClickHouse Cloud ở module 01; dữ liệu trực tiếp bạn stream vào qua CDC ở module 03).
Bước 1 — Mở dashboard Ops
frontend/
Hãy mở http://localhost:8080/. Đây là dashboard Ops: các card, filter, và bố cục
dành cho số liệu vận hành trực tiếp (các chuyến xe gần đây, các zone đang hoạt động, các bản tổng hợp
gần thời gian thực). Hiện tại nó vẫn rỗng — khung nhìn trực tiếp chỉ được lấp đầy khi bạn stream các
dòng dữ liệu thời gian thực qua CDC ở module 03. Dữ liệu lịch sử bạn đã nạp mồi ở module 01 sẽ hiện
ra trên dashboard Historical ở bước sau.
Ảnh chụp bên dưới hiển thị dashboard Ops với nút Use sample window đã được áp dụng, để bạn thấy bố cục khi có dữ liệu đã nạp mồi — theo mặc định nó mở ở khung nhìn trực tiếp (hôm nay), và khung này vẫn rỗng cho tới khi bạn khởi động CDC ở module 03.

Bước 2 — Mở dashboard Historical
frontend/
Hãy mở http://localhost:8080/historical. Dashboard này được xây cho các phép tổng hợp trên
khoảng thời gian lớn và các drilldown trên dữ liệu chuyến xe lịch sử — và giờ nó hiển thị được, vì bạn
đã nạp mồi một tháng dữ liệu chuyến xe vào ClickHouse Cloud ở module 01. Hãy thử một khoảng ngày rộng
trong tháng đó cùng các control filter, và xem các truy vấn trở về trong chưa tới một giây.

Bước 3 — Tìm panel chat và theo dấu luồng dữ liệu
backend/
Hãy xác định vị trí panel AI chat trong UI (bạn sẽ đấu nối nó với một model thật ở module 08). Sau đó hãy xem front end gọi back end FastAPI thế nào, và back end được đấu nối để truy vấn ClickHouse thế nào — service mà nó trỏ tới chính là service Cloud của bạn, đã kết nối và nạp mồi ở module 01.
React front end -> FastAPI back end -> ClickHouse Cloud (connected + seeded in module 01)
-> ClickHouse-managed Postgres (operational source; created in module 03)Hãy nhờ coding agent của bạn tóm tắt các endpoint phân tích:
Read the FastAPI backend and list each analytics endpoint, what it returns, and which table it reads from.Cách kiểm chứng bạn đã hoàn thành
- Bạn đã mở cả hai dashboard: dashboard Historical hiển thị dữ liệu bạn đã nạp mồi ở module 01, và dashboard Ops (Live) rỗng cho tới khi CDC khởi động ở module 03 — điều đó là bình thường.
- Bạn nói được dữ liệu của ứng dụng đến từ đâu (dữ liệu mồi lịch sử trong ClickHouse Cloud từ module 01; CDC trực tiếp ở module 03).
- Bạn biết panel chat nằm ở đâu, dù nó chưa được đấu nối với một model.
Tổng kết
Bạn đã có một mô hình tư duy về ứng dụng: hai dashboard, một API FastAPI, một Postgres nguồn được quản lý, và một panel chat đang chờ được kết nối. Mỗi module sau đó sẽ thay đổi một phần của bức tranh này.
Trạng thái kết thúc
Bạn đã hiểu ứng dụng đang chạy. Tiếp tục tới 03 Managed Postgres CDC để stream các dòng dữ liệu trực tiếp vào dashboard Ops.