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:
Запрос:
Результат: