> ## Documentation Index
> Fetch the complete documentation index at: https://clickhouse.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

> ClickHouse Keeper 클라이언트 유틸리티 문서

# clickhouse-keeper-client 유틸리티

네이티브 프로토콜을 통해 clickhouse-keeper와 상호 작용하는 클라이언트 애플리케이션입니다.

<div id="clickhouse-keeper-client">
  ## 옵션
</div>

* `-q QUERY`, `--query=QUERY` — 실행할 쿼리입니다. 이 매개변수를 지정하지 않으면 `clickhouse-keeper-client`가 대화형 모드로 시작됩니다.
* `-h HOST`, `--host=HOST` — 서버 호스트입니다. 기본값: `localhost`.
* `-p N`, `--port=N` — 서버 포트입니다. 기본값: 9181
* `-c FILE_PATH`, `--config-file=FILE_PATH` — 연결 문자열을 가져올 구성 파일의 경로를 설정합니다. 기본값: `config.xml`.
* `--password=PASSWORD` — 인증용 비밀번호입니다. `CLICKHOUSE_KEEPER_PASSWORD` 환경 변수로도 설정할 수 있으며, XML 구성 파일의 `<zookeeper><password>`에서도 설정할 수 있습니다.
* `--identity=IDENTITY` — `digest` 인증 스킴용 아이덴티티입니다. `CLICKHOUSE_KEEPER_IDENTITY` 환경 변수로도 설정할 수 있으며, XML 구성 파일의 `<zookeeper><identity>`에서도 설정할 수 있습니다.
* `--connection-timeout=TIMEOUT` — 연결 타임아웃을 초 단위로 설정합니다. 기본값: 10초입니다.
* `--session-timeout=TIMEOUT` — 세션 타임아웃을 초 단위로 설정합니다. 기본값: 10초입니다.
* `--operation-timeout=TIMEOUT` — 작업 타임아웃을 초 단위로 설정합니다. 기본값: 10초입니다.
* `--history-file=FILE_PATH` — 이력 파일의 경로를 설정합니다. 기본값: `~/.keeper-client-history`.
* `--log-level=LEVEL` — 로그 레벨을 설정합니다. 기본값: `information`.
* `--no-confirmation` — 설정하면 일부 명령에서 확인을 요구하지 않습니다. 기본값은 대화형 모드에서 `false`, 쿼리 모드에서 `true`입니다.
* `--help` — 도움말 메시지를 표시합니다.

<div id="clickhouse-keeper-client-env">
  ## 환경 변수
</div>

* `CLICKHOUSE_KEEPER_PASSWORD` — 명령줄에서 `--password`를 지정하지 않으면 기본 비밀번호로 사용됩니다.
* `CLICKHOUSE_KEEPER_IDENTITY` — 명령줄에서 `--identity`를 지정하지 않으면 기본 아이덴티티로 사용됩니다.

<div id="clickhouse-keeper-client-auth">
  ## 인증
</div>

인증이 필요한 Keeper server에 연결할 때 비밀번호는 다음 우선순위에 따라 확인됩니다(먼저 일치하는 항목이 적용됩니다).

1. `--password` 명령줄 인수
2. `CLICKHOUSE_KEEPER_PASSWORD` 환경 변수
3. `--config-file`로 지정한 XML 구성 파일의 `<zookeeper><password>`

동일한 우선순위가 `--identity` / `CLICKHOUSE_KEEPER_IDENTITY` / `<zookeeper><identity>`에도 적용됩니다.

인증 설정이 포함된 예시 XML 구성 파일:

```xml theme={null}
<clickhouse>
    <zookeeper>
        <password>secret</password>
        <node index="1">
            <host>localhost</host>
            <port>9181</port>
        </node>
    </zookeeper>
</clickhouse>
```

<div id="clickhouse-keeper-client-example">
  ## 예시
</div>

```bash theme={null}
./clickhouse-keeper-client -h localhost -p 9181 --connection-timeout 30 --session-timeout 30 --operation-timeout 30
Connected to ZooKeeper at [::1]:9181 with session_id 137
/ :) ls
keeper foo bar
/ :) cd 'keeper'
/keeper :) ls
api_version
/keeper :) cd 'api_version'
/keeper/api_version :) ls

/keeper/api_version :) cd 'xyz'
Path /keeper/api_version/xyz does not exist
/keeper/api_version :) cd ../../
/ :) ls
keeper foo bar
/ :) get 'keeper/api_version'
2
```

<div id="clickhouse-keeper-client-commands">
  ## 명령어
</div>

* `ls '[path]' [watch_id]` -- 지정한 경로의 노드를 나열합니다(기본값: cwd). 필요에 따라 `watch_id`로 식별되는 자식 watch를 설정합니다
* `cd '[path]'` -- 작업 경로를 변경합니다(기본값 `.`)
* `cp '<src>' '<dest>'`  -- 'src' 노드를 'dest' 경로로 복사합니다
* `cpr '<src>' '<dest>'`  -- 'src' 노드의 하위 트리를 'dest' 경로로 복사합니다
* `mv '<src>' '<dest>'`  -- 'src' 노드를 'dest' 경로로 이동합니다
* `mvr '<src>' '<dest>'`  -- 'src' 노드의 하위 트리를 'dest' 경로로 이동합니다
* `exists '<path>' [watch_id]` -- 노드가 존재하면 `1`을, 그렇지 않으면 `0`을 반환합니다. 필요에 따라 `watch_id`로 식별되는 watch를 설정합니다
* `set '<path>' <value> [version]` -- 노드의 값을 업데이트합니다. version이 일치할 때만 업데이트합니다(기본값: -1)
* `create '<path>' <value> [mode]` -- 지정한 값으로 새 노드를 생성합니다
* `touch '<path>'` -- 값을 빈 문자열로 하는 새 노드를 생성합니다. 노드가 이미 존재하더라도 예외를 발생시키지 않습니다
* `get '<path>' [watch_id]` -- 노드의 값을 반환합니다. 필요에 따라 `watch_id`로 식별되는 데이터 watch를 설정합니다
* `watch <watch_id> [timeout_seconds]` -- `watch_id`로 식별되는 watch 이벤트를 기다린 후 이벤트 유형과 경로를 출력합니다. `timeout_seconds`를 지정하면 해당 타임아웃 후 오류를 반환합니다
* `rm '<path>' [version]` -- version이 일치할 때만 노드를 삭제합니다(기본값: -1)
* `rmr '<path>' [limit]` -- 하위 트리 크기가 limit보다 작으면 해당 경로를 재귀적으로 삭제합니다. 확인이 필요합니다(기본 limit = 100)
* `flwc <command>` -- four-letter-word 명령을 실행합니다
* `help` -- 이 메시지를 출력합니다
* `get_direct_children_number '[path]'` -- 특정 경로 아래의 직접 자식 노드 수를 가져옵니다
* `get_all_children_number '[path]'` -- 특정 경로 아래의 전체 자식 노드 수를 가져옵니다
* `get_stat '[path]'` -- 노드의 stat을 반환합니다(기본값 `.`)
* `find_super_nodes <threshold> '[path]'` -- 지정한 경로에서 자식 수가 임계값보다 큰 노드를 찾습니다(기본값 `.`)
* `delete_stale_backups` -- 현재 비활성 상태인 백업에 사용되던 ClickHouse 노드를 삭제합니다
* `find_big_family [path] [n]` -- 하위 트리에서 후손 수가 가장 많은 상위 n개 노드를 반환합니다(기본 경로 = `.` 및 n = 10)
* `sync '<path>'` -- 프로세스와 리더 간에 노드를 동기화합니다
* `reconfig <add|remove|set> "<arg>" [version]` -- Keeper 클러스터를 재구성합니다. /docs/en/guides/sre/keeper/clickhouse-keeper#reconfiguration을 참조하십시오
