- Giải quyết sự phức tạp và tốc độ chậm của việc phát triển backend dữ liệu truyền thống, giúp có thể nhanh chóng xây dựng backend phân tích dữ liệu bằng TypeScript hoặc Python
- Stack được cung cấp sẵn (ClickHouse, Redpanda, Temporal) và có kế hoạch mở rộng sang nhiều nền tảng đám mây trong tương lai
- Đơn giản hóa phát triển cục bộ, hỗ trợ kiểm thử nhanh và hot reload tức thì
- Phù hợp để xây dựng nhiều ứng dụng thâm dụng dữ liệu, có thể dùng cho phân tích thời gian thực, di chuyển dữ liệu, streaming sự kiện, v.v.
Moose
- Moose là một framework cho phép xây dựng backend phân tích dữ liệu chỉ bằng mã TypeScript hoặc Python
- Nó tồn tại để giải quyết vấn đề công cụ phát triển backend dữ liệu hiện tại vừa chậm vừa phức tạp
-
Những vấn đề khi xây dựng backend phân tích với công cụ hiện nay
- Vấn đề công cụ phân tán
Phải tốn thời gian tích hợp vô số dịch vụ như Kafka, ClickHouse, Postgres, dbt, Airflow
- Vấn đề không khớp schema
Model trong mã, schema cơ sở dữ liệu, kiểm tra API và định dạng message dần trở nên không đồng nhất theo thời gian
- Khó khăn trong quy trình phát triển
Thiếu kiểm thử cục bộ, chu kỳ triển khai dài và phải chuyển đổi ngữ cảnh thường xuyên làm giảm năng suất phát triển
- Xử lý chỉ dành cho SQL
Có sự bất tiện khi phải chỉ dùng SQL thay vì ngôn ngữ lập trình quen thuộc
-
Những vấn đề phát sinh khi tự xây dựng
- Chỉ để thêm một trường đơn giản cũng phải xử lý thủ công toàn bộ các việc sau
- Sửa model mã TypeScript/Python
- Sửa schema cơ sở dữ liệu
- Cập nhật topic Kafka
- Cập nhật kiểm tra runtime
- Cập nhật chuyển đổi và truy vấn
- Mỗi lần thay đổi đều cần rất nhiều thời gian và công sức để kiểm thử an toàn toàn bộ
Cách Moose giải quyết
-
Những gì Moose cung cấp
- Chính mã TypeScript hoặc Python đóng vai trò là nguồn sự thật duy nhất cho logic ứng dụng dữ liệu và hạ tầng
- Dựa trên mã để đảm bảo các điều sau
- An toàn kiểu và kiểm tra đầy đủ
- Loại bỏ mã boilerplate
- Phát hiện lỗi sớm ở giai đoạn phát triển
-
Loại bỏ chuyển đổi ngữ cảnh
- Không cần bận tâm đến quy tắc đặt tên bảng trong cơ sở dữ liệu, việc đồng bộ trường giữa model/bảng hay việc một trường có Nullable hay không
-
Phát triển cục bộ
- Chạy bằng một cú nhấp
Có thể chạy toàn bộ hạ tầng dữ liệu cục bộ chỉ với một lệnh duy nhất
- Không cần cấu hình
Mọi thành phần đều được cấu hình sẵn nên không cần thiết lập riêng
- Cấu trúc giống hệt môi trường production
Sử dụng cùng một stack công nghệ như môi trường triển khai thực tế
- Phản hồi theo thời gian thực
Mọi thay đổi được phản ánh ngay lập tức trên toàn bộ stack
-
Quy trình phát triển thông thường
- Khi thêm hoặc sửa model, chỉ cần lưu là hạ tầng cục bộ sẽ được hot reload ngay
- Khi thêm trường mới, thay đổi sẽ được áp dụng ngay cho API, stream và cơ sở dữ liệu
- Việc kiểm thử pipeline cũng có thể được xác nhận ngay bằng cách gửi dữ liệu mẫu tới API ingest cục bộ
-
Quy trình hot reload
- Chỉ cần sửa model rồi lưu là thay đổi được áp dụng tự động
- Các trường được thêm vào sẽ tự động áp dụng cho kiểm tra API, schema cơ sở dữ liệu và stream
-
Tính mô-đun
- Có thể chọn và cấu hình chỉ những thành phần cần thiết
Stack Moose được cung cấp sẵn
- ClickHouse
Cơ sở dữ liệu OLAP được bật mặc định
- Redpanda
Nền tảng streaming sự kiện tương thích Kafka (có thể tắt)
- Temporal
Công cụ điều phối workflow (có thể tắt)
-
Các mở rộng đang được lên kế hoạch
- Snowflake, Databricks, BigQuery
Dự kiến hỗ trợ các kho dữ liệu đám mây
- Kafka, Kinesis, Pulsar
Dự kiến hỗ trợ nhiều nền tảng streaming sự kiện tương thích Kafka
Những gì có thể xây dựng với Moose
- Phân tích thời gian thực cho người dùng
Tích hợp bảng xếp hạng, biểu đồ, metric, v.v. vào ứng dụng web/mobile
- BI và kho dữ liệu
Thu thập nhiều nguồn dữ liệu để xây dựng cơ sở dữ liệu phân tích và tạo báo cáo
- Di chuyển dữ liệu
Chuyển dữ liệu từ hệ thống legacy sang backend dữ liệu hiện đại
- Streaming sự kiện
Xử lý sự kiện theo thời gian thực trên các nền tảng streaming như Kafka, Redpanda
- Tác vụ ETL
Thu thập dữ liệu từ nhiều nguồn theo định kỳ và nạp vào môi trường phân tích
Chưa có bình luận nào.