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,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— печатать запрос перед выполнением.--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:
Запрос:
Результат:
Связанный контент
- Извлечение, преобразование и выполнение запросов на локальных файлах с использованием clickhouse-local
- Импорт данных в ClickHouse - Часть 1
- Исследование массивных, реальных наборов данных: 100+ лет метеорологических записей в ClickHouse
- Блог: Извлечение, преобразование и выполнение запросов на локальных файлах с использованием clickhouse-local