跳到主要内容

将 Embeddable 连接到 ClickHouse

Embeddable 中,您可以定义 数据模型组件 代码(存储在您自己的代码库中),并使用我们的 SDK 使这些组件可供您的团队在功能强大的 Embeddable 无代码构建器 中使用。

最终结果是能够直接在您的产品中提供快速、交互式的面向客户的分析;由您的产品团队设计;由您的工程团队构建;由您的面向客户的和数据团队维护。这正是应该的方式。

内置的行级安全意味着每个用户只能看到他们被允许看到的确切数据。并且两级完全可配置的缓存意味着您可以大规模地提供快速、实时的分析。

1. 收集您的连接详细信息

要使用 HTTP(S) 连接到 ClickHouse,您需要以下信息

  • HOST 和 PORT:通常,使用 TLS 时端口为 8443,不使用 TLS 时端口为 8123。

  • DATABASE NAME:默认情况下,有一个名为 default 的数据库,请使用您要连接到的数据库的名称。

  • USERNAME 和 PASSWORD:默认情况下,用户名为 default。使用适合您的用例的用户名。

您 ClickHouse Cloud 服务的详细信息可在 ClickHouse Cloud 控制台中找到。选择您要连接到的服务,然后点击 连接

ClickHouse Cloud service connect button

选择 HTTPS,详细信息可在示例 curl 命令中找到。

ClickHouse Cloud HTTPS connection details

如果您使用的是自托管的 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: '*****',
},
}),
});


Response:
Status 201 { errorMessage: null }

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

apiKey 可以通过点击您的一个 Embeddable 仪表盘上的“发布”来找到。

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

  • 默认情况下,您的数据模型会查找名为“default”的连接,但您可以为您的模型提供不同的 data_source 名称来支持将不同的数据模型连接到不同的连接(只需在模型中指定 data_source 名称)

type 告诉 Embeddable 使用哪个驱动程序

  • 在这里您需要使用 clickhouse,但您可以将多个不同的数据源连接到一个 Embeddable 工作区,因此您可以使用其他数据源,例如:postgresbigquerymongodb 等。

credentials 是一个包含驱动程序所需的必要凭据的 javascript 对象

  • 这些凭据是安全加密的,仅用于检索您在数据模型中描述的确切数据。Embeddable 强烈建议您为每个连接创建只读数据库用户(Embeddable 只能从您的数据库读取,不能写入)。

为了支持连接到不同的数据库以进行生产、质量保证、测试等(或支持为不同的客户连接到不同的数据库),您可以将每个连接分配到一个环境(请参阅 环境 API)。