Перейти к основному содержанию

Когда использовать clickhouse-local, а когда ClickHouse

clickhouse-local — это простая в использовании версия ClickHouse, которая идеально подходит разработчикам, которым нужно быстро обрабатывать локальные и удалённые файлы с помощью SQL без установки полноценного сервера базы данных. С clickhouse-local разработчики могут выполнять SQL-команды (напрямую используя ClickHouse SQL) из командной строки, что даёт простой и эффективный способ получить доступ к возможностям ClickHouse без полной установки ClickHouse. Одно из главных преимуществ clickhouse-local в том, что он уже входит в состав clickhouse-client. Это означает, что разработчики могут быстро начать работу с clickhouse-local без сложной установки. Хотя clickhouse-local — отличный инструмент для разработки, тестирования и обработки файлов, он не подходит для обслуживания конечных пользователей или приложений. В таких случаях рекомендуется использовать ClickHouse с открытым исходным кодом. ClickHouse — это мощная OLAP-база данных, предназначенная для работы с крупномасштабными аналитическими рабочими нагрузками. Она обеспечивает быструю и эффективную обработку сложных запросов на больших наборах данных, что делает её идеальным выбором для production-сред, где критически важна высокая производительность. Кроме того, ClickHouse предлагает широкий набор возможностей, таких как репликация, шардирование и Высокая доступность, которые необходимы для масштабирования при работе с большими наборами данных и обслуживании приложений. Если вам нужно работать с более крупными наборами данных или обслуживать конечных пользователей либо приложения, мы рекомендуем использовать ClickHouse с открытым исходным кодом вместо clickhouse-local. Ознакомьтесь с документацией ниже, где приведены примеры использования clickhouse-local, например запросы к локальному файлу или чтение файла Parquet в S3.

Скачайте clickhouse-local

clickhouse-local использует тот же бинарный файл clickhouse, что и сервер ClickHouse и clickhouse-client. Проще всего скачать последнюю версию с помощью следующей команды:
Загруженный вами бинарный файл может запускать самые разные инструменты и утилиты ClickHouse. Если вы хотите использовать ClickHouse как сервер базы данных, ознакомьтесь с руководством Быстрый старт.

Выполнение SQL-запросов к данным в файле

clickhouse-local часто используют для выполнения разовых запросов к файлам, когда данные не нужно вставлять в таблицу. clickhouse-local может считывать данные из файла во временную таблицу и выполнять ваши SQL-запросы. Если файл находится на той же машине, что и clickhouse-local, можно просто указать файл для загрузки. Следующий файл reviews.tsv содержит выборку отзывов на товары Amazon:
Эта команда — сокращённый вариант:
ClickHouse определяет по расширению имени файла, что в нём используется формат с табуляцией в качестве разделителя. Если вам нужно явно указать format, просто добавьте один из многих входных форматов в ClickHouse:
Табличная функция file создаёт таблицу, и с помощью DESCRIBE можно посмотреть автоматически определённую схему:
В имени файла можно использовать глоб-шаблоны (см. глоб-подстановки).Примеры:
Найдём товар с самым высоким рейтингом:

Запрос данных из файла Parquet в AWS S3

Если у вас есть файл в S3, используйте clickhouse-local и табличную функцию s3, чтобы выполнить запрос к файлу напрямую (без вставки данных в таблицу ClickHouse). У нас есть файл house_0.parquet в публичном бакете, содержащий цены на дома, проданные в Соединённом Королевстве. Давайте посмотрим, сколько в нём строк:
Файл содержит 2,7 млн строк:
Всегда полезно посмотреть, какую схему ClickHouse выводит на основе файла:
Давайте посмотрим, какие районы самые дорогие:
Когда будете готовы загрузить свои файлы в ClickHouse, запустите сервер ClickHouse и вставьте результаты табличных функций file и s3 в таблицу MergeTree. Подробнее см. в разделе Быстрый старт.

Преобразование форматов

Для преобразования данных из одного формата в другой можно использовать clickhouse-local. Пример:
Форматы автоматически определяются по расширениям файлов:
Для краткости это можно записать с помощью аргумента --copy:

Использование

По умолчанию clickhouse-local имеет доступ к данным сервер ClickHouse на том же хосте и не зависит от конфигурации сервера. Он также поддерживает загрузку конфигурации сервера с помощью аргумента --config-file. Для временных данных по умолчанию создается уникальный временный каталог. Базовое использование (Linux):
Базовое использование (Mac):
clickhouse-local также поддерживается в Windows через WSL2.
Аргументы:
  • -S, --structure — структура таблицы для входных данных.
  • --input-format — входной формат, по умолчанию TSV.
  • -F, --file — путь к данным, по умолчанию stdin.
  • -q, --query — запросы для выполнения, где ; используется как разделитель. --query можно указать несколько раз, например: --query "SELECT 1" --query "SELECT 2". Нельзя использовать одновременно с --queries-file.
  • --queries-file - путь к файлу с запросами для выполнения. --queries-file можно указать несколько раз, например: --query queries1.sql --query queries2.sql. Нельзя использовать одновременно с --query.
  • --multiquery, -n – Если указан, после параметра --query можно перечислить несколько запросов, разделённых точкой с запятой. Для удобства также можно не указывать --query и передать запросы сразу после --multiquery.
  • -N, --table — имя таблицы, в которую помещаются выходные данные, по умолчанию table.
  • -f, --format, --output-format — выходной формат, по умолчанию TSV.
  • -d, --database — база данных по умолчанию, _local.
  • --stacktrace — выводить ли отладочную информацию в случае исключения.
  • --echo [ <bool> ] — выводить каждый запрос перед выполнением. Принимает необязательное булево значение. По умолчанию включен в interactive mode и отключен в batch mode. Note: поскольку --echo теперь принимает необязательное значение, позиционный запрос, указанный сразу после --echo без значения, будет воспринят как его значение; вместо этого используйте --echo --query "...", --echo -q "...", --echo=false или перенаправленный stdin.
  • --echo-formatted [ <bool> ] — форматировать выводимые запросы. Принимает необязательное булево значение. По умолчанию включен в interactive mode и отключен в batch mode.
  • --echo-query-id [ <bool> ] — выводить query_id перед выполнением. Принимает необязательное булево значение. По умолчанию включен в interactive mode и отключен в batch mode.
  • --highlight, --hilite <bool> — включать или отключать подсветку синтаксиса в командной строке и для выводимых запросов. По умолчанию включена. Подсветка применяется только при выводе в терминал.
  • --verbose — более подробная информация о выполнении запроса.
  • --logger.console — выводить Log в консоль.
  • --logger.log — имя файла журнала.
  • --logger.level — уровень логирования.
  • --ignore-error — не останавливать обработку, если запрос завершился ошибкой.
  • -c, --config-file — путь к файлу конфигурации в том же формате, что и для сервера ClickHouse; по умолчанию конфигурация пуста.
  • --no-system-tables — не подключать системные таблицы.
  • --help — справка по аргументам для clickhouse-local.
  • -V, --version — вывести информацию о версии и выйти.
Кроме того, для каждой переменной конфигурации ClickHouse есть аргументы, которые чаще используются вместо --config-file.

Команды

Команда LS

Выводит список всех файлов в текущем рабочем каталоге, доступных для clickhouse-local. Её можно запустить в интерактивном режиме так:
Query
Response
Вы также можете выполнить это в виде запроса, используя аргумент -q:
Response

Команда CLEAR

Очищает экран терминала (аналогично команде clear в Linux или Ctrl+L во многих терминалах). Это действие выполняется на стороне клиента: оно не отправляется в SQL-движок. В clickhouse-local метакоманда распознаётся в интерактивном режиме, а также при вводе через -q и --queries-file (тот же клиентский путь, что и у -q, по той же логике, что и у ls), поэтому одиночный clear не вызывает ошибку UNKNOWN_IDENTIFIER. Для удалённого clickhouse-client --queries-file ничего не изменилось: содержимое файла по-прежнему выполняется только как SQL (без текстовых метакоманд). В clickhouse-client она распознаётся только в интерактивном режиме. При использовании -q или файлов с запросами clear по-прежнему разбирается как SQL, поэтому в автоматизации сохраняется прежнее поведение с ошибкой, а опечатки не превращаются в тихий no-op. Поддерживаемые формы: clear, CLEAR, /clear (необязательный завершающий ; игнорируется). Если стандартный вывод не является терминалом (например, при передаче вывода по конвейеру), метакоманда при распознавании принимается, но управляющие последовательности не выводятся. С clickhouse-local и -q:

Примеры

Query
Предыдущий пример аналогичен следующему:
Query
Вам не обязательно использовать stdin или аргумент --file; можно открыть любое количество файлов с помощью табличной функции file:
Query
Теперь давайте выведем пользователя memory для каждого Unix-пользователя:
Query
Response
Последнее изменение 25 июня 2026 г.