Dựng Tool phân tích dữ liệu với Metabase + Postgres

DuyNHM
DuyNHM
Nov 1 · 5 min read

Mục đích

  • Dựng Metabase để phân tích dữ liệu được lưu trữ trong Postgres
  • Dựng server local có thể kết nối qua mạng LAN nghĩa là: Dùng 1 máy PC làm server, các laptop cùng mạng nội bộ có thể truy cập vào để sử dụng

1. Install & Setup Postgres

Sử dụng postgres local nên sử dụng https://postgresapp.com/
Hướng dẫn cài đặt và setup thì xem thêm trong link trên.

2. Install & Setup Metabase

Download & Install: https://metabase.com/start/
Setup: https://metabase.com/docs/v0.30.4/setting-up-metabase.html
Tại phần setup của Metabase, bước 2 sẽ tạo kết nối đến Postgres, thông số như sau:

3. Using Metabase

Mô hình 1:

Server side

Client Side

3.1. Cấu hình Client Side

Metabase cung cấp 2 giải pháp:

  • Kết nối từ server qua Docker Image hoặc Amazon Web Services hoặc Heroku sử dụng trình duyệt để tương tác
  • hoặc kết nối từ localhost thông qua app. Đối với mô hình này đang sử dụng cách kết nối từ localhost thông qua app.

Để tải app Metabase, có 2 môi trường

  • Mac OS: có file cài đặt và app chạy khá mượt, cấu hình tương đối dễ.
  • other platforms: tải file jar và chạy kết hợp giữa command line + browser để tương tác. Cấu hình tương đối khó.

3.1.1. Cài đặt:

Sau đây là hướng dẫn cài đặt cho Windowns:

  • Bước 1: Kiểm tra máy đã cài đặt jdk?

Check tại thư mục C:\Program Files hoặc C:\\Program Files (x86) có chứa thư mục Java?

→ Nếu có, kiểm tra tiếp xem trong thư mục Java có chứa thư mục có tên jdkXXX (với XXX là phiên bản) hay không?

→ Nếu không có thư mục Java → Chưa cài đặt Bước 2: Cài đặt JDK

  • Bước 2: Cài đặt JDK

Lên Google gõ từ khóa JDK hoặc truy cập vào: https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html

Tải phiên bản Java SE Development Kit mới nhất, nhớ chọn vào mục Accept License Agreement

Tùy phiên bản windown mà down load file tương ứng. (Để xem phiên bản windown (32-bit hoặc 64-bit) xem tại đây: https://support.microsoft.com/en-us/help/13443/windows-which-operating-system)

  • Bước 3: Run metabase.jar

Xem thêm tại đây: https://www.metabase.com/docs/v0.30.4/operations-guide/running-the-metabase-jar-file.html

Mở cmd, truy cập đến thu mục chứa metabase.jar, sử dụng câu lệnh:

  • cd path

java -jar metabase.jar

Xem thêm link trên để biết khi nào thành công.

3.1.2. Các tình huống lỗi:

  • Failed to connect to database:

Trường hợp này thiếu 2 file db đi kèm trong file metabase.jar, nếu phát sinh lỗi này thì download 2 file db tại đây:
metabase.db.mv.dbmetabase.db.trace.db sau đó copy vào thư mục chứa file metabase.jar. Run lại câu lệnh Gõ java -jar metabase.jar

3.1.3 Setup Metabase: Setup: https://metabase.com/docs/v0.30.4/setting-up-metabase.html
Sử dụng chung cho cả Mac và các hệ điều hành còn lại, gồm 3 bước:

  • Bước 1: điền thông tin cá nhân (tạo tài khoản metabase)
  • Bước 2: điền thông tin cấu hình server

Chọn Database: postgres

Name: điền tên gì cũng được, có thể điền tên Database

Host:

  • điền localhost nếu máy đang xài làm server,
  • nếu truy cập từ máy khác thì điền IP của máy làm server

Port: 5432

Database name: Tên của Database đang sử dụng

Database username: Tên username của database, được tạo ở phía postgres của Server

Database password: Pass của user tương ứng

  • Bước 3: cho phép Metabase thu thập dữ liệu từ việc sử dụng của chúng ta để cải tiến app. → Cho phép hoặc không.

Nếu setup thành công sẽ đến màn hình sau:

Còn nếu không? Đi uống ly cà phê cho tỉnh táo rồi dzô làm lại từ đầu.

3.2 Cấu hình Server Side

Tạo tài khoản User
Tạo tài khoản cho các User join vào DB, tạo trong phần User của Postgres. Lưu ý: khi tạo tài khoản cần Grant quyền cho các tài khoản này, trường hợp không Grant quyền sẽ báo lỗi Permission denied for relation

GRANT ALL PRIVILEGES ON TABLE tableName TO userName;

Cấu hình Truy cập Postgres
Tại file postgresql.conf: điều chỉnh listen_address từ default thành ‘*’ hoặc 1 dãy IP cụ thể nào đó

# - Connection Settings -
listen_addresses = '*'

Tại file pg_hba.conf bổ sung thêm các Client Authentication tương tự bên dưới bao gồm:

host    dz              vannth          172.17.11.15/24         md5

format:

local      database  user  auth-method  [auth-options]
host database user address auth-method [auth-options]
hostssl database user address auth-method [auth-options]
hostnossl database user address auth-method [auth-options]
host database user IP-address IP-mask auth-method [auth-options]
hostssl database user IP-address IP-mask auth-method [auth-options]
hostnossl database user IP-address IP-mask auth-method [auth-options]

host:

  • local: This record matches connection attempts using Unix-domain sockets. Without a record of this type, Unix-domain socket connections are disallowed.
  • host: This record matches connection attempts made using TCP/IP. host records match either SSL or non-SSL connection attempts.

dz: tên database

vannth: user

172.17.11.15/24: IP-address

md5: auth-method

Welcome to a place where words matter. On Medium, smart voices and original ideas take center stage - with no ads in sight. Watch
Follow all the topics you care about, and we’ll deliver the best stories for you to your homepage and inbox. Explore
Get unlimited access to the best stories on Medium — and support writers while you’re at it. Just $5/month. Upgrade