Clickhouse 客户端 - 代码:62。DB::Exception:空查询

Clickhouse Client - Code: 62. DB::Exception: Empty query

我正在尝试使用 Docker[运行 clickhouse-serverclickhouse-client 服务Docker撰写。基于 clickhouse docker-compose file and another compose sample,我在我的 docker-compose.yml 文件中创建了服务,如下所示:

docker-compose.yml:

    ch_server:
      container_name: myapp_ch_server
      image: yandex/clickhouse-server
      ports:
        - "8181:8123"
        - "9000:9000"
        - "9009:9009"
      ulimits:
        nproc: 65535
        nofile:
          soft: 262144
          hard: 262144
      volumes: 
        - ./ch_db_data:/var/lib/clickhouse/
        - ./ch_db_logs:/val/log/clickhouse-server/
      networks:
        - myapp-network

    ch_client:
      container_name: myapp_ch_client
      image: yandex/clickhouse-client
      command: ['--host', 'ch_server']
      networks:
        - myapp-network

当我 运行 docker-compose up 命令时,clickhouse-client 服务发生以下异常:

myapp_ch_client | Code: 62. DB::Exception: Empty query
myapp_ch_client exited with code 62

你知道如何解决这个错误吗?

只需要在命令中传递SQL-query-params:

version: "2.4"

services:
  ch_server:
    container_name: myapp_ch_server
    image: yandex/clickhouse-server
    ports:
      - "8123:8123"
      - "9000:9000"
      - "9009:9009"
    ulimits:
      nproc: 65535
      nofile:
        soft: 262144
        hard: 262144
    volumes: 
      - ./ch_db_data:/var/lib/clickhouse/
      - ./ch_db_logs:/var/log/clickhouse-server/
    networks:
      - myapp-network
    healthcheck:
      test: wget --no-verbose --tries=1 --spider localhost:8123/ping || exit 1
      interval: 2s
      timeout: 2s
      retries: 16

  ch_client:
    container_name: myapp_ch_client
    image: yandex/clickhouse-client
    command: ['--host', 'ch_server', '--query', 'select * from system.functions order by name limit 4']
    networks:
      - myapp-network
    depends_on:
      ch_server:
        condition: service_healthy

networks:
    myapp-network:

docker-compose中定义clickhouse-client没有意义。 clickhouse-client 通常 运行 在 docker-compose 文件之外:

  1. define docker-compose 定义 servers(例如 ClickHouse(集群节点)、Zookeeper、Apache Kafka , ETC)。例如,让我们考虑一个 ClickHouse 节点的配置:
version: "2.4"

services:
  ch_server:
    container_name: myapp_ch_server
    image: yandex/clickhouse-server
    ports:
      - "8123:8123"
      - "9000:9000"
      - "9009:9009"
    ulimits:
      nproc: 65535
      nofile:
        soft: 262144
        hard: 262144
    volumes: 
      - ./ch_db_data:/var/lib/clickhouse/
      - ./ch_db_logs:/var/log/clickhouse-server/
    networks:
      - myapp-network
    healthcheck:
      test: wget --no-verbose --tries=1 --spider localhost:8123/ping || exit 1
      interval: 2s
      timeout: 2s
      retries: 16

networks:
    myapp-network:

  1. 在单独的终端中 运行 clickhouse-client
cd _folder_where_docker-compose_located

docker-compose exec ch_server clickhouse-client

2021版本为本教程https://dev.to/titronium/clickhouse-server-in-1-minute-with-docker-4gf2

  clickhouse-client:
    image: yandex/clickhouse-client:latest
    depends_on:
      - clickhouse-server
    links:
      - clickhouse-server
    entrypoint:
      - /bin/sleep
    command:
      - infinity

最后一行command: - infinity意味着它会永远等你连接

实际上,您可以在 ClickHouse 服务器的命令行上访问 ClickHouse 客户端。

您可以轻松连接到您的服务器容器并调用

clickhuse-client