데이터베이스 설치 · 8 min read · Oct 29, 2025

ClickHouse OLAP 데이터베이스 시스템 Ubuntu 22.04 설치 방법

ClickHouse는 ClickHouse, Inc.에서 개발하고 C++로 작성된 열 지향 데이터베이스 관리 시스템입니다. 빠르고, 내결함성이 뛰어나며, 사용하기 쉽고, 매우 신뢰할 수 있는 오픈 소스 OLAP 데이터베이스 관리 시스템입니다.

ClickHouse는 온라인 분석 처리(OLDAP)를 위한 매우 빠른 데이터베이스 시스템입니다. 이를 통해 SQL 쿼리를 사용하여 실시간으로 분석 보고서를 생성할 수 있습니다.

이 튜토리얼에서는 Ubuntu 22.04 서버에 ClickHouse OLAP 데이터베이스 시스템을 설치하는 방법을 배웁니다. 또한 ClickHouse에서 인증을 설정하는 방법과 기본 사용법 및 쿼리에 대해서도 다룰 것입니다.

전제 조건

이 튜토리얼을 완료하려면 아래의 몇 가지 전제 조건이 필요합니다:

  • Ubuntu 22.04 서버 - 이 예제에서는 호스트 이름이 ‘clickhouse-server’이고 IP 주소가 ‘192.168.5.100’인 Ubuntu 시스템을 사용합니다.
  • sudo/root 관리자 권한이 있는 비루트 사용자.

시스템 설정

ClickHouse 설치를 시작하기 전에 현재 CPU가 SSE 4.2 명령어 집합을 지원하는지 확인하고 시스템에서 SWAP을 비활성화해야 합니다.

ClickHouse의 공식 사전 빌드된 바이너리 패키지는 x86(64비트) 아키텍처와 SSE 4.2에서 컴파일됩니다. 따라서 SSE 4.2를 지원하지 않는 CPU가 있는 경우 소스에서 ClickHouse를 수동으로 빌드해야 합니다.

또한 ClickHouse를 사용할 때는 특히 프로덕션 환경에서 SWAP을 비활성화하는 것이 좋습니다.

아래 명령어를 실행하여 CPU가 SSE 4.2 기능을 지원하는지 확인하십시오. CPU가 지원되는 경우 ‘SSE 4.2 supported’라는 출력을 받아야 합니다.

grep -q sse4_2 /proc/cpuinfo && echo "SSE 4.2 supported" || echo "SSE 4.2 not supported"

다음으로 아래 명령어를 실행하여 ‘/etc/fstab‘ 구성 파일을 통해 SWAP을 비활성화합니다. 이 명령어는 SWAP 구성의 시작 부분에 ‘#’를 추가하여 시스템에서 SWAP을 영구적으로 비활성화합니다.

sudo sed -i '/ swap / s/^\(.*\)$/#
1/g' /etc/fstab

이제 아래 명령어를 실행하여 현재 세션에서 SWAP을 끕니다. 그런 다음 SWAP 상태를 확인합니다.

sudo swapoff -a  
sudo free -m

SWAP이 비활성화되면 아래와 같은 출력을 받게 됩니다 - ‘total’ 필드의 SWAP 크기는 0입니다.

check environment

SSE 4.2를 지원하는 CPU와 SWAP이 비활성화된 상태에서 이제 ClickHouse OLAP 데이터베이스 시스템을 설치할 준비가 되었습니다.

ClickHouse OLAP 데이터베이스 시스템 설치

ClickHouse OLAP 데이터베이스 시스템은 여러 설치 방법을 제공합니다. Linux 배포판의 경우 ClickHouse는 Debian 기반 및 RPM 기반 배포판 모두에 대한 리포지토리를 제공합니다. 또한 ClickHouse는 Docker를 통해 설치하거나 단일 바이너리 패키지를 사용하여 설치할 수 있습니다.

이 단계에서는 공식 리포지토리를 통해 Ubuntu 22.04 시스템에 ClickHouse를 설치합니다. 따라서 ClickHouse 리포지토리를 시스템에 추가한 다음 APT를 통해 ClickHouse 패키지를 설치합니다.

먼저 아래의 apt 명령어를 실행하여 기본 종속성을 설치합니다. 프롬프트가 표시되면 y를 입력하고 ENTER를 누릅니다.

sudo apt install apt-transport-https ca-certificates dirmngr

instal dependencies

이제 아래 명령어를 실행하여 GPG 키와 ClickHouse 리포지토리를 시스템에 추가합니다. 이 예제에서는 리포지토리의 안정적인 브랜치에서 ClickHouse를 설치합니다.

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

setup repo

다음으로 아래의 apt 명령어를 통해 패키지 인덱스를 업데이트하고 새로 고칩니다.

sudo apt update

ClickHouse 리포지토리가 추가되었다는 메시지를 받게 됩니다.

update repo

이제 아래의 apt 명령어를 통해 데이터베이스 시스템으로 ‘ clickhouse-server ‘와 ‘ clickhouse-client ‘ 패키지를 설치합니다.

sudo apt install clickhouse-server clickhouse-client

확인을 위해 Y를 입력하고 ENTER를 눌러 진행합니다.

install clickhouse server

또한 ClickHouse 설치 중에 ClickHouse 기본 사용자에 대한 비밀번호를 설정하라는 메시지가 표시됩니다. ClickHouse에 대한 새 비밀번호를 입력하면 설치가 완료되면 다음 스크린샷과 같은 출력을 받게 됩니다.

setup default password

ClickHouse가 설치되면 아래의 systemctl 명령어 유틸리티를 실행하여 ClickHouse 서비스를 시작하고 활성화합니다. 이 명령어는 ClickHouse를 시작하고 부팅 시 자동으로 실행되도록 서비스를 활성화합니다.

sudo systemctl start clickhouse-server  
sudo systemctl enable clickhouse-server

ClickHouse 서비스가 실행 중인지 확인하기 위해 아래 명령어로 ClickHouse 서비스를 확인합니다.

sudo systemctl status clickhouse-server

아래와 같은 출력을 받게 됩니다 - 현재 ClickHouse 서비스의 상태는 실행 중이며 활성화되어 있으며 시작 시 자동으로 실행됩니다.

start verify ClickHouse

ClickHouse 서버 설치가 완료되었습니다. 다음 단계에서는 ClickHouse 클라이언트 애플리케이션을 통해 ClickHouse 서버에 액세스하고 ClickHouse 관리자 사용자에 대한 비밀번호 인증을 설정하는 방법을 배웁니다.

명령줄을 통한 ClickHouse 접근

ClickHouse 서버가 설치되면 설치한 ‘ clickhouse-client ‘를 통해 ClickHouse에 액세스할 수 있습니다.

‘clickhouse-client’는 ClickHouse 서버와 상호 작용하고 관리하기 위한 명령줄 인터페이스입니다. 이는 MySQL/MariaDB 서버의 ‘ mysql ‘ 클라이언트, PostgreSQL 서버의 ‘ psql ‘, MongoDB 서버의 ‘ mongod ‘와 유사합니다.

ClickHouse 서버에 액세스하려면 아래의 ‘ clickhouse-client ‘ 명령어를 사용할 수 있습니다.

sudo clickhouse-client --password

비밀번호를 입력하라는 메시지가 표시되면 설치 중에 생성한 비밀번호를 입력합니다.

로그인하면 ClickHouse 셸이 다음과 같이 표시됩니다.

connect to clickhouse

여기에서 ClickHouse 서버 v22.11에 기본 ClickHouse 사용자로 연결되었음을 확인할 수 있습니다. ClickHouse 서버는 기본적으로 localhost에서 포트 9000으로 실행됩니다.

이 시점에서 ClickHouse 서버와 클라이언트를 설치하고 ‘ clickhouse-client ‘ 명령어를 통해 ClickHouse 서버에 연결하는 방법을 배웠습니다. 다음 단계에서는 ClickHouse 서버에 대한 관리자 사용자를 설정합니다.

ClickHouse에서 관리자 사용자 설정

이 단계에서는 ClickHouse 서버에 대한 관리자 사용자를 생성합니다. 그러나 그 전에 ClickHouse 구성에서 ‘default’ 사용자에 대한 ‘계정 관리’를 활성화해야 합니다.

먼저 아래의 nano 편집기 명령어를 사용하여 구성 ‘/etc/clickhouse-server/users.d/default_password.xml’을 엽니다.

sudo nano /etc/clickhouse-server/users.d/default_password.xml

‘ 섹션 사이에 다음 줄을 추가합니다. 이렇게 하면 사용자 ‘ default ‘에 대한 ‘ 액세스 관리 ‘가 활성화됩니다.

  
      
          
            ...  
            1  
          
      

작업이 완료되면 파일을 저장하고 편집기를 종료합니다.

이제 아래의 systemctl 명령어 유틸리티를 실행하여 ClickHouse 서비스를 재시작하고 변경 사항을 적용합니다.

sudo systemctl restart clickhouse-server

이제 ‘ access_management ‘가 ‘default’ 사용자에 대해 활성화되었으므로 ClickHouse에 대한 새 관리자 사용자를 생성합니다. 새 사용자는 ClickHouse 서버의 모든 데이터베이스에 모든 권한으로 액세스할 수 있습니다.

아래의 ‘ clickhouse-client ‘ 명령어를 실행하여 ‘default’ 사용자로 ClickHouse 서버에 연결합니다.

sudo clickhouse-client --user default --password

비밀번호를 입력하라는 메시지가 표시되면 구성한 비밀번호를 입력합니다. 이제 ClickHouse 서버 콘솔을 얻고 ‘ default ‘ 사용자로 ‘ access_management ‘가 활성화된 상태로 로그인합니다.

setup clickhouse

다음으로 새 ClickHouse 사용자를 생성하기 위해 다음 쿼리를 실행합니다. 사용자 이름, 비밀번호 및 호스트 IP 주소를 변경해야 합니다. 이 예제에서는 비밀번호가 ‘password’이고 SHA256으로 해시된 새 사용자 ‘ halsey ‘를 생성합니다. ‘ HOST IP ‘ 옵션을 사용하여 ClickHouse 서버에 연결하는 데 사용할 IP 주소를 지정할 수 있습니다. 이 예제에서는 localhost 또는 ‘ 127.0.0.1 ‘에서만 허용됩니다.

CREATE USER halsey HOST IP '127.0.0.1' IDENTIFIED WITH sha256_password BY 'password';

이제 아래 쿼리를 실행하여 ClickHouse 서버의 사용자 ‘ halsey ‘에게 모든 권한을 부여합니다.

GRANT ALL ON *.* TO halsey WITH GRANT OPTION;

grant privileges

다음으로 아래 쿼리를 통해 ClickHouse 서버의 사용자 목록을 확인합니다. 새 사용자 ‘halsey’가 ClickHouse에 추가된 것을 확인할 수 있습니다.

SHOW USERS;

show users

ClickHouse 콘솔 클라이언트에서 ‘quit’를 입력하여 종료합니다.

새 데이터베이스 관리자 사용자가 생성되었으므로 ClickHouse 서버의 ‘ default ‘ 사용자에 대한 ‘ access_management ‘를 비활성화해야 합니다.

아래의 nano 편집기 명령어를 사용하여 구성 ‘ /etc/clickhouse-server/users.d/default_password.xml ‘을 엽니다.

sudo nano /etc/clickhouse-server/users.d/default_password.xml

access_management ‘ 옵션을 ‘ 0 ‘으로 변경하여 ‘ default ‘ 사용자의 ‘ 액세스 관리 ‘를 비활성화합니다.

  
      
          
            ...  
            0  
          
      

작업이 완료되면 파일을 저장하고 편집기를 종료합니다.

변경 사항을 적용하기 위해 ClickHouse 서비스를 재시작합니다.

sudo systemctl restart clickhouse-server

마지막으로 아래 명령어를 실행하여 사용자 ‘halsey’로 ClickHouse 서버에 로그인합니다. 비밀번호를 입력하라는 메시지가 표시되면 비밀번호를 입력하고 ENTER를 눌러 로그인합니다.

sudo clickhouse-client --user halsey --password

로그인하면 아래와 같은 출력을 받게 됩니다. ClickHouse의 새 관리자 사용자 ‘halsey’가 추가되었고 로그인에 성공했습니다.

connect as user

ClickHouse 서버의 새 관리자 사용자가 생성되었으므로 이제 ClickHouse를 사용하여 데이터베이스와 테이블을 생성하고 ClickHouse SQL 쿼리를 통해 데이터를 삽입하고 검색하는 방법을 배웁니다.

ClickHouse 데이터베이스 시스템의 기본 쿼리

이 단계에서는 ClickHouse 데이터베이스 시스템의 기본 쿼리를 배우게 되며, 이는 일반 SQL 쿼리와 유사합니다. 데이터베이스와 테이블을 생성하고, 데이터베이스에서 데이터를 삽입하고 검색하는 방법, 그리고 ClickHouse 서버에서 기존 데이터를 변경하는 데 사용할 수 있는 ‘ ALTER ‘ 쿼리의 기본 사용법을 배웁니다.

먼저 아래 쿼리를 실행하여 새 데이터베이스를 생성합니다. 이 예제에서는 새 데이터베이스 ‘ testdb ‘를 생성합니다.

CREATE DATABASE testdb;

create database

다음 쿼리 ‘ USE dbname’를 통해 ‘ testdb ‘로 전환합니다.

USE testdb;

use database

이제 다음 쿼리를 사용하여 새 테이블 ‘users’를 생성합니다. 테이블 ‘ users ‘는 아래와 같은 몇 가지 필드를 가집니다:

  • id는 정수 값을 저장하기 위한 ‘UInt64’ 유형입니다.
  • name은 문자열 길이를 저장하기 위한 ‘String’ 유형입니다.
  • last_login은 문자열 날짜 시간 형식 데이터를 위한 ‘DateTime’ 유형입니다.
  • 여기서 엔진은 ClickHouse에서 주로 사용되는 ‘MergeTree’입니다.
CREATE TABLE users (id UInt64, name String, jobs String, last_login DateTime) ENGINE=MergeTree() PRIMARY KEY id ORDER BY id;

create table

다음으로 아래 쿼리를 실행하여 ‘users’ 테이블에 새 데이터를 삽입합니다. 아래 쿼리에서는 ‘ users ‘ 테이블에 세 가지 다른 데이터를 삽입합니다.

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');

첫 번째 데이터를 삽입합니다.

insert data 1

두 번째 데이터를 삽입합니다.

insert data 2

세 번째 데이터를 삽입합니다.

insert data 3

아래 쿼리를 실행하여 ‘ users ‘ 테이블에서 데이터를 검색합니다. 방금 추가한 세 개의 새 데이터 필드를 확인할 수 있습니다.

SELECT * FROM users;

retrive data

데이터베이스를 생성하고, 데이터베이스로 전환하고, 테이블을 생성하고, 데이터를 삽입하고, ClickHouse OLAP 데이터베이스 시스템에서 데이터를 검색하는 방법을 배웠습니다. 다음으로 ‘ ALTER ‘ 쿼리를 사용하여 데이터를 변경하는 방법을 배웁니다.

아래 ‘ALTER TABLE’ 쿼리를 실행하여 ‘users’ 테이블의 기존 데이터를 업데이트합니다. 이 예제에서는 사용자 ‘ alex ‘의 ‘jobs’ 필드를 ‘ administrator ‘로 변경합니다.

ALTER TABLE users UPDATE jobs = 'Administrator' WHERE name = 'alex';

아래 쿼리를 통해 ‘users’ 테이블에서 새로 업데이트된 데이터를 확인합니다. 이제 사용자 ‘ alex ‘의 새 데이터가 ‘ Administrator ‘로 업데이트된 것을 확인할 수 있습니다.

SELECT * FROM users;

Change data with ALTER

이제 데이터베이스 생성 및 전환, 테이블 생성, 데이터 삽입 및 검색을 위한 ClickHouse 쿼리의 기본 사용법을 배웠습니다. 또한 ClickHouse 데이터베이스에서 기존 데이터를 변경하는 방법을 배우게 되었습니다. 이제 ClickHouse 설치를 정리합니다.

환경 정리

새 데이터베이스와 테이블이 생성되고 임의의 데이터가 삽입된 상태에서, 마지막 단계에서는 방금 생성한 데이터베이스와 테이블을 삭제하여 ClickHouse 데이터베이스 시스템 설치를 정리합니다.

다음 쿼리 ‘DROP TABLE’을 실행하여 testdb 데이터베이스에서 users 테이블을 제거합니다.

DROP TABLE users;

drop table

이제 아래의 ‘ DROP DATABASE ‘ 쿼리를 통해 ‘testdb’ 데이터베이스를 제거합니다.

DROP DATABASE testdb;

drop database

마지막으로 아래 쿼리를 통해 ClickHouse 서버의 데이터베이스 목록을 확인합니다. ‘ testdb ‘ 데이터베이스가 ClickHouse 서버에서 삭제된 것을 확인할 수 있습니다.

SHOW DATABASES;

verify database

이제 ClickHouse 설치가 정리되었고 관리자 사용자도 구성되었습니다.

결론

축하합니다! ClickHouse OLAP 데이터베이스 시스템 설치를 완료하고 ClickHouse에서 관리자 사용자를 설정하는 방법을 배웠습니다. 마지막으로 데이터베이스와 테이블을 생성하고, 데이터를 삽입하고 검색하고, 기존 데이터를 변경하고, 데이터베이스와 테이블을 정리하는 기본 쿼리에 대해서도 배웠습니다.

Share: X/Twitter LinkedIn

새 게시물을 받은 편지함에서 받기

스팸은 없습니다. 언제든지 구독 해지 가능합니다.