关于数据库:『PostgresLive-技术沙龙回顾』揭秘-PieCloudDB-Database-eMPP-架构设计

7次阅读

共计 6101 个字符,预计需要花费 16 分钟才能阅读完成。

2 月 1 日,拓数派参加了由开源软件联盟 PostgreSQL 分会组织的 Postgres.Live 线上系列沙龙流动。拓数派产品及推广总监吴疆发表主题演讲《PieCloudDB:基于 PostgreSQL 的 eMPP 云原生数据库》。相干视频回放欢送拜访 拓数派 B 站 ,PPT 欢送返回 官网链接 获取。本文由演讲内容整顿而成。

随着计算机技术的倒退,”云计算”、”云平台”、”云技术”曾经成为行业里的热词。无论是业务零碎或是基础架构都在往”上云”的路线后退。大家如此热衷于云的最次要起因,正是因为云计算实现了 IT 零碎从购买到租赁的转变。也就是说用户不再须要购买 IT 零碎,而是能够抉择采纳租赁的形式,按使用量或区域来进行付费,更加灵便和节约老本。

为了满足这一需要,云平台技术实现的一个次要性能是存储和计算的解耦。云平台能够提供分布式存储或对象存储,来实现了存储的解耦。借助于云上虚拟化技术或由该技术实现的 IaaS,能够实现计算的解耦。通过计算与存储的解耦合,得以实现资源的池化。用户从而能够通过租用的形式来应用池中的资源,按使用量进行付费。云平台让用户能够专一于应用,将运维、降级等工作交给 IaaS/SaaS 等云厂商。

上云和云原生的区别是什么?

尽管”上云”作为口号曾经被喊了很多年。但直到近年,才呈现”云原生”的概念。那么,”上云”和“云原生“的区别是什么?

在最早的单机软件系统年代,零碎被部署在一台服务器上,随着业务的倒退,这台服务器将无奈满足业务的需要。此时,企业会买一台更好的服务器,配上更多的 CPU,更大的内存,更快的存储和更快的网络。

然而,随着互联网技术的倒退,这种扩容形式无奈满足业务需要。于是,”Scale-Out”的概念被提出,即应用多台服务器组成一个集群,来满足日益增长的业务需要。这种形式下,存储资源和计算资源是严密耦合的。当裁减计算资源时,也须要裁减存储资源。这样的零碎的弹性较弱,只能 Scale Out,却无奈 Scale In。当业务量下降时,无奈及时开释资源。

云平台诞生后,实现了计算和存储的解耦合,可依据需要动静的裁减或缩容计算和存储资源,做到真正的弹性。因而,弹性计算是云原生的一个基本特征

另一个特色是多租户 ,随着云原生平台让用户实现了购买到租赁的转换,云平台也须要实现能够满足多个租户同时租用平台,且按使用量付费的架构。此外, 云平台也须要提供智能化运维零碎,让用户可能更加不便的运维业务零碎,缩小运维累赘。

因而,如果要做到真正的”云原生”,须要让利用充分利用云平台的特色。与云原生绝对的一个概念是”上云”。业务零碎尽管被部署到云平台上,但实质上,其部署构造和被部署到数据中心的形式是一样的,用户无奈享受云平台提供的这些劣势。因而,零碎上云并不等于云原生

作为一款根底软件,数据库的诞生是在云平台之前。因而,目前业界的大部分数据库都是非云原生的。传统的分布式 MPP 架构存在一系列痛点,包含不足弹性(业务应用不灵便)、老本昂扬(依据零碎的最大负载配置集群,集群固定,资源利用率低)、木桶效应(数据库的性能由最短板的服务器决定,扩容难)、数据孤岛(多个集群承当着不同的业务,元数据和用户数据跨集群拜访艰难)和运维老本(DBA 需同时治理多个集群,运维老本昂扬)。因而用户急需一款云原生架构的数据库,来解决这些痛点。

PieCloudDB 的设计理念是什么?

PieCloudDB Database 是一款云原生 eMPP 架构的分布式数据库。在设计这款数据库时,咱们遵循了几个理念:

  • 打造真正的云原生数据库:PieCloudDB 要打造成为包含多租户、弹性计算、云原生运维平台根本特点的实时的数据库;
  • eMPP 架构的实现:MPP,即大规模并行计算解决。借助 MPP 架构,PieCloudDB 能够实现海量数据的并行处理能力。后面的“e”是指”elastic”,弹性。PieCloudDB 要实现一个弹性的 MPP 架构,即能够横向和纵向灵便扩、缩容,及时满足用户的业务需要;并可能在不同的集群之间做到用户数据和元数据的共享。
  • 安全可靠:对于数据库,特地是一款云上数据库而言,数据安全是至关重要的,PieCloudDB 须要可能保障用户的数据不失落、不泄露、不被没有受权的人非法看到。
  • 应用简略:PieCloudDB 要缩小用户应用数据库的老本,提供智能的运维平台,升高应用门槛。
  • 功能齐全:PieCloudDB 须要具备齐备的数据库性能,可能撑持大部分的业务利用场景;提供包含齐备的事务反对、欠缺的 SQL 规范、敌对的用户接口、生态组件的兼容等性能;
  • 性能极致:数据库作为一款根底软件,性能是最要害的因素之一。PieCloudDB 须要做到可能为用户的业务场景提供一个安全可靠、性能优越的底座。

PieCloudDB 的架构有什么特点?

在上述设计理念的根底上,PieCloudDB 的零碎架构被分为三个档次。其中最 底层的是云平台 。云平台能够是公有云、私有云、也能够是混合云、行业云、专有云。PieCloudDB 在零碎设计过程中,充分考虑了多云的计划,做到了云中立。 最上层,是搭建在 PieCloudDB 之上的用户的业务平台,能够反对多个租户的应用场景,因而企业的生产部、销售部、财务部等部门能够作为不同的租户接入到 PieCloudDB 中。

中间层的 PieCloudDB 自身的架构 也被分为了三个档次,最下面是元数据层;两头是计算层,其中每一个虚构数仓作为最小的计算单元,为用户提供实时数据分析的服务。底层是共享存储层,提供了用户数据的存储。

PieCloudDB 外围架构特点次要包含四个局部:元数据服务、eMPP 分布式引擎、用户数据存储和查问优化器。

元数据服务

元数据即 catelog 数据。PieCloudDB 实现了多租户,即多个租户能够同时应用 PieCloudDB 平台,同时能够创立多个虚构数仓来进行数据分析业务。此时,元数据就不能和用户数据耦合在一起。因而,PieCloudDB 实现了元数据和计算资源以及存储资源的拆散,被称为元数据服务。

PieCloudDB 在进行元数据服务的设计时思考到了四个因素:

  • 高可用和多集群的反对。为了进步性能的可用性,须要提供 Multi-master,即当呈现一个节点生效时,零碎依然能够提供对外的服务。
  • 实现多节点独特拜访的数据存储。
  • 实现分布式锁。
  • 事务上,实现多机并发拜访和分布式环境下的多版本(MVCC)。

在元数据服务的实现上,PieCloudDB 将零碎中的元数据的元组以 key-value 的模式存储到苹果公司开发并开源的 FoundationDB,打造了 mStore(meta data store)。元数据实现了基于 MVCC 的事务隔离级别,并应用 FoundataionDB Key 的天然排序实现了索引。PieCloudDB 实现了全新的基于 Key-value 的存储形式来寄存零碎表,将元数据存储在零碎表中,因而用户看到的元数据实际上是一个个零碎表。

eMPP 分布式引擎

PieCloudDB 的 eMPP 分布式引擎除了具备高性能并行计算性能,还增加了计算资源的动静扩缩容个性。具体能够被分为三个层面:

  • 计算
    PieCloudDB 分布式引擎首先是一个 MPP 引擎,能够将繁多的数据分析在集群中并行处理。与传统的 MPP 引擎不同的是,PieCloudDB 做到了真正的弹性,能够进行集群大小、集群类型、集群数量的弹性伸缩。同时,PieCloudDB 反对多租户,多用户、多集群,零碎中同时可能存在多个计算集群在运行,因而保障不同租户和集群实现隔离性是至关重要的,不同租户和集群不会相互影响,防止用户量的回升导致系统性能的降落,保障了高并发和高可用性。在集群不须要应用的状况下,能够将集群暂停,帮忙用户节约老本。
  • 存储
    PieCloudDB 在设计分布式引擎时,还须要思考到用户数据的存储。用户数据存储的设计上,PieCloudDB 思考到了多租户的隔离,计算引擎在读取用户数据时,要依据容量和带宽对存储的拜访进行独立的伸缩。PieCloudDB 的存储服务也须要保障按使用量付费,做到高可用,反对跨多数据中心复制数据。PieCloudDB 也须要保证数据的一致性,在全局存储一份数据,通过共享存储来实现数据共享,防止拷贝和保护多份数据正本。
  • 事务
    事务上,PieCloudDB 分布式引擎须要反对包含:

    • ACID:反对两种隔离级别(Read Committed 和 Repeatable Read)
    • 扩展性:事务管理器无单点性能瓶颈,随着计算节点的减少,零碎解决的性能会有近似于线性的晋升
    • 隔离性:不同租户之间的事务管理器是齐全隔离的,防止租户之间的相互影响。当一个租户在进行某个十分耗性能的查问时,也不会影响到其余租户的性能。
    • 容错性:当基础设施呈现例如 CPU、内存、网络等故障时,零碎须要做到主动容错,不会呈现零碎不可用的状况。

用户数据存储

在设计存储引擎时,PieCloudDB 充分考虑到了云平台的特点。这里提到的云平台,不仅仅是私有云平台,还包含公有云、混合云、专有云、容器云等。PieCloudDB 存储引擎的设计还充分考虑到对对象存储的反对,HDFS、本地磁盘等多种存储环境的兼容,以及对一直倒退的古代的硬件和存储技术(包含 CPU/GPU 的高速缓存的拜访、数据的局部性优化(SIMD)等)的反对等。

基于这些思考,PieCloudDB 的存储引擎的设计包含以下几点指标:

  • 数据分布的弹性
    PieCloudDB 的计算引擎是 eMPP 架构的,存储引擎也须要可能满足计算引擎的动静的扩容与缩容。用户数据以分布式的形式被存储在各个不同的存储单元中,针对不同的云平台,存储单元也略有不同。为了进步查问的效率,从存储资源读取数据时须要防止云存储拜访的延时,PieCloudDB 的计算资源须要对云存储的数据进行缓存,缓存一部分的本地数据来进步零碎查问的速度。

在设计本地数据的缓存时,当进行扩缩容时,须要尽量避免数据挪动。例如当计算节点从 4 个扩到 8 个,须要对数据进行再均衡,此时须要尽可能减少在节点间进行大量的数据传输。

  • 数据安全性
    为了保证数据的安全性,PieCloudDB 通过通明数据加密技术,利用三级密钥来对数据进行实时的加解密。PieCloudDB 的存储引擎实现了行列混存的存储模式。如此设计次要思考到两个方面:
  • 用户的存储老本
    用户在云平台上存储大量的数据,会造成存储老本。PieCloudDB 主动选取实用类型的编码,进步压缩效率,缩小对象存储的拜访开销。
  • OLAP 性能
    为了防止查问性能的影响,PieCloudDB 不仅设计了行列混存的存储引擎,还设计了多级缓存,包含从新定义了数据在内存和存储中的存储格局,防止数据从内存到外存,或从外存到内存读取数据时进行数据的转换。很多数据库都实现了 Analyze 命令,用来收集零碎中的统计信息。PieCloudDB 在存储数据时,在文件级别,进行了数据的统计分析。PieCloudDB 智能 Analyze 能够更好的收集统计信息,帮忙查问优化器生成更好的查问打算。

查问优化

作为一款根底软件,数据库在实现分布式化后,查问优化的难度成指数级回升。PieCloudDB 的查问优化器对于云原生环境进行了大量的翻新,能够为海量数据集上的简单 OLAP 查问在无限的工夫内提供最优的查问打算。PieCloudDB 的查问优化器次要有三个特点:

  • 一款分布式优化器
    作为一个分布式系统,PieCloudDB 查问优化器充分考虑到了分布式架构的特点,在计算和收集节点间执行工夫的根底上进行优化,生成的查问打算能够在计算节点间并行执行。分布式查问优化器能够将执行打算散布到多个更小的打算单元中,进步查问效率。
  • 可能解决简单 OLAP 查问
    作为一款剖析型数据库,PieCloudDB 针对简单 OLAP 查问进行了多种查问优化。实现了包含 OLAP 查问中最艰难的多表连贯的最优程序查问、针对剖析型查问中常见的汇集函数的多阶段汇集优化、利用分区规定进行分区表的动态和动静裁剪优化、针对低效的子查问的晋升转换优化、让分布式下的 CTE 语句能够高效执行的 CTE 和递归 CTE 的优化。
  • 一款云原生优化器
    PieCloudDB 针对云环境的特色,PieCloudDB 提供了更多高阶的优化。包含通过将汇集函数尽量推到查问打算最上层缩小执行器解决数据量的汇集下推、以及以及能够在查问时主动跳过一些不须要拜访的 block 来进步查问性能的文件查问裁剪(block skipping)等。

PieCloudDB 2.1 新版本有哪些新个性?

PieCloudDB 将公布 2.1 全新版本,新版本次要进行了三个方面的加强:

安全性加强

数据库上云后,数据的安全性是用户最关怀的话题之一。PieCloudDB 在 2.1 版本中将进行大量的数据安全性加强。

通过三级密钥加密技术,加密用户数据,防止被未经许可的人员读取。用户能够通过 KMS 等密钥管理系统生成主密钥。PieCloudDB 会依据主密钥生成租户密钥,再依据租户密钥生成表密钥。表密钥被用来加密表数据。当数据被写入数据文件中时,PieCloudDB 会针对每个数据页面生成页密钥,从而保证数据存储做到了齐全的加密。在进行数据查问时,PieCloudDB 会应用不同的密钥对数据进行解密。通明加密做到了用户无感知,不会影响到用户业务,加解密对性能影响小。加密技术和流程合规,合乎数据安全和业务的审计要求。

此外,在云原生平安方面,PieCloudDB 在传输层和缓存数据都进行了加密。在元数据的长久化存储以及用户数据的多正本加密存储上,PieCloudDB 都进行了增强。在计算平安方面,当呈现集群生效时,不会影响用户数据,防止用户数据的失落,无泄漏,同时也保障了事务的完整性。

全链路优化

PieCloudDB 通过全新的存储引擎简墨(JANM)实现了全链路优化。简墨的名称起源于”竹简墨书”,形象的形容了 PieCloudDB 存储引擎行列混存的架构。列存储实现了更好的压缩比,而行存储保障了每一列的数据不会太大,从而能够将很多数据加载至内存中,从而进步 Cache 命中率,升高 CPU 使用率。新的版本中,JAMN 实现了智能 Analyze,可生成更为准确的查问布局统计信息,查问时能够生成更优的查问打算,实现了分布式解决的加强以及动态分配读取文件加强 Dispatch 性能

除了存储引擎简墨(JANM)的从新设计,PieCloudDB 的分布式引擎和查问优化器也做了大量的优化,实现和晋升了前文提到的汇集下推、文件查问裁剪(Block Skipping)的优化性能。

生态建设

PieCloudDB 的 2.1 版本加大了生态建设,减少了对更多云平台的反对,实现了 FDW(Foreign Data Wrapper),使用户能够拜访包含但不限于 HDFS、MySQL 等数据源,同时反对用户自行开发模块来拜访新的存储数据源。反对了 Kafka 流式数据的导入。并兼容了泛滥生态组件,包含开源 Apache Madlib,PostGIS 等。

对于 2.1 版本的更多个性,很快将在 PieCloudDB 官网上进行揭秘,欢送大家的关注。也欢送大家返回 www.openpie.com/product 申请试用。


正文完
 0