Xây dựng Dashboard phân tích dữ liệu trên Data Warehouse.

- 8 mins

Tiếp tục series các bài viết chủ đề Data Warehouse, hôm nay chúng ta sẽ đến với một nội dung khá là thú vị đó là xây dựng Dashboard phân tích dữ liệu trên Data warehouse. Xây dựng Dashboard phân tích dữ liệu là một trong những chức năng cơ bản nhất trong các hoạt động BI (Business Intelligence), giúp trực quan hóa dữ liệu dưới dạng các biểu đồ, từ đó giúp cho người dùng có thể dễ dàng hiểu và nhìn thấy các insight từ dữ liệu.
Để minh họa cho bài viết thì mình sẽ sử dụng Chainslake, một blockchain data warehouse do mình phát triển, cho phép người dùng truy vấn dữ liệu blockchain, xây dựng và chia sẻ các dashboard phân tích dữ liệu blockchain hoàn toàn miễn phí.

Nội dung

  1. Giới thiệu tổng quan về Metabase
  2. Cài đặt và cấu hình Metabase kết nối vào Data warehouse
  3. Các bảng dữ liệu trong data warehouse
  4. Truy vấn dữ liệu, xây dựng và chia sẻ dashboard
  5. Kết luận

:pray: Hiện tại mình đang nhận tư vấn, thiết kế và triển khai hạ tầng phân tích dữ liệu, Data Warehouse, Lakehouse cho các cá nhân, đơn vị có nhu cầu. Bạn có thể xem và dùng thử một hệ thống mình đã build tại đây. Các bạn vui lòng liên hệ với mình qua email: hoanglong180695@gmail.com. Mình xin cảm ơn!

Giới thiệu tổng quan về Metabase

Metabase là một công cụ BI cho phép truy vấn dữ liệu bằng ngôn ngữ SQL trên nhiều cơ sở dữ liệu và các SQL engine khác nhau thông qua các plugins, trình diễn kết quả truy vấn thành các bảng, biểu đồ, số liệu trên các dashboard phân tích, bạn có thể xem một dashboard demo của mình tại đây.

Metabase có cả phiên bản Opensource với các chức năng cơ bản, có thể cài đặt trên hạ tầng có sẵn và bản Enterprise với các chức năng nâng cao có thể sử dụng trực tiếp trên cloud của Metabase hoặc tự host thông qua key bản quyền. Bạn có thể xem chi tiết tại đây.

Cài đặt và cấu hình Metabase kết nối vào Data warehouse

Mình sẽ cài đặt phiên bản Opensource của Metabase qua docker và kết nối vào cụm DWH của chúng ta thông qua Trino (các bạn có thể xem lại bài viết về cách cài đặt Trino của mình tại đây)

Đầu tiên mình sẽ tạo một cơ sở dữ liệu cho Metabase trong postgres trên cụm DWH

postgres=# CREATE DATABASE metabase;

Cài đặt metabase thông qua Docker

$ wget https://github.com/starburstdata/metabase-driver/releases/download/5.0.0/starburst-5.0.0.metabase-driver.jar
$ docker run -d -p 3000:3000 --name metabase \
  --network hadoop --add-host=node01:172.20.0.2 \
  -e "MB_DB_TYPE=postgres" \
  -e "MB_DB_DBNAME=metabase" \
  -e "MB_DB_PORT=5432" \
  -e "MB_DB_USER=postgres" \
  -e "MB_DB_PASS=password" \
  -e "MB_DB_HOST=node01" \
  -v starburst-5.0.0.metabase-driver.jar:/plugins/starburst-5.0.0.metabase-driver.jar \
   --name metabase metabase/metabase

Lưu ý 172.20.0.2 là ip container của node01 trên máy của mình, bạn thay bằng ip máy của bạn.

Truy cập vào http://localhost:3000 bạn sẽ thấy giao diện khởi động của Metabase, sau khi tạo tài khoản admin bạn sẽ được đưa tới giao diện làm việc chính của Metabase.

Metabase intro

Để kết nối với Trino bạn vào Admin settings chọn thẻ Databases, chọn Add database và thiết lập như hình dưới đây:

Connect to Trino

Sau khi cấu hình xong bạn Exit admin và vào kiểm tra xem đã có dữ liệu trong mục Browser/Databases hay chưa. Bạn có thể xem các bảng dữ liệu của Chainslake tại đây

Chainslake data

Các bảng dữ liệu trong data warehouse

Trong phần này mình sẽ mô tả sơ lược về các bảng dữ liệu trong data warehouse của Chainslake để có cơ sở cho việc viết truy vấn và build dashboard trong phần tiếp theo.

Data warehouse của Chainslake bao gồm nhiều thư mục, mỗi thư mục gồm nhiều bảng có cùng chủ đề với nhau, cụ thể mình sẽ giới thiệu một số bảng và thư mục sau:

Truy vấn dữ liệu, xây dựng và chia sẻ dashboard

Việc viết truy vấn và build dashboard trên Chainslake là khá đơn giản với nếu như bạn đã có kỹ năng về SQL. Mình có tạo sẵn một dashboard trong collection Demo để bạn có thể hiểu và dễ dàng bắt đầu tạo ra các dashboard phân tích của riêng mình.

Demo collection

Demo dashboard

Một số lưu ý khi viết truy vấn:

Kết luận

Trên đây là những chia sẻ của mình về cách xây dựng dashboard phân tích dữ liệu trên data warehouse, rất mong nhận được sự ủng hộ của tất cả các bạn. Hẹn gặp lại các bạn trong các bài viết tiếp theo.