1 line
9.3 KiB
JSON
1 line
9.3 KiB
JSON
{"queryDurationMs":53,"svc":{"svcId":120,"svc":"ClickHouse","svcShort":"clickhouse","code":null,"version":"0.0.4","orchestratorName":"ClickHouse","createUrl":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/k8s/job/ClickHouse/job/create/view/tags/job/0.0.4/buildWithParameters","isProductionReady":true,"resourceRealmTypeId":3,"iconSrc":null,"descr":"Управляемая база данных ClickHouse","man":"# Инструкция по управлению кластерами и пользователями ClickHouse<br/><br/>---<br/><br/>## Общая информация<br/><br/>ClickHouse — это колоночная система управления базами данных, предназначенная для обработки аналитических запросов в реальном времени. Платформа позволяет создавать, удалять, приостанавливать и возобновлять кластеры ClickHouse, а также управлять базами данных и пользователями.<br/><br/>Кластер создаётся через оператор Altinity (`https://github.com/Altinity/clickhouse-operator`) в ресурсной платформе типа `k8s`<br/><br/>Кластеры могут создаваться шардированными с произвольным количеством реплик. Для обеспечения отказоустойчивости и координации обязательно включение параметра `Создать ClickHouse-Keeper`.<br/><br/>Кластера создаются с обязательным бекапом. Для этого необходимо предварительно создать услугу `S3 Object Storage`.<br/>---<br/><br/>## Доступные операции<br/><br/>* **create** — Создание кластера<br/>* **delete** — Удаление кластера<br/>* **suspend** — Приостановка работы кластера<br/>* **resume** — Возобновление работы кластера<br/>* **create_database** — Создание базы данных<br/>* **delete_database** — Удаление базы данных<br/>* **create_user** — Создание пользователя и настройка прав доступа к базе данных<br/>* **delete_user** — Удаление пользователя<br/><br/>## Процесс создания и первого подключения<br/><br/>1. Выполнить операцию `create` - будет создан кластер<br/>2. Выполнить операцию `create_database` - будет создана база данных<br/>3. Выполнить операцию `create_user` - будет создан пользователь (выбрать доступ подключения к БД, созданной в п.2)<br/><br/>## Примеры подключения<br/><br/>### Подключение через HTTP-интерфейс<br/><br/>```bash<br/># Проверка доступности кластера<br/>curl "http://<username>:<password>@<host>:8123/" -d "SELECT 1"<br/><br/># Выполнение запроса<br/>curl "http://<username>:<password>@<host>:8123/" -d "SHOW DATABASES"<br/>```<br/><br/>## Простые кейсы<br/>*Создать БД и обычной таблицы*<br/>```clickhouse<br/>CREATE TABLE database.table<br/>(<br/> id UInt64,<br/> value String<br/>)<br/>ENGINE = MergeTree()<br/>ORDER BY id;<br/><br/>INSERT INTO database.table SELECT number, toString(number) FROM numbers(10000000);<br/><br/>SELECT count() FROM database.table;<br/>```<br/>Базы и таблицы не реплицируются без специального ключа (`ON CLUSTER 'clickhousek8s'`)<br/>В случае создания в стиле, описанным выше, необходимо будет выполнять действия на всех шардах/репликах<br/><br/><br/>*Создание БД и шардированной таблицы*<br/>```clickhouse<br/>CREATE TABLE database.localUsers<br/>(<br/> id UInt64,<br/> value String<br/>)<br/>ENGINE = MergeTree()<br/>ORDER BY id;<br/><br/>CREATE TABLE database.shardedTable<br/>AS localUsers<br/>ENGINE = Distributed('clickhousek8s', 'database', 'localUsers', id);<br/><br/>INSERT INTO shardedTable SELECT number, toString(number) FROM numbers(10000000);<br/><br/>SELECT count() FROM shardedTable;<br/>```<br/>Важный момент - в данном примере таблицы придётся также выполнять на всех нодах ClickHouse<br/><br/>*Создание реплицируемой и шардированной таблицы*<br/>```clickhouse<br/>CREATE TABLE IF NOT EXISTS database.localUsers ON cluster 'clickhousek8s'<br/>(<br/> user_id UInt64,<br/> name String,<br/> email String<br/>)<br/>ENGINE = ReplicatedMergeTree(<br/> '/clickhouse/tables/{shard}/localUsers',<br/> '{replica}'<br/>)<br/>ORDER BY user_id;<br/><br/>CREATE TABLE IF NOT EXISTS database.users ON cluster 'clickhousek8s'<br/>AS database.localUsers<br/>ENGINE = Distributed('clickhousek8s', 'database', 'localUsers', rand());<br/><br/>INSERT INTO database.users VALUES (1, 'Alice', 'alice@example.com');<br/>INSERT INTO database.users VALUES (2, 'Bob', 'bob@example.com');<br/>INSERT INTO database.users VALUES (3, 'Charlie', 'charlie@example.com');<br/>INSERT INTO database.users VALUES (4, 'David', 'david@example.com');<br/>INSERT INTO database.users VALUES (5, 'Gosha', 'gosha@example.com');<br/>INSERT INTO database.users VALUES (6, 'Eve', 'eve@example.com');<br/>INSERT INTO database.users VALUES (7, 'Frank', 'frank@example.com');<br/>INSERT INTO database.users VALUES (8, 'Grace', 'grace@example.com');<br/>INSERT INTO database.users VALUES (9, 'Hannah', 'hannah@example.com');<br/>INSERT INTO database.users VALUES (10, 'Ivan', 'ivan@example.com');<br/><br/>SELECT * FROM database.localUsers;<br/>SELECT * FROM database.users;<br/><br/>SELECT COUNT(*) AS total_users FROM database.users;<br/>SELECT COUNT(*) AS total_users_local FROM database.localUsers;<br/>```","operations":[{"svcOperationId":187,"operation":"delete_user","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/k8s/job/ClickHouse/job/delete_user/view/tags/job/0.0.4/buildWithParameters","descr":null,"man":null},{"svcOperationId":188,"operation":"delete_database","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/k8s/job/ClickHouse/job/delete_database/view/tags/job/0.0.4/buildWithParameters","descr":null,"man":"Необратимое действие!!!<br/>Трижды подумай, заблокируй телефон тимлида и не выполняй это действие"},{"svcOperationId":184,"operation":"delete","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/k8s/job/ClickHouse/job/delete/view/tags/job/0.0.4/buildWithParameters","descr":null,"man":"Удаление возможно только после остановки сервиса через операцию `suspend`<br/>После выполнения операции необходимо выждать определенное кол-во времени"},{"svcOperationId":183,"operation":"resume","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/k8s/job/ClickHouse/job/resume/view/tags/job/0.0.4/buildWithParameters","descr":"Восстанавливает все поды и приводит кластер в работоспособный вид","man":null},{"svcOperationId":185,"operation":"create_user","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/k8s/job/ClickHouse/job/create_user/view/tags/job/0.0.4/buildWithParameters","descr":null,"man":null},{"svcOperationId":181,"operation":"create","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/k8s/job/ClickHouse/job/create/view/tags/job/0.0.4/buildWithParameters","descr":null,"man":"Операция создания кластера ClickHouse<br/><br/>Для подключения к кластеру также необходимо создать базу данных через операцию `create_database` и создание пользователя через операцию `create_user`"},{"svcOperationId":189,"operation":"modify","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/k8s/job/ClickHouse/job/modify/view/tags/job/0.0.4/buildWithParameters","descr":null,"man":null},{"svcOperationId":186,"operation":"create_database","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/k8s/job/ClickHouse/job/create_database/view/tags/job/0.0.4/buildWithParameters","descr":null,"man":"База данных создаётся на всех репликах кластера ClickHouse"},{"svcOperationId":182,"operation":"suspend","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/k8s/job/ClickHouse/job/suspend/view/tags/job/0.0.4/buildWithParameters","descr":null,"man":"Операция приводит к удалению всех подов<br/>Persistent Volume остаются нетронутыми"}]},"runDurationMs":53} |