企业级分布式 HTAP 数据库管理系统 TBase
TBase 是腾讯数据平台团队在开源的 PostgreSQL 基础上研发的企业级分布式 HTAP 数据库管理系统:
具备高性能可扩展的分布式事务能力,支持 RC 和 RR 两种隔离级别;
通过安全、管理、审计三权分立体系,提供全方位的数据安全保证机制;
支持高性能分区表,可使得数据检索效率成倍提升;
SQL 方面兼容 2003 标准、PostgreSQL 语法和常用 Oracle 函数&数据类型、窗口函数等;
提供大小商户数据分离、冷热数据分离等高效的数据治理能力
TBase 架构:

集群中有三种节点类型,各自承担不同的功能,通过网络连接成为一个系统。这三种节点类型分别是:
Coordinator:协调节点,对外提供接口,负责数据的分发和查询规划,多个节点位置对等,每个节点都提供相同的数据库视图,CN 存储系统的全局元数据。
Datanode:处理存储本节点相关的元数据,每个节点还存储数据的一个分片。在功能上,DN 节点负责完成执行协调节点分发的执行请求。
GTM: 全局事务管理器(Global transaction manager.),负责管理集群事务信息,同时管理集群的全局对象,比如序列,除此之外 GTM 上不提供其他的功能。
TBase 功能介绍:
分布式事务全局一致性能力:通过拥有自主专利的分布式事务一致性技术,包括两阶段提交(Two Phase Commit)以及全局时钟(Global Timestamp)的策略来保证在全分布式环境下的事务一致性。
SQL兼容能力:SQL2003 标准、PostgreSQL 语法、常用 Oracle 函数&数据类型、UDF/UDAF、常见窗口函数、JSON/JSONB/XML/数组等多种 NoSQL 类型 、递归 WITH、无锁 DDL 操作、扩展插件等。
HTAP能力:提供 OLTP 以及 OLAP 两个平面视角 ,OLTP 业务运行在 datanode 主节点上,OLAP 业务运行在 datanode 节点的备节点上,揭秘提升网站权重二者的数据同步采用流复制的方式来进行。
读写分离能力:提供了读写和只读两个平面视角,读写流量请求由主节点来处理,只读流量请求由备节点来处理,主备节点的数据同步采用流复制的方式来进行。
卓越的数据安全保障能力:通过三权分立的体系,将传统数据库系统 DBA 的角色分解为三个相互独立的角色:安全管理员、审计管理员、数据管理员;基于此提出安全策略,主要细分为三个部分:数据加密、数据脱敏访问、强制访问控制,三者组合提供多个层级的数据安全保障能力。

高效的数据治理能力:数据倾斜治理,用以解决数据分布不均带来的存储以及性能压力;冷热数据分级存储 ,用以降低业务的存储成本、提升热数据的性能。
多核并行计算能力:节点内部采用了并行计算,根据表大小同时启动多个进程来协同完成一个查询。
多租户能力:基于节点组 node group 的集群内多租户解决方案,做到数据库集群内部的业务和资源隔离,多个业务在TBase内部相互隔离的运行。
多级容灾能力:采用强同步复制来保证主从数据完全一致,保障主节点故障时数据无丢失;提供基于任意时间点的恢复特性来防止误操作带来的数据丢失。
在线扩容能力:通过引入shard map层(shard map 中每一项存储 shardid 和 DN 的 映射关系 ), 在新加节点时,只需要把一些 shard map 中的 shardid 映射到新加的节点,并把对应的数据搬迁过去就可以了,大大缩短扩容时间。
丰富的周边生态能力:PostGIS、异构数据复制、LVS 负载均衡、FDW 联邦能力等。
TBase 适用场景:
在国产化落地、业务核心领域去 O 场景;
对 HTAP 混合事务分析应用模型有需要的业务场景;
对物联网地理信息系统有需求的业务场景;
对实时高并发环境下的分布式事务强一致性有要求的业务(如金融、证券等业务)场景;
对企业级数据安全、审计、治理应用相关功能有需求的业务场景;
对高可用、异地容灾、7*24 小时服务能力有需求的业务场景;
有海量存储计算需求、弹性扩容、在线扩容需求的业务场景;
对异构数据互通共享有需求的业务场景。
企业级分布式 HTAP 数据库管理系统 TBase的更多相关文章
- 最火的分布式 HTAP 数据库 TiDB - 入门实践教程
偶然在某篇博客看到了 TiDB,一个融合 OLTP 和 OLAP 的分布式开源数据库, GitHub 上 Star 很多,然后 watch 了,发现 commit 和 pull request 一直都 ...
- 国产开源数据库:腾讯云TBase在分布式HTAP领域的探索与实践
导语 | TBase 是腾讯TEG数据平台团队在开源 PostgreSQL 的基础上研发的企业级分布式 HTAP 数据库系统,可在同一数据库集群中同时为客户提供强一致高并发的分布式在线事务能力以及高 ...
- 小试国产开源HTAP分布式NewSQL数据库TiDB-v5.3.0
概述 定义 TiDB官网 https://pingcap.com/zh/ 最新版本为5.3.0 TiDB GitHub源码 https://github.com/pingcap/tidb TiDB是由 ...
- 第18章 使用MariaDB数据库管理系统
章节概述: MYSQL数据库管理系统被Oracle公司收购后从开源换向到了封闭,导致包括红帽在内的许多Linux发行版选择了MariaDB. 本章节将教会您使用mariaDB数据库管理工具来管理数据库 ...
- 关系型数据库管理系统(RDBMS)与非关系型数据库(NoSQL)之间的区别
简介 关系型数据库管理系统(RDBMS)是建立在关系模型基础上的数据库,主要代表有:Microsoft SQL Server,Oracle,MySQL(开源). 非关系型数据库(NoSQL),主要代表 ...
- 选择数据库管理系统(DBMS)时主要考虑的因素
选择数据库管理系统时应从以下几个方面予以考虑: (1) 构造数据库的难易程度. 需要分析数据库管理系统有没有范式的要求,即是否必须按照系统所规定的数据模型分析现实世界,建立相应的模型:数据库管理语句是 ...
- 为什么要用全文搜索引擎:全文搜索引擎 VS 数据库管理系统
正文一:Full Text Search Engines vs. DBMS 发表于2009年 正文二:Elasticsearch - A High-Performance Full-Text Sea ...
- mySQL (关系型数据库管理系统)
MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,目前属于 Oracle 旗下产品.MySQL 是最流行的关系型数据库管理系统之一,在 WEB 应用方面,MySQL是最好的 RD ...
- Microsoft SQL Server(sql server 关系型数据库管理系统)
sql server一般指Microsoft SQL Server 关系型数据库管理系统 Microsoft SQL Server 是一个全面的数据库平台,使用集成的商业智能 (BI)工具提供了企业级 ...
随机推荐
- 乐字节Java反射之四:反射相关操作
大家好,乐字节小乐继续为Java初学者讲述Java基础知识.上次说到乐字节Java反射之三:方法.数组.类加载器,这次是Java反射之四:反射相关操作 1.操作属性 //1.获取Class对象 Cla ...
- Docker 部署Jira8.1.0
Jira与Confluence一样,都需要用到独立的数据库,对于数据库的安装我们不做介绍,主要介绍如何用Docker部署Jira以及对Jira进行破解的操作. 1.数据库准备 关于数据库官方文档说明: ...
- JWT 身份认证优缺点分析以及常见问题解决方案
本文转载自:JWT 身份认证优缺点分析以及常见问题解决方案 Token 认证的优势 相比于 Session 认证的方式来说,使用 token 进行身份认证主要有下面三个优势: 1.无状态 token ...
- C/C+面试题一:找出字符串中出现最多的字符和次数,时间复杂度小于O(n^2)
已知字符串"aabbbcddddeeffffghijklmnopqrst"编程找出出现最多的字符和次数,要求时间复杂度小于O(n^2) /********************* ...
- 缓冲区Buffer和缓存区Cache的区别
1.buffer 将数据写入到内存里,这个数据的内存空间在Linux系统里一般被称为缓冲区(buffer),例如:写入到内存buffer缓冲区,即写缓冲. 为了提高写操作性能,数据在写入最终介质或下一 ...
- Java中数据存储分配
(1)内存分配的策略 按照编译原理的观点,程序运行时的内存分配有三种策略,分别是静态的,栈式的,和堆式的. 静态存储分配是指在编译时就能确定每个数据目标在运行时刻的存储空间需求,因而在编 译时就可以给 ...
- Struts2简介、初步使用
今日分享的是楼楼新学的一个框架,Struts2: 一:Struts2简介: Struts2是一个基于MVC设计模式的Web应用框架,它本质上相当于一个servlet,在MVC设计模式中,Struts2 ...
- 箭头函数的arguments不可用
ES5中的arguments function func(a,b,c){ console.log(arguments[0],arguments[1],arguments[2]) } func(1,2, ...
- (错误)启动ActiveMQ报错:Transport Connector could not be registered in JMX: java.io.IOException: Failed to bind to server socket: stomp://0.0.0.0:61613?
一.错误报告 很明显,端口被占用 二.解决方法 1. 在cmd中输入 netstat -ano 查看61613端口被占用情况,如果有其他进程使用,则使用 taskkill /f /pid 进程PID ...
- IdentityServer3 使用记录
官方教程:https://identityserver.github.io/Documentation/docsv2/overview/mvcGettingStarted.html 1.是否启用 SS ...