Database
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Database

Cách cài đặt và cấu hình ClickHouse trên Ubuntu 20.04

ClickHouse là gì?

ClickHouse là một DBMS hướng cột mã nguồn mở (hoặc hệ thống quản lý cơ sở dữ liệu) chủ yếu được sử dụng cho OLAP (hoặc Xử lý phân tích trực tuyến các truy vấn). Nó có khả năng tạo nhanh dữ liệu phân tích thời gian thực và báo cáo bằng cách sử dụng các truy vấn SQL. Nó có khả năng chịu lỗi, có thể mở rộng, độ tin cậy cao và chứa bộ công cụ phong phú về tính năng.

Trong cơ sở dữ liệu thông thường, dữ liệu được lưu trữ trong bảng, cột và hàng. Trong một bảng, các giá trị liên quan được lưu trữ vật lý cạnh nhau trong một hàng, điều này rất quan trọng đối với cách nó hoạt động. Đây là cách hoạt động của hầu hết các cơ sở dữ liệu kiểu chuỗi.

Một vài ví dụ về dạng cơ sở dữ liệu này là:

  • MySQL
  • Postgres
  • SQLite

Dữ liệu được lưu trữ như được hiển thị bên dưới trong cơ sở dữ liệu dạng cột:

Nó trông giống nhau, nhưng sự khác biệt như sau:các giá trị từ các cột khác nhau được lưu trữ riêng biệt, trong khi dữ liệu từ một cột được lưu trữ cùng nhau. Ví dụ về bảng hướng cột:

  • Vertica
  • InfiniDB
  • Google Dremel

Các bản ghi của DBMS như vậy lưu trữ trong các khối, được nhóm theo cột chứ không phải theo hàng. Bằng cách không tải dữ liệu cho các cột, chúng dành ít thời gian hơn để đọc dữ liệu khi chạy truy vấn, cho phép DBMS tính toán dữ liệu và trả về kết quả nhanh hơn nhiều so với cơ sở dữ liệu được nhóm theo khối. Thông thường, cơ sở dữ liệu hướng cột được áp dụng tốt nhất trong các tình huống OLAP nơi chúng thường nhanh hơn 100 lần trong việc xử lý hầu hết các truy vấn so với cơ sở dữ liệu loại chuỗi.

Như chúng ta có thể thấy từ các hình minh họa trên, OLAP cho phép chúng ta tổ chức một lượng lớn dữ liệu và thực hiện các truy vấn phức tạp theo nhiều cấp độ nhanh hơn một cơ sở dữ liệu thông thường. Do đó, nó cực kỳ hữu ích khi làm việc với lượng lớn dữ liệu đầu vào khi cần phân tích dữ liệu và hoặc phân tích kinh doanh.

Cách sử dụng SQL

ClickHouse sử dụng một phương ngữ của SQL, tương tự như Ngôn ngữ truy vấn có cấu trúc tiêu chuẩn, nhưng nó chứa các phần mở rộng bổ sung:các mảng khác nhau, hàm bậc cao hơn, cấu trúc lồng nhau, hàm để làm việc với URL và khả năng làm việc với từ điển bên ngoài, vv

Trong khi chúng tôi đạt được tốc độ và xử lý dữ liệu lớn, chúng tôi cũng mất các khía cạnh khác bao gồm các tùy chọn sau:

  • Thiếu giao dịch.
  • Loại dữ liệu mạnh cần truyền rõ ràng.
  • Phải lưu trữ dữ liệu trung gian trong RAM cho một số hoạt động.
  • Thiếu trình tối ưu hóa truy vấn chính thức.
  • Điểm đọc dữ liệu trong cơ sở dữ liệu.

Mặc dù vậy, ClickHouse vẫn thể hiện hiệu suất cao và giành chiến thắng trước nhiều đối thủ cạnh tranh. ClickHouse được phát triển để giải quyết các vấn đề trong phân tích trang web cho Yandex.Metrica, hệ thống phân tích trang web phổ biến thứ ba trên thế giới. Nó cũng được Cloudflare sử dụng để xử lý thống kê trang web cho người dùng của nó.

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

Để cài đặt, chúng tôi cần:

  • Máy chủ 2 lõi sử dụng RAM tối thiểu 2 GB
  • Hệ điều hành Ubuntu 20.04 LTS
  • Quyền truy cập vào tài khoản người dùng root (vì tất cả các hành động được thực hiện với quyền root).
Lưu ý:Nếu các lệnh được chạy với tư cách người dùng thông thường, thì lệnh sudo phải được bao gồm trong tất cả các lệnh.

Cài đặt ClickHouse trên Ubuntu 20.04

Trước khi cài đặt, chúng tôi sẽ cập nhật hệ thống và các gói trên máy chủ.

root@host:~# apt update && apt -y upgrade
Hit:1 http://by.archive.ubuntu.com/ubuntu focal InRelease
Hit:2 http://by.archive.ubuntu.com/ubuntu focal-updates InRelease
Hit:3 http://by.archive.ubuntu.com/ubuntu focal-backports InRelease
Get:4 http://security.ubuntu.com/ubuntu focal-security InRelease [109 kB]      
Hit:5 https://download.docker.com/linux/ubuntu focal InRelease                 
Hit:6 https://debian.neo4j.com stable InRelease                                
Fetched 109 kB in 0s (231 kB/s)
Reading package lists... Done
Building dependency tree       
Reading state information... Done
All packages are up to date.
Reading package lists... Done
Building dependency tree       
Reading state information... Done
Calculating upgrade... Done
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
root@host:~# 

Yandex duy trì một kho lưu trữ với phiên bản ClickHouse mới nhất, vì vậy chúng tôi cần thêm nó. Ngoài ra, hãy thêm khóa GPG để kiểm tra kho lưu trữ và cài đặt an toàn ClickHouse và các bản cập nhật trong tương lai.

root@host:~#  apt-key adv --keyserver keyserver.ubuntu.com --recv E0C56BD4
Executing: /tmp/apt-key-gpghome.5KK4WZQb0R/gpg.1.sh --keyserver keyserver.ubuntu.com --recv E0C56BD4
gpg: key C8F1E19FE0C56BD4: public key "ClickHouse Repository Key <[email protected]>" imported
gpg: Total number processed: 1
gpg:               imported: 1
root@host:~# 

Thêm kho lưu trữ vào danh sách các kho lưu trữ APK.

root@host:~# echo "deb http://repo.yandex.ru/clickhouse/deb/stable/ main/" |  tee /etc/apt/sources.list.d/clickhouse.list
deb http://repo.yandex.ru/clickhouse/deb/stable/ main/
root@host:~# 

Tiếp theo, chúng tôi cập nhật các gói máy chủ của mình.

root@host:~#  apt update
Hit:1 http://by.archive.ubuntu.com/ubuntu focal InRelease
Hit:2 http://by.archive.ubuntu.com/ubuntu focal-updates InRelease              
Hit:3 http://by.archive.ubuntu.com/ubuntu focal-backports InRelease            
Get:4 http://security.ubuntu.com/ubuntu focal-security InRelease [109 kB]      
Ign:5 http://repo.yandex.ru/clickhouse/deb/stable main/ InRelease              
Get:6 http://repo.yandex.ru/clickhouse/deb/stable main/ Release [749 B]        
Get:7 http://repo.yandex.ru/clickhouse/deb/stable main/ Release.gpg [836 B]    
Hit:8 https://download.docker.com/linux/ubuntu focal InRelease                 
Get:9 http://repo.yandex.ru/clickhouse/deb/stable main/ Packages [152 kB]
Hit:10 https://debian.neo4j.com stable InRelease       
Fetched 263 kB in 0s (536 kB/s)
Reading package lists... Done
Building dependency tree       
Reading state information... Done
All packages are up to date.
root@host:~#

Cuối cùng, chúng ta có thể cài đặt ClickHouse. Khi được nhắc, hãy nhập mật khẩu.

root@host:~#  apt install -y clickhouse-server clickhouse-client
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following additional packages will be installed:
  clickhouse-common-static
Suggested packages:
  clickhouse-common-static-dbg
The following NEW packages will be installed:
  clickhouse-client clickhouse-common-static clickhouse-server
0 upgraded, 3 newly installed, 0 to remove and 0 not upgraded.
Need to get 119 MB of archives.
After this operation, 401 MB of additional disk space will be used.
...                                           
Preconfiguring packages ...
Selecting previously unselected package clickhouse-common-static.
(Reading database ... 164995 files and directories currently installed.)
Preparing to unpack .../clickhouse-common-static_20.12.5.14_amd64.deb ...
Unpacking clickhouse-common-static (20.12.5.14) ...
Selecting previously unselected package clickhouse-client.
Preparing to unpack .../clickhouse-client_20.12.5.14_all.deb ...
Unpacking clickhouse-client (20.12.5.14) ...
Selecting previously unselected package clickhouse-server.
Preparing to unpack .../clickhouse-server_20.12.5.14_all.deb ...
Unpacking clickhouse-server (20.12.5.14) ...
Setting up clickhouse-common-static (20.12.5.14) ...
Setting up clickhouse-server (20.12.5.14) ...
ClickHouse init script has migrated to systemd. Please manually stop old server 
and restart the service:  killall clickhouse-server && sleep 5 &&  servi
ce clickhouse-server restart
Synchronizing state of clickhouse-server.service with SysV service script with /
lib/systemd/systemd-sysv-install.
Executing: /lib/systemd/systemd-sysv-install enable clickhouse-server
Created symlink /etc/systemd/system/multi-user.target.wants/clickhouse-server.se
rvice → /etc/systemd/system/clickhouse-server.service.
Copying ClickHouse binary to /usr/bin/clickhouse.new
/usr/bin/clickhouse already exists, will rename existing binary to /usr/bin/clic
khouse.old and put the new binary in place
Renaming /usr/bin/clickhouse.new to /usr/bin/clickhouse.
Symlink /usr/bin/clickhouse-server already exists but it points to /clickhouse. 
Will replace the old symlink to /usr/bin/clickhouse.
Creating symlink /usr/bin/clickhouse-server to /usr/bin/clickhouse.
Symlink /usr/bin/clickhouse-client already exists but it points to /clickhouse. 
Will replace the old symlink to /usr/bin/clickhouse.
Creating symlink /usr/bin/clickhouse-client to /usr/bin/clickhouse.
Symlink /usr/bin/clickhouse-local already exists but it points to /clickhouse. W
ill replace the old symlink to /usr/bin/clickhouse.
Creating symlink /usr/bin/clickhouse-local to /usr/bin/clickhouse.
Symlink /usr/bin/clickhouse-benchmark already exists but it points to /clickhous
e. Will replace the old symlink to /usr/bin/clickhouse.
Creating symlink /usr/bin/clickhouse-benchmark to /usr/bin/clickhouse.
Symlink /usr/bin/clickhouse-copier already exists but it points to /clickhouse. 
Will replace the old symlink to /usr/bin/clickhouse.
Creating symlink /usr/bin/clickhouse-copier to /usr/bin/clickhouse.
Symlink /usr/bin/clickhouse-obfuscator already exists but it points to /clickhou
se. Will replace the old symlink to /usr/bin/clickhouse.
Creating symlink /usr/bin/clickhouse-obfuscator to /usr/bin/clickhouse.
Creating symlink /usr/bin/clickhouse-git-import to /usr/bin/clickhouse.
Symlink /usr/bin/clickhouse-compressor already exists but it points to /clickhou
se. Will replace the old symlink to /usr/bin/clickhouse.
Creating symlink /usr/bin/clickhouse-compressor to /usr/bin/clickhouse.
Symlink /usr/bin/clickhouse-format already exists but it points to /clickhouse. 
Will replace the old symlink to /usr/bin/clickhouse.
Creating symlink /usr/bin/clickhouse-format to /usr/bin/clickhouse.
Symlink /usr/bin/clickhouse-extract-from-config already exists but it points to 
/clickhouse. Will replace the old symlink to /usr/bin/clickhouse.
Creating symlink /usr/bin/clickhouse-extract-from-config to /usr/bin/clickhouse.
Creating clickhouse group if it does not exist.
 groupadd -r clickhouse
Creating clickhouse user if it does not exist.
 useradd -r --shell /bin/false --home-dir /nonexistent -g clickhouse clickhouse
Will set ulimits for clickhouse user in /etc/security/limits.d/clickhouse.conf.
Creating config directory /etc/clickhouse-server/config.d that is used for tweak
s of main server configuration.
Creating config directory /etc/clickhouse-server/users.d that is used for tweaks
 of users configuration.
Config file /etc/clickhouse-server/config.xml already exists, will keep it and e
xtract path info from it.
/etc/clickhouse-server/config.xml has /var/lib/clickhouse/ as data path.
/etc/clickhouse-server/config.xml has /var/log/clickhouse-server/ as log path.
Users config file /etc/clickhouse-server/users.xml already exists, will keep it 
and extract users info from it.
 chown --recursive clickhouse:clickhouse '/etc/clickhouse-server'
Creating log directory /var/log/clickhouse-server/.
Creating data directory /var/lib/clickhouse/.
Creating pid directory /var/run/clickhouse-server.
 chown --recursive clickhouse:clickhouse '/var/log/clickhouse-server/'
 chown --recursive clickhouse:clickhouse '/var/run/clickhouse-server'
 chown clickhouse:clickhouse '/var/lib/clickhouse/'
Password for default user is already specified. To remind or reset, see /etc/cli
ckhouse-server/users.xml and /etc/clickhouse-server/users.d.
Setting capabilities for clickhouse binary. This is optional.
 command -v setcap >/dev/null && echo > /tmp/test_setcap.sh && chmod a+x /tmp/te
st_setcap.sh && /tmp/test_setcap.sh && setcap 'cap_net_admin,cap_ipc_lock,cap_sy
s_nice+ep' /tmp/test_setcap.sh && /tmp/test_setcap.sh && rm /tmp/test_setcap.sh 
&& setcap 'cap_net_admin,cap_ipc_lock,cap_sys_nice+ep' /usr/bin/clickhouse || ec
ho "Cannot set 'net_admin' or 'ipc_lock' or 'sys_nice' capability for clickhouse
 binary. This is optional. Taskstats accounting will be disabled. To enable task
stats accounting you may add the required capability later manually."

ClickHouse has been successfully installed.

Start clickhouse-server with:
 clickhouse start

Start clickhouse-client with:
 clickhouse-client --password

Setting up clickhouse-client (20.12.5.14) ...
Processing triggers for systemd (245.4-4ubuntu3.3) ...
root@host:~# 

Bắt đầu dịch vụ ClickHouse

Bây giờ chúng ta đã cài đặt ClickHouse, hãy chạy nó ở chế độ nền.

root@host:~#  service clickhouse-server start
root@host:~# 

Xác minh trạng thái

Trong bước này, chúng tôi chỉ cần kiểm tra để đảm bảo rằng mọi thứ đang hoạt động như mong đợi.

root@host:~#  service clickhouse-server status
● clickhouse-server.service - ClickHouse Server (analytic DBMS for big data)
     Loaded: loaded (/etc/systemd/system/clickhouse-server.service; enabled; ve>
     Active: active (running) since Wed 2020-12-30 22:08:26 +03; 25s ago
   Main PID: 5553 (clickhouse-serv)
      Tasks: 48 (limit: 9489)
     Memory: 45.8M
     CGroup: /system.slice/clickhouse-server.service
             └─5553 /usr/bin/clickhouse-server --config=/etc/clickhouse-server/>

сне 30 22:08:26 host clickhouse-server[5553]: Include not found: clickhouse_com>
сне 30 22:08:26 host clickhouse-server[5553]: Logging trace to /var/log/clickho>
сне 30 22:08:26 host clickhouse-server[5553]: Logging errors to /var/log/clickh>
сне 30 22:08:26 host clickhouse-server[5553]: Processing configuration file '/e>
сне 30 22:08:26 host clickhouse-server[5553]: Include not found: networks
сне 30 22:08:26 host clickhouse-server[5553]: Saved preprocessed configuration >
сне 30 22:08:28 host clickhouse-server[5553]: Processing configuration file '/e>
сне 30 22:08:28 host clickhouse-server[5553]: Include not found: clickhouse_rem>
сне 30 22:08:28 host clickhouse-server[5553]: Include not found: clickhouse_com>
сне 30 22:08:28 host clickhouse-server[5553]: Saved preprocessed configuration >
lines 1-19/19 (END)

Những dòng dưới đây là những dòng chúng ta cần chú ý.

   Loaded: loaded (/etc/systemd/system/clickhouse-server.service; enabled; ve>
     Active: active (running) since Wed 2020-12-30 22:08:26 +03; 25s ago

Định cấu hình tường lửa

Nếu bạn không sử dụng tường lửa, hãy bỏ qua bước này. Nếu bạn định kết nối từ xa và đã bật tường lửa, thì bước này là cần thiết. Mở và chỉnh sửa tệp cấu hình, đồng thời bỏ ghi chú dòng bên dưới.

<!-- <listen_host>0.0.0.0</listen_host> →

Sau khi chỉnh sửa hoàn tất, hãy lưu tệp bằng Ctrl + S Ctrl + X rồi khởi động lại dịch vụ ClickHouse.

root@host:~#  service clickhouse-server restart
root@host:~# 

Cổng mở

Tiếp theo, mở cổng 8123 trong tường lửa để cho phép truy cập địa chỉ IP của bạn.

ufw allow from YOUR_IP_SERVER/32 to any port 8123

Sau đó, mở cổng 9000 cho clickhouse-client’s Địa chỉ IP.

 root@host:~#  ufw allow from 192.168.13.1/32 to any port 8123
Rules updated
root@host:~# 
root@host:~#  ufw allow from 192.168.13.1/32 to any port 9000
Rules updated
root@host:~#  

Xác minh kết nối

Để kiểm tra xem mọi thứ có hoạt động khi kết nối từ xa hay không, hãy sử dụng truy vấn sau.

clickhouse-client --host 192.168.13.1 --password
root@host:~# clickhouse-client --host 192.168.13.1 --password
Password for user (default):
Connecting to 192.168.13.1:9000 as user default.
Connected to ClickHouse server version 20.12.5 revision 54442.

host :)

Học các lệnh và tương tác cơ sở

Trong ClickHouse, chúng ta có thể tạo và thả cơ sở dữ liệu bằng cách sử dụng cú pháp SQL đã sửa đổi. Hãy cùng xem các ví dụ dưới đây. Đầu tiên, hãy kết nối với ClickHouse.

root@host:~# clickhouse-client
ClickHouse client version 20.12.5.14 (official build).
Connecting to localhost:9000 as user default.
Connected to ClickHouse server version 20.12.5 revision 54442.

host :)  

Tạo cơ sở dữ liệu

Khi chúng ta đang ở trong dòng lệnh ClickHouse, chúng ta tạo một cơ sở dữ liệu có tên là liquidweb bằng cú pháp sau.

host :) CREATE DATABASE liquidweb;

CREATE DATABASE liquidweb

Query id: 9169dbaa-402e-4d37-828f-5fde43d4a91d

Ok.

0 rows in set. Elapsed: 0.004 sec. 

host :) 

Trong ClickHouse, bảng gần giống như trong các cơ sở dữ liệu khác với tập hợp dữ liệu liên quan ở định dạng có cấu trúc. Chúng tôi có thể chỉ định các cột và loại của chúng, thêm hàng và thực hiện các loại truy vấn khác nhau đối với DB.

Tạo bảng

Trước khi chúng tôi tạo một bảng, điều quan trọng là phải biết và hiểu các loại cột có sẵn để sử dụng. Các loại cột sau là khả thi:

  • UInt64 - Bảng này được sử dụng để lưu trữ các số nguyên từ 0 đến 18446744073709551615.
  • Float64 - Mỗi bảng sử dụng Float64 có thể lưu trữ các số dấu phẩy động như 10.5, 18754.067, v.v.
  • Chuỗi - Ở đây, bảng chuỗi thay thế VARCHAR, BLOB, CLOB và các loại khác từ các DBMS khác nhau
  • Ngày - Bảng này dùng để lưu trữ ngày tháng ở định dạng YYYY-MM-DD.
  • DateTime - Ở đây, bảng DateTime được sử dụng để lưu trữ ngày và giờ ở định dạng YYYY-MM-DD HH:MM:SS chính xác hơn

Cấu trúc dữ liệu

ClickHouse xác định cấu trúc của dữ liệu cơ bản bằng cách mô tả dữ liệu chính xác, khả năng truy vấn bảng, các chế độ truy cập đồng thời vào bảng và hỗ trợ các chỉ mục. ClickHouse có các khả năng khác nhau phù hợp với các điều kiện sử dụng khác nhau.

MergeTree

Cơ chế được sử dụng rộng rãi nhất là hoạt động của công cụ bảng được gọi là MergeTree . Chức năng này được thiết kế để chèn một lượng lớn dữ liệu vào bảng. Nó rất được khuyến khích sử dụng cho cơ sở dữ liệu sản xuất do hỗ trợ được tối ưu hóa để chèn một lượng lớn nội dung thời gian thực, cũng như độ tin cậy và hỗ trợ truy vấn của nó.

Chọn cơ sở dữ liệu

Hãy tiến hành thực hành thêm. Đầu tiên, hãy chọn một cơ sở dữ liệu mà chúng ta sẽ tạo một bảng.

host :) USE liquidweb;

USE liquidweb

Query id: aba15bcb-224b-426d-9f74-350a88346115

Ok.

0 rows in set. Elapsed: 0.001 sec. 

host :) 

Tạo bảng

Tiếp theo, chúng tôi tạo một bảng có tên là đồng nghiệp .

host :) CREATE TABLE colleagues  (  id UInt64,  name String,  url String,  created DateTime ) ENGINE = MergeTree() PRIMARY KEY id ORDER BY id;

CREATE TABLE colleagues
(
    `id` UInt64,
    `name` String,
    `url` String,
    `created` DateTime
)
ENGINE = MergeTree()
PRIMARY KEY id
ORDER BY id

Query id: 08223a2f-d365-43cb-8627-d22674d1c47c

Ok.

0 rows in set. Elapsed: 0.004 sec. 

host :) 

Hãy xem lại những giá trị nào chúng tôi đã thêm vào.

  • id - Đây là cột khóa chính. Mỗi dòng phải có một mã định danh duy nhất.
  • tên - Một cột có giá trị chuỗi.
  • url - Một cột có giá trị chuỗi chứa liên kết đến hồ sơ.
  • đã tạo - Ngày nhân viên xuất hiện trong hệ thống.

Sau khi xác định các cột trong bảng, chúng tôi sẽ chỉ định MergeTree cơ chế lưu trữ bảng. Tiếp theo, chúng tôi chỉ định các cột và sau đó xác định các cột cấp bảng.

  • TỪ KHÓA CHÍNH - Chỉ định cột khóa chính.
  • ĐẶT HÀNG THEO - Các giá trị bảng đã lưu trữ được sắp xếp theo cột id.

Thêm dữ liệu

Bây giờ chúng ta có thể làm việc với bảng. Hãy thêm một số dữ liệu vào đồng nghiệp bảng.

host :) INSERT INTO colleagues VALUES (1, 'margaret', 'http://1.com', '2021-01-01 00:01:01');

INSERT INTO colleagues VALUES

Query id: 42dbde52-6d7e-4849-ac5e-280590f3232d

Ok.

1 rows in set. Elapsed: 0.002 sec. 

host :) 

Hãy thêm nhiều dữ liệu hơn.

host :) INSERT INTO colleagues VALUES (2, 'john', 'http://2.com', '2021-01-01 00:01:01');

INSERT INTO colleagues VALUES

Query id: a9b34f78-2caa-4b41-bd4e-91bf8049a04b

Ok.

1 rows in set. Elapsed: 0.001 sec. 

host :)
host :) INSERT INTO colleagues VALUES (3, 'kingsman', 'http://3.com', '2021-01-01 00:01:01');

INSERT INTO colleagues VALUES

Query id: df5133c1-b404-4569-8123-f0728c172c87

Ok.

1 rows in set. Elapsed: 0.003 sec. 

host :) 
 host :) INSERT INTO colleagues VALUES (4, 'tor', 'http://4.com', '2021-01-01 00:01:01');

INSERT INTO colleagues VALUES

Query id: 14f56b86-fae7-4af2-b506-18c351b92853

Ok.

1 rows in set. Elapsed: 0.001 sec. 

host :)  

Thêm cột

Trong khi chúng tôi thêm một số giá trị, chúng tôi nhận ra rằng chúng tôi đã quên thêm một cột khác, vì vậy chúng tôi phải thêm nó vào bên dưới.

host :) ALTER TABLE colleagues ADD COLUMN location String;

ALTER TABLE colleagues
    ADD COLUMN `location` String


Query id: 002900f4-9fd9-4302-a10f-6aa5b818f9ae

Ok.

0 rows in set. Elapsed: 0.005 sec. 

host :)

Chỉnh sửa dữ liệu

Bây giờ chúng ta cần thay đổi dữ liệu cũ bằng cách nào đó. Trong phiên bản 19.13, ClickHouse không hỗ trợ cập nhật và xóa các hàng riêng lẻ do cách triển khai của nó. Tuy nhiên, ClickHouse hỗ trợ cập nhật và xóa hàng loạt và cũng có cú pháp riêng cho các hoạt động này.

Bây giờ chúng tôi cập nhật các dòng của mình.

host :) ALTER TABLE colleagues UPDATE url ='http://1.com' WHERE id < 15;

ALTER TABLE colleagues
    UPDATE url = 'http://1.com' WHERE id < 15


Query id: 6fc6620e-fd90-43aa-8d7f-8a34cfb73650

Ok.

0 rows in set. Elapsed: 0.004 sec. 

host :)

Sau WHERE , chúng tôi đặt các thông số bộ lọc và cũng có thể xóa các thông số không cần thiết.

host :) ALTER TABLE colleagues  DELETE WHERE id < 2;

ALTER TABLE colleagues
    DELETE WHERE id < 2


Query id: 354e27fc-70c9-480b-bb1d-067591924c6e

Ok.

0 rows in set. Elapsed: 0.005 sec. 

host :) 

Xóa cột

Để xóa các cột khỏi bảng, hãy làm như sau.

host :) ALTER TABLE colleagues DROP COLUMN location;

ALTER TABLE colleagues
    DROP COLUMN location


Query id: da361478-0619-4c31-8422-f59ee14a57d7

Ok.

0 rows in set. Elapsed: 0.008 sec. 

host :) 

Truy xuất dữ liệu qua truy vấn

Tiếp theo, chúng tôi chuyển sang chứng minh khả năng truy xuất dữ liệu bằng cách sử dụng các truy vấn. ClickHouse sử dụng cú pháp SQL ở đây với các bổ sung của nó. Hãy cố gắng thu thập một số thông tin cơ bản.

host :) SELECT url, name FROM colleagues WHERE url = 'http://1.com' LIMIT 1;

SELECT
    url,
    name
FROM colleagues WHERE url = 'http://1.com'
LIMIT 1

Query id: 8a5cbf9a-f187-440c-9a60-2d23029b4bd1

┌─url──────────┬─name─┐
│ http://1.com │ john │
└──────────────┴──────┘

1 rows in set. Elapsed: 0.003 sec. 

host :) 
  • CHỌN - Chọn một số tham số.
  • TỪ - Xác định bảng chúng tôi sẽ nhận các giá trị.
  • WHERE - Đặt các thông số và bộ lọc liên quan đến giá trị nào và giá trị bao nhiêu.

Chúng tôi cũng có thể sử dụng các tham số tìm kiếm bổ sung, chẳng hạn như:

  • số lượng - Trả về số hàng phù hợp với các điều kiện.
  • sum - Trả về tổng các giá trị đã chọn.
  • avg - Trả về giá trị trung bình của các mục đã chọn.
  • uniq - Trả lại số hàng đơn lẻ gần đúng đã 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 một thuật toán.

Bảng thả và Cơ sở dữ liệu

Tiếp theo, chúng ta chuyển sang loại bỏ các bảng và cơ sở dữ liệu. Đầu tiên, hãy xóa một bảng.

host :) DROP TABLE colleagues;

DROP TABLE colleagues

Query id: 21048fe4-d379-48ac-b9a7-71f0b3fe93e1

Ok.

0 rows in set. Elapsed: 0.001 sec. 

host :) 

Bây giờ, hãy xóa cơ sở dữ liệu.

host :) DROP DATABASE liquidweb;

DROP DATABASE liquidweb

Query id: 4ad9a51a-f89d-4be5-be9c-92b8cb38614b

Ok.

0 rows in set. Elapsed: 0.001 sec. 

host :) 

Để thoát khỏi cơ sở dữ liệu, hãy nhập giá trị 'thoát' tiêu chuẩn.

host :) exit
Bye.
root@host:~# 

Tạo người dùng

Bây giờ chúng ta đã bao gồm tất cả các tính năng cơ bản, chúng ta sẽ tạo một số người dùng cơ sở dữ liệu. Tệp cấu hình ClickHouse có thể được đặt trong đường dẫn sau /etc/clickhouse-client/config.xml. Truy cập tệp này, mở tệp bằng vim hoặc nano và chỉ định các giá trị theo thứ tự sau.

<config>    <user>username</user>    <password>password</password>    <secure>False</secure></config>

Chúng tôi sẽ sử dụng trình chỉnh sửa nano để chỉnh sửa tệp.

root@host:~#  nano /etc/clickhouse-client/config.xml
root@host:~# 

Nhập thông tin bắt buộc và sau đó lưu các thay đổi bằng Ctrl + S Ctrl + X chìa khóa

Kết nối với ClickHouse

Cuối cùng, để kết nối với ClickHouse, hãy nhập lệnh sau vào terminal.

root@host:~# clickhouse-client -u margaret --password
ClickHouse client version 20.12.5.14 (official build).
Password for user (margaret): 
Connecting to localhost:9440 as user margaret.
Connected to ClickHouse server version 20.12.5 revision 54442.

host :) 

Kết luận

Trong hướng dẫn này, chúng tôi đã khám phá ra nhiều khía cạnh của ClickHouse. Chúng tôi đã khám phá ra cách thức hoạt động của nó, khi nào nó có thể được áp dụng và nó hữu ích trong những trường hợp nào. Chúng tôi đã xác định cách thêm khóa, kho lưu trữ và sau đó cài đặt phần mềm ClickHouse. Tương tự như vậy, sau đó chúng tôi thiết lập và định cấu hình tường lửa để cho phép truy cập. Hơn nữa, chúng tôi đã tạo cơ sở dữ liệu và bảng, thêm cột và dữ liệu, sau đó cập nhật và xóa chúng. Cuối cùng, chúng tôi đã trình bày cách tạo người dùng trong tệp cấu hình.

Chúng tôi tự hào vì đã trở thành Những con người hữu ích nhất trong Hosting ™! Nhóm hỗ trợ của chúng tôi bao gồm các kỹ thuật viên Linux giàu kinh nghiệm và quản trị viên hệ thống tài năng, những người có kiến ​​thức sâu rộng về nhiều công nghệ lưu trữ web, bao gồm cả những công nghệ được thảo luận trong bài viết này.

Nếu bạn có bất kỳ câu hỏi nào liên quan đến bài viết này, chúng tôi luôn sẵn sàng cung cấp thông tin cho bất kỳ câu hỏi nào liên quan đến bài viết này, 24 giờ một ngày, 7 ngày một tuần 365 ngày một năm.

Nếu bạn là máy chủ VPS được quản lý hoàn toàn, Máy chủ dành riêng cho đám mây, Đám mây riêng của VMWare, Máy chủ riêng của công ty mẹ, Máy chủ đám mây được quản lý hoặc chủ sở hữu máy chủ chuyên dụng và bạn không thoải mái khi thực hiện bất kỳ bước nào đã nêu, Chúng tôi có thể liên hệ với chúng tôi qua điện thoại tại @ 800.580.4985, một tấm vé trò chuyện hoặc hỗ trợ để hỗ trợ bạn trong quá trình này.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. INTERSECT SQL

  2. Cải thiện giải pháp trung bình hàng đầu / giảm dần hàng đầu

  3. Lập bản đồ và tạo mặt nạ dữ liệu gia tăng:Phát hiện các thay đổi và cập nhật…

  4. Hiểu hỗ trợ Java cho sự bền bỉ với JPA

  5. Thông tin thêm về Giới thiệu các múi giờ trong Dự án tồn tại lâu dài