云小课|打造企业数据“高内聚,低耦合”-- 试试 GaussDB(DWS) 逻辑集群,实现数据物理隔离
阅识风云是华为云信息大咖,擅长将复杂信息多元化呈现,其出品的一张图(云图说)、深入浅出的博文(云小课)或短视频(云视厅)总有一款能让您快速上手华为云。更多精彩内容请单击此处。
摘要:逻辑集群是基于 Node Group 机制来划分物理节点的一种集群模式,从节点层次将大集群进行划分,和数据库形成交叉。一个数据库中的表可以按逻辑集群来分配到不同的物理节点,而一个逻辑集群也可以包含多个数据库的表。
本文分享自华为云社区《 【高并发】如何解决可见性和有序性问题?这次彻底懂了!》,原文作者:阅识风云。
逻辑集群是什么?
传统的企业数仓数据,往往是各种业务数据集成到同一个数据仓库集群中,不同业务数据根据集群中的数据库或表中进行区分,实际上所有业务数据还是在同一个数仓中,会存在以下问题,具体表现在:
1. 数仓的数据规模越来越大,表越来越多。不同业务访问数仓过程中会带来资源的竞争,比如 CPU、内存、磁盘 IO、网络的竞争。虽然通过配置资源池可以一定程度解决资源竞争,但所有业务执行逻辑仍然同时在每个节点上执行,无法做到资源完全隔离。事实上,同一业务的不同作业总是倾向访问本业务相关的表,对其他业务的表访问较少,如果能做到业务内数据“高内聚”,业务间“低耦合”无疑是更好的选择。
2. 数据库表无论大小都被切分到所有节点,对小表来说,数据过于分散。当节点规模达到一定程度后,通过增加更多节点,提高查询并行度的方式可能就无法带来理想的扩展性了。如果为了避免集群变大,将不同业务数据拆分成独立集群,集群间数据互访就需要从应用层解决,或者需要跨集群导数。
逻辑集群实现了一个大集群按节点拆分,将大集群中所有节点分组,每个节点组构建一个逻辑集群,可以很好的解决上面所述的问题。
逻辑集群是基于 Node Group 机制来划分物理节点的一种集群模式,从节点层次将大集群进行划分,和数据库形成交叉。一个数据库中的表可以按逻辑集群来分配到不同的物理节点,而一个逻辑集群也可以包含多个数据库的表。在划分逻辑集群后,整个数据库中对象间的层次关系如下图所示:
图 1 逻辑集群、数据库、表层次关系
在实际业务场景中,建议用户尽可能将同一个数据库的表创建到同一个逻辑集群中。
该功能受限商用,如需使用,请在技术人员指导下进行。
弹性集群
弹性集群是指在逻辑集群模式下,非逻辑集群节点组成的集群并且总是存在。弹性集群的名称为 elastic_group,是一个特殊的 Node Group,可以包含多个或不包含任何 DN 节点。
弹性集群不能用户手动创建,在物理集群下第一次创建逻辑集群时自动创建弹性集群,物理集群中所有不属于逻辑集群的物理节点都会加入弹性集群。后续逻辑集群创建所需的 DN 节点都是来自弹性集群中。因此,为了能够创建新的逻辑集群,需要保证弹性集群中有 DN 节点存在(在物理集群模式下第一次创建逻辑集群时不需要)。
用户可以通过扩容向弹性集群添加新的物理节点。
权限说明
逻辑集群创建权限(CREATE ON NODE GROUP)允许授予任何用户/角色,创建权限后可在对应的逻辑集群上进行创建表等相关操作。
允许修改表的 owner 为任何用户,但对表进行操作时,需要检查对应的 schema 和 nodegroup 权限。
系统管理员可以关联到特定逻辑集群,并在多个逻辑集群中创建表。
允许将系统管理员权限授予关联了逻辑集群的用户,但同样遵循建表规则
非表对象(schema/sequence/function/trigger 等)的访问不再检查逻辑集群权限。
逻辑集群用户如果有创建数据库权限也可创建数据库
系统中的资源池必须关联到特定逻辑集群。
逻辑集群删除时只删除表、外表,资源池对象,其他对象不会删除。
逻辑集群有哪些注意事项?
如何进入逻辑集群页面?
登录 GaussDB(DWS) 管理控制台。
在集群列表中单击指定集群名称。
进入集群“基本信息”页面,打开“逻辑集群开关”,出现“逻辑集群管理”页签。
4. 切换至逻辑集群页面,用户可进行相关操作。
逻辑管理相关操作
了解更多华为云数据仓库 GaussDB(DWS),请猛戳
版权声明: 本文为 InfoQ 作者【华为云开发者社区】的原创文章。
原文链接:【http://xie.infoq.cn/article/bb9cad3ea044735bafe0aedd6】。文章转载请联系作者。
评论