Когда использовать 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:
file создаёт таблицу, и с помощью DESCRIBE можно посмотреть автоматически определённую схему:
Запрос данных из файла Parquet в AWS S3
clickhouse-local и табличную функцию s3, чтобы выполнить запрос к файлу напрямую (без вставки данных в таблицу ClickHouse). У нас есть файл house_0.parquet в публичном бакете, содержащий цены на дома, проданные в Соединённом Королевстве. Давайте посмотрим, сколько в нём строк:
Преобразование форматов
clickhouse-local. Пример:
--copy:
Использование
clickhouse-local имеет доступ к данным сервер ClickHouse на том же хосте и не зависит от конфигурации сервера. Он также поддерживает загрузку конфигурации сервера с помощью аргумента --config-file. Для временных данных по умолчанию создается уникальный временный каталог.
Базовое использование (Linux):
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— вывести информацию о версии и выйти.
--config-file.
Команды
Команда LS
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
Query
Response
- Извлечение, преобразование и запрос данных в локальных файлах с помощью clickhouse-local
- Загрузка данных в ClickHouse — часть 1
- Исследование огромных реальных наборов данных: более 100 лет метеонаблюдений в ClickHouse
- Блог: Извлечение, преобразование и запрос данных в локальных файлах с помощью clickhouse-local