Real-time Analytics at Massive Scale with Pinot
Bài tóm tắt LinkedIn 2014 3. Quy mô lớn Độ khó: Trung bình
LinkedIn · 2014 · 3. Quy mô lớn · Độ khó: Trung bình — bài gốc
Bối cảnh
- Khoảng 2012, các sản phẩm phân tích chạy trên Oracle và Voldemort, không hợp với OLAP; dữ liệu tăng theo cả chiều rộng lẫn chiều sâu. Ví dụ Jobs Analytics: xử lý và nén trên Hadoop rồi đẩy lại vào Oracle, nên không gần realtime; phải cắt bớt dimension; cron hằng ngày xoá bản ghi cũ.
Thay đổi chính
- Pinot: kho phân tán dạng cột, thêm được loại index mới, nén riêng cho từng dimension khó (hàng trăm kỹ năng mỗi member, nhóm, công ty đang theo dõi).
- Quản lý cụm bằng Helix; ingest gần realtime từ Kafka, Hadoop cho bootstrap và đối soát.
- Dữ liệu chia segment theo thời gian nên hết hạn dữ liệu chỉ là bỏ segment.
- Làm lặp khoảng tám tháng trước khi có sản phẩm đầu tiên.
Kết quả (2014)
- Who's Viewed Your Profile (bản mới đầu 2014): hàng nghìn request với SLA vài chục ms. Pinot phục vụ 18 sản phẩm phân tích cho member và hơn 15 sản phẩm nội bộ (gồm phân tích A/B test).
Bài học cho SWE
- Phân tích cho người dùng cuối (QPS cao, độ trễ thấp, nhiều dimension) là workload riêng, không nên đặt lên OLTP hay KV.
- Ingest stream + batch đối soát cho phép vừa tươi vừa sửa được.
Liên quan
- LinkedIn 2009 (Who's Viewed My Profile từng là bài toán ghi của Voldemort) · LinkedIn 2022 · LinkedIn 2023 · LinkedIn 2017
- Chọn database theo workload · Pipeline dữ liệu và analytics · Stream processing
#Pinot#OLAP#Columnar#Who's Viewed Your Profile#Kafka ingestion#Hadoop bootstrap#Helix#Time-based segments#Member-facing analytics
Được nhắc tới trong
Công ty (1)
Bài tóm tắt (2)