Работа с базами данных Managed Service for ClickHouse®
В этом разделе приведена основная информация о работе с Managed Service for ClickHouse®.
Для работы с базой данных Managed Service for ClickHouse® выполните следующие шаги:
- Создайте соединение, содержащее реквизиты для подключения к базе данных.
- Выполните запрос к базе данных.
Пример запроса для чтения данных из Managed Service for ClickHouse®:
SELECT * FROM clickhouse_mdb_connection.my_table
Где:
clickhouse_mdb_connection— название созданного соединения с базой данных.my_table— имя таблицы в базе данных.
Настройка соединения
Чтобы создать соединение с Managed Service for ClickHouse®:
-
В консоли управления
выберите каталог, в котором нужно создать соединение. -
Перейдите
в сервис Yandex Query. -
На панели слева выберите Соединения.
-
Нажмите кнопку
Создать. -
Укажите параметры соединения:
-
В блоке Общие параметры:
- Имя — название соединения с Managed Service for ClickHouse®.
- Тип —
Managed Service for ClickHouse.
-
В блоке Параметры типа соединения:
-
Кластер — выберите существующий кластер Managed Service for ClickHouse® или создайте новый.
-
Сервисный аккаунт — выберите существующий сервисный аккаунт Managed Service for ClickHouse® или создайте новый с ролью
managed-clickhouse.viewer, от имени которого будет выполняться подключение к кластерам Managed Service for ClickHouse®.Чтобы использовать сервисный аккаунт, пользователю нужна роль
iam.serviceAccounts.user. -
База данных — выберите базу данных, которая будет использоваться при работе с кластером ClickHouse®.
-
Логин — имя пользователя, которое будет использоваться для подключения к базам данных ClickHouse®.
-
Пароль — пароль пользователя, который будет использоваться для подключения к базам данных ClickHouse®.
-
-
-
Нажмите кнопку Создать.
Сервисный аккаунт необходим для обнаружения точек подключения к кластерам Managed Service for ClickHouse® внутри Yandex Cloud. Для работы с данными отдельно задайте имя пользователя и пароль.
Важно
Разрешите сетевой доступ от Yandex Query до кластеров Managed Service for ClickHouse®. Для этого в настройках базы данных, к которой выполняется подключение, включите опцию Доступ из Yandex Query.
Синтаксис запросов
Для работы с ClickHouse® используется следующая форма SQL-запроса:
SELECT * FROM <соединение>.<имя_таблицы>
Где:
<соединение>— название созданного соединения с базой данных.<имя_таблицы>— имя таблицы в базе данных.
Ограничения
При работе с кластерами ClickHouse® действуют следующие ограничения:
-
Внешние источники доступны только для чтения данных через запросы
SELECT. Запросы, модифицирующие таблицы во внешних источниках, сервисом Yandex Query в настоящее время не поддерживаются. -
В YQ используется система типов
Yandex Managed Service for YDB. Диапазоны допустимых значений типов даты и времени YDB (Date,Datetime,Timestamp) не позволяют хранить все значения соответствующих типов ClickHouse® (Date,Date32,DateTime,DateTime64).Поэтому значения даты и времени, прочитанные из ClickHouse®, возвращаются YQ как строки в формате ISO-8601
. Для обычных колонок используется типUtf8, для nullable колонок —Optional<Utf8>.
Пушдаун фильтров
Yandex Query умеет передавать обработку частей запросов в систему-источник данных. Это означает, что фильтрующие выражения передаются сквозь Yandex Query непосредственно в базу данных для обработки, обычно это условия запросов, указанных в WHERE. Такой способ обработки называется пушдаун фильтров.
Пушдаун фильтров возможен при использовании:
| Описание | Пример |
|---|---|
Проверка на NULL |
WHERE column1 IS NULL или WHERE column1 IS NOT NULL |
Логических условий OR, NOT, AND и круглых скобок для управления приоритетом вычислений. |
WHERE column1 IS NULL OR (column2 IS NOT NULL AND column3 > 10). |
Операторов сравнения =, ==, !=, <>, >, <, >=, <= с другими колонками или константами. |
WHERE column1 > column2 OR column3 <= 10, WHERE column1 + column2 > 10, WHERE column1 = (10 + 10) |
При использовании других видов фильтров пушдаун на источник не выполняется: фильтрация строк внешней таблицы будет выполнена на стороне федеративной Yandex Query, что означает, что Yandex Query выполнит полное чтение (full scan) внешней таблицы в момент обработки запроса.
Поддерживаемые типы данных для пушдауна фильтров:
|
Тип данных Yandex Query |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Поддерживаемые типы данных
По умолчанию колонки в ClickHouse® не могут содержать значение NULL. При этом можно создать таблицу с колонками опциональных (nullable)
Ниже приведены таблицы соответствия типов ClickHouse® и Yandex Query. Все остальные типы данных, за исключением перечисленных, не поддерживаются.
Примитивные типы данных
|
Тип данных ClickHouse® |
Тип данных Yandex Query |
Примечания |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Нулевые байты |
Опциональные типы данных
|
Тип данных ClickHouse® |
Тип данных Yandex Query |
Примечания |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Нулевые байты |
ClickHouse® является зарегистрированным товарным знаком ClickHouse, Inc