Самый быстрый и простой способ начать работу с ClickHouse — создать новый сервис в ClickHouse Cloud. В этом руководстве по быстрому старту мы поможем вам настроить всё за три простых шага.
Создайте сервис ClickHouse
Чтобы создать бесплатный сервис ClickHouse в ClickHouse Cloud, зарегистрируйтесь, выполнив следующие действия:
- Создайте аккаунт на странице регистрации
- Вы можете зарегистрироваться с помощью электронной почты либо через Google SSO, Microsoft SSO, AWS Marketplace, Google Cloud или Microsoft Azure
- Если вы регистрируетесь с помощью электронной почты и пароля, не забудьте подтвердить адрес электронной почты в течение следующих 24 часов по ссылке из полученного письма
- Войдите, используя только что созданные имя пользователя и пароль

После входа в систему ClickHouse Cloud запустит мастер онбординга, который поможет создать новый сервис ClickHouse. Выберите регион для развертывания сервиса и задайте ему имя:

По умолчанию для новых организаций выбирается уровень Scale: создаются 3 реплики, каждая с 4 vCPU и 16 ГиБ оперативной памяти. Вертикальное автомасштабирование на уровне Scale включено по умолчанию. Позже уровень организации можно изменить на странице 'Plans'.
При необходимости настройте ресурсы сервиса, указав минимальный и максимальный размеры, между которыми будут масштабироваться реплики. Когда всё будет готово, выберите Create service.

Поздравляем! Ваш сервис ClickHouse Cloud запущен, а онбординг завершён. Читайте далее, чтобы узнать, как начать приём данных и выполнять запросы к ним.
Подключитесь к ClickHouse
Подключиться к ClickHouse можно двумя способами:
- Через нашу веб-консоль SQL
- Из вашего приложения
Подключение через консоль SQL
Для быстрого начала работы ClickHouse предоставляет веб-консоль SQL, в которую вы будете перенаправлены после завершения онбординга.

Создайте вкладку запроса и выполните простой запрос, чтобы убедиться, что подключение работает:
SHOW databasesВ списке должны отображаться 4 базы данных, а также все базы данных, добавленные вами.

Готово — теперь вы можете начать использовать новый сервис ClickHouse!
Подключение приложения
Нажмите кнопку подключения в навигационном меню. Откроется модальное окно с учетными данными для вашего сервиса и инструкциями по подключению через выбранный интерфейс или клиентскую библиотеку.

Если нужной клиентской библиотеки нет в списке, ознакомьтесь с нашим списком интеграций.
Добавить данные
ClickHouse раскрывается в полной мере, когда в нём есть данные! Добавить данные можно несколькими способами, и большинство из них доступны на странице Data Sources, которую можно открыть из меню навигации.

Загрузить данные можно следующими способами:
- Настройте ClickPipe для начала ингестии данных из таких источников, как S3, Postgres, Kafka и GCS
- Используйте SQL-консоль
- Используйте клиент ClickHouse
- Загрузите файл — поддерживаются форматы JSON, CSV и TSV
- Загрузите данные по URL-адресу файла
ClickPipes
ClickPipes — это управляемая интеграционная платформа, которая позволяет загружать данные из самых разных источников буквально в несколько кликов. Разработанная для самых требовательных нагрузок, надежная и масштабируемая архитектура ClickPipes обеспечивает стабильную производительность и надежность. ClickPipes можно использовать как для долгосрочной передачи данных в реальном времени, так и для разовой загрузки данных.

Добавление данных через SQL Console
Как и большинство систем управления базами данных, ClickHouse логически группирует таблицы в базы данных. Чтобы создать новую базу данных в ClickHouse, используйте команду CREATE DATABASE:
CREATE DATABASE IF NOT EXISTS helloworldВыполните следующую команду, чтобы создать таблицу my_first_table в базе данных helloworld:
CREATE TABLE helloworld.my_first_table
(
user_id UInt32,
message String,
timestamp DateTime,
metric Float32
)
ENGINE = MergeTree()
PRIMARY KEY (user_id, timestamp)В приведённом выше примере my_first_table — это таблица MergeTree с четырьмя столбцами:
user_id: 32-разрядное беззнаковое целое число (UInt32)message: тип данных String, заменяющий типыVARCHAR,BLOB,CLOBи другие, используемые в других системах баз данныхtimestamp: значение DateTime, обозначающее момент времениmetric: 32-разрядное число с плавающей запятой (Float32)
Краткое введение в первичные ключи
Прежде чем двигаться дальше, важно разобраться, как в ClickHouse работают первичные ключи (их реализация может показаться неожиданной!):
- первичные ключи в ClickHouse не уникальны для каждой строки таблицы
Первичный ключ таблицы ClickHouse определяет, как данные сортируются при записи на диск. Каждые 8 192 строки или 10 МБ
данных (это называется гранулярностью индекса) создают запись в файле индекса первичного ключа. Концепция этой гранулярности
формирует разреженный индекс, который легко помещается в памяти, а гранулы представляют собой полосу наименьшего объёма
данных столбца, обрабатываемых во время запросов SELECT.
Первичный ключ можно задать с помощью параметра PRIMARY KEY. Если при создании таблицы PRIMARY KEY не указан,
то ключом становится кортеж, заданный в секции ORDER BY. Если указаны и PRIMARY KEY, и ORDER BY, первичный ключ должен быть подмножеством порядка сортировки.
Первичный ключ одновременно является и ключом сортировки — кортежем (user_id, timestamp). Поэтому данные, хранящиеся в каждом
файле столбца, будут отсортированы сначала по user_id, затем по timestamp.
Подробное описание ключевых концепций ClickHouse см. в разделе "Основные концепции".
Вставьте данные в вашу таблицу
В ClickHouse можно использовать привычную команду INSERT INTO TABLE, однако важно понимать, что каждая вставка в таблицу MergeTree приводит к созданию в хранилище нового part.
Даже в простом примере вставим сразу несколько строк за один раз:
INSERT INTO helloworld.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 * FROM helloworld.my_first_tableДобавление данных с помощью клиента ClickHouse
Также вы можете подключиться к своему сервису ClickHouse Cloud с помощью инструмента командной строки clickhouse client. Чтобы получить эти данные, нажмите Connect в меню слева. В открывшемся диалоговом окне выберите Native в выпадающем списке:

-
Установите ClickHouse.
-
Выполните команду, указав имя хоста, имя пользователя и пароль:
./clickhouse client --host HOSTNAME.REGION.CSP.clickhouse.cloud \
--secure --port 9440 \
--user default \
--password <password>Если появилось приглашение со смайликом, значит, можно выполнять запросы!
:)- Выполните следующий запрос:
SELECT *
FROM helloworld.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.- Добавьте предложение
FORMAT, чтобы указать один из многих поддерживаемых ClickHouse форматов вывода:
SELECT *
FROM helloworld.my_first_table
ORDER BY timestamp
FORMAT TabSeparatedВ приведённом выше запросе результат возвращается в виде значений, разделённых табуляцией:
Query id: 3604df1c-acfd-4117-9c56-f86c69721121
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.005 sec.- Чтобы выйти из
клиента ClickHouse, введите команду exit:
exitЗагрузка файла
Одна из типичных задач в начале работы с базой данных — вставка данных, которые у вас уже есть в файлах. Мы разместили в интернете пример данных, который вы можете вставить: это данные о кликах пользователей (clickstream), включающие ID пользователя, посещённый URL и временную метку события.
Предположим, что в CSV-файле с именем data.csv содержится следующий текст:
102,This is data in a file,2022-02-22 10:43:28,123.45
101,It is comma-separated,2022-02-23 00:00:00,456.78
103,Use FORMAT to specify the format,2022-02-21 10:43:30,678.90- Следующая команда вставляет данные в таблицу
my_first_table:
./clickhouse client --host HOSTNAME.REGION.CSP.clickhouse.cloud \
--secure --port 9440 \
--user default \
--password <password> \
--query='INSERT INTO helloworld.my_first_table FORMAT CSV' < data.csv- Обратите внимание: при выполнении запроса из SQL-консоли в таблице теперь отображаются новые строки:

Что дальше?
- В руководстве вы вставите 2 миллиона строк в таблицу и выполните несколько аналитических запросов
- У нас есть список демонстрационных наборов данных с инструкциями по их вставке
- Посмотрите наше 12-минутное видео Getting Started with ClickHouse
- Если ваши данные поступают из внешнего источника, ознакомьтесь с нашей подборкой руководств по интеграции для подключения к очередям сообщений, базам данных, конвейерам и другим системам
- Если вы используете инструмент UI/BI для визуализации данных, ознакомьтесь с руководствами пользователя по подключению UI к ClickHouse
- В руководстве пользователя по первичным ключам есть всё, что нужно знать о первичных ключах и их определении
Вы можете пройти этот путь самостоятельно, автоматизировать его с помощью скрипта или поручить ИИ-агенту. Для версии в консоли переключитесь в режим Cloud UI.
На этой странице описано, как создать сервис ClickHouse Cloud, подключиться к нему и загрузить данные — всё из командной строки с помощью ClickHouse CLI (clickhousectl). Команды выполняются в неинтерактивном режиме; для вывода JSON используйте в clickhousectl параметр --json.
Предварительные требования
Установите ClickHouse CLI:
curl https://clickhouse.com/cli | shВам также потребуется jq.
Вам нужен аккаунт ClickHouse Cloud. Если у вас его ещё нет, команда clickhousectl cloud auth signup откроет в браузере страницу регистрации.
Для операций записи (создания, удаления) требуется аутентификация с помощью ключа API; вход через OAuth предоставляет доступ только для чтения:
clickhousectl cloud auth login --api-key <YOUR_KEY> --api-secret <YOUR_SECRET>Или задайте переменные окружения CLICKHOUSE_CLOUD_API_KEY и CLICKHOUSE_CLOUD_API_SECRET. Выполните проверку командой clickhousectl cloud auth status: должна отобразиться запись с областью действия read/write.
Создайте сервис ClickHouse
Создайте сервис и сохраните ответ; пароль пользователя default отображается только один раз:
clickhousectl cloud service create \
--name quickstart-ch \
--region us-east-1 \
--json > ch.jsonОтвет содержит ID сервиса, конечные точки и сгенерированный пароль (здесь сокращён; полный ответ также содержит настройки масштабирования, IP Access List и теги):
{
"password": "dK7mPq2x_-TzrL9vNw0s",
"service": {
"id": "4f7b92f3-4163-403a-b538-b9bc6e2e8f66",
"name": "quickstart-ch",
"provider": "aws",
"region": "us-east-1",
"state": "provisioning",
"endpoints": [
{
"host": "quickstart-abc123.us-east-1.aws.clickhouse.cloud",
"port": 9440,
"protocol": "nativesecure"
},
{
"host": "quickstart-abc123.us-east-1.aws.clickhouse.cloud",
"port": 8443,
"protocol": "https"
}
],
"numReplicas": 3,
"minReplicaMemoryGb": 16.0,
"maxReplicaMemoryGb": 120.0
}
}Извлеките данные, необходимые для продолжения работы с этим руководством:
CH_ID=$(jq -r .service.id ch.json)
CH_PASSWORD=$(jq -r .password ch.json)
CH_HOST=$(jq -r '.service.endpoints[] | select(.protocol=="nativesecure") | .host' ch.json)Если пароль утерян, создайте новый командой clickhousectl cloud service reset-password "$CH_ID".
Для сервисов, созданных с помощью clickhousectl, по умолчанию используется IP Access List, разрешающий доступ со всех адресов (0.0.0.0/0). Чтобы ограничить доступ, при создании сервиса укажите --ip-allow; см. "Настройка IP-фильтров".
Дождитесь создания сервиса
Создание занимает около минуты. Проверяйте состояние, пока оно не станет running:
while [ "$(clickhousectl cloud service get "$CH_ID" --json | jq -r .state)" != "running" ]; do
sleep 15
doneВыполнение SQL-запросов с помощью Query API
clickhousectl cloud service query выполняет SQL-запросы по HTTP — локальный бинарный файл clickhouse или пароль сервиса не требуются. При первом вызове автоматически создаются конечная точка Query API и ключ API, ограниченный областью действия сервиса:
clickhousectl cloud service query --id "$CH_ID" --query "SHOW databases"Provisioning Query API endpoint + key for service 'quickstart-ch'...
{"name":"INFORMATION_SCHEMA"}
{"name":"default"}
{"name":"information_schema"}
{"name":"system"}По умолчанию при перенаправлении вывода используется JSONEachRow; чтобы получить вывод в табличном виде, передайте --format PrettyCompact.
Создайте базу данных и таблицу
clickhousectl cloud service query --id "$CH_ID" \
--query "CREATE DATABASE IF NOT EXISTS helloworld"
clickhousectl cloud service query --id "$CH_ID" \
--query "CREATE TABLE helloworld.my_first_table (
user_id UInt32,
message String,
timestamp DateTime,
metric Float32
) ENGINE = MergeTree()
PRIMARY KEY (user_id, timestamp)"Обе команды выводят OK. Вставьте несколько строк:
clickhousectl cloud service query --id "$CH_ID" \
--query "INSERT INTO helloworld.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)"Проверьте, что всё работает:
clickhousectl cloud service query --id "$CH_ID" \
--query "SELECT * FROM helloworld.my_first_table ORDER BY timestamp"{"user_id":102,"message":"Insert a lot of rows per batch","timestamp":"2026-08-26 00:00:00","metric":1.41421}
{"user_id":102,"message":"Sort your data based on your commonly-used queries","timestamp":"2026-08-27 00:00:00","metric":2.718}
{"user_id":101,"message":"Hello, ClickHouse!","timestamp":"2026-08-27 10:41:28","metric":-1}
{"user_id":101,"message":"Granules are the smallest chunks of data read","timestamp":"2026-08-27 10:41:33","metric":3.14159}Временные метки зависят от времени выполнения вставки, поэтому у вас они будут другими.
Загрузка CSV-файла
Предположим, что в CSV-файле data.csv содержится следующий текст:
102,This is data in a file,2022-02-22 10:43:28,123.45
101,It is comma-separated,2022-02-23 00:00:00,456.78
103,Use FORMAT to specify the format,2022-02-21 10:43:30,678.90INSERT ... FORMAT считывает данные из stdin, поэтому передайте запрос и файл через конвейер:
printf 'INSERT INTO helloworld.my_first_table FORMAT CSV\n' | cat - data.csv \
| clickhousectl cloud service query --id "$CH_ID"Убедитесь, что новые строки добавлены:
clickhousectl cloud service query --id "$CH_ID" \
--query "SELECT count() FROM helloworld.my_first_table"{"count()":7}Подключение с помощью клиента ClickHouse
Вы также можете подключиться по собственному протоколу с помощью клиента ClickHouse. ClickHouse CLI управляет бинарным файлом clickhouse, поэтому устанавливать клиент отдельно не нужно:
clickhousectl local use latestБудет установлен последний бинарный файл clickhouse и создана символическая ссылка на него в ~/.local/bin/clickhouse, поэтому команду clickhouse можно будет запускать из любого места, указанного в вашем PATH.
Затем подключитесь, используя имя хоста и пароль из ответа на создание. При использовании --query результат выводится, после чего клиент завершает работу; без него открывается интерактивный промпт (:)), из которого можно выйти командой exit:
clickhouse client --host "$CH_HOST" --secure --port 9440 \
--user default --password "$CH_PASSWORD" \
--query "SELECT * FROM helloworld.my_first_table ORDER BY timestamp FORMAT TabSeparated"102 Insert a lot of rows per batch 2026-08-26 00:00:00 1.41421
102 Sort your data based on your commonly-used queries 2026-08-27 00:00:00 2.718
101 Hello, ClickHouse! 2026-08-27 10:41:28 -1
101 Granules are the smallest chunks of data read 2026-08-27 10:41:33 3.14159
103 Use FORMAT to specify the format 2022-02-21 10:43:30 678.9
102 This is data in a file 2022-02-22 10:43:28 123.45
101 It is comma-separated 2022-02-23 00:00:00 456.78Та же команда используется для загрузки файлов:
clickhouse client --host "$CH_HOST" --secure --port 9440 \
--user default --password "$CH_PASSWORD" \
--query='INSERT INTO helloworld.my_first_table FORMAT CSV' < data.csvОчистка
При удалении сервиса все его данные удаляются безвозвратно. --force сначала останавливает работающий сервис:
clickhousectl cloud service delete "$CH_ID" --forceЧтобы сохранить данные и не платить за вычислительные ресурсы, остановите сервис командой clickhousectl cloud service stop "$CH_ID".