将 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 控制台中找到。 选择您要连接的服务,然后单击“Connect”(连接)
选择 HTTPS,详细信息将在 curl
命令示例中提供。
如果您使用的是自托管的 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 仪表板之一上的“Publish”(发布)找到。
name
是用于标识此连接的唯一名称。
- 默认情况下,您的数据模型将查找名为“default”的连接,但您可以为您的模型提供不同的
data_source
名称,以支持将不同的数据模型连接到不同的连接(只需在模型中指定 data_source 名称)
type
告诉 Embeddable 要使用哪个驱动程序
- 在这里您需要使用
clickhouse
,但是您可以将多个不同的数据源连接到一个 Embeddable 工作区,因此您可以使用其他数据源,例如:postgres
、bigquery
、mongodb
等。
credentials
是一个 JavaScript 对象,其中包含驱动程序所需的必要凭据
- 这些凭据经过安全加密,仅用于检索您在数据模型中描述的精确数据。 Embeddable 强烈建议您为每个连接创建一个只读数据库用户(Embeddable 永远只会从您的数据库读取数据,而不会写入数据)。
为了支持连接到 prod、qa、test 等不同的数据库(或支持为不同的客户连接到不同的数据库),您可以将每个连接分配给一个环境(请参阅 Environments API)。