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

Быстрый старт с ClickHouse OSS

В этом учебном пособии быстрого старта мы поможем вам установить OSS ClickHouse за 8 простых шагов. Вы загрузите подходящий двоичный файл для вашей операционной системы, научитесь запускать сервер ClickHouse и использовать клиент ClickHouse для создания таблицы, затем вставите данные в неё и выполните запрос для выбора этих данных.

Загрузка ClickHouse

ClickHouse работает нативно на Linux, FreeBSD и macOS, и работает на Windows через WSL. Самый простой способ загрузить ClickHouse локально - запустить следующую команду curl. Она определяет, поддерживается ли ваша операционная система, после чего загружает соответствующий двоичный файл ClickHouse.

примечание

Рекомендуем запускать команду ниже из новой и пустой подкаталога, так как некоторые файлы конфигурации будут созданы в каталоге, где находится двоичный файл, при первом запуске сервера ClickHouse.

curl https://clickhouse.com/ | sh

Вы должны увидеть:

Successfully downloaded the ClickHouse binary, you can run it as:
    ./clickhouse

You can also install it:
sudo ./clickhouse install

На этом этапе вы можете игнорировать подсказку о запуске команды install.

примечание

Для пользователей Mac: если вы получаете ошибки о том, что разработчик двоичного файла не может быть проверен, пожалуйста, смотрите "Исправление ошибки проверки разработчика в MacOS".

Запустите сервер

Запустите следующую команду, чтобы стартовать сервер ClickHouse:

./clickhouse server

Вы должны увидеть, как терминал заполняется логами. Это нормально. В ClickHouse уровень логирования по умолчанию установлен на trace, а не warning.

Запустите клиент

Используйте clickhouse-client, чтобы подключиться к вашему сервису ClickHouse. Откройте новый терминал, перейдите в каталог, где сохранён ваш двоичный файл clickhouse, и выполните следующую команду:

./clickhouse client

Вы должны увидеть улыбающееся лицо, когда он подключается к вашему сервису, работающему на localhost:

my-host :)

Создайте таблицу

Используйте CREATE TABLE, чтобы определить новую таблицу. Обычные SQL DDL команды работают в ClickHouse с одним дополнением - таблицы в ClickHouse требуют параметра ENGINE. Используйте MergeTree для получения выигрыша в производительности от ClickHouse:

CREATE TABLE my_first_table
(
    user_id UInt32,
    message String,
    timestamp DateTime,
    metric Float32
)
ENGINE = MergeTree
PRIMARY KEY (user_id, timestamp)

Вставьте данные

Вы можете использовать знакомую команду INSERT INTO TABLE с ClickHouse, но важно понимать, что каждая вставка в таблицу MergeTree вызывает создание того, что мы называем частью в ClickHouse для хранения. Эти ^^части^^ позже объединяются в фоновом режиме ClickHouse.

В ClickHouse мы стараемся вставлять много строк одновременно (десятки тысяч или даже миллионы за раз), чтобы минимизировать количество частей, которые нужно объединить в фоновом процессе.

В этом руководстве мы пока не будем об этом беспокоиться. Запустите следующую команду для вставки нескольких строк данных в вашу таблицу:

INSERT INTO my_first_table (user_id, message, timestamp, metric) VALUES
    (101, 'Hello, ClickHouse!',                                 now(),       -1.0    ),
    (102, 'Insert a lot of rows per batch',                     yesterday(), 1.41421 ),
    (102, 'Sort your data based on your commonly-used queries', today(),     2.718   ),
    (101, 'Granules are the smallest chunks of data read',      now() + 5,   3.14159 )

Выполните запрос к вашей новой таблице

Вы можете написать запрос SELECT, так же как и с любой SQL базой данных:

SELECT *
FROM my_first_table
ORDER BY timestamp

Обратите внимание, что ответ приходит в красивом табличном формате:

┌─user_id─┬─message────────────────────────────────────────────┬───────────timestamp─┬──metric─┐
│     102 │ Insert a lot of rows per batch                     │ 2022-03-21 00:00:00 │ 1.41421 │
│     102 │ Sort your data based on your commonly-used queries │ 2022-03-22 00:00:00 │   2.718 │
│     101 │ Hello, ClickHouse!                                 │ 2022-03-22 14:04:09 │      -1 │
│     101 │ Granules are the smallest chunks of data read      │ 2022-03-22 14:04:14 │ 3.14159 │
└─────────┴────────────────────────────────────────────────────┴─────────────────────┴─────────┘

4 rows in set. Elapsed: 0.008 sec.

Вставьте свои собственные данные

Следующий шаг - импортировать ваши собственные данные в ClickHouse. У нас есть много табличных функций и интеграций для загрузки данных. У нас есть примеры в закладках ниже или вы можете ознакомиться с нашей страницей Интеграции для длинного списка технологий, которые интегрируются с ClickHouse.

Используйте s3 таблицу функцию, чтобы читать файлы из S3. Это табличная функция - означает, что результатом является таблица, которая может быть:

  1. использована в качестве источника для запроса SELECT (что позволяет вам выполнять запросы ad-hoc и сохранять ваши данные в S3), или...
  2. вставить полученную таблицу в таблицу MergeTree (когда вы будете готовы переместить ваши данные в ClickHouse)

Запрос ad-hoc выглядит так:

SELECT
passenger_count,
avg(toFloat32(total_amount))
FROM s3(
'https://datasets-documentation.s3.eu-west-3.amazonaws.com/nyc-taxi/trips_0.gz',
'TabSeparatedWithNames'
)
GROUP BY passenger_count
ORDER BY passenger_count;

Перемещение данных в таблицу ClickHouse выглядит следующим образом, где nyc_taxi - это таблица MergeTree:

INSERT INTO nyc_taxi
SELECT * FROM s3(
'https://datasets-documentation.s3.eu-west-3.amazonaws.com/nyc-taxi/trips_0.gz',
'TabSeparatedWithNames'
)
SETTINGS input_format_allow_errors_num=25000;

Посмотрите нашу коллекцию страниц документации по AWS S3 для получения множества деталей и примеров использования S3 с ClickHouse.


Исследуйте