Skip to content
ClickHouse Docs
ClickHouse DocsClickHouse Docs

Вставка данных в ClickHouse Cloud с помощью clickhouse-client

All quickstarts
Real-time аналитикаХранилище данныхОбсервабилитиAI/MLCloud

Предварительные требования

Вам также следует пройти следующие руководства из раздела «Быстрый старт»:

Что вы создадите

В этом руководстве из раздела «Быстрый старт» вы будете использовать clickhouse-client — официальный клиент ClickHouse для командной строки — чтобы загрузить данные из локального CSV-файла в сервис ClickHouse Cloud. Вы установите clickhouse-client, подготовите пример набора данных, подключитесь к своему сервису ClickHouse Cloud, создадите таблицу и выполните вставку данных с локальной машины. В итоге вы узнаете, как с помощью clickhouse-client загружать локальные файлы в ClickHouse Cloud — этот способ работает с CSV, Parquet, JSON и многими другими форматами.

Установите clickhouse-client

clickhouse-client — официальный CLI для подключения к ClickHouse. Он входит в состав бинарного файла ClickHouse.

Установите его с помощью универсального установщика:

curl https://clickhouse.com/ | sh

Это скачает последний бинарный файл clickhouse в текущий каталог. Проверьте установку:

./clickhouse client --version

Вы должны увидеть вывод с номером версии ClickHouse, подтверждающий, что clickhouse-client готов к работе.

Подготовьте небольшой CSV-файл для примера

Создайте небольшой CSV-файл, чтобы это руководство по быстрому запуску было самодостаточным. Выполните в терминале следующее:

cat <<'EOF' > sample_data.csv
timestamp,event_type,user_id,duration_ms,status
2024-01-15 10:30:00,page_view,1001,120,success
2024-01-15 10:31:15,click,1002,45,success
2024-01-15 10:32:00,page_view,1003,200,success
2024-01-15 10:33:30,purchase,1001,1500,success
2024-01-15 10:34:00,click,1004,60,error
2024-01-15 10:35:45,page_view,1002,95,success
2024-01-15 10:36:10,purchase,1005,2200,success
2024-01-15 10:37:00,click,1003,30,success
2024-01-15 10:38:20,page_view,1004,150,error
2024-01-15 10:39:00,purchase,1002,1800,success
EOF

Подключитесь к своему сервису ClickHouse Cloud

Команды ниже предполагают, что вы экспортировали CLICKHOUSE_HOST, CLICKHOUSE_USER и CLICKHOUSE_PASSWORD в виде переменных окружения, как описано в руководстве быстрого старта Получение сведений о подключении к Cloud. Если нет, вы можете напрямую подставить свои значения.

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

./clickhouse client \
  --host $CLICKHOUSE_HOST \
  --port 9440 \
  --user $CLICKHOUSE_USER \
  --password $CLICKHOUSE_PASSWORD \
  --secure \
  -q "SELECT 1"

Если подключение прошло успешно, в терминале будет выведено 1. Если возникает ошибка подключения, проверьте, что ваш сервис запущен в консоли Cloud, а имя хоста и пароль указаны верно.

Создайте целевую таблицу и вставьте данные

Сначала создайте таблицу в вашем сервисе ClickHouse Cloud для приема данных:

./clickhouse client \
  --host $CLICKHOUSE_HOST \
  --port 9440 \
  --user $CLICKHOUSE_USER \
  --password $CLICKHOUSE_PASSWORD \
  --secure \
  -q "
    CREATE TABLE IF NOT EXISTS events (
      timestamp DateTime,
      event_type LowCardinality(String),
      user_id UInt32,
      duration_ms UInt32,
      status LowCardinality(String)
    )
    ENGINE = MergeTree
    ORDER BY (event_type, timestamp)
  "

Теперь выполните вставку данных из локального CSV-файла. Это ключевой шаг — clickhouse-client читает файл из stdin и потоково передает его в удаленный сервис:

./clickhouse client \
  --host $CLICKHOUSE_HOST \
  --port 9440 \
  --user $CLICKHOUSE_USER \
  --password $CLICKHOUSE_PASSWORD \
  --secure \
  -q "INSERT INTO events FORMAT CSVWithNames" < sample_data.csv

clickhouse-client напрямую отправляет содержимое CSV-файла в ваш сервис ClickHouse Cloud. Формат CSVWithNames указывает ClickHouse, что первая строка содержит заголовки столбцов.

Проверьте, что данные были вставлены

Выполните запрос к своему сервису ClickHouse Cloud, чтобы убедиться, что строки были вставлены:

./clickhouse client \
  --host $CLICKHOUSE_HOST \
  --port 9440 \
  --user $CLICKHOUSE_USER \
  --password $CLICKHOUSE_PASSWORD \
  --secure \
  -q "SELECT count() FROM events"

Вы увидите 10 — это количество строк в примере CSV-файла.

Просмотрите данные:

./clickhouse client \
  --host $CLICKHOUSE_HOST \
  --port 9440 \
  --user $CLICKHOUSE_USER \
  --password $CLICKHOUSE_PASSWORD \
  --secure \
  -q "SELECT * FROM events ORDER BY timestamp LIMIT 5"

Этот же процесс работает с Parquet, TSV, JSON, Avro, ORC и многими другими поддерживаемыми форматами — просто измените предложение FORMAT и передайте на вход соответствующий файл.

Следующие шаги

В этом руководстве из раздела «Быстрый старт» вы установили clickhouse-client, подключили его к сервису ClickHouse Cloud и с его помощью передали данные из локального CSV-файла в ClickHouse Cloud. Этот же подход подходит для Parquet, JSON и десятков других форматов.

Далее ознакомьтесь со следующими руководствами из раздела «Быстрый старт»:

Или перейдите к справочной документации:

ClickHouse Academy — Master ClickHouse with expert-designed training for every skill level
Check out the ClickHouse academy for on-demand and live training
Navigation