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