Xây dựng data warehouse bằng Hadoop ecosystem

Retail Assistant –  sản phẩm mới mà Magestore đang xây dựng.

Retail Assistant giải quyết những câu hỏi về dữ liệu để từ đó chủ doanh nghiệp ra quyết định hiệu quả hơn. Hãy tưởng tượng đến một bạn Bot luôn bên bạn để cung cấp những insights kinh doanh như sau: 

Một ngày đẹp trời, ông chủ thấy sales giảm lớn. Ông chủ hỏi cô trợ lý ảo tình hình vì sao lại như vậy. Cô trợ lý sẽ đi lục lọi dữ liệu, trích xuất ra thông tin cần thiết và đưa ra gợi ý cho ông chủ để khắc phục trình trạng sales đang đi xuống. 

[external_link_head]

Xây dựng data warehouse bằng Hadoop ecosystem

Xây dựng data warehouse bằng Hadoop ecosystem

Hình ảnh tương tác trong thời gian thực giữa ông chủ và cô trợ lý ảo

Ông chủ có thể tương tác với cô trợ lý qua chat hoặc giọng nói đều được. 

Để giải quyết bài toán này, thì cần phải xử lý một khối dữ liệu lớn từ các nhà bán lẻ. Team của Magestore đã bắt tay vào tìm hiểu các công nghệ xử lý dữ liệu lớn và bước đầu hình thành Data Warehouse. 

Đầu tiên hãy cùng tìm hiểu những khái niệm cơ bản nhất trước khi đi sâu vào kinh nghiệm của Magestore khi dựng Data warehouse.

Data Warehouse là gì?

Khái niệm data warehouse

Xây dựng data warehouse bằng Hadoop ecosystem

Data warehouse là cơ sở dữ liệu quan hệ được thiết kế ra để phân tích dữ liệu. 

Data warehouse bao gồm dữ liệu quá khứ, hiện tại từ nhiều nguồn dữ liệu khác nhau (từ CRM, ERP,…)

Một data warehouse có 4 tính chất:

  • Hướng đến 1 mục tiêu cụ thể (Subject-oriented)
  • Đảm bảo sự toàn vẹn về dữ liệu
  • Có 1 giá trị lịch sử
  • Không thay đổi theo thời gian.

Kiến trúc của Data warehouse

Xây dựng data warehouse bằng Hadoop ecosystem

Có 3 mô hình kiến trúc phổ biến nhất:

  1. Kiến trúc data warehouse cơ bản
  2. Kiến trúc data warehouse với vùng dữ liệu Staging
  3. Kiến trúc data warehouse với vùng dữ liệu Staging và Data Marts – đây cũng là kiến trúc phổ biến nhất trong 3 loại.

Xây dựng data warehouse bằng Hadoop ecosystem

[external_link offset=1]

Trong kiến trúc data warehouse thứ 3, dữ liệu từ các nguồn khác nhau được tập hợp và chuyển đến vùng dữ liệu Staging. Ở vùng dữ liệu Staging, chúng ta sẽ làm các tác vụ chuyển đổi tất cả dữ liệu khác nhau thành các dữ liệu giống nhau về tên, ý nghĩa, và kiểu dữ liệu. Sau đó, tiếp tục load dữ liệu vào Data Warehouse để tiến hành phân tích.  Sau khi phân tích với mục đích kinh doanh cụ thể (như là Purchasing, Sales, Inventory…), dữ liệu sẽ được phân thành các  data marts. Ở bước cuối cùng, người dùng có thể tương tác với data marts qua báo cáo, analytics hoặc data mining. 

Tầm nhìn của Data warehouse cho sản phẩm Retail Assistant

Magestore mong muốn Retail Assistant là 1 sản phẩm triển khai dưới dạng cloud-services và phục vụ được 10,000 doanh nghiệp. Ước tính tổng lượng dữ liệu là khoảng 100TB. 

Data warehouse trong bài toán này phải phục vụ được các cuộc hội thoại real-time, gần như ngay lập tức giữa chủ doanh nghiệp và trợ lý ảo. 

Vì phải xử lý một khối lương dữ liệu lớn và yêu cầu bài toán đặt ra là xử lý dữ liệu, trả về kết quả real-time nên sẽ có những thách thức mà team phải đối mặt:

  • Vấn đề về performance: làm sao để xử lý dữ liệu chính xác, và nhanh.
  • Chi phí: Muốn tăng performance thì có thể bị đội chi phí lên cao, có thể ảnh hưởng đến quyết định dùng/không dùng sản phẩm.
  • Khả năng scale của hệ thống: trong tương lai sản phẩm có nhiều khách hàng thì sản phẩm vẫn đáp ứng được.

Đứng trước những thách thức đó, team Retail Assistant đã tìm hiểu các giải pháp công nghệ xử lý dữ liệu lớn. Có thể kể đến: Apache Hive, Spark SQL, Amazon Redshift, Google Big Query…

Trong quá trình đánh giá các giải pháp, team nhận thấy Google Big Query tuy tốc độ xử lý nhanh nhưng team không có khả năng kiểm soát hệ thống 100%. Google Big Query có những hạn chế như trong 1 ngày, thời gian xử lý dữ liệu chỉ là 6 tiếng, chỉ phù hợp sử dụng cho 1 doanh nghiệp. Trong khi đó, tầm nhìn của Retail Assistant hướng đến nhiều doanh nghiệp nên giải pháp Google Big Query không đáp ứng được yêu cầu của Magestore.

Thế là team quyết định dùng 1 giải pháp Open source để giúp team có thể kiểm soát hệ thống 100%. 

Lấy cảm hứng từ case study của Ebay, họ đã sử dụng Apache Hive để build data warehouse, xử lý bài toán rất giống của Retail Assistant, vì thế team cũng đã lựa chọn thử nghiệm với Apache Hive.

Xây dựng data warehouse bằng Hadoop ecosystem

Ở Ebay năm 2015, họ đã xử lý được 150+PB dữ liệu trên nền tảng Hadoop. Đây cũng là một ví dụ giúp team học hỏi thêm được về cách xây dựng data warehouse. 

Xây dựng data warehouse bằng Hadoop ecosystem

Kiến trúc tầng application của Retail Assistant

Xây dựng data warehouse bằng Hadoop ecosystem

Kiến trúc tầng server của Retail Assistant

6 bước để xây dựng Data warehouse

Bước 1: Hiểu được vấn đề cần phải giải quyết

Bước 2: Xác định data source, data marts

Bước 3: Xây dựng model về dữ liệu staging, data warehouse và olap

Bước 4: Dựng các data pipeline

Bước 5: Xác thực các dữ liệu đảm bảo  đủ và đúng

Bước 6: Monitor hệ thống

Hiểu vấn đề

Trước hết team xác định cần phân tích dữ liệu bán hàng của doanh nghiệp. Team xác định các metric và dimension như sau: 

Xây dựng data warehouse bằng Hadoop ecosystem

Xây dựng kiến trúc về dữ liệu

Xây dựng data warehouse bằng Hadoop ecosystem

.

[external_link offset=2]

Xây dựng data warehouse bằng Hadoop ecosystem

Ví dụ về thiết kế data warehouse cho việc phân tích dữ liệu sales.

Thiết kế theo Star Schema, với Vùng trung tâm là dữ liệu mình cần phân tích (dữ liệu sales). 

Xây dựng data warehouse bằng Hadoop ecosystem

Hình chụp từ hệ thống quản trị dữ liệu của team



Dựng Data Pipeline

Xây dựng data warehouse bằng Hadoop ecosystem

Quy trình dựng Data pipeline: Thu thập dữ liệu -> Lưu trữ -> Process/phân tích -> Sử dụng -> Quản lý

  • Bước Thu thập: Dữ liệu được trích xuất từ database bằng Apache Sqoop, rồi được load sang Hadoop HDFS.
  • Bước Lưu trữ: Dữ liệu được lưu trữ dưới dạng gốc trong HDFS. 
  • Bước Phân tích: Dữ liệu được transform và load vào data warehouse bằng Apache Hive. 
  • Bước Sử dụng: sau khi dữ liệu được xử lý sẽ được users dùng thông qua các BI tool, hoặc chatbot
  • Bước Quản lý tiến trình: quá trình xử lý dữ liệu được quản lý bằng Oozie workflow và monitor trên HUE.

Xây dựng data warehouse bằng Hadoop ecosystem

Ảnh chụp ống dữ liệu được xây trên Apache HUE



Xác minh dữ liệu

Xây dựng data warehouse bằng Hadoop ecosystem

Team chọn 1 tool tên là Talend Big Data Studio để validate dữ liệu

Monitor hệ thống

Xây dựng data warehouse bằng Hadoop ecosystem

Hình ảnh giao diện quản lý job của HUE

Để monitor hệ thống được hiệu quả, team sử dụng Apache HUE. 

Vấn đề gặp phải khi xây dựng Data warehouse

Xây dựng data warehouse bằng Hadoop ecosystem

Xây dựng data warehouse bằng Hadoop ecosystem

Xây dựng data warehouse bằng Hadoop ecosystem

Xây dựng data warehouse bằng Hadoop ecosystem

Mời bạn xem chi tiết webinar qua video sau



[external_footer]

Xổ số miền Bắc