메인 콘텐츠로 건너뛰기
ClickHouse를 가장 빠르고 쉽게 시작하는 방법은 ClickHouse Cloud에서 새 서비스를 만드는 것입니다. 이 빠른 시작 가이드에서는 3단계만으로 설정을 완료합니다.
1

ClickHouse 서비스 생성

ClickHouse Cloud에서 무료 ClickHouse 서비스를 생성하려면 다음 단계에 따라 가입하면 됩니다:
  • 가입 페이지에서 계정을 생성합니다
  • 이메일 또는 Google SSO, Microsoft SSO, AWS Marketplace, Google Cloud, Microsoft Azure를 통해 가입할 수 있습니다
  • 이메일과 비밀번호로 가입하는 경우, 이메일로 받은 링크를 통해 24시간 이내에 이메일 주소를 인증해야 합니다
  • 방금 생성한 사용자 이름과 비밀번호로 로그인합니다

로그인하면 ClickHouse Cloud에서 새 ClickHouse 서비스 생성을 안내하는 온보딩 마법사가 시작됩니다. 서비스를 배포할 리전(Region)을 선택하고 새 서비스의 이름을 지정합니다:
기본적으로 새 조직은 Scale tier에 배치되며, 각각 4 VCPU와 16 GiB RAM을 갖는 3개의 레플리카가 생성됩니다. 수직 자동 스케일링(Vertical autoscaling)은 Scale tier에서 기본적으로 활성화됩니다. 조직 티어는 나중에 ‘Plans’ 페이지에서 변경할 수 있습니다.필요한 경우 레플리카가 스케일링할 최소 크기와 최대 크기를 지정하여 서비스 리소스를 사용자 지정합니다. 준비가 되면 Create service를 선택합니다.
축하합니다! ClickHouse Cloud 서비스가 실행 중이며 온보딩이 완료되었습니다. 데이터를 수집하고 쿼리하는 방법에 대한 자세한 내용은 계속 읽어보십시오.
2

ClickHouse에 연결하기

ClickHouse에 연결하는 방법은 2가지입니다:
  • 웹 기반 SQL 콘솔을 사용해 연결
  • 애플리케이션에서 연결

SQL 콘솔을 사용해 연결

빠르게 시작할 수 있도록, ClickHouse는 온보딩을 완료하면 자동으로 이동되는 웹 기반 SQL 콘솔을 제공합니다.쿼리 탭을 생성한 다음 간단한 쿼리를 입력하여 연결이 정상적으로 작동하는지 확인하십시오:
SHOW databases
목록에 4개의 데이터베이스와, 추가한 데이터베이스가 있다면 함께 표시되어야 합니다.
이제 완료되었습니다. 새 ClickHouse 서비스를 사용할 준비가 되었습니다!

앱과 연결

탐색 메뉴에서 Connect 버튼을 누르세요. 모달이 열리며 서비스의 자격 증명과 인터페이스 또는 언어 클라이언트로 연결하는 방법이 안내됩니다.
언어 클라이언트가 보이지 않으면 Integrations 목록을 확인하세요.
3

데이터 추가

ClickHouse는 데이터가 있어야 제 역할을 합니다! 데이터를 추가하는 방법은 여러 가지가 있으며, 대부분은 탐색 메뉴에서 접근할 수 있는 데이터 소스(Data Sources) 페이지에서 확인하실 수 있습니다.
다음 방법으로 데이터를 업로드할 수 있습니다.
  • ClickPipe를 설정하여 S3, Postgres, Kafka, GCS와 같은 데이터 소스의 데이터 수집을 시작하세요
  • SQL 콘솔 사용하기
  • ClickHouse client 사용
  • 파일 업로드 - 지원 포맷은 JSON, CSV 및 TSV입니다
  • 파일 URL을 통해 데이터 업로드

ClickPipes

ClickPipes는 다양한 소스에서 데이터를 수집하는 작업을 몇 번의 클릭만으로 간편하게 처리할 수 있는 관리형 통합 플랫폼입니다. 가장 까다로운 워크로드를 위해 설계된 ClickPipes의 견고하고 확장 가능한 아키텍처는 일관된 성능과 안정성을 보장합니다. ClickPipes는 장기적인 스트리밍 용도는 물론 일회성 데이터 로딩 작업에도 활용할 수 있습니다.

SQL 콘솔을 사용하여 데이터 추가

대부분의 데이터베이스 관리 시스템과 마찬가지로, ClickHouse는 테이블을 데이터베이스로 논리적으로 그룹화합니다. ClickHouse에서 새 데이터베이스를 생성하려면 CREATE DATABASE 명령을 사용하세요:
CREATE DATABASE IF NOT EXISTS helloworld
helloworld 데이터베이스에 my_first_table이라는 이름의 테이블을 생성하려면 다음 명령을 실행하십시오:
CREATE TABLE helloworld.my_first_table
(
    user_id UInt32,
    message String,
    timestamp DateTime,
    metric Float32
)
ENGINE = MergeTree()
PRIMARY KEY (user_id, timestamp)
위의 예시에서 my_first_table은 네 개의 컬럼을 가진 MergeTree 테이블입니다:
  • user_id: 32비트 부호 없는 정수 (UInt32)
  • message: String 데이터 타입으로, 다른 데이터베이스 시스템에서 사용하는 VARCHAR, BLOB, CLOB 등의 타입을 대체합니다
  • timestamp: 시간상 특정 시점을 나타내는 DateTime 값입니다
  • metric: 32비트 부동 소수점 수(Float32)
테이블 엔진테이블 엔진은 다음 사항을 결정합니다:
  • 데이터의 저장 방식과 위치
  • 지원되는 쿼리
  • 데이터 복제 여부

선택할 수 있는 테이블 엔진은 많지만, 단일 노드 ClickHouse 서버의 단순한 테이블에는 MergeTree를 사용하는 경우가 일반적입니다.

프라이머리 키(Primary Key) 간략 소개

계속 진행하기 전에, ClickHouse에서 기본 키(primary key)가 어떻게 동작하는지 이해하는 것이 중요합니다(기본 키의 구현 방식이 예상과 다를 수 있습니다!):
  • ClickHouse에서 기본 키(primary key)는 테이블의 각 행에 대해 고유하지 않습니다
ClickHouse 테이블의 프라이머리 키는 데이터가 디스크에 기록될 때의 정렬 방식을 결정합니다. 8,192개의 행 또는 10MB의 데이터마다(인덱스 세분화 수준이라고 함) 프라이머리 키 인덱스 파일에 항목이 하나 생성됩니다. 이 세분화 수준 개념을 통해 메모리에 쉽게 적재할 수 있는 희소 인덱스가 만들어지며, 그래뉼은 SELECT 쿼리 처리 시 읽히는 최소 단위의 컬럼 데이터 묶음을 나타냅니다.기본 키(primary key)는 PRIMARY KEY 매개변수를 사용하여 정의할 수 있습니다. PRIMARY KEY를 지정하지 않고 테이블을 정의하면, ORDER BY 절에 지정된 Tuple이 키로 사용됩니다. PRIMARY KEYORDER BY를 모두 지정하는 경우, 기본 키는 정렬 순서의 부분 집합이어야 합니다.프라이머리 키(primary key)는 정렬 키(sorting key)이기도 하며 (user_id, timestamp) 튜플입니다. 따라서 각 컬럼 파일에 저장된 데이터는 user_id 먼저, 그 다음 timestamp 순으로 정렬됩니다.ClickHouse의 핵심 개념을 더 자세히 알아보려면 “핵심 개념”을 참조하십시오.

테이블에 데이터 삽입하기

ClickHouse에서 익숙한 INSERT INTO TABLE 명령을 사용할 수 있지만, MergeTree 테이블에 데이터를 삽입할 때마다 스토리지에 **파트(part)**가 생성된다는 점을 반드시 이해해야 합니다.
ClickHouse 모범 사례배치당 가능한 한 많은 행을 삽입하십시오. 한 번에 수만 개, 심지어 수백만 개의 행도 괜찮습니다. 걱정하지 마십시오. ClickHouse는 그 정도 규모는 쉽게 처리할 수 있으며, 서비스로 전송되는 쓰기 요청 수를 줄여 비용을 절감할 수 있습니다.

간단한 예시이지만, 한 번에 두 개 이상의 행을 삽입해 보겠습니다:
INSERT INTO helloworld.my_first_table (user_id, message, timestamp, metric) VALUES
    (101, 'Hello, ClickHouse!',                                 now(),       -1.0    ),
    (102, 'Insert a lot of rows per batch',                     yesterday(), 1.41421 ),
    (102, 'Sort your data based on your commonly-used queries', today(),     2.718   ),
    (101, 'Granules are the smallest chunks of data read',      now() + 5,   3.14159 )
timestamp 컬럼은 다양한 DateDateTime 함수를 사용해 채워집니다. ClickHouse에는 유용한 함수가 수백 개 있으며, Functions 섹션에서 확인할 수 있습니다.
제대로 작동했는지 확인해 보겠습니다:
SELECT * FROM helloworld.my_first_table

clickhouse client를 사용하여 데이터 추가

clickhouse client라는 커맨드라인 도구를 사용하여 ClickHouse Cloud 서비스에 연결할 수도 있습니다. 왼쪽 메뉴에서 Connect를 클릭하면 연결 정보를 확인할 수 있습니다. 대화 상자의 드롭다운에서 Native를 선택하십시오:
  1. ClickHouse를 설치하세요.
  2. 다음 명령을 실행하되, 호스트명, 사용자 이름, 비밀번호는 해당 값으로 바꾸십시오:
./clickhouse client --host HOSTNAME.REGION.CSP.clickhouse.cloud \
--secure --port 9440 \
--user default \
--password <password>
스마일 이모티콘 프롬프트가 나타나면 쿼리를 실행할 준비가 완료된 것입니다!
:)
  1. 다음 쿼리를 실행해 보세요:

SELECT *
FROM helloworld.my_first_table
ORDER BY timestamp
응답이 깔끔한 테이블 형식으로 반환되는 것을 확인할 수 있습니다:
┌─user_id─┬─message────────────────────────────────────────────┬───────────timestamp─┬──metric─┐
│     102 │ Insert a lot of rows per batch                     │ 2022-03-21 00:00:00 │ 1.41421 │
│     102 │ Sort your data based on your commonly-used queries │ 2022-03-22 00:00:00 │   2.718 │
│     101 │ Hello, ClickHouse!                                 │ 2022-03-22 14:04:09 │      -1 │
│     101 │ Granules are the smallest chunks of data read      │ 2022-03-22 14:04:14 │ 3.14159 │
└─────────┴────────────────────────────────────────────────────┴─────────────────────┴─────────┘

4 rows in set. Elapsed: 0.008 sec.
  1. FORMAT 절을 추가하여 ClickHouse에서 지원되는 다양한 출력 형식 중 하나를 지정합니다:

SELECT *
FROM helloworld.my_first_table
ORDER BY timestamp
FORMAT TabSeparated
위 쿼리의 출력은 탭으로 구분된 형식으로 반환됩니다:
쿼리 ID: 3604df1c-acfd-4117-9c56-f86c69721121

102 배치당 많은 행 삽입      2022-03-21 00:00:00     1.41421
102 자주 사용하는 쿼리를 기준으로 데이터 정렬  2022-03-22 00:00:00     2.718
101 안녕하세요, ClickHouse!  2022-03-22 14:04:09     -1
101 그래뉼은 읽는 데이터를 읽는 가장 작은 청크입니다       2022-03-22 14:04:14     3.14159

결과 집합에 4개 행이 있습니다. 경과 시간: 0.005초.
  1. clickhouse client를 종료하려면 exit 명령어를 입력하세요:

exit

파일 업로드

데이터베이스를 처음 시작할 때 흔히 수행하는 작업 중 하나는 파일에 있는 데이터를 삽입하는 것입니다. 온라인에서 삽입해 볼 수 있는 샘플 데이터를 제공하고 있으며, 이 데이터는 클릭스트림 데이터로 사용자 ID, 방문한 URL, 이벤트의 타임스탬프를 포함합니다.data.csv라는 이름의 CSV 파일에 다음과 같은 텍스트가 있다고 가정합니다:
data.csv
102,This is data in a file,2022-02-22 10:43:28,123.45
101,It is comma-separated,2022-02-23 00:00:00,456.78
103,Use FORMAT to specify the format,2022-02-21 10:43:30,678.90
  1. 다음 명령은 데이터를 my_first_table 테이블에 삽입합니다:

./clickhouse client --host HOSTNAME.REGION.CSP.clickhouse.cloud \
--secure --port 9440 \
--user default \
--password <password> \
--query='INSERT INTO helloworld.my_first_table FORMAT CSV' < data.csv
  1. 이제 SQL 콘솔에서 쿼리해 보면 테이블에 새 행이 나타나는 것을 확인할 수 있습니다:


IP 액세스 목록 필터링다음 단계로 진행하기 전에 IP 액세스 목록 필터링을 설정하는 것이 좋습니다. 자세한 내용은 “IP 필터 설정”을 참조하십시오.

다음 단계는?

  • Tutorial에서는 테이블에 200만 개의 행을 삽입하고 몇 가지 분석 쿼리를 작성해 봅니다
  • 삽입 방법 안내와 함께 예시 데이터셋 목록도 제공합니다
  • ClickHouse 시작하기에 대한 25분 분량의 동영상을 확인해 보십시오
  • 데이터가 외부 소스에서 들어오는 경우, 메시지 큐, 데이터베이스, 파이프라인 등에 연결하는 방법을 설명한 통합 가이드 모음을 확인해 보십시오
  • UI/BI 시각화 도구를 사용하는 경우, UI를 ClickHouse에 연결하는 사용자 가이드를 확인해 보십시오
  • 프라이머리 키 사용자 가이드에서 프라이머리 키와 이를 정의하는 방법을 자세히 알아볼 수 있습니다
마지막 수정일 2026년 6월 10일