웹사이트 검색

Debian 11에 ClickHouse OLAP 데이터베이스 시스템을 설치하는 방법


이 페이지에서

  1. 전제 조건
  2. 시작하기\n
  3. Debian 11에 ClickHouse 설치
  4. 클릭하우스 서비스 관리\n
  5. ClickHouse 사용 방법
  6. ClickHouse 웹 UI 활성화\n
  7. ClickHouse 웹 UI 액세스
  8. 결론

ClickHouse는 무료 오픈 소스 열 기반 데이터베이스 관리 시스템입니다. 온라인 분석 처리에 사용되며 실시간으로 SQL 쿼리를 사용하여 분석 보고서를 생성할 수 있습니다. 행 대신 열로 그룹화된 블록에 레코드를 저장합니다. 따라서 쿼리를 완료하는 동안 데이터를 읽는 데 소요되는 시간이 줄어듭니다. 또한 열 기반 데이터베이스는 특정 워크로드에 대해 기존 행 기반 시스템보다 훨씬 빠르게 결과를 계산하고 반환할 수 있습니다.

이 게시물에서는 Debian 11에 ClickHoust 데이터베이스를 설치하는 방법을 보여줍니다.

전제 조건

  • Debian 11을 실행하는 서버.\n
  • 서버에 루트 암호가 구성되어 있습니다.\n

시작하기

시작하기 전에 시스템 패키지를 업데이트된 버전으로 업데이트해야 합니다. 다음 명령을 실행하여 업데이트할 수 있습니다.

apt-get update -y

모든 패키지가 업데이트되면 다음 명령을 사용하여 다른 필수 패키지를 설치합니다.

apt-get install curl gnupg2 wget git apt-transport-https ca-certificates -y

필요한 모든 패키지가 설치되면 다음 단계로 진행할 수 있습니다.

Debian 11에 ClickHouse 설치

기본적으로 ClickHouse 패키지는 Debian 11 기본 리포지토리에 포함되어 있지 않습니다. 따라서 시스템에 ClickHouse 리포지토리를 추가해야 합니다.

먼저 다음 명령을 사용하여 GPG 키를 다운로드하고 추가합니다.

apt-key adv --keyserver keyserver.ubuntu.com --recv E0C56BD4

다음과 같은 결과가 표시됩니다.

Executing: /tmp/apt-key-gpghome.WyTt1Mpvh7/gpg.1.sh --keyserver keyserver.ubuntu.com --recv E0C56BD4
gpg: key C8F1E19FE0C56BD4: public key "ClickHouse Repository Key <>" imported
gpg: Total number processed: 1
gpg:               imported: 1

다음으로 다음 명령을 사용하여 ClickHouse 리포지토리를 APT에 추가합니다.

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

다음으로 리포지토리를 업데이트하고 다음 명령을 사용하여 ClickHouse를 설치합니다.

apt-get update -y
apt-get install clickhouse-server clickhouse-client -y

설치하는 동안 아래와 같이 ClickHouse 관리자의 비밀번호를 입력하라는 메시지가 표시됩니다.

Enter password for default user: 
Password for default user is saved in file /etc/clickhouse-server/users.d/default-password.xml.
Setting capabilities for clickhouse binary. This is optional.
 chown -R clickhouse:clickhouse '/etc/clickhouse-server'

ClickHouse has been successfully installed.

Start clickhouse-server with:
 sudo clickhouse start

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

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.service → /etc/systemd/system/clickhouse-server.service.
Setting up clickhouse-client (21.12.3.32) ...

설치가 완료되면 다음 단계로 진행할 수 있습니다.

ClickHouse 서비스 관리

이제 ClickHouse 서비스를 시작하고 다음 명령을 사용하여 시스템 재부팅 시 시작되도록 설정할 수 있습니다.

systemctl start clickhouse-server 
systemctl enable clickhouse-server

이제 다음 명령을 사용하여 ClickHouse의 상태를 확인할 수 있습니다.

systemctl status clickhouse-server

다음과 같은 결과가 표시됩니다.

? clickhouse-server.service - ClickHouse Server (analytic DBMS for big data)
     Loaded: loaded (/etc/systemd/system/clickhouse-server.service; enabled; vendor preset: enabled)
     Active: active (running) since Fri 2021-12-31 11:22:57 UTC; 9s ago
   Main PID: 18152 (clckhouse-watch)
      Tasks: 206 (limit: 2341)
     Memory: 108.2M
        CPU: 931ms
     CGroup: /system.slice/clickhouse-server.service
             ??18152 clickhouse-watchdog        --config=/etc/clickhouse-server/config.xml --pid-file=/run/clickhouse-server/clickhouse-serve>
             ??18153 /usr/bin/clickhouse-server --config=/etc/clickhouse-server/config.xml --pid-file=/run/clickhouse-server/clickhouse-serve>

Dec 31 11:22:57 debian11 systemd[1]: Started ClickHouse Server (analytic DBMS for big data).
Dec 31 11:22:57 debian11 clickhouse-server[18152]: Processing configuration file '/etc/clickhouse-server/config.xml'.
Dec 31 11:22:57 debian11 clickhouse-server[18152]: Logging trace to /var/log/clickhouse-server/clickhouse-server.log
Dec 31 11:22:57 debian11 clickhouse-server[18152]: Logging errors to /var/log/clickhouse-server/clickhouse-server.err.log
Dec 31 11:22:58 debian11 clickhouse-server[18153]: Processing configuration file '/etc/clickhouse-server/config.xml'.
Dec 31 11:22:58 debian11 clickhouse-server[18153]: Saved preprocessed configuration to '/var/lib/clickhouse/preprocessed_configs/config.xml'.
Dec 31 11:22:58 debian11 clickhouse-server[18153]: Processing configuration file '/etc/clickhouse-server/users.xml'.
Dec 31 11:22:58 debian11 clickhouse-server[18153]: Merging configuration file '/etc/clickhouse-server/users.d/default-password.xml'.
Dec 31 11:22:58 debian11 clickhouse-server[18153]: Saved preprocessed configuration to '/var/lib/clickhouse/preprocessed_configs/users.xml'.

클릭하우스 사용법

이 섹션에서는 ClickHouse에 연결하고 데이터베이스 및 테이블을 만드는 방법을 보여줍니다.

먼저 다음 명령을 사용하여 ClickHouse에 연결합니다.

clickhouse-client --password

아래와 같이 기본 비밀번호를 입력하라는 메시지가 표시됩니다.

ClickHouse client version 21.12.3.32 (official build).
Password for user (default): 

Provide the password which you have set during the installation and press the Enter key. You will get the following shell:

Connecting to localhost:9000 as user default.
Connected to ClickHouse server version 21.12.3 revision 54452.

debian11 :) 

이제 다음 명령을 사용하여 testdb라는 데이터베이스를 생성합니다.

debian11 :) CREATE DATABASE testdb;

다음과 같은 결과가 표시됩니다.

CREATE DATABASE testdb

Query id: a48b3031-a363-4357-b4f9-ffd3edd73b0e

Ok.

0 rows in set. Elapsed: 0.005 sec. 

다음으로 다음 명령을 사용하여 데이터베이스를 testdb로 변경합니다.

debian11 :) USE testdb;

다음과 같은 결과가 표시됩니다.

USE testdb

Query id: 827e0d94-c3eb-46ec-ba04-97386a58e531

Ok.

0 rows in set. Elapsed: 0.001 sec. 

그런 다음 다음 명령을 사용하여 table1이라는 테이블을 만듭니다.

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

다음과 같은 결과가 표시됩니다.

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

Query id: 922f4fe1-283f-4e5d-9966-498344b2aa4d

Ok.

0 rows in set. Elapsed: 0.006 sec. 

그런 다음 다음 명령을 사용하여 테이블에 일부 값을 삽입합니다.

debian11 :) INSERT INTO table1 VALUES (1, 'jay', 'https://linux-console.net', '2021-12-31 00:01:01');

다음과 같은 결과가 표시됩니다.

INSERT INTO table1 FORMAT Values

Query id: be1c57cd-5759-47cd-8649-ce82cd0c1f7d

Ok.

1 rows in set. Elapsed: 0.005 sec. 

그런 다음 다음 명령을 사용하여 새 열을 추가합니다.

debian11 :) ALTER TABLE table1 ADD COLUMN location String;

다음과 같은 결과가 표시됩니다.

ALTER TABLE table1
    ADD COLUMN `location` String

Query id: 106fa166-afda-4598-a32c-b50da237bfe5

Ok.

0 rows in set. Elapsed: 0.007 sec. 

테이블에서 데이터를 검색하려면 다음 명령을 실행하십시오.

debian11 :) SELECT url, name FROM table1 WHERE url = 'https://linux-console.net' LIMIT 1;

다음과 같은 결과가 표시됩니다.

SELECT
    url,
    name
FROM table1
WHERE url = 'https://linux-console.net'
LIMIT 1

Query id: 8ee433ec-0eb1-4409-b9a8-7e5794b872ce

??url?????????????????????name??
? https://linux-console.net ? jay  ?
????????????????????????????????

1 rows in set. Elapsed: 0.007 sec. 

열을 제거하려면 다음 명령을 실행합니다.

debian11 :) ALTER TABLE table1 DROP COLUMN location;

테이블을 제거하려면 다음 명령을 실행하십시오.

debian11 :) DROP TABLE table1;

데이터베이스를 제거하려면 다음 명령을 실행하십시오.

debian11 :) DROP DATABASE testdb;

ClickHouse 셸을 종료하려면 다음 명령을 실행합니다.

debian11 :) exit;

ClickHouse 웹 UI 활성화

ClickHouse는 또한 데이터베이스를 관리하기 위한 웹 기반 인터페이스를 제공합니다. 그러나 기본적으로 비활성화되어 있습니다. ClickHouse 구성 파일을 편집하여 활성화할 수 있습니다.

nano /etc/clickhouse-server/config.xml

주석을 제거하고 다음 줄을 변경합니다.

 <listen_host>0.0.0.0</listen_host>
    <http_server_default_response><![CDATA[<html ng-app="SMI2"><head><base href="http://ui.tabix.io/"></head><body><div ui-view="" class="content-ui"></div><script src="http://loader.tabix.io/master.js"></script></body></html>]]></http_server_default_response>

파일을 저장하고 닫은 다음 ClickHouse 서비스를 다시 시작하여 구성 변경 사항을 적용합니다.

systemctl restart clickhouse-server

ClickHouse 웹 UI에 액세스

기본적으로 ClickHouse 웹 UI는 포트 8123에서 수신 대기합니다. 다음 명령을 사용하여 확인할 수 있습니다.

ss -antpl | grep 8123

다음 출력이 표시되어야 합니다.

LISTEN 0      4096         0.0.0.0:8123      0.0.0.0:*    users:(("clickhouse-serv",pid=18580,fd=158)) 

이제 웹 브라우저를 열고 URL http://your-server-ip:8123을 사용하여 ClickHouse 웹 UI에 액세스합니다. 다음 화면이 표시됩니다.

기본 사용자 이름과 비밀번호를 입력하고 로그인 버튼을 클릭합니다. 로그인하면 다음 화면이 표시됩니다.

결론

위 가이드에서는 Debian 11에 ClickHouse 데이터베이스 시스템을 설치하는 방법에 대해 설명했습니다. 또한 데이터베이스를 생성 및 관리하고 ClickHouse 웹 인터페이스를 활성화하는 방법도 설명했습니다. 이것이 프로덕션 환경에서 ClickHouse를 설치하는 데 도움이 되기를 바랍니다. 궁금한 점이 있으면 언제든지 문의해 주세요.