Skip to content

Управление базой данных

В Managed ClickHouse все управление базами данных выполняется с помощью SQL-запросов. С полным списком SQL-операторов ClickHouse вы можете ознакомиться в официальной документации ClickHouse.

Посмотреть список баз данных кластера

Запросите список баз данных из системной таблицы system.databases, которая содержит метаданные обо всех базах данных. Для этого используйте оператор SELECT и виртуальный движок clusterAllReplicas, который выполняет запрос к указанной таблице на всех узлах всех шардов заданного кластера.

  1. Подключитесь к кластеру.

  2. Выполните запрос:

    sql
    SELECT hostName() AS узел, name AS база_данных
    FROM clusterAllReplicas('{cluster}', system.databases);

    В запросе:

    • Функция hostName() возвращает имена узлов. Имена узлов и баз данных будут записаны в столбцы с псевдонимами узел и база_данных.
    • Имя кластера автоматически определяется макросом {cluster}, заданным в конфигурации.

Посмотреть информацию о конкретной базе данных

Запросите из системной таблицы system.databases сведения о базе данных по ее имени. Для этого используйте оператор SELECT.

  1. Подключитесь к кластеру.

  2. Выполните запрос:

    sql
    SELECT * FROM system.databases WHERE name = '<имя базы данных>';

    В результате будут выведены метаданные и технические параметры базы данных.

Создать базу данных

Для создания базы данных используйте оператор CREATE.

  1. Подключитесь к кластеру.

  2. Выполните запрос:

    sql
    CREATE DATABASE IF NOT EXISTS <имя базы данных>
    ON CLUSTER '<имя кластера>'
    ENGINE = <движок>
    COMMENT '<комментарий>';

    Условия в запросе:

    • IF NOT EXISTS — предотвращает ошибку, если база данных с таким именем уже существует.
    • ON CLUSTER — создает базу данных на всех узлах заданного кластера.
    • ENGINE — задает тип движка базы данных. По умолчанию выбирается движок Atomic.
    • COMMENT — комментарий.

Удалить базу данных

Для удаления базы данных используйте оператор DROP.

  1. Подключитесь к кластеру.

  2. Выполните запрос:

    sql
    DROP DATABASE [IF EXISTS] <имя базы данных> ON CLUSTER '<имя кластера>' SYNC;

    Условия в запросе:

    • IF EXISTS — предотвращает ошибку, если базы данных с таким именем не существует.
    • ON CLUSTER — удаляет базу данных на всех узлах заданного кластера.

    В результате база данных удалится вместе со всеми таблицами и данными со всех узлов. Управление вернется пользователю только после фактического завершения операции на всех узлах кластера.