Предварительные требования
Вам также следует пройти следующие руководства из раздела «Быстрый старт»:
- Быстрый старт с ClickHouse Cloud - вам понадобится работающий сервис ClickHouse Cloud, в который можно выполнять вставку данных
- Получите сведения о подключении к Cloud - для подключения вам понадобятся имя хоста, имя пользователя и пароль
Что вы создадите
В этом руководстве из раздела «Быстрый старт» вы будете использовать 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.csvclickhouse-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 и десятков других форматов.
Далее ознакомьтесь со следующими руководствами из раздела «Быстрый старт»:
Или перейдите к справочной документации:
