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

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

В этом кратком руководстве по быстрому старту вы за несколько простых шагов настроите ClickHouse OSS. Вы будете использовать ClickHouse CLI clickhousectl, чтобы установить ClickHouse, запустить сервер ClickHouse, подключиться к своему серверу, создать таблицу, вставить в неё данные и выполнить запрос SELECT.

Установка ClickHouse CLI \

ClickHouse CLI (clickhousectl) позволяет устанавливать локальные версии ClickHouse и управлять ими, запускать серверы и выполнять запросы. Для установки выполните:

curl https://clickhouse.com/cli | sh

Псевдоним chctl также создаётся автоматически для удобства использования.

Установка ClickHouse

ClickHouse работает нативно на Linux и macOS, а на Windows — через WSL.

Используйте CLI для установки последней стабильной версии ClickHouse:

clickhousectl local install stable
Примечание

Это не рекомендуемый способ установки ClickHouse для продакшена. Если вы хотите установить продакшен-экземпляр ClickHouse, см. страницу установки.

Запуск сервера

Запустите экземпляр сервера ClickHouse:

clickhousectl local server start --name my-first-server

По умолчанию сервер работает в фоновом режиме. Чтобы убедиться, что он запущен:

clickhousectl local server list

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

Подключитесь к запущенному серверу ClickHouse:

clickhousectl local client --name my-first-server

После подключения к сервису, запущенному на 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 рекомендуется вставлять данные большими пакетами (десятки тысяч или даже миллионы строк за раз), чтобы сократить количество частей, которые потребуют слияния в фоновом процессе.

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

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.

Вставка собственных данных [#insert-own-data}

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

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

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

Произвольный запрос выглядит так:

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.


Просмотр данных