Skip to content
ClickHouse Docs
ClickHouse DocsClickHouse Docs

Conectar Embeddable con ClickHouse

Mantenido por la comunidad

En Embeddable define Modelos de Datos y Componentes en código (almacenado en su propio repositorio de código) y utiliza nuestro SDK para ponerlos a disposición de su equipo en el potente constructor no-code de Embeddable.

El resultado final es la capacidad de ofrecer analítica rápida e interactiva de cara al cliente directamente en su producto; diseñada por su equipo de producto; construida por su equipo de ingeniería; mantenida por sus equipos de atención al cliente y de datos. Exactamente como debe ser.

La seguridad integrada a nivel de fila significa que cada usuario solo ve exactamente los datos que tiene permitido ver. Y dos niveles de almacenamiento en caché totalmente configurables significan que puede ofrecer analítica rápida y en tiempo real a escala.

Recopilar los detalles de su conexión

Para conectarse a ClickHouse con HTTP(S), necesita esta información:

Parámetro(s) Descripción
HOST and PORT Normalmente, el puerto es 8443 cuando se usa TLS o 8123 cuando no se usa TLS.
DATABASE NAME De forma predeterminada, existe una base de datos llamada default; use el nombre de la base de datos a la que desea conectarse.
USERNAME and PASSWORD De forma predeterminada, el nombre de usuario es default. Use el nombre de usuario adecuado para su caso de uso.

Los detalles de su servicio de ClickHouse Cloud están disponibles en la consola de ClickHouse Cloud. Seleccione un servicio y haga clic en Connect:

Botón Connect del servicio de ClickHouse Cloud

Elija HTTPS. Los detalles de conexión se muestran en un comando curl de ejemplo.

Detalles de conexión HTTPS de ClickHouse Cloud

Si usa ClickHouse autogestionado, los detalles de conexión los establece su administrador de ClickHouse.

Crear un tipo de conexión de ClickHouse

Añada una conexión a la base de datos mediante la Embeddable API. Esta conexión se utiliza para conectarse a su servicio de ClickHouse. Puede añadir una conexión mediante la siguiente llamada a la API:

Queryjavascript
// por razones de seguridad, esto *nunca* debe llamarse desde el lado del cliente
fetch('https://api.embeddable.com/api/v1/connections', {
  method: 'POST',
  headers: {
    'Content-Type': 'application/json',
    Accept: 'application/json',
    Authorization: `Bearer ${apiKey}` /* mantén tu API key segura */,
  },
  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 }

Lo anterior representa una acción CREATE, pero están disponibles todas las operaciones CRUD.

La apiKey se puede encontrar haciendo clic en "Publish" en uno de tus dashboards de Embeddable.

El name es un nombre único para identificar esta conexión.

  • De forma predeterminada, tus modelos de datos buscarán una conexión llamada "default", pero puedes proporcionar a tus modelos distintos nombres de data_source para permitir que diferentes modelos de datos se conecten a distintas conexiones (solo tienes que especificar el nombre de data_source en el modelo)

El type le indica a Embeddable qué driver debe usar

  • Aquí querrás usar clickhouse, pero puedes conectar varias fuentes de datos diferentes a un mismo espacio de trabajo de Embeddable, por lo que también podrías usar otras como: postgres, bigquery, mongodb, etc.

Las credentials son un objeto de JavaScript que contiene las credenciales necesarias que espera el driver

  • Estas se cifran de forma segura y solo se usan para recuperar exactamente los datos que has descrito en tus modelos de datos. Embeddable te recomienda encarecidamente que crees un usuario de base de datos de solo lectura para cada conexión (Embeddable solo leerá de tu base de datos, no escribirá en ella).

Para permitir la conexión a diferentes bases de datos para prod, qa, test, etc. (o para usar diferentes bases de datos para distintos clientes), puedes asignar cada conexión a un entorno (consulta la API de Environments).

Navigation