跳转到主内容
跳转到主内容

将 Embeddable 连接到 ClickHouse

Community Maintained

Embeddable 中,你可以通过代码定义 数据模型组件 (存储在你自己的代码仓库中) ,并使用我们的 SDK 在功能强大的 Embeddable 无代码构建器 中将它们提供给团队使用。

最终,你可以直接在自己的产品中提供快速、交互式、面向客户的分析能力;由产品团队设计;由工程团队构建;由面向客户的团队和数据团队维护。这才是它应有的样子。

内置的行级安全机制意味着,每位用户始终只能看到其有权查看的数据。而两级完全可配置的缓存机制则意味着,你可以大规模提供快速的实时分析。

1. 获取连接详细信息

要通过 HTTP(S) 连接到 ClickHouse,您需要以下信息:

参数说明
HOSTPORT通常,在使用 TLS 时端口为 8443,不使用 TLS 时端口为 8123。
DATABASE NAME默认提供一个名为 default 的数据库,请填写您要连接的目标数据库名称。
USERNAMEPASSWORD默认用户名为 default。请使用适合您使用场景的用户名。

您的 ClickHouse Cloud 服务的详细信息可以在 ClickHouse Cloud 控制台中查看。 选择某个服务并点击 Connect

ClickHouse Cloud 服务 Connect 按钮

选择 HTTPS。连接信息会显示在示例 curl 命令中。

ClickHouse Cloud HTTPS 连接信息

如果您使用的是自托管 ClickHouse,则连接信息由您的 ClickHouse 管理员进行设置。

2. 创建 ClickHouse 连接类型

使用 Embeddable API 添加数据库连接。此连接用于连接到您的 ClickHouse 服务。您可以通过以下 API 调用添加连接:

// for security reasons, this must *never* be called from your client-side
fetch('https://api.embeddable.com/api/v1/connections', {
  method: 'POST',
  headers: {
    'Content-Type': 'application/json',
    Accept: 'application/json',
    Authorization: `Bearer ${apiKey}` /* keep your API Key secure */,
  },
  body: JSON.stringify({
    name: 'my-clickhouse-db',
    type: 'clickhouse',
    credentials: {
      host: 'my.clickhouse.host',
      user: 'clickhouse_user',
      port: 8443,
      password: '*****',
    },
  }),
});
Status 201 { errorMessage: null }

以上表示的是一个 CREATE 操作,但所有 CRUD 操作都可用。

点击任一 Embeddable 仪表板上的 "Publish",即可找到 apiKey

name 是用于标识此连接的唯一名称。

  • 默认情况下,你的数据模型会查找名为 "default" 的连接,但你也可以为模型提供不同的 data_source 名称,以便将不同的数据模型连接到不同的连接 (只需在模型中指定 data_source 名称) 。

type 用于告知 Embeddable 应使用哪个驱动程序

  • 此处应使用 clickhouse,但你也可以将多种不同的数据源连接到同一个 Embeddable 工作区,因此也可以使用其他类型,例如:postgresbigquerymongodb 等。

credentials 是一个 JavaScript 对象,包含驱动程序所需的凭据

  • 这些信息会被安全加密,并且仅用于检索你在数据模型中定义的数据。 Embeddable 强烈建议你为每个连接创建一个只读数据库用户 (Embeddable 只会从你的数据库中读取数据,不会写入) 。

为了支持连接到 prod、qa、test 等不同环境的数据库 (或为不同客户使用不同的数据库) ,你可以将每个连接分配给一个环境 (参见 Environments API) 。