clickhousectl은 로컬과 클라우드용 ClickHouse CLI입니다.
clickhousectl로 다음 작업을 수행할 수 있습니다:
- 로컬 ClickHouse 버전 설치 및 관리
- 로컬 ClickHouse 서버 실행 및 관리
- 로컬 Postgres 인스턴스 실행 및 관리
- ClickHouse 서버에서 쿼리 실행
- ClickHouse Cloud를 설정하고 클라우드 관리형 ClickHouse 클러스터 생성
- ClickHouse Cloud Postgres 서비스 생성 및 관리
- ClickHouse Cloud 리소스 관리
- 데이터 수집을 위한 ClickPipes 생성 및 관리 (S3, Kafka, Kinesis, Postgres, MySQL, MongoDB, BigQuery)
- 지원되는 코딩 에이전트에 공식 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은 builds.clickhouse.com에서 ClickHouse 바이너리를 다운로드하며, 해당 위치에서 빌드를 사용할 수 없으면 packages.clickhouse.com(Linux) 또는 GitHub releases(macOS)에서 대신 다운로드합니다.
local use는 선택한 버전의 binary를 가리키는 ~/.local/bin/clickhouse 심볼릭 링크도 생성하므로, 일반 clickhouse 명령(예: clickhouse local, clickhouse client)을 PATH에서 사용할 수 있습니다. 이 동작을 건너뛰려면 --no-global을 전달하세요. 해당 경로에 일반 파일이 이미 있으면 경고를 표시하고 그대로 둡니다. 활성 기본 버전에 local remove를 실행하면 심볼릭 링크도 제거됩니다.
ClickHouse 실행 파일 저장소
~/.clickhouse/에 저장됩니다:
프로젝트 초기화
init은 현재 작업 디렉터리에 ClickHouse 및 Postgres 프로젝트 파일을 위한 표준 폴더 구조를 설정합니다. 이 작업은 선택 사항이므로, 필요하면 자체 폴더 구조를 사용해도 됩니다.
다음과 같은 구조가 생성됩니다:
쿼리 실행
ClickHouse 서버 생성 및 관리
.clickhouse/servers/<name>/data/ 아래에 서로 격리된 자체 데이터 디렉터리가 할당됩니다.
--name을 지정하지 않으면 첫 번째 server의 이름은 “default”입니다. “default”가 이미 실행 중이면 임의의 이름이 생성됩니다(예: “bold-crane”). 반복해서 시작하거나 중지할 수 있는 안정적인 식별자가 필요하면 --name을 사용하세요.
포트: 기본 포트는 HTTP 8123과 TCP 9000입니다. 이 포트들이 이미 사용 중이면 사용 가능한 포트가 자동으로 할당되고 출력에 표시됩니다. 포트를 명시적으로 지정하려면 --http-port와 --tcp-port를 사용하세요.
전역 서버 관리: 시스템 전체의 모든 프로젝트에 걸쳐 작업하려면 list, stop, stop-all과 함께 --global을 사용하세요. server list --global은 실행 중인 모든 ClickHouse 서버를 표시하며, 각 서버가 어느 디렉터리에 속하는지 나타내는 Project 컬럼이 함께 표시됩니다.
로컬 서버용 사용자 지정 구성 파일
~/.clickhouse/configs/에 넣고 서버를 시작할 때 이름으로 적용하세요:
config.d를 통해). 따라서 변경하려는 설정만 포함하면 되며, 전체 구성을 다시 작성할 필요는 없습니다. 파일은 .xml, .yaml 또는 .yml 형식일 수 있으며, 확장자를 포함하거나 제외한 파일 이름으로 참조할 수 있습니다.
프로젝트 로컬 데이터 디렉터리
.clickhouse/에 저장됩니다:
clickhousectl local server remove <name>를 사용하십시오.
로컬 Postgres 실행
clickhousectl로 로컬 Postgres 인스턴스도 실행하고 관리할 수 있습니다. 로컬 Postgres는 Docker를 기반으로 하므로 Docker가 설치되어 있고 실행 중이어야 합니다. 각 인스턴스는 이름과 주 버전으로 식별되므로 여러 Postgres 버전을 각각 별도의 데이터 디렉터리로 나란히 실행할 수 있습니다.
인증
clickhousectl cloud auth signup를 실행하면 브라우저에서 가입 페이지가 열립니다.
API Key/Secret (권장)
.clickhouse/credentials.json(프로젝트 로컬)에 저장됩니다.
세션에서 export한 환경 변수도 사용할 수 있습니다:
.env 파일에 넣을 수 있습니다:
OAuth 로그인
.clickhouse/tokens.json에 저장됩니다(프로젝트 로컬).
OAuth 액세스는 현재 읽기 전용이며 속한 모든 조직에 대한 액세스를 제공합니다. 쓰기 액세스가 필요하거나 CLI의 범위를 단일 조직으로 제한하려면 대신 범위가 지정된 API Key를 생성하세요.
인증 상태 및 로그아웃
.clickhouse/credentials.json > export로 설정된 환경 변수 > .env 파일 > OAuth 토큰.
사용된 자격 증명 소스 디버깅
cloud 명령에 --debug를 전달하세요.
Cloud
조직
서비스
서비스 생성 옵션
Query API 인증 모드
cloud service query는 clickhouse 바이너리나 서비스 비밀번호 없이 HTTP를 통해 cloud service에 SQL을 실행하는 기본 방식입니다. 이 명령은 두 가지 자격 증명 모드를 모두 지원합니다.
- API Key 인증 (읽기 + 쓰기 SQL): 저장된 키가 없는 서비스에 대해
cloud service query를 처음 실행하면, 해당 서비스용 Query API 엔드포인트를 Provisioning하고 여기에 연결된 전용 API Key를 생성합니다. 이 키(keyId,keySecret,endpointId)는.clickhouse/credentials.json의service_query_keys.<service-id>아래에 저장됩니다. 이 키는 단일 서비스 범위로 제한되므로 해당 서비스에서는 읽기와 쓰기(SELECT, INSERT, DDL)가 가능하지만, 조직 내 다른 서비스에는 접근할 수 없습니다. Provisioning하지 않고 실패하게 하려면--no-auto-enable을 지정하십시오. - OAuth (
cloud auth login): 쿼리는 웹 SQL 콘솔과 마찬가지로 사용자 본인의 아이덴티티로 실행됩니다. OAuth를 사용할 때 서비스에 대한 SQL 권한은 읽기 전용입니다. Query API Key는 Provisioning되거나 저장되지 않습니다. 이 모드에서는--no-auto-enable이 적용되지 않습니다.
cloud service start를 실행하라는 안내와 함께 실패합니다. 파생된 Query API host를 재정의하려면 CLICKHOUSE_CLOUD_QUERY_HOST를 설정하십시오.
쿼리 엔드포인트 관리
Private Endpoint 관리
Backup 구성
Postgres 서비스
clickhousectl로도 위의 ClickHouse 서비스 명령과 동일하게 ClickHouse Cloud Postgres 서비스를 생성하고 관리할 수 있습니다.
Postgres 서비스 생성 옵션
백업
ClickPipes
ClickPipes 생성
clickpipe create에는 소스 유형별로 고유한 하위 명령이 있습니다:
clickhousectl cloud clickpipe create <source> --help 명령으로 확인하십시오.
구성원
초대
키
활동
JSON 출력
--json 플래그를 사용하세요.
clickhousectl은 코딩 에이전트 Context(Claude Code, Cursor, Codex, Gemini CLI, Goose, Devin, 및 표준 AGENT env var를 설정하는 모든 도구)를 자동으로 감지하고, --json을 설정하지 않아도 JSON을 stdout으로 자동 출력합니다.
종료 코드
gh CLI 관례를 따릅니다:
Skills
비대화형 플래그
자체 업데이트
clickhousectl 자체를 최신 릴리스로 업데이트할 수 있습니다: