如何使用NineData GUI创建ClickHouse数据表?

如何使用NineData GUI创建ClickHouse数据表?

今天重点来介绍一下如何通过 NineData 帮助开发者,通过 GUI 的方式创建、修改 ClickHouse 的数据库表结构。

1. 新建表

进入 NineData 平台后,首先打开左侧的 SQL 窗口,选择我们的目标数据源(此处演示为 ck_集群测试1);在左侧对象导航树找到我们的目标数据库(此处演示为 str_test),在该对象名上鼠标右键选择“创建表”,进入新建表页面,如下:

缺省 NineData 会提供默认表名、主键 id 等信息,缺省表引擎为 ClickHouse 里最强的 MergeTree,您可按需调整表名、注释、引擎参数、字段、压缩与编码、索引、排序键(key 配置)、投影、约束、分区、过期时间等相关信息。如果您想要在指定逻辑集群的多个节点同时创建同一个表,也可以选择配置 on cluster 参数(此处演示选择 ninedata_cluster);当您选择 on cluster 参数后,NineData 提供您一键为“本地表”创建“分布式表”的能力(勾选 创建分布式表,您可在下方 SQL 脚本中实时看到对应的语句);若您暂时不需要创建分布式表,则可取消该勾选项。

另外,如果您的本地表已经创建在每个分片节点上,您想对其再创建一个分布式表,您只需要将表引擎选择为 Distributed ,NineData 同样为您提供高效的创建方案。当您选择好本地表,将为您一键带入本地表的字段相关定义信息,只需要补充分布式参数就可以完成创建(一般建议填写 sharding_key,此处示例为 user_id;缺省分布式表的表名为“本地表名称_all”)。

在建表语句确认后,点击页面的保存,完成确认即可执行生效到数据库中。执行完成后您在 NineData  SQL 窗口可通过如下 SQL 进行确认:

## 查看逻辑集群有哪些分片节点:
## 此处 ninedata_cluster 需要替换为您使用的逻辑集群名
select *
from system.clusters
where cluster='ninedata_cluster';

## 查看本地表、分布式表的创建情况:
## 此处 order 需要替换为您实际定义的本地表的表名称
## 此处str_test 需要替换为您实际使用的ClickHouse数据库名称

SELECT *
from system.tables
where name like 'order%'
and database='str_test';

您还可以按需在SQL1查出来的逻辑集群分片上逐一确认表结构、建表语句等信息。

当前,NineData 的「新建表」功能完整支持 ClickHouse 的所有表引擎、引擎参数、字段属性等相关的选择与配置;同时,新建表对集群与分布式的支持,即可以帮您保障多个本地表在集群分片上的一致、分布式表与本地表的一致,更可有效帮您提升研发效率,减少重复工作的投入。

2. 修改表

当业务发展发生需求变更时,表结构的修改也是极其常见的需求;此时您只需要在 SQL 窗口左侧导航树找到对应目标表,右键“编辑表”即可进入修改页面,字段等相关信息您可按需修改(注:为了更好的适配 ClickHouse 的特性,部分信息如表引擎等是不支持修改的,具体数据库支持能力参考 ClickHouse 官方文档)。

当前,NineData 的「编辑表」功能也完整支持 ClickHouse 的全部变更操作,集群多个分片的一致性变更也已支持。

温馨提示:答案为网友推荐,仅供参考
相似回答