Skip to content
ClickHouse Docs
ClickHouse DocsClickHouse Docs

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

Самый быстрый и простой способ начать работу с ClickHouse — создать новый сервис в ClickHouse Cloud. В этом руководстве по быстрому старту мы поможем вам настроить всё за три простых шага.

Создайте сервис ClickHouse

Чтобы создать бесплатный сервис ClickHouse в ClickHouse Cloud, зарегистрируйтесь, выполнив следующие действия:

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

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

Новый сервис ClickHouse

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

При необходимости настройте ресурсы сервиса, указав минимальный и максимальный размеры, между которыми будут масштабироваться реплики. Когда всё будет готово, выберите Create service.

Ограничения масштабирования

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

Подключитесь к ClickHouse

Подключиться к ClickHouse можно двумя способами:

  • Через нашу веб-консоль SQL
  • Из вашего приложения

Подключение через консоль SQL

Для быстрого начала работы ClickHouse предоставляет веб-консоль SQL, в которую вы будете перенаправлены после завершения онбординга.

Консоль SQL

Создайте вкладку запроса и выполните простой запрос, чтобы убедиться, что подключение работает:

SHOW databases

В списке должны отображаться 4 базы данных, а также все базы данных, добавленные вами.

SQL Console

Готово — теперь вы можете начать использовать новый сервис ClickHouse!

Подключение приложения

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

Service Connect

Если нужной клиентской библиотеки нет в списке, ознакомьтесь с нашим списком интеграций.

Добавить данные

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

  1. Установите ClickHouse.

  2. Выполните команду, указав имя хоста, имя пользователя и пароль:

./clickhouse client --host HOSTNAME.REGION.CSP.clickhouse.cloud \
--secure --port 9440 \
--user default \
--password <password>

Если появилось приглашение со смайликом, значит, можно выполнять запросы!

:)
  1. Выполните следующий запрос:

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.
  1. Добавьте предложение 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.
  1. Чтобы выйти из клиента ClickHouse, введите команду exit:

exit

Загрузка файла

Одна из типичных задач в начале работы с базой данных — вставка данных, которые у вас уже есть в файлах. Мы разместили в интернете пример данных, который вы можете вставить: это данные о кликах пользователей (clickstream), включающие ID пользователя, посещённый URL и временную метку события.

Предположим, что в CSV-файле с именем data.csv содержится следующий текст:

data.csvbash
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
  1. Следующая команда вставляет данные в таблицу 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
  1. Обратите внимание: при выполнении запроса из SQL-консоли в таблице теперь отображаются новые строки:

Новые строки из CSV-файла

Что дальше?

Вы можете пройти этот путь самостоятельно, автоматизировать его с помощью скрипта или поручить ИИ-агенту. Для версии в консоли переключитесь в режим 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 содержится следующий текст:

data.csvtext
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

INSERT ... 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".

Navigation