共计 2286 个字符,预计需要花费 6 分钟才能阅读完成。
元数据是数据库系统中形容对象的数据,相当于数据应用的“说明书”,是决定数据库性能的重要抓手。
在大数据时代,海量的数据规模和简单的数据类型,意味着对元数据处理提出了更高的要求。
HashData 云数仓作为一款面向多种数据分析场景的高性能剖析型数据库,采纳元数据、计算和存储三者拆散的架构,可能更好地适应跨集群、跨核心以及跨云核心的数据拜访。
在提供高性能数据仓库业务的同时,HashData 领有更好的资源配置能力,并且通过元数据服务的拆散和共享,让所有的数据集群零碎保证数据的一致性。
传统 MPP 数据库应用“痛点”
传统的 Greenplum、Teradata 等 MPP 架构的数据库,存储、计算是紧耦合的,数据存储在本地零碎,存储能力的扩大通过减少集群节点实现,这样会导致计算资源重大节约,无奈满足业务的倒退。
在应用过程中,随着数据量的增长,传统 MPP 架构数据库每个集群的数据都保留在计算节点本地磁盘,集群之间的数据无奈做到无效共享,造成“数据孤岛”景象。同时,大量数据拷贝操作,造成数据重大冗余。
当呈现用户的计算需要大于单套节点的容量限度时,用户往往须要被迫去采纳集群切割,而后再通过一些其余的技术进行同步。这样做一方面会减少流量负载,同时还会引起元数据的不统一,加剧“数据孤岛”景象。
传统数据库在进行动静扩容、缩容、降级、故障解决等操作时,须要把用户数据从新做一个 resharding。但对分布式系统来说,元数据都是存储在本地的,所以任何一个节点要复原或者扩容,都要拷贝一份元数据,会大幅减少停机工夫。
此外,传统 MPP 架构数据库,动辄几百台甚至上千台服务器的规模,零碎运维工作量大。
HashData 云数仓:基于共享存储的元数据服务
HashData 云数仓元数据设计初衷,是心愿可能为用户提供对立的共享存储解决方案。
从整体架构来看,HashData 元数据集群为计算集群提供治理服务,同时用户能够通过云管平台实现元数据集群操作。
依靠对象存储服务,HashData 能够更加高效地在用户的外围的数据下面提供计算服务,可能无效进步 MPP 架构集群的并发能力。
同时,相比传统 MPP 架构,HashData 从物理层面间接实现资源隔离,能够更好地帮忙用户把资源和利用类型进行互补。
为了做到在共享存储环境下,提供多套不同的计算资源的隔离,就须要提供对立的元数据的治理,这样能够不便不同的集群独立、精确、并发地去操作对象存储上的共享数据。
在这种状况下,HashData 云数仓对元数据进行了大量优化,包含存储服务、调度接入、云管平台等。
hashData 元数据服务分成三个档次:一层是调度层,一层是无状态服务。还有一层是元数据长久层。
调度层次要解决两类问题。第一是帮忙计算集群去找到元数据节点。调度层须要把元数据节点以及它的角色公布到 ETCD,而后计算集群通过订阅 ETCD 上这些角色地位的变更信息,它们能够主动地去找到更新的 catalog,为不同的角色提供了不同的服务。
计算集群在计算的应用层来通过服务发现找到服务对象,尽可能地防止所有的节点去拜访同一个 catalog。
调度层还具备服务负载平衡的性能。调度层在 catalog 上会同时就一个角色注册多个入口,又能够容许计算机去通过 catalog 推送给调度层的负载状况,防止某些 catalog 呈现热点。
无状态服务层是一组可能相互通信,也会跟 FDB ETCD 和计算集群通信的一组过程,这组过程次要作用就是答复计算集群的申请。
HashData 的元数据服务通过寰球可拜访的分布式系统提供,负责数据长久化的对象存储通过 RESTFUL 接口提供数据拜访能力,两头的计算层则实现了齐全无状态化。
为避免出现“数据孤岛”和冗余,HashData 采纳共享存储架构,任何一个计算集群都能够去拜访同一份数据,所有集群共享同一份元数据,彻底消除“数据孤岛”和冗余,确保数据的实时性和一致性。
因为采纳云原生架构,HashData 云数仓多个集群共享对立的元数据、对立的数据存储,集群间不竞争 CPU、内存和 IO 资源,能够依据业务需要有限地创立集群。为了进步并发数量,只须要减少计算集群,来满足弹性、高并发的要求,代价显著升高。
同时,得益于存算拆散的架构,HashData 通过一致性哈希来防止数据从新逻辑分组,通过共享存储防止数据从新物理散布,能够实现集群的秒级主动扩缩容。整个过程中,包含 master 节点、segment 节点在内的计算集群都是无状态的。
此外,HashData 的计算集群没有存储任何的实体数据,所有的数据都是依靠缓存零碎来工作。
通过对立共享的元数据集群,HashData 能够确保用户在治理数据资产的时候,元数据的 schema 和计算节点的状态是完全一致的。
除此之外,HashData 的每个计算集群实质上又是齐全相等的。从任何一个集群登程进行 SQL 查问或者数据计算,实际上都是齐全等价的。在任何的时候,利用都能够把作业动静地调度到不同的集群下面,这样可能帮忙用户平安、平滑实现利用在集群间的迁徙。
HashData 能够依据业务需要,动静地对数据仓库集群进行纵向伸缩和横向伸缩。同时,因为是齐全托管的云服务,HashData 数据仓库承当了所有的集群资源配置、数据库治理、继续监控、健康检查、谬误复原、高可用和扩缩容等纷繁复杂、极易出错的运维工作,让用户安心专一于业务剖析下面。
目前,HashData 曾经在金融、电信、能源、交通、互联网等行业实现大规模商用。以某国有大型银行为例,HashData 为超过 20000 节点提供数据分析服务,反对上百个业务场景。其中,元数据的节点每天解决约 70 亿次申请。