Cách cài đặt và sử dụng ClickHouse trên CentOS 7
ClickHouse là database phân tích hướng cột open-souce được tạo bởi Yandex cho OLAP và các trường hợp sử dụng dữ liệu lớn. Hỗ trợ xử lý truy vấn thời gian thực của ClickHouse làm cho nó phù hợp với các ứng dụng yêu cầu kết quả phân tích dưới giây. Ngôn ngữ truy vấn của ClickHouse là một phương ngữ của SQL cho phép khả năng truy vấn khai báo mạnh mẽ đồng thời cung cấp sự quen thuộc và đường cong học tập nhỏ hơn cho user cuối.Database hướng cột lưu trữ bản ghi trong các khối được group theo cột thay vì hàng. Bằng cách không tải dữ liệu cho các cột vắng mặt trong truy vấn, database hướng cột dành ít thời gian hơn để đọc dữ liệu trong khi hoàn thành truy vấn. Do đó, các database này có thể tính toán và trả về kết quả nhanh hơn nhiều so với các hệ thống dựa trên hàng truyền thống cho một số dung lượng công việc nhất định, chẳng hạn như OLAP.
Hệ thống Xử lý Phân tích Trực tuyến (OLAP) cho phép tổ chức lượng lớn dữ liệu và thực hiện các truy vấn phức tạp. Chúng có khả năng quản lý hàng petabyte dữ liệu và trả về kết quả truy vấn một cách nhanh chóng. Theo cách này, OLAP hữu ích cho công việc trong các lĩnh vực như khoa học dữ liệu và phân tích kinh doanh.
Trong hướng dẫn này, bạn sẽ cài đặt server database ClickHouse và client trên máy của bạn . Bạn sẽ sử dụng DBMS cho các việc điển hình và tùy chọn cho phép truy cập từ xa từ một server khác để bạn có thể kết nối với database từ một máy khác. Sau đó, bạn sẽ kiểm tra ClickHouse bằng cách lập mô hình và truy vấn dữ liệu lượt truy cập trang web mẫu.
Yêu cầu
- Một server CentOS 7 với cài đặt firewall và user không phải root hỗ trợ
sudo
. Bạn có thể làm theo hướng dẫn cài đặt server ban đầu để tạo user và hướng dẫn này để cài đặt firewall . - (Tùy chọn) Server CentOS 7 thứ cấp với cài đặt firewall và user không phải root được bật
sudo
. Bạn có thể làm theo hướng dẫn cài đặt server ban đầu và hướng dẫn cài đặt bổ sung cho firewall .
Bước 1 - Cài đặt ClickHouse
Trong phần này, bạn sẽ cài đặt server ClickHouse và các client bằng yum
.
Đầu tiên, SSH vào server của bạn bằng lệnh:
- ssh sammy@your_server_ip
Cài đặt các phụ thuộc cơ sở bằng cách thực thi:
- sudo yum install -y pygpgme yum-utils
Các gói pygpgme
được sử dụng để thêm và xác minh chữ ký GPG trong khi yum-utils
cho phép dễ dàng quản lý các RPM nguồn.
Altinity , một công ty tư vấn ClickHouse, duy trì một repository YUM có version ClickHouse mới nhất. Bạn sẽ thêm thông tin chi tiết của repository để download các gói ClickHouse đã được xác thực một cách an toàn bằng cách tạo file . Để kiểm tra nội dung gói, bạn có thể kiểm tra các nguồn mà chúng được xây dựng tại dự án Github này.
Tạo file chi tiết repository bằng cách thực hiện:
- sudo vi /etc/yum.repos.d/altinity_clickhouse.repo
Tiếp theo, thêm các nội dung sau vào file :
[altinity_clickhouse] name=altinity_clickhouse baseurl=https://packagecloud.io/altinity/clickhouse/el/7/$basearch repo_gpgcheck=1 gpgcheck=0 enabled=1 gpgkey=https://packagecloud.io/altinity/clickhouse/gpgkey sslverify=1 sslcacert=/etc/pki/tls/certs/ca-bundle.crt metadata_expire=300 [altinity_clickhouse-source] name=altinity_clickhouse-source baseurl=https://packagecloud.io/altinity/clickhouse/el/7/SRPMS repo_gpgcheck=1 gpgcheck=0 enabled=1 gpgkey=https://packagecloud.io/altinity/clickhouse/gpgkey sslverify=1 sslcacert=/etc/pki/tls/certs/ca-bundle.crt metadata_expire=300
Đến đây bạn đã thêm các repository , hãy kích hoạt chúng bằng lệnh sau:
- sudo yum -q makecache -y --disablerepo='*' --enablerepo='altinity_clickhouse'
Cờ -q
cho lệnh chạy ở chế độ yên tĩnh. Lệnh makecache
cung cấp các gói được chỉ định trong cờ --enablerepo
.
Khi thực thi, bạn sẽ thấy kết quả tương tự như sau:
OutputImporting GPG key 0x0F6E36F6: Userid : "https://packagecloud.io/altinity/clickhouse (https://packagecloud.io/docs#gpg_signing) <support@packagecloud.io>" Fingerprint: 7001 38a9 6a20 6b22 bf28 3c06 ed26 58f3 0f6e 36f6 From : https://packagecloud.io/altinity/clickhouse/gpgkey
Đầu ra xác nhận nó đã xác minh thành công và thêm khóa GPG.
Các clickhouse-server
và clickhouse-client
bây giờ sẽ có sẵn để cài đặt. Cài đặt chúng với:
- sudo yum install -y clickhouse-server clickhouse-client
Bạn đã cài đặt thành công server và client ClickHouse. Đến đây bạn đã sẵn sàng để bắt đầu dịch vụ database và đảm bảo nó đang chạy chính xác.
Bước 2 - Bắt đầu dịch vụ
Gói clickhouse-server
mà bạn đã cài đặt trong phần trước sẽ tạo một dịch vụ systemd
, dịch vụ này thực hiện các hành động như khởi động, dừng và khởi động lại server database . systemd
là một hệ thống init dành cho Linux để khởi tạo và quản lý các dịch vụ. Trong phần này, bạn sẽ khởi động dịch vụ và xác minh nó đang chạy thành công.
Bắt đầu dịch vụ clickhouse-server
bằng lệnh:
- sudo service clickhouse-server start
Bạn sẽ thấy kết quả tương tự như sau:
OutputStart clickhouse-server service: Path to data directory in /etc/clickhouse-server/config.xml: /var/lib/clickhouse/ DONE
Để xác minh dịch vụ đang chạy thành công, hãy thực hiện:
- sudo service clickhouse-server status
Nó sẽ in một kết quả tương tự như sau, biểu thị rằng server đang chạy bình thường:
Outputclickhouse-server service is running
Bạn đã khởi động thành công server ClickHouse và bây giờ sẽ có thể sử dụng chương trình CLI clickhouse-client
để kết nối với server .
Bước 3 - Tạo database và bảng
Trong ClickHouse, bạn có thể tạo và xóa database bằng cách thực thi câu lệnh SQL trực tiếp trong dấu nhắc database tương tác. Các câu lệnh bao gồm các lệnh theo một cú pháp cụ thể yêu cầu server database thực hiện một hoạt động được yêu cầu cùng với bất kỳ dữ liệu nào được yêu cầu. Bạn tạo database bằng cách sử dụng cú pháp CREATE DATABASE table_name
. Để tạo database , trước tiên hãy bắt đầu phiên khách bằng cách chạy lệnh sau:
- clickhouse-client --multiline
Lệnh này sẽ đăng nhập bạn vào dấu nhắc client , nơi bạn có thể chạy các câu lệnh SQL ClickHouse để thực hiện các hành động như:
Tạo, cập nhật và xóa database , bảng, index , phân vùng và dạng xem.
Thực thi các truy vấn để truy xuất dữ liệu được lọc và group tùy chọn bằng các điều kiện khác nhau.
Cờ --multiline
cho CLI cho phép nhập các truy vấn kéo dài nhiều dòng.
Trong bước này, với client ClickHouse đã sẵn sàng để chèn dữ liệu, bạn sẽ tạo một database và bảng. Với mục đích của hướng dẫn này, bạn sẽ tạo một database có tên là test
và bên trong đó bạn sẽ tạo một bảng có tên là visits
theo dõi thời lượng truy cập trang web.
Đến đây bạn đang ở trong dấu nhắc lệnh ClickHouse, hãy tạo database test
của bạn bằng cách thực thi:
- CREATE DATABASE test;
Bạn sẽ thấy kết quả sau cho thấy rằng bạn đã tạo database :
Output CREATE DATABASE test Ok. 0 rows in set. Elapsed: 0.003 sec.
Bảng ClickHouse tương tự như các bảng trong database quan hệ khác; nó chứa một tập hợp dữ liệu liên quan ở định dạng có cấu trúc. Bạn có thể chỉ định các cột cùng với loại của chúng, thêm hàng dữ liệu và thực hiện các loại truy vấn khác nhau trên bảng.
Cú pháp để tạo bảng trong ClickHouse tuân theo cấu trúc ví dụ sau:
CREATE TABLE table_name ( column_name1 column_type [options], column_name2 column_type [options], ... ) ENGINE = engine
Giá trị table_name
và column_name
có thể là bất kỳ số nhận dạng ASCII hợp lệ nào. ClickHouse hỗ trợ nhiều loại cột; một số phổ biến nhất là:
UInt64
: được sử dụng để lưu trữ các giá trị số nguyên trong phạm vi từ 0 đến 18446744073709551615.Float64
: được sử dụng để lưu trữ các số dấu phẩy động như 2039,23, 10,5, v.v.String
: được sử dụng để lưu trữ các ký tự có độ dài thay đổi. Nó không yêu cầu thuộc tính độ dài tối đa vì nó có thể lưu trữ độ dài tùy ý.Date
: được sử dụng để lưu trữ ngày theo địnhYYYY-MM-DD
.DateTime
: được sử dụng để lưu trữ ngày tháng cùng với thời gian và tuân theo địnhYYYY-MM-DD HH:MM:SS
.
Sau định nghĩa cột, bạn chỉ định công cụ được sử dụng cho bảng. Trong ClickHouse, Công cụ xác định cấu trúc vật lý của dữ liệu cơ bản, khả năng truy vấn của bảng, các chế độ truy cập đồng thời và hỗ trợ cho các index . Các loại động cơ khác nhau phù hợp với các yêu cầu ứng dụng khác nhau. Loại engine được sử dụng phổ biến và được áp dụng rộng rãi là MergeTree
.
Đến đây bạn đã có một cái nhìn tổng quan về tạo bảng, bạn sẽ tạo một bảng. Bắt đầu bằng cách xác nhận database bạn sẽ sửa đổi:
- USE test;
Bạn sẽ thấy kết quả sau cho thấy rằng bạn đã chuyển sang database test
từ database default
:
Output USE test Ok. 0 rows in set. Elapsed: 0.001 sec.
Phần còn lại của hướng dẫn này sẽ giả định bạn đang thực thi các câu lệnh trong ngữ cảnh của database này.
Tạo bảng visits
của bạn bằng cách chạy lệnh sau:
- CREATE TABLE visits (
- id UInt64,
- duration Float64,
- url String,
- created DateTime
- ) ENGINE = MergeTree()
- PRIMARY KEY id
- ORDER BY id;
Dưới đây là bảng phân tích chức năng của lệnh. Bạn tạo một bảng có tên visits
có bốn cột:
id
: Cột khóa chính. Tương tự như các hệ thống RDBMS khác, một cột khóa chính trong ClickHouse xác định duy nhất một hàng; mỗi hàng phải có một giá trị duy nhất cho cột này.duration
: Một cột nổi được sử dụng để lưu trữ thời lượng của mỗi lượt truy cập tính bằng giây. cộtfloat
có thể lưu trữ các giá trị thập phân chẳng hạn như 12,50.url
: Cột chuỗi lưu trữ URL đã truy cập, chẳng hạn nhưhttp://example.com
.created
: Cột ngày và giờ theo dõi thời điểm lượt truy cập xảy ra.
Sau định nghĩa cột, bạn chỉ định MergeTree
làm công cụ lưu trữ cho bảng. Dòng công cụ MergeTree được khuyến khích cho database production do hỗ trợ tối ưu hóa cho số lượng chèn lớn trong thời gian thực, tính mạnh mẽ tổng thể và hỗ trợ truy vấn. Ngoài ra, các công cụ MergeTree hỗ trợ sắp xếp các hàng theo khóa chính, phân vùng các hàng, sao chép và lấy mẫu dữ liệu.
Nếu bạn định sử dụng ClickHouse để lưu trữ dữ liệu không được truy vấn thường xuyên hoặc để lưu trữ dữ liệu tạm thời, bạn có thể sử dụng họ công cụ Nhật ký để tối ưu hóa cho trường hợp sử dụng đó.
Sau định nghĩa cột, bạn sẽ xác định các tùy chọn cấp bảng khác. Mệnh đề PRIMARY KEY
đặt id
làm cột khóa chính và mệnh đề ORDER BY
sẽ lưu trữ các giá trị được sắp xếp theo cột id
. Khóa chính xác định duy nhất một hàng và được sử dụng để truy cập hiệu quả vào một hàng duy nhất và định vị hiệu quả các hàng.
Khi thực hiện câu lệnh create, bạn sẽ thấy kết quả sau:
OutputCREATE TABLE visits ( id UInt64, duration Float64, url String, created DateTime ) ENGINE = MergeTree() PRIMARY KEY id ORDER BY id Ok. 0 rows in set. Elapsed: 0.010 sec.
Trong phần này, bạn đã tạo database và bảng để theo dõi dữ liệu lượt truy cập trang web. Trong bước tiếp theo, bạn sẽ chèn dữ liệu vào bảng, cập nhật dữ liệu hiện có và xóa dữ liệu đó.
Bước 4 - Chèn, cập nhật và xóa dữ liệu và cột
Trong bước này, bạn sẽ sử dụng bảng visits
của bạn để chèn, cập nhật và xóa dữ liệu. Lệnh sau là một ví dụ về cú pháp để chèn hàng vào bảng ClickHouse:
INSERT INTO table_name VALUES (column_1_value, column_2_value, ....);
Bây giờ, hãy chèn một vài hàng dữ liệu visits
truy cập trang web mẫu vào bảng visits
của bạn bằng cách chạy từng câu lệnh sau:
- INSERT INTO visits VALUES (1, 10.5, 'http://example.com', '2019-01-01 00:01:01');
- INSERT INTO visits VALUES (2, 40.2, 'http://example1.com', '2019-01-03 10:01:01');
- INSERT INTO visits VALUES (3, 13, 'http://example2.com', '2019-01-03 12:01:01');
- INSERT INTO visits VALUES (4, 2, 'http://example3.com', '2019-01-04 02:01:01');
Bạn sẽ thấy kết quả sau được lặp lại cho mỗi câu lệnh chèn:
Output INSERT INTO visits VALUES Ok. 1 rows in set. Elapsed: 0.004 sec.
Kết quả kết quả cho mỗi hàng cho thấy rằng bạn đã chèn thành công hàng đó vào bảng visits
.
Đến đây bạn sẽ thêm một cột bổ sung vào bảng visits
. Khi thêm hoặc xóa các cột khỏi các bảng hiện có, ClickHouse hỗ trợ cú pháp ALTER
.
Ví dụ: cú pháp cơ bản để thêm cột vào bảng như sau:
ALTER TABLE table_name ADD COLUMN column_name column_type;
Thêm một cột có tên location
sẽ lưu trữ vị trí của các lượt truy cập vào một trang web bằng cách chạy câu lệnh sau:
- ALTER TABLE visits ADD COLUMN location String;
Bạn sẽ thấy kết quả tương tự như sau:
OutputALTER TABLE visits ADD COLUMN location String Ok. 0 rows in set. Elapsed: 0.014 sec.
Kết quả hiển thị rằng bạn đã thêm cột location
thành công.
Kể từ version 19.4.3, ClickHouse không hỗ trợ cập nhật và xóa các hàng dữ liệu riêng lẻ do các ràng buộc triển khai. Tuy nhiên, ClickHouse có hỗ trợ cập nhật và xóa hàng loạt, đồng thời có cú pháp SQL riêng cho các thao tác này để làm nổi bật cách sử dụng không chuẩn của chúng.
Cú pháp sau là một ví dụ cho cập nhật hàng loạt hàng:
ALTER TABLE table_name UPDATE column_1 = value_1, column_2 = value_2 ... WHERE filter_conditions;
Bạn sẽ chạy câu lệnh sau để cập nhật cột url
của tất cả các hàng có duration
lượng nhỏ hơn 15. Nhập nó vào dấu nhắc database để thực thi:
- ALTER TABLE visits UPDATE url = 'http://example2.com' WHERE duration < 15;
Đầu ra của câu lệnh cập nhật hàng loạt sẽ như sau:
Output ALTER TABLE visits UPDATE url = 'http://example2.com' WHERE duration < 15 Ok. 0 rows in set. Elapsed: 0.003 sec.
Kết quả cho thấy rằng truy vấn cập nhật của bạn đã hoàn tất thành công. 0 rows in set
trong kết quả biểu thị rằng truy vấn không trả về bất kỳ hàng nào; đây sẽ là trường hợp cho bất kỳ truy vấn cập nhật và xóa nào.
Cú pháp ví dụ để xóa hàng loạt hàng tương tự như cập nhật hàng và có cấu trúc sau:
ALTER TABLE table_name DELETE WHERE filter_conditions;
Để kiểm tra việc xóa dữ liệu, hãy chạy câu lệnh sau để xóa tất cả các hàng có duration
lượng nhỏ hơn 5:
- ALTER TABLE visits DELETE WHERE duration < 5;
Đầu ra của câu lệnh xóa hàng loạt sẽ tương tự như:
Output ALTER TABLE visits DELETE WHERE duration < 5 Ok. 0 rows in set. Elapsed: 0.003 sec.
Đầu ra xác nhận bạn đã xóa các hàng có thời lượng dưới năm giây.
Để xóa các cột khỏi bảng của bạn, cú pháp sẽ tuân theo cấu trúc ví dụ sau:
ALTER TABLE table_name DROP COLUMN column_name;
Xóa cột location
bạn đã thêm trước đó bằng cách chạy như sau:
- ALTER TABLE visits DROP COLUMN location;
Kết quả DROP COLUMN
xác nhận bạn đã xóa cột sẽ như sau:
OutputALTER TABLE visits DROP COLUMN location String Ok. 0 rows in set. Elapsed: 0.010 sec.
Đến đây bạn đã chèn, cập nhật và xóa thành công các hàng và cột trong bảng visits
của bạn , bạn sẽ chuyển sang truy vấn dữ liệu trong bước tiếp theo.
Bước 5 - Truy vấn dữ liệu
Ngôn ngữ truy vấn của ClickHouse là một phương ngữ tùy chỉnh của SQL với các phần mở rộng và chức năng phù hợp với dung lượng công việc phân tích. Trong bước này, bạn sẽ chạy các truy vấn lựa chọn và tổng hợp để truy xuất dữ liệu và kết quả từ bảng visits
của bạn .
Truy vấn lựa chọn cho phép bạn truy xuất các hàng và cột dữ liệu được lọc theo các điều kiện mà bạn chỉ định, cùng với các tùy chọn như số hàng cần trả về. Bạn có thể chọn các hàng và cột dữ liệu bằng cú pháp SELECT
. Cú pháp cơ bản cho các truy vấn SELECT
là:
SELECT func_1(column_1), func_2(column_2) FROM table_name WHERE filter_conditions row_options;
Thực thi câu lệnh sau để truy xuất giá trị duration
và url
cho các hàng có url
là http://example.com
:
- SELECT url, duration FROM visits WHERE url = 'http://example2.com' LIMIT 2;
Bạn sẽ thấy kết quả sau:
OutputSELECT url, duration FROM visits WHERE url = 'http://example2.com' LIMIT 2 ┌─url─────────────────┬─duration─┐ │ http://example2.com │ 10.5 │ └─────────────────────┴──────────┘ ┌─url─────────────────┬─duration─┐ │ http://example2.com │ 13 │ └─────────────────────┴──────────┘ 2 rows in set. Elapsed: 0.013 sec.
Kết quả trả về hai hàng phù hợp với điều kiện bạn đã chỉ định. Đến đây bạn đã chọn các giá trị, bạn có thể chuyển sang thực hiện các truy vấn tổng hợp.
Truy vấn tổng hợp là các truy vấn hoạt động trên một tập hợp các giá trị và trả về các giá trị kết quả duy nhất. Trong database phân tích, các truy vấn này được chạy thường xuyên và được database tối ưu hóa tốt. Một số chức năng tổng hợp được ClickHouse hỗ trợ là:
count
: trả về số lượng hàng phù hợp với các điều kiện được chỉ định.sum
: trả về tổng các giá trị cột đã chọn.avg
: trả về giá trị trung bình của các giá trị cột đã chọn.
Một số hàm tổng hợp cụ thể của ClickHouse bao gồm:
uniq
: trả về số lượng gần đúng các hàng riêng biệt được so khớp.topK
: trả về một mảng các giá trị thường xuyên nhất của một cột cụ thể bằng cách sử dụng thuật toán xấp xỉ.
Để chứng minh việc thực hiện các truy vấn tổng hợp, bạn sẽ tính tổng thời lượng truy cập bằng cách chạy truy vấn sum
:
- SELECT SUM(duration) FROM visits;
Bạn sẽ thấy kết quả tương tự như sau:
Output SELECT SUM(duration) FROM visits ┌─SUM(duration)─┐ │ 63.7 │ └───────────────┘ 1 rows in set. Elapsed: 0.010 sec.
Bây giờ, hãy tính toán hai URL hàng đầu bằng cách thực thi:
- SELECT topK(2)(url) FROM visits;
Bạn sẽ thấy kết quả tương tự như sau:
OutputSELECT topK(2)(url) FROM visits ┌─topK(2)(url)──────────────────────────────────┐ │ ['http://example2.com','http://example1.com'] │ └───────────────────────────────────────────────┘ 1 rows in set. Elapsed: 0.010 sec.
Đến đây bạn đã truy vấn thành công bảng visits
của bạn , bạn sẽ xóa các bảng và database trong bước tiếp theo.
Bước 6 - Xóa bảng và database
Trong phần này, bạn sẽ xóa bảng visits
và database test
.
Cú pháp để xóa bảng theo ví dụ sau:
DROP TABLE table_name;
Để xóa bảng visits
, hãy chạy câu lệnh sau:
- DROP TABLE visits;
Bạn sẽ thấy kết quả sau tuyên bố rằng bạn đã xóa bảng thành công:
OutputDROP TABLE visits Ok. 0 rows in set. Elapsed: 0.005 sec.
Bạn có thể xóa database bằng cú pháp DROP database table_name
. Để xóa database test
, hãy thực hiện câu lệnh sau:
- DROP DATABASE test;
Kết quả kết quả cho thấy rằng bạn đã xóa database thành công:
Output DROP DATABASE test Ok. 0 rows in set. Elapsed: 0.003 sec.
Bạn đã xóa các bảng và database trong bước này. Đến đây bạn đã tạo, cập nhật và xóa database , bảng và dữ liệu trong version ClickHouse của bạn , bạn sẽ cho phép truy cập từ xa vào server database của bạn trong phần tiếp theo.
Bước 7 - Cài đặt luật firewall (Tùy chọn)
Nếu bạn định chỉ sử dụng ClickHouse local với các ứng dụng chạy trên cùng một server hoặc không bật firewall trên server của bạn , bạn không cần phải hoàn thành phần này. Nếu thay vào đó, bạn sẽ kết nối từ xa với server database ClickHouse, bạn nên làm theo bước này.
Hiện tại server của bạn đã bật firewall để vô hiệu hóa địa chỉ IP công cộng của bạn truy cập vào tất cả các cổng. Bạn sẽ hoàn thành hai bước sau để cho phép truy cập từ xa:
- Thêm luật firewall cho phép các kết nối đến cổng
8123
, là cổng HTTP mà server ClickHouse chạy.
Nếu bạn đang ở bên trong dấu nhắc database , hãy thoát nó bằng lệnh CTRL+D
Chỉnh sửa file cấu hình bằng cách thực thi:
- sudo vi /etc/clickhouse-server/config.xml
Sau đó bỏ comment chứa <!-- <listen_host>0.0.0.0</listen_host> -->
, như file sau:
... <interserver_http_host>example.yandex.ru</interserver_http_host> --> <!-- Listen specified host. use :: (wildcard IPv6 address), if you want to accept connections both with IPv4 and IPv6 from everywhere. --> <!-- <listen_host>::</listen_host> --> <!-- Same for hosts with disabled ipv6: --> <listen_host>0.0.0.0</listen_host> <!-- Default values - try listen localhost on ipv4 and ipv6: --> <!-- <listen_host>::1</listen_host> <listen_host>127.0.0.1</listen_host> --> ...
Lưu file và thoát khỏi vi
. Để áp dụng cấu hình mới, hãy khởi động lại dịch vụ bằng lệnh:
- sudo service clickhouse-server restart
Bạn sẽ thấy kết quả sau từ lệnh này:
OutputStop clickhouse-server service: DONE Start clickhouse-server service: Path to data directory in /etc/clickhouse-server/config.xml: /var/lib/clickhouse/ DONE
Thêm IP của server từ xa vào vùng được gọi là công khai:
- sudo firewall-cmd --permanent --zone=public --add-source=second_server_ip/32
Server của ClickHouse lắng nghe trên cổng 8123
cho các kết nối HTTP và cổng 9000
cho các kết nối từ clickhouse-client
. Cho phép truy cập vào cả hai cổng cho địa chỉ IP của server thứ hai của bạn bằng lệnh sau:
- sudo firewall-cmd --permanent --zone=public --add-port=8123/tcp
- sudo firewall-cmd --permanent --zone=public --add-port=9000/tcp
Bạn sẽ thấy kết quả sau cho cả hai lệnh cho thấy rằng bạn đã bật quyền truy cập vào cả hai cổng:
Outputsuccess
Đến đây bạn đã thêm các luật , hãy cập nhật firewall để các thay đổi có hiệu lực:
- sudo firewall-cmd --reload
Lệnh này cũng sẽ xuất ra thông báo success
. ClickHouse bây giờ sẽ có thể truy cập được từ IP mà bạn đã thêm. Vui lòng thêm các IP bổ sung như địa chỉ máy local của bạn nếu cần.
Để xác minh bạn có thể kết nối với server ClickHouse từ máy từ xa, trước tiên hãy làm theo các bước trong Bước 1 của hướng dẫn này trên server thứ hai và đảm bảo bạn đã cài đặt clickhouse-client
trên đó.
Đến đây bạn đã đăng nhập vào server thứ hai, hãy bắt đầu phiên client bằng cách thực hiện:
- clickhouse-client --host your_server_ip --multiline
Bạn sẽ thấy kết quả sau cho thấy rằng bạn đã kết nối thành công với server :
OutputClickHouse client version 19.4.3. Connecting to your_server_ip:9000 as user default. Connected to ClickHouse server version 19.4.3 revision 54416. hostname :)
Trong bước này, bạn đã bật quyền truy cập từ xa vào server database ClickHouse của bạn bằng cách điều chỉnh các luật firewall của bạn.
Kết luận
Bạn đã cài đặt thành công version database ClickHouse trên server của bạn và tạo database và bảng, thêm dữ liệu, thực hiện truy vấn và xóa database . Trong tài liệu của ClickHouse, bạn có thể đọc về các điểm chuẩn của họ so với các database phân tích thương mại và nguồn mở khác cũng như các tài liệu tham khảo chung. Hơn nữa tính năng ClickHouse Mời bao gồm phân phối xử lý truy vấn trên nhiều server để cải thiện hiệu suất và bảo vệ chống lại mất dữ liệu bằng cách lưu trữ dữ liệu trên khác nhau mảnh .
Các tin liên quan
Cách thu thập số liệu cơ sở hạ tầng với Metricbeat trên CentOS 72019-03-27
Các bước được đề xuất bổ sung cho server CentOS 7 mới
2019-02-20
Cách cài đặt Elasticsearch, Logstash và Kibana (Elastic Stack) trên CentOS 7
2018-12-10
Cách lấy chứng chỉ SSL Wildcard của Let's Encrypt bằng cách sử dụng CloudFlare Validation trên CentOS 7
2018-08-16
Cách cài đặt và cấu hình LEMP bằng Bộ sưu tập phần mềm trên CentOS 7
2018-04-20
Cách thiết lập khóa SSH trên CentOS 7
2018-04-12
Cách cài đặt và bảo mật Memcached trên CentOS 7
2018-03-06
Cách cài đặt Java trên CentOS và Fedora
2018-02-16
Cách theo dõi cảnh báo Nagios với Alerta trên CentOS 7
2017-09-13
Cách cài đặt MongoDB trên CentOS 7
2017-09-11