HashData云数仓元数据服务设计及实现

博弈论实践
• 阅读 690

HashData云数仓元数据服务设计及实现
元数据是数据库系统中描述对象的数据,相当于数据使用的“说明书”,是决定数据库性能的重要抓手。
在大数据时代,海量的数据规模和复杂的数据类型,意味着对元数据处理提出了更高的要求。
HashData云数仓作为一款面向多种数据分析场景的高性能分析型数据库,采用元数据、计算和存储三者分离的架构,能够更好地适应跨集群、跨中心以及跨云中心的数据访问。
在提供高性能数据仓库业务的同时,HashData拥有更好的资源配置能力,并且通过元数据服务的分离和共享,让所有的数据集群系统保证数据的一致性。
传统MPP数据库使用“痛点”
传统的Greenplum、Teradata等MPP 架构的数据库,存储、计算是紧耦合的,数据存储在本地系统,存储能力的扩展通过增加集群节点实现,这样会导致计算资源严重浪费,无法满足业务的发展。
在使用过程中,随着数据量的增长,传统MPP架构数据库每个集群的数据都保存在计算节点本地磁盘,集群之间的数据无法做到有效共享,形成“数据孤岛”现象。同时,大量数据拷贝操作,造成数据严重冗余。
当出现用户的计算需求大于单套节点的容量限制时,用户往往需要被迫去采用集群切割,然后再通过一些其他的技术进行同步。这样做一方面会增加流量负载,同时还会引起元数据的不一致,加剧“数据孤岛”现象。
传统数据库在进行动态扩容、缩容、升级、故障处理等操作时,需要把用户数据重新做一个resharding。但对分布式系统来说,元数据都是存储在本地的,所以任何一个节点要恢复或者扩容,都要拷贝一份元数据,会大幅增加停机时间。
此外,传统MPP 架构数据库,动辄几百台甚至上千台服务器的规模,系统运维工作量大。
HashData云数仓元数据服务设计及实现
HashData云数仓:基于共享存储的元数据服务
HashData 云数仓元数据设计初衷,是希望能够为用户提供统一的共享存储解决方案。
从整体架构来看,HashData元数据集群为计算集群提供管理服务,同时用户可以通过云管平台实现元数据集群操作。
依托对象存储服务,HashData 可以更加高效地在用户的核心的数据上面提供计算服务,能够有效提高MPP 架构集群的并发能力。
同时,相比传统MPP 架构,HashData 从物理层面直接实现资源隔离,可以更好地帮助用户把资源和应用类型进行互补。
为了做到在共享存储环境下,提供多套不同的计算资源的隔离,就需要提供统一的元数据的管理,这样可以方便不同的集群独立、准确、并发地去操作对象存储上的共享数据。
在这种情况下,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 亿次请求。

点赞
收藏
评论区
推荐文章
梁君牧 梁君牧
4年前
数据库系统教程-简答题-合集
数据库系统教程简答题合集教材参考的是《数据库系统教程》(第三版)施伯乐复试的最后两天了,临时抱抱佛脚!加油!(一)数据库概论1.简述什么是数据库以及数据库系统的主要特点答:数据库是按照数据结构来组织、存储和管理数据的仓库。是一个长期存储在计算机内的、有组织的、可共享的、统一管理的大量数据的集合。数
Java修道之路,问鼎巅峰,我辈代码修仙法力齐天
<center<fontcolor00FF7Fsize5face"黑体"代码尽头谁为峰,一见秃头道成空。</font<center<fontcolor00FF00size5face"黑体"编程修真路破折,一步一劫渡飞升。</font众所周知,编程修真有八大境界:1.Javase练气筑基2.数据库结丹3.web前端元婴4.Jav
艾木酱 艾木酱
3年前
PostgreSQL的函数和存储过程--MemFireDB
简介PostgreSQL是最流行的对象关系型数据库系统。它是一个强大的、高性能的数据库系统。在这篇文章中,我们将讨论如何使用函数和存储过程来执行操作,如插入、删除、更新和查询。感兴趣的同学可以通过memfiredb.com提供的免费云数据库一边操作一边阅读。函数一般来说,函数是一组进行任何操作的SQL语句,如选择、插入、删除和更新。在PostgreSQ
Wesley13 Wesley13
3年前
Java面试题
91,什么是ORM?        对象关系映射(ObjectRelationalMapping,简称ORM)是一种为了解决程序的面向对象模型与数据库的关系模型互不匹配问题的技术;        简单的说,ORM是通过使用描述对象和数据库之间映射的元数据(在Java中可以用XML或者是注解),将程序中的对象自动持久化到关系数据库中或者将
Stella981 Stella981
3年前
JPA、Hibernate、Spring data jpa之间的关系,终于明白了
什么么是JPA?全称JavaPersistenceAPI,可以通过注解或者XML描述【对象关系表】之间的映射关系,并将实体对象持久化到数据库中。为我们提供了:1)ORM映射元数据:JPA支持XML和注解两种元数据的形式,元数据描述对象和表之间的映射关系,框架据此将实体对象持久化到数据库表中;如:@Entity、@Table、@C
Stella981 Stella981
3年前
Hive学习之路 (三)Hive元数据信息对应MySQL数据库表
概述Hive的元数据信息通常存储在关系型数据库中,常用MySQL数据库作为元数据库管理。上一篇hive的安装也是将元数据信息存放在MySQL数据库中。Hive的元数据信息在MySQL数据中有57张表!(https://oscimg.oschina.net/oscnet/622274765e1205e906542f39ccb50db93
Wesley13 Wesley13
3年前
MySQL5.6的4个自带库详解
1.information\_schema详细介绍:  information\_schema数据库是MySQL自带的,它提供了访问数据库元数据的方式。什么是元数据呢?元数据是关于数据的数据,如数据库名或表名,列的数据类型,或访问权限等。有些时候用于表述该信息的其他术语包括“数据词典”和“系统目录”。
Wesley13 Wesley13
3年前
Oracle 参数文件spfile
pfile和spfile概念ORACLE中的参数文件是一个包含一系列参数以及参数对应值的操作系统文件,可以分为两种类型。它们是在数据库实例启动时候加载的,决定了数据库的物理结构、内存、数据库的限制及系统大量的默认值、数据库的各种物理属性、指定数据库控制文件名和路径等信息,是进行数据库设计和性能调优的重要文件。
Wesley13 Wesley13
3年前
MongoDB与MySQL关于写确认的异同
!(https://pic3.zhimg.com/80/v2af9f6637b50b09be60b00a42f3812d5e_1440w.jpg)云妹导读:所谓写确认,是指用户将数据写入数据库之后,数据库告知用户写入成功的一个概念。根据数据库的特点和配置,可以在不同的写入程度上,返回给用户,而这其中,就涉及到了不同的性能、数据
如何在弹性云主机上部署高效的数据库系统
在当今云计算的时代,弹性云主机(ElasticCloudCompute,EC2)为我们提供了前所未有的灵活性和扩展性,使得在云端部署高效的数据库系统成为可能。本文将从选择合适的云服务配置、优化数据库配置、数据备份与恢复策略以及保障数据库安全四个方面分享如何在弹性云主机上部署高效的数据库系统。
开源数据库生态遇新变数,天翼云TeleDB提供企业数据管理更优解!
天翼云TeleDB分析型实例是一款性能卓越、完全托管的PB级国产化云分析型数据库产品,可提供轻松的海量数据分析体验。基于元数据、计算和存储分离的架构,TeleDB分析型实例集成了MPP数据库的高性能和分析功能、大数据平台的扩展性和灵活性以及云计算的弹性和敏捷性,支持SQL及标准的JDBC和ODBC接口,允许使用自定义函数及内建机器学习功能。
博弈论实践
博弈论实践
Lv1
十年一觉扬州梦,赢得青楼薄幸名。
文章
5
粉丝
0
获赞
0