Thursday, August 11, 2016

Ứng dụng RFX framework trong hệ thống Big Data ở 1 công ty start-up e-commerce như thế nào?

RFX framework là 1 Java framework được dùng để giải quyết các vấn đề thường gặp ở lớp bài toán Real-time Big Data.
Được xây dựng trên kinh nghiệm phát triển các ứng dụng dạng data-intensive processing như quảng cáo online, analytics ở các dự án đã tham gia ở FPT như VnExpress, eClick, iTVad .


Phía trên là hình vẽ minh họa cho RFX khi ứng dụng vào lĩnh vực e-commerce (chỉ là VD minh hoạ cho các case study tưởng tượng nếu mình làm ở Lazada hay Tiki thì cần giải quyết các bài toán gì )
VD:

  1. CRM là module giúp quản lý khách hàng, họ cần xem thông tin các mặt hàng thường được xem nhiều, mua nhiều hay được chia sẻ, bình luận nhiều)
  2. Marketing Automation cần biết loại mặt hàng nào cần thiết để ưu tiên chạy marketing để tối ưu ngân sách marketing)
  3. Search API trả về kết quả tìm kiếm , xếp hàng theo xu hướng độ hot theo mùa, click, giá, ...
  4. Recommendation API sẽ tối ưu trải nghiệm mua sắm theo từng gu (cá nhân hóa) của user.

RFX framework gồm 5 phần chính:

  1. RFX-track: Event tracking logs server  với core là Netty ( http://netty.io  )
  2. RFX-stream: Data Stream processing jobs, core là Akka ( http://akka.io )
  3. RFX-jobs: Data job synchronized jobs : extends tư Quartz framework ( http://www.quartz-scheduler.org )
  4. RFX-query:  Data Query service ( http://vertx.io )
  5. RFX-report: base reporting UI được viết bằng NodeJS, dùng WebSocket cho real-time view và reactive ad-hoc query.
Áp dụng mô hình pattern Lambda Architecture

  • Real-time view có thể dùng Kafka + Redis ( http://redis.io ) để tính real-time vì Redis vốn là 1 in-memory NoSQL database
  • Batch view có thể dùng HBase với Phoenix SQL , vừa lưu trữ toàn bộ data và sử dụng SQL cho việc xây dựng 1 Data Warehouse , viết các ad-hoc query (SQL) cũng dễ dàng. 


Về cách sử dụng framework, sẽ nằm trong 1 bài post kế tiếp. Bạn có thể điền thông tin để nhận email

No comments: