설치
실행
ClickHouse를 다운로드만 하고 설치하지 않았다면
clickhouse-client 대신 ./clickhouse client를 사용하세요.
명령줄 옵션의 전체 목록은 명령줄 옵션을 참조하십시오.
ClickHouse Cloud에 연결하기
Native를 선택하면 예시
clickhouse-client 명령과 함께 연결 세부 정보가 표시됩니다:
설정 파일에 연결 정보 저장하기
쿼리 구문에 집중하기 위해 나머지 예시에서는 접속 정보(
--host, --port 등)를 생략합니다. 명령을 사용할 때는 이를 추가하십시오.대화형 모드
대화형 모드 사용하기
PrettyCompact입니다.
쿼리의 FORMAT 절에서 포맷을 변경하거나 --format 명령줄 옵션을 지정할 수 있습니다.
Vertical 형식을 사용하려면 --vertical을 사용하거나 쿼리 끝에 \G를 지정할 수 있습니다.
이 형식에서는 각 값이 별도의 줄에 출력되므로 열이 많은 테이블에 편리합니다.
대화형 모드에서는 기본적으로 Enter를 누르면 입력한 내용이 실행됩니다.
쿼리 끝에 세미콜론은 필요하지 않습니다.
-m, --multiline 매개변수로 클라이언트를 시작할 수 있습니다.
여러 줄 쿼리를 입력하려면 줄 바꿈 앞에 백슬래시 \를 입력하십시오.
Enter를 누르면 쿼리의 다음 줄을 입력하라는 메시지가 표시됩니다.
쿼리를 실행하려면 끝에 세미콜론을 붙인 뒤 Enter를 누르십시오.
ClickHouse Client는 replxx(readline과 유사)를 기반으로 하므로 익숙한 키보드 단축키를 사용할 수 있으며 이력을 유지합니다.
이력은 기본적으로 ~/.clickhouse-client-history에 기록됩니다.
클라이언트를 종료하려면 Ctrl+D를 누르거나, 쿼리 대신 다음 중 하나를 입력하십시오.
exit또는exit;quit또는quit;q,Q또는:qlogout또는logout;
쿼리 처리 정보
- 진행 상황으로, 기본적으로 초당 10회를 넘지 않도록 갱신됩니다. 쿼리가 매우 빠르면 진행 상황이 표시되기 전에 처리가 끝날 수 있습니다.
- 디버깅을 위한 구문 분석 후의 포맷팅된 쿼리.
- 지정된 포맷의 결과.
- 결과의 행 수, 경과 시간, 쿼리 처리의 평균 속도. 모든 데이터 양은 비압축 데이터를 기준으로 합니다.
Ctrl+C를 눌러 취소할 수 있습니다.
하지만 server가 요청을 중단할 때까지는 잠시 기다려야 합니다.
특정 단계에서는 쿼리를 취소할 수 없습니다.
기다리지 않고 Ctrl+C를 한 번 더 누르면 클라이언트가 종료됩니다.
ClickHouse Client는 쿼리에 사용할 외부 데이터(외부 임시 테이블)를 전달할 수 있습니다.
자세한 내용은 쿼리 처리용 외부 데이터 섹션을 참조하십시오.
별칭
\l- SHOW DATABASES\d- SHOW TABLES\c <DATABASE>- USE DATABASE.- 마지막 쿼리 다시 실행
키보드 단축키
Alt (Option) + Shift + e- 현재 쿼리로 편집기를 엽니다. 환경 변수EDITOR를 사용해 편집기를 지정할 수 있습니다. 기본 편집기는vim입니다.Alt (Option) + #- 현재 줄을 주석 처리합니다.Ctrl + r- 퍼지 이력 검색을 수행합니다.
배치 모드
배치 모드 사용하기
--query 명령줄 옵션을 사용할 수도 있습니다:
stdin을 통해 쿼리를 제공할 수 있습니다:
messages 테이블이 존재한다고 가정하면, 명령줄에서도 데이터를 삽입할 수 있습니다:
--query를 지정하면 모든 입력이 개행 문자 뒤에 요청에 추가됩니다.
원격 ClickHouse 서비스에 CSV 파일 삽입하기
cell_towers.csv를 default 데이터베이스의 기존 테이블 cell_towers에 삽입합니다:
명령줄에서 데이터를 삽입하는 예시
cat <<_EOF는 heredoc을 시작하며, _EOF가 다시 나타날 때까지 모든 내용을 읽은 다음 출력합니다:
cat을 사용해 file.csv의 내용을 stdout으로 출력한 다음, 이를 파이프로 clickhouse-client의 입력으로 전달합니다:
TabSeparated입니다.
위 예시와 같이 쿼리의 FORMAT 절에서 포맷을 설정할 수 있습니다.
매개변수가 있는 쿼리
쿼리 구문
예시
AI SQL 생성
OPENAI_API_KEY 또는 ANTHROPIC_API_KEY 환경 변수가 설정되어 있으면 AI 지원 기능은 별도 설정 없이 바로 사용할 수 있습니다. 더 고급 구성이 필요하면 구성 섹션을 참조하십시오.
사용 방법
??를 붙이십시오:
- 데이터베이스 스키마를 자동으로 파악합니다
- 파악된 테이블과 컬럼을 바탕으로 적절한 SQL을 생성합니다
- 생성된 쿼리를 즉시 실행합니다
예시
구성
환경 변수 기반 폴백
- 먼저
OPENAI_API_KEY환경 변수를 확인합니다 - 없으면
ANTHROPIC_API_KEY환경 변수를 확인합니다 - 둘 다 없으면 AI 기능이 비활성화됩니다
설정 파일
$XDG_CONFIG_HOME/clickhouse/config.xml(XDG_CONFIG_HOME이 설정되지 않은 경우~/.config/clickhouse/config.xml) (XML 포맷)$XDG_CONFIG_HOME/clickhouse/config.yaml(XDG_CONFIG_HOME이 설정되지 않은 경우~/.config/clickhouse/config.yaml) (YAML 포맷)~/.clickhouse-client/config.xml(XML 포맷, 레거시 위치)~/.clickhouse-client/config.yaml(YAML 포맷, 레거시 위치)- 또는
--config-file로 사용자 지정 경로를 지정하십시오
- XML
- YAML
OpenAI 호환 API 사용(예: OpenRouter):
매개변수
필수 매개변수
필수 매개변수
api_key- AI 서비스용 API Key입니다. 환경 변수로 설정되어 있으면 생략할 수 있습니다:- OpenAI:
OPENAI_API_KEY - Anthropic:
ANTHROPIC_API_KEY - 참고: 구성 파일의 API Key가 환경 변수보다 우선 적용됩니다
- OpenAI:
provider- AI 프로바이더입니다:openai또는anthropic- 생략하면 사용 가능한 환경 변수를 기준으로 자동 폴백이 사용됩니다
모델 구성
모델 구성
model- 사용할 모델입니다(기본값: 프로바이더별 기본값)- OpenAI:
gpt-4o,gpt-4,gpt-3.5-turbo등 - Anthropic:
claude-3-5-sonnet-20241022,claude-3-opus-20240229등 - OpenRouter:
anthropic/claude-3.5-sonnet과 같은 모델 이름을 사용합니다
- OpenAI:
연결 설정
연결 설정
base_url- OpenAI 호환 서비스용 사용자 지정 API 엔드포인트입니다(선택 사항)timeout_seconds- 요청 타임아웃 시간(초)입니다(기본값:30)
스키마 탐색
스키마 탐색
enable_schema_access- AI가 데이터베이스 스키마를 탐색할 수 있도록 허용합니다(기본값:true)max_steps- 스키마 탐색을 위한 도구 호출의 최대 단계 수입니다(기본값:10)
생성 매개변수
생성 매개변수
temperature- 무작위성을 제어합니다. 0.0 = deterministic, 1.0 = 창의적(기본값:0.0)max_tokens- tokens 기준 최대 응답 길이입니다(기본값:1000)system_prompt- AI에 전달할 사용자 지정 지침입니다(선택 사항)
작동 방식
- 스키마 검색
- 사용 가능한 데이터베이스를 나열합니다
- 관련 데이터베이스 내의 테이블을 찾아냅니다
CREATE TABLESQL 문을 통해 테이블 구조를 확인합니다
- 쿼리 생성
- 자연어로 표현한 의도에 맞습니다
- 올바른 테이블 및 컬럼 이름을 사용합니다
- 적절한 조인과 집계를 적용합니다
- 실행
제한 사항
- 활성 인터넷 연결이 필요합니다
- API 사용에는 AI 프로바이더의 속도 제한 및 비용이 적용됩니다
- 복잡한 쿼리는 여러 차례에 걸쳐 수정해야 할 수 있습니다
- AI는 실제 데이터가 아니라 스키마 정보에만 읽기 전용으로 액세스할 수 있습니다
보안
- API keys는 ClickHouse 서버로 전송되지 않습니다
- AI는 실제 데이터가 아니라 스키마 정보(테이블/컬럼 이름 및 타입)만 봅니다
- 생성된 모든 쿼리는 기존 데이터베이스 권한을 준수합니다
연결 문자열
사용법
참고 사항
--user, --password 또는 --database로는 지정할 수 없습니다(그 반대도 마찬가지입니다).
host component에는 호스트명 또는 IPv4/IPv6 주소를 사용할 수 있습니다.
IPv6 주소는 []로 감싸야 합니다:
clickHouse-client의 첫 번째 인수로 지정해야 합니다.
연결 문자열은 --host 및 --port를 제외한 다른 명령줄 옵션과 원하는 만큼 함께 사용할 수 있습니다.
query_parameters에는 다음 키를 사용할 수 있습니다:
퍼센트 인코딩
다음 매개변수에 포함된 US-ASCII 이외의 문자, 공백 및 특수 문자는 퍼센트 인코딩해야 합니다:
userpasswordhostsdatabasequery parameters
예시
localhost의 9000번 포트에 연결하여 쿼리 SELECT 1을 실행합니다.
localhost에 사용자 john, 비밀번호 secret, 호스트 127.0.0.1, 포트 9000을 사용해 연결합니다
default 사용자로, IPV6 주소 [::1] 및 포트 9000을 사용하는 localhost 호스트에 연결합니다.
localhost에 연결합니다.
default 사용자로 포트 9000을 사용해 localhost에 연결합니다.
localhost의 9000 포트에 연결하고 기본 데이터베이스는 my_database를 사용합니다.
localhost의 9000번 포트에 연결하고, 연결 문자열에 지정된 my_database 데이터베이스를 기본 데이터베이스로 사용하며, 축약형 s 매개변수로 보안 연결을 사용합니다.
my_user 사용자로 비밀번호 없이 연결합니다.
localhost에 연결합니다. @ 기호는 %40으로 퍼센트 인코딩됩니다.
192.168.1.15, 192.168.1.25.
쿼리 ID 형식
query_id_formats 태그 내에서 지정할 수 있습니다. 포맷 문자열의 {query_id} 자리 표시자는 쿼리 ID로 대체됩니다. 태그 안에는 여러 개의 포맷 문자열을 지정할 수 있습니다.
이 기능은 쿼리 프로파일링을 쉽게 할 수 있도록 URL을 생성하는 데 사용할 수 있습니다.
예시
설정 파일
-c [ -C, --config, --config-file ]매개변수로 지정한 파일./clickhouse-client.[xml|yaml|yml]$XDG_CONFIG_HOME/clickhouse/config.[xml|yaml|yml](XDG_CONFIG_HOME이 설정되어 있지 않으면~/.config/clickhouse/config.[xml|yaml|yml])~/.clickhouse-client/config.[xml|yaml|yml]/etc/clickhouse-client/config.[xml|yaml|yml]
clickhouse-client.xml
- XML
- YAML
환경 변수 옵션
CLICKHOUSE_USER, CLICKHOUSE_PASSWORD, CLICKHOUSE_HOST로 설정할 수 있습니다.
명령줄 인수 --user, --password, --host 또는 연결 문자열이 지정된 경우, 환경 변수보다 우선합니다.
명령줄 옵션
일반 옵션
연결 옵션
--host, --port, --user, --password 옵션 대신 연결 문자열도 사용할 수 있습니다.