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
- Sử dụng Postgres App: Sử dụng postgres local nên… để tạo server Postgres.
- Sử dụng pgAdmin: https://www.pgadmin.org/ để tương tác server.
Client Side
- Cài đặt Metabase app: Download & Install: https://metabase.com/start/ để connect vào Server và sử dụng các tính năng hiện có của Metabase.
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:
- Đối với Mac OS, tải file tại: https://www.metabase.com/start/mac.html, sau đó cài đặt bình thường
- Đối với các OS khác: tải file tại: https://www.metabase.com/start/other.html.
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 có → Đã cài đặt: Bước 3: Run metabase.jar
- Nếu không → Chưa cài đặt → Đến Bước 2: Cài đặt JDK
→ 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
Gõ 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.db và metabase.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 md5format:
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.hostrecords match either SSL or non-SSL connection attempts.
dz: tên database
vannth: user
172.17.11.15/24: IP-address
md5: auth-method