Cách cài đặt hệ thống cơ sở dữ liệu ClickHouse OLAP Ubuntu 22.04

theanh

Administrator
Nhân viên
ClickHouse là hệ thống quản lý cơ sở dữ liệu theo cột do ClickHouse, Inc. phát triển và được viết bằng C++. Đây là hệ thống quản lý cơ sở dữ liệu OLAP nguồn mở, nhanh, có khả năng chịu lỗi, dễ sử dụng và có độ tin cậy cao.

ClickHouse là hệ thống cơ sở dữ liệu OLDAP cực nhanh để xử lý phân tích trực tuyến. Hệ thống này cho phép bạn tạo báo cáo phân tích bằng truy vấn SQL theo thời gian thực.

Trong hướng dẫn này, bạn sẽ học cách cài đặt Hệ thống cơ sở dữ liệu OLAP ClickHouse trên máy chủ Ubuntu 22.04. Bạn cũng sẽ học cách thiết lập xác thực trên ClickHouse và tìm hiểu cách sử dụng và truy vấn cơ bản.

Điều kiện tiên quyết​

Để hoàn thành hướng dẫn này, bạn sẽ cần một số điều kiện tiên quyết sau:
  • Máy chủ Ubuntu 22.04 - Ví dụ này sử dụng hệ thống Ubuntu có tên máy chủ là 'clickhouse-server' và địa chỉ IP là '192.168.5.100'.
  • Người dùng không phải root có quyền quản trị viên sudo/root.

Thiết lập hệ thống​

Trước khi bắt đầu cài đặt ClickHouse, bạn sẽ đảm bảo rằng CPU hiện tại hỗ trợ bộ lệnh SSE 4.2 và tắt SWAP trên hệ thống của mình.

Gói nhị phân dựng sẵn chính thức cho ClickHouse được biên dịch trên kiến trúc x86 (64 bit) và SSE 4.2. Vì vậy, nếu bạn không có CPU hỗ trợ SSE 4.2, bạn nên tự xây dựng ClickHouse từ nguồn.

Ngoài ra, khi sử dụng ClickHouse, bạn nên tắt SWAP, đặc biệt là trong môi trường sản xuất.

Chạy lệnh bên dưới để kiểm tra xem CPU của bạn có hỗ trợ tính năng SSE 4.2 hay không. Bạn sẽ nhận được thông báo đầu ra 'SSE 4.2 supported' nếu CPU của bạn được hỗ trợ.
Mã:
grep -q sse4_2 /proc/cpuinfo && echo "SSE 4.2 supported" || echo "SSE 4.2 not supported"
Tiếp theo, chạy lệnh bên dưới để tắt SWAP thông qua tệp cấu hình '/etc/fstab'. Lệnh này sẽ đặt '#' vào đầu cấu hình SWAP và vô hiệu hóa SWAP trong hệ thống của bạn vĩnh viễn.
Mã:
sudo sed -i '/ swap / s/^\(.*\)$/#\1/g' /etc/fstab
Bây giờ hãy chạy lệnh bên dưới để tắt SWAP trên phiên hiện tại. Sau đó, hãy xác minh trạng thái SWAP.
Mã:
sudo swapoff -a
sudo free -m
Dưới đây là kết quả đầu ra mà bạn sẽ nhận được nếu SWAP bị vô hiệu hóa - Kích thước SWAP trên trường 'tổng' là 0.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22176%22%3E%3C/svg%3E


Với CPU hỗ trợ SSE 4.2 và WAP đã bị vô hiệu hóa, giờ bạn đã sẵn sàng cài đặt Hệ thống cơ sở dữ liệu ClickHouse OLAP.

Cài đặt Hệ thống cơ sở dữ liệu Clickhouse OLAP​

Hệ thống cơ sở dữ liệu ClickHouse OLDAP cung cấp nhiều phương pháp cài đặt. Đối với các bản phân phối Linux, ClcikHouse cung cấp kho lưu trữ cho cả các bản phân phối dựa trên Debian và dựa trên RPM. Ngoài ra, ClickHouse có sẵn với cài đặt thông qua Docker hoặc sử dụng một gói nhị phân duy nhất.

Trong bước này, bạn sẽ cài đặt ClickHouse trên hệ thống Ubuntu 22.04 thông qua kho lưu trữ chính thức. Vì vậy, bạn sẽ thêm kho lưu trữ ClickHouse vào hệ thống của mình, sau đó cài đặt gói ClickHouse thông qua APT.

Để bắt đầu, hãy chạy lệnh apt bên dưới để cài đặt một số phụ thuộc cơ bản. Khi được nhắc, hãy nhập y và nhấn ENTER.
Mã:
sudo apt install apt-transport-https ca-certificates dirmngr

data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22305%22%3E%3C/svg%3E


Bây giờ hãy chạy lệnh bên dưới để thêm khóa GPG và kho lưu trữ ClickHouse vào hệ thống của bạn. Trong ví dụ này, bạn sẽ cài đặt ClickHouse từ nhánh ổn định của kho lưu trữ.
Mã:
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 8919F6BD2B48D754
echo "deb https://packages.clickhouse.com/deb stable main" | sudo tee \
 /etc/apt/sources.list.d/clickhouse.list

data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22176%22%3E%3C/svg%3E


Tiếp theo, hãy cập nhật và làm mới chỉ mục gói của bạn thông qua lệnh apt bên dưới.
Mã:
sudo apt update
Bạn sẽ nhận được thông báo kho lưu trữ ClickHouse đã được thêm vào.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22206%22%3E%3C/svg%3E


Bây giờ hãy cài đặt 'clickhouse-server' làm hệ thống cơ sở dữ liệu và gói 'clickhouse-client' thông qua lệnh apt bên dưới.
Mã:
sudo apt install clickhouse-server clickhouse-client
Nhập Y khi được nhắc xác nhận và nhấn ENTER để tiếp tục.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22311%22%3E%3C/svg%3E


Ngoài ra, trong quá trình cài đặt CLickHouse, bạn sẽ được nhắc thiết lập mật khẩu cho người dùng mặc định của ClickHouse. Nhập mật khẩu mới cho ClickHouse và bạn sẽ nhận được kết quả như ảnh chụp màn hình sau khi cài đặt hoàn tất.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22290%22%3E%3C/svg%3E


Sau khi cài đặt ClickHouse, hãy chạy tiện ích lệnh systemctl bên dưới để khởi động và kích hoạt dịch vụ ClickHouse. Lệnh này sẽ khởi động ClickHouse và cho phép dịch vụ chạy tự động khi khởi động.
Mã:
sudo systemctl start clickhouse-server
sudo systemctl enable clickhouse-server
Xác minh dịch vụ ClicHouse bằng lệnh bên dưới để đảm bảo rằng dịch vụ ClickHouse đang chạy.
Mã:
sudo systemctl status clickhouse-server
Bạn sẽ nhận được đầu ra như sau - Trạng thái hiện tại của dịch vụ ClickHpouse đang chạy và đã được bật và sẽ tự động chạy khi khởi động.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22244%22%3E%3C/svg%3E


Bạn đã hoàn tất quá trình cài đặt máy chủ ClickHouse. Ở bước tiếp theo, bạn sẽ tìm hiểu cách truy cập máy chủ ClickHouse thông qua ứng dụng máy khách và thiết lập xác thực mật khẩu cho người dùng quản trị viên ClickHouse.

Truy cập ClickHouse thông qua Dòng lệnh​

Sau khi cài đặt máy chủ ClickHouse, bạn có thể truy cập ClickHouse thông qua 'clickhouse-client' mà bạn cũng đã cài đặt.

'clickhouse-client' là giao diện dòng lệnh để tương tác và quản lý máy chủ ClickHouse. Nó tương tự như máy khách 'mysql' cho máy chủ MySQL/MariaDB, 'psql' cho máy chủ PostgreSQL hoặc 'mongod' cho máy chủ MongoDB.

Để truy cập máy chủ ClickHouse, bạn có thể sử dụng lệnh 'clickhouse-client' bên dưới.
Mã:
sudo clickhouse-client --password
Khi được nhắc nhập mật khẩu, hãy nhập mật khẩu mà bạn đã tạo trong quá trình cài đặt.

Sau khi đăng nhập, bạn sẽ thấy giao diện ClickHouse như sau.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22714%22%20height=%22283%22%3E%3C/svg%3E


Từ đây, bạn có thể thấy rằng bạn đã kết nối với máy chủ ClickHouse v22.11 với người dùng ClickHouse mặc định. Máy chủ ClickHouse đang chạy theo mặc định trên máy chủ cục bộ với cổng 9000.

Tại thời điểm này, bạn đã cài đặt máy chủ và máy khách ClickHouse và tìm hiểu cách kết nối với máy chủ ClickHouse thông qua lệnh 'clickhouse-client'. Ở bước tiếp theo, bạn sẽ thiết lập người dùng quản trị cho máy chủ ClickHouse.

Thiết lập người dùng quản trị trên Clickhouse​

Ở bước này, bạn sẽ tạo người dùng quản trị cho máy chủ ClickHouse. Nhưng trước đó, bạn sẽ bật 'Quản lý tài khoản' cho người dùng 'mặc định' thông qua cấu hình ClickHouse.

Để bắt đầu, hãy mở cấu hình '/etc/clickhouse-server/users.d/default_password.xml' bằng lệnh trình chỉnh sửa nano bên dưới.
Mã:
sudo nano /etc/clickhouse-server/users.d/default_password.xml
Thêm dòng sau vào giữa phần '<default>...</default>'. Thao tác này sẽ kích hoạt 'Quản lý quyền truy cập' cho người dùng 'mặc định'.
Mã:
 ...
 1
Lưu tệp và thoát khỏi trình chỉnh sửa khi bạn hoàn tất.

Bây giờ hãy chạy tiện ích lệnh systemctl bên dưới để khởi động lại dịch vụ ClickHouse và áp dụng các thay đổi.
Mã:
sudo systemctl restart clickhouse-server
Bây giờ 'access_management' được bật cho người dùng 'mặc định', sau đó bạn sẽ tạo một người dùng quản trị mới cho ClickHouse. Người dùng mới sẽ có thể truy cập tất cả các cơ sở dữ liệu với mọi đặc quyền trên máy chủ ClickHouse.

Chạy lệnh 'clickhouse-client' bên dưới để kết nối với máy chủ ClickHouse thông qua người dùng 'mặc định'.
Mã:
sudo clickhouse-client --user default --password
Khi được nhắc nhập mật khẩu, hãy nhập mật khẩu mà bạn đã cấu hình. Bây giờ bạn sẽ nhận được bảng điều khiển máy chủ ClickHouse và đăng nhập với tư cách là người dùng 'mặc định' với 'access_management' được bật.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22250%22%3E%3C/svg%3E


Tiếp theo, chạy truy vấn sau để tạo người dùng ClickHouse mới. Và hãy nhớ thay đổi tên người dùng, mật khẩu và địa chỉ IP máy chủ. Ví dụ này sẽ tạo người dùng mới 'halsey' với mật khẩu 'password' và được băm bằng SHA256. Tùy chọn 'HOST IP' cho phép bạn chỉ định địa chỉ IP sẽ được sử dụng để kết nối với máy chủ ClickHouse. Trong ví dụ này, chỉ được phép từ máy chủ cục bộ hoặc '127.0.0.1'.
Mã:
CREATE USER halsey HOST IP '127.0.0.1' IDENTIFIED WITH sha256_password BY 'password';

data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22102%22%3E%3C/svg%3E


Bây giờ hãy chạy truy vấn bên dưới để cấp tất cả các quyền trên máy chủ ClickHouse cho người dùng 'halsey'.
Mã:
GRANT ALL ON *.* TO halsey WITH GRANT OPTION;

data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22671%22%20height=%22257%22%3E%3C/svg%3E


Tiếp theo, xác minh danh sách người dùng trên máy chủ ClickHouse thông qua truy vấn sau. Bạn sẽ thấy người dùng mới 'halsey' được thêm vào ClickHouse.
Mã:
SHOW USERS;

data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22589%22%20height=%22328%22%3E%3C/svg%3E


Bây giờ hãy nhập 'quit' trên máy khách bảng điều khiển ClickHouse để thoát.

Sau khi tạo người dùng quản trị cơ sở dữ liệu mới, bạn sẽ phải tắt 'access_management' cho người dùng 'mặc định' trên máy chủ ClickHouse của bạn.

Mở cấu hình '/etc/clickhouse-server/users.d/default_password.xml' bằng lệnh trình chỉnh sửa nano bên dưới.
Mã:
sudo nano /etc/clickhouse-server/users.d/default_password.xml
Thay đổi tùy chọn 'access_management' thành '0' để tắt 'Quản lý quyền truy cập' cho 'mặc định' người dùng.
Mã:
 ...
 0
Lưu tệp và thoát khỏi trình chỉnh sửa khi bạn hoàn tất.

Khởi động lại dịch vụ ClickHouse để áp dụng các thay đổi thông qua tiện ích lệnh systemctl bên dưới.
Mã:
sudo systemctl restart clickhouse-server
Cuối cùng, hãy chạy lệnh sau để đăng nhập vào máy chủ ClickHouse với tư cách là người dùng 'halsey'. Khi được nhắc nhập mật khẩu, hãy nhập mật khẩu và nhấn ENTER để đăng nhập.
Mã:
sudo clickhouse-client --user halsey --password
Sau khi đăng nhập, bạn sẽ nhận được kết quả như ảnh chụp màn hình sau. Người dùng quản trị mới cho ClickHouse 'halsey' đã được thêm vào và quá trình đăng nhập thành công.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22260%22%3E%3C/svg%3E


Sau khi tạo người dùng quản trị mới của máy chủ ClickHouse, bạn sẽ học cách sử dụng ClickHouse để tạo cơ sở dữ liệu và bảng, cũng như chèn và truy xuất dữ liệu thông qua truy vấn SQL ClickHouse.

Các truy vấn cơ bản trên Hệ thống cơ sở dữ liệu ClickHouse​

Trong bước này, bạn sẽ học cách truy vấn cơ bản của Hệ thống cơ sở dữ liệu ClickHouse, tương tự như các truy vấn SQL thông thường. Bạn sẽ học cách tạo cơ sở dữ liệu và bảng, chèn và truy xuất dữ liệu từ cơ sở dữ liệu, sau đó là cách sử dụng cơ bản truy vấn 'ALTER' mà bạn có thể sử dụng để thay đổi dữ liệu hiện có trên máy chủ ClickHouse.

Đầu tiên, hãy chạy truy vấn sau để tạo cơ sở dữ liệu mới. Trong ví dụ này, bạn sẽ tạo một cơ sở dữ liệu mới 'testdb'.
Mã:
CREATE DATABASE testdb;

data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22489%22%20height=%22252%22%3E%3C/svg%3E


Chuyển sang 'testdb' thông qua truy vấn sau 'USE dbname'.
Mã:
USE testdb;

data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22562%22%20height=%22226%22%3E%3C/svg%3E


Bây giờ, hãy tạo một bảng mới, 'users', với truy vấn sau. Bảng 'users' sẽ có một số trường bên dưới:
  • id với kiểu 'UInt64' để lưu trữ các giá trị số nguyên.
  • name với kiểu 'String' để lưu trữ chuỗi - độ dài của ký tự.
  • last_login với kiểu 'DateTime' để lưu trữ dữ liệu định dạng ngày giờ chuỗi.
  • Công cụ ở đây là 'MergeTree', chủ yếu được sử dụng trên ClickHouse.
Mã:
CREATE TABLE users (id UInt64, name String, jobs String, last_login DateTime) ENGINE=MergeTree() PRIMARY KEY id ORDER BY id;




Tiếp theo, chạy truy vấn sau để chèn dữ liệu mới vào bảng 'người dùng'. Trong truy vấn bên dưới, bạn sẽ chèn ba dữ liệu khác nhau vào bảng 'người dùng'.
Mã:
INSERT INTO users VALUES (1, 'alice', 'DevOps', '2022-10-10 00:10:10');
INSERT INTO users VALUES (2, 'alex', 'Manager', '2022-09-05 01:19:10');
INSERT INTO users VALUES (3, 'janet', 'Developer', '2022-05-05 04:29:10');
Chèn dữ liệu đầu tiên.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22199%22%3E%3C/svg%3E


Chèn dữ liệu thứ hai.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22190%22%3E%3C/svg%3E


Chèn dữ liệu thứ ba.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22186%22%3E%3C/svg%3E


Chạy truy vấn sau để lấy dữ liệu từ bảng 'người dùng'. Bạn sẽ thấy ba trường dữ liệu mới mà bạn vừa thêm vào.
Mã:
SELECT * FROM users;

data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22499%22%20height=%22396%22%3E%3C/svg%3E


Bạn đã học cách tạo cơ sở dữ liệu, chuyển sang cơ sở dữ liệu, tạo bảng, chèn dữ liệu và truy xuất dữ liệu trên Hệ thống cơ sở dữ liệu OLAP của ClickHouse. Tiếp theo, bạn sẽ học cách thay đổi dữ liệu bằng truy vấn 'ALTER'.

Chạy truy vấn 'ALTER TABLE' sau để cập nhật dữ liệu hiện có trên bảng 'users'. Trong ví dụ này, bạn sẽ thay đổi trường 'jobs' cho người dùng 'alex' thành 'administrator'.
Mã:
ALTER TABLE users UPDATE jobs = 'Administrator' WHERE name = 'alex';
Xác minh dữ liệu mới cập nhật trên bảng 'users' thông qua truy vấn sau. Bây giờ bạn sẽ nhận được dữ liệu mới cho người dùng 'alex' được cập nhật thành 'Quản trị viên'.
Mã:
SELECT * FROM users;

data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22468%22%3E%3C/svg%3E


Bây giờ bạn đã học được cách sử dụng cơ bản của truy vấn ClickHouse để tạo và chuyển đổi cơ sở dữ liệu, tạo bảng, chèn dữ liệu và truy xuất dữ liệu. Ngoài ra, bạn đã học cách sử dụng truy vấn 'ALTER' để thay đổi dữ liệu hiện có trên cơ sở dữ liệu ClickHouse. Tiếp theo, bạn sẽ dọn dẹp cài đặt ClickHouse của mình.

Dọn dẹp môi trường​

Với cơ sở dữ liệu và bảng mới được tạo và dữ liệu ngẫu nhiên được chèn vào, trong bước cuối cùng này, bạn sẽ dọn dẹp cài đặt Hệ thống cơ sở dữ liệu ClickHouse bằng cách xóa cơ sở dữ liệu và bảng mà bạn vừa tạo.

Chạy truy vấn sau, 'DROP TABLE', để xóa bảng người dùng khỏi cơ sở dữ liệu testdb.
Mã:
DROP TABLE users;

data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22531%22%20height=%22217%22%3E%3C/svg%3E


Bây giờ hãy xóa cơ sở dữ liệu 'testdb' thông qua truy vấn 'DROP DATABASE' bên dưới.
Mã:
DROP DATABASE testdb;

data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22517%22%20height=%22220%22%3E%3C/svg%3E


Cuối cùng, hãy xác minh danh sách cơ sở dữ liệu trên máy chủ ClickHouse thông qua truy vấn sau. Bạn sẽ thấy cơ sở dữ liệu 'testdb' đã bị xóa khỏi máy chủ ClickHouse.
Mã:
SHOW DATABASES;

data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22496%22%20height=%22330%22%3E%3C/svg%3E


Bây giờ cài đặt ClickHouse của bạn đã được dọn dẹp với người dùng quản trị cũng được cấu hình.

Kết luận​

Xin chúc mừng! Bạn đã hoàn tất cài đặt Hệ thống cơ sở dữ liệu OLAP của ClickHouse và học cách thiết lập người dùng quản trị trên CLickHouse. Và cuối cùng, bạn cũng đã học được truy vấn cơ bản để tạo cơ sở dữ liệu và bảng, chèn và truy xuất dữ liệu, thay đổi dữ liệu hiện có và dọn dẹp cơ sở dữ liệu và bảng.
 
Back
Bên trên