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

clickhouse-local

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

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

Хотя clickhouse-local является отличным инструментом для разработки и тестирования, а также для обработки файлов, он не подходит для обслуживания конечных пользователей или приложений. В этих сценариях рекомендуется использовать открытый ClickHouse. ClickHouse - это мощная OLAP база данных, предназначенная для обработки аналитических нагрузок в крупных масштабах. Она обеспечивает быстрое и эффективное выполнение сложных запросов на больших наборах данных, что делает её идеальной для использования в производственных средах, где критически важна высокая производительность. Кроме того, 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 знает, что файл использует формат с разделителем табуляции по расширению файла. Если вам нужно явно указать формат, просто добавьте один из многих вводимых форматов ClickHouse:

Функция таблицы file создаёт таблицу, и вы можете использовать DESCRIBE, чтобы увидеть выведенную схему:

подсказка

Вы можете использовать шаблоны в именах файлов (см. подстановки шаблонов).

Примеры:

Давайте найдём продукт с самым высоким рейтингом:

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

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

Файл содержит 2.7M строк:

Всегда полезно увидеть, какую схему 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 — печать запроса перед выполнением.
  • --verbose — больше деталей о выполнении запроса.
  • --logger.console — Логирование в консоль.
  • --logger.log — Имя файла журнала.
  • --logger.level — Уровень журнала.
  • --ignore-error — не прекращать обработку, если запрос завершился неудачно.
  • -c, --config-file — путь к конфигурационному файлу в том же формате, что и для сервера ClickHouse, по умолчанию конфигурация пустая.
  • --no-system-tables — не прикреплять системные таблицы.
  • --help — справка по аргументам для clickhouse-local.
  • -V, --version — напечатать информацию о версии и выйти.

Также существуют аргументы для каждой переменной конфигурации ClickHouse, которые чаще используются вместо --config-file.

Примеры

Предыдущий пример такой же, как и:

Вам не нужно использовать stdin или аргумент --file, и вы можете открыть любое количество файлов с помощью функции таблицы file:

Теперь давайте выведем использование памяти для каждого пользователя Unix:

Запрос:

Результат: