Skip to content
ClickHouse Docs
ClickHouse DocsClickHouse Docs

Подключение Embeddable к ClickHouse

Поддерживается сообществом

В Embeddable вы определяете Модели данных и Компоненты в коде (который хранится в вашем собственном репозитории) и используете наш SDK, чтобы сделать их доступными вашей команде в мощном no-code-конструкторе Embeddable.

В результате вы получаете возможность предоставлять быструю интерактивную клиентскую аналитику прямо в своем продукте: спроектированную вашей продуктовой командой, реализованную инженерной командой и поддерживаемую командами, работающими с клиентами, и командами данных. Именно так, как и должно быть.

Встроенная безопасность на уровне строки означает, что каждый пользователь видит только те данные, которые ему разрешено видеть. А два уровня полностью настраиваемого кэширования позволяют предоставлять быструю аналитику в реальном времени в большом масштабе.

Соберите сведения о подключении

Чтобы подключиться к ClickHouse по HTTP(S), вам понадобится следующая информация:

Параметр(ы) Описание
HOST and PORT Обычно используется порт 8443 при использовании TLS и 8123 без TLS.
DATABASE NAME По умолчанию есть база данных default; используйте имя базы данных, к которой хотите подключиться.
USERNAME and PASSWORD По умолчанию имя пользователя — default. Используйте имя пользователя, подходящее для вашего сценария использования.

Сведения о подключении для вашего сервиса ClickHouse Cloud доступны в консоли ClickHouse Cloud. Выберите сервис и нажмите Connect:

Кнопка подключения сервиса ClickHouse Cloud

Выберите HTTPS. Сведения о подключении будут показаны в примере команды curl.

Сведения о подключении к ClickHouse Cloud по HTTPS

Если вы используете самоуправляемый ClickHouse, сведения о подключении задаёт ваш администратор ClickHouse.

Создайте тип подключения к ClickHouse

Подключение к базе данных добавляется с помощью Embeddable API. Это подключение используется для подключения к вашему сервису ClickHouse. Добавить подключение можно следующим вызовом API:

Queryjavascript
// из соображений безопасности это *никогда* не должно вызываться на стороне клиента
fetch('https://api.embeddable.com/api/v1/connections', {
  method: 'POST',
  headers: {
    'Content-Type': 'application/json',
    Accept: 'application/json',
    Authorization: `Bearer ${apiKey}` /* храните ваш API Key в безопасности */,
  },
  body: JSON.stringify({
    name: 'my-clickhouse-db',
    type: 'clickhouse',
    credentials: {
      host: 'my.clickhouse.host',
      user: 'clickhouse_user',
      port: 8443,
      password: '*****',
    },
  }),
});
Responsetext
Status 201 { errorMessage: null }

Выше показано действие CREATE, но доступны все операции CRUD.

apiKey можно найти, нажав "Publish" на одной из панелей мониторинга Embeddable.

name — это уникальное имя для идентификации этого подключения.

  • По умолчанию ваши модели данных будут искать подключение с именем "default", но вы можете указать в моделях другие имена data_source, чтобы разные модели данных подключались к разным подключениям (просто укажите имя data_source в модели)

type сообщает Embeddable, какой драйвер использовать

  • Здесь следует использовать clickhouse, но к одному рабочему пространству Embeddable можно подключить несколько разных источников данных, поэтому вы также можете использовать другие, например: postgres, bigquery, mongodb и т. д.

credentials — это объект JavaScript, содержащий учетные данные, необходимые драйверу

  • Они надежно зашифрованы и используются только для получения именно тех данных, которые вы описали в своих моделях данных. Embeddable настоятельно рекомендует создавать отдельного пользователя базы данных с правами только для чтения для каждого подключения (Embeddable будет только читать данные из вашей базы данных, а не записывать их).

Чтобы поддерживать подключение к разным базам данных для prod, qa, test и т. д. (или использовать разные базы данных для разных клиентов), вы можете назначить каждому подключению окружение (см. Environments API).

Navigation