clickhousectl은 로컬과 클라우드용 ClickHouse CLI입니다.
clickhousectl로 다음 작업을 수행할 수 있습니다:
- 로컬 ClickHouse 버전 설치 및 관리
- 로컬 ClickHouse 서버 실행 및 관리
- ClickHouse 서버에서 쿼리 실행
- ClickHouse Cloud를 설정하고 클라우드 관리형 ClickHouse 클러스터 생성
- ClickHouse Cloud 리소스 관리
- 지원되는 코딩 에이전트에 공식 ClickHouse agent 스킬 설치
- 로컬 ClickHouse 개발 환경을 클라우드로 푸시
clickhousectl은 사람과 AI 에이전트가 ClickHouse로 개발할 수 있도록 지원합니다.
설치
빠른 설치
~/.local/bin/clickhousectl에 설치합니다. 편의를 위해 chctl alias도 자동으로 생성됩니다.
요구 사항
- macOS (aarch64, x86_64) 또는 Linux (aarch64, x86_64)
- Cloud 명령에는 ClickHouse Cloud API Key가 필요합니다
로컬
ClickHouse 버전 설치 및 관리
clickhousectl은 GitHub 릴리스에서 ClickHouse 바이너리를 다운로드합니다.
ClickHouse 실행 파일 저장소
~/.clickhousectl/에 저장됩니다:
프로젝트 초기화
init은 현재 작업 디렉터리에 ClickHouse 프로젝트 파일을 위한 표준 폴더 구조를 설정합니다. 이 작업은 선택 사항이므로, 필요하면 자체 폴더 구조를 사용해도 됩니다.
다음과 같은 구조가 생성됩니다:
쿼리 실행
ClickHouse 서버 생성 및 관리
.clickhousectl/servers/<name>/data/ 아래에 서로 격리된 자체 데이터 디렉터리가 할당됩니다.
--name을 지정하지 않으면 첫 번째 server의 이름은 “default”입니다. “default”가 이미 실행 중이면 임의의 이름이 생성됩니다(예: “bold-crane”). 반복해서 시작하거나 중지할 수 있는 안정적인 식별자가 필요하면 --name을 사용하세요.
포트: 기본 포트는 HTTP 8123과 TCP 9000입니다. 이 포트들이 이미 사용 중이면 사용 가능한 포트가 자동으로 할당되고 출력에 표시됩니다. 포트를 명시적으로 지정하려면 --http-port와 --tcp-port를 사용하세요.
프로젝트 로컬 데이터 디렉터리
.clickhousectl/에 저장됩니다:
clickhousectl local server remove <name>를 사용하십시오.
인증
OAuth 로그인(권장)
.clickhousectl/tokens.json에 저장됩니다(프로젝트 로컬).
API Key/Secret
.clickhousectl/credentials.json(프로젝트 로컬)에 저장됩니다.
환경 변수도 사용할 수 있습니다:
인증 상태 및 로그아웃
.clickhousectl/credentials.json > 환경 변수.
Cloud
조직
서비스
서비스 생성 옵션
| 옵션 | 설명 |
|---|---|
--name | 서비스 이름 (필수) |
--provider | 클라우드 제공업체: aws, gcp, azure (기본값: aws) |
--region | 리전 (기본값: us-east-1) |
--min-replica-memory-gb | 레플리카당 최소 메모리(GB) (8-356, 4의 배수) |
--max-replica-memory-gb | 레플리카당 최대 메모리(GB) (8-356, 4의 배수) |
--num-replicas | 레플리카 수 (1-20) |
--idle-scaling | 0까지 스케일링 허용 (기본값: true) |
--idle-timeout-minutes | 최소 유휴 timeout(분) (>= 5) |
--ip-allow | 허용할 IP CIDR (반복 지정 가능, 기본값: 0.0.0.0/0) |
--backup-id | 복원할 Backup ID |
--release-channel | 릴리스 채널: slow, default, fast |
쿼리 엔드포인트 관리
Private Endpoint 관리
Backup 구성
백업
구성원
초대
키
활동
JSON 출력
--json 플래그를 사용하세요.
Skills
비대화형 플래그
| 플래그 | 설명 |
|---|---|
--agent <name> | 특정 에이전트용 Skills를 설치합니다(여러 번 지정 가능) |
--global | 전역 범위를 사용합니다. 생략하면 프로젝트 범위를 사용합니다 |
--all | 지원되는 모든 에이전트용 Skills를 설치합니다 |
--detected-only | 시스템에서 감지된 지원 에이전트용 Skills를 설치합니다 |