作为后台开发,平时接触到的数据库产品大概分为两类:一是以mysql、ORACLE为代表的关系型数据库,二是以mongodb、redis、HBase为代表的NoSQL数据库。前者特点是原生支持事务、具有较高的稳定性和易用性、但是难以横向扩容,这类数据库产品常称为OLTP产品;后者属于原生支持横行扩展的新型非关系型数据库,具有高效读写等特点,这类产品常称为OLAP产品。
而腾讯的分布式HTAP数据库 TBase(TencentDB for TBase)是自主研发的分布式数据库系统,集高扩展性、高SQL兼容度、完整的分布式事务支持、多级容灾能力以及多维度资源隔离等能力于一身。
为了体验TBase的灵活横向扩展性,本文重点体验分布式数据自动 shard 分片和冷热分离存储两大特征
一、TBase主要特点
TBase 具备事务和分析混合处理技术。提供了高效的 OLTP 能力和海量的 OLAP 同时处理能力,可降低业务架构复杂度和成本。
TBase 引入全局事务管理节点来管理分布式事务,通过拥有自主专利的分布式事务一致性技术来保证在全分布式环境下的事务一致性。
支持实时在线自动扩容,满足横行扩展的大数据需求,且对业务影响时间可以控制在秒级。
内核支持三权分立的体系,提供数据透明加密,数据脱敏访问,强制访问控制等多个层级的数据安全保障能力 。
二、TBase架构简述
TBase架构图
GTM
GlobalTransactionManager(简称 GTM), 是全局事务管理器,负责全局事务管理。GTM 上不存储业务数据。
Coordinato(类似Hadoop HDFS的NameNode)
Coordinator(简称 CN) 是协调节点, 是数据库服务的对外入口,负责数据的分发和查询规划,多个节点位置对等。业务请求发送给 CN 后,无需关心数据计算和存储的细节, 由 CN 统一返回执行结果。 CN 上只存储系统的元数据,并不存储实际的业务数据,可以配合支持业务接入增长动态增加。
Datanode(类似Hadoop HDFS的DateNode)
Datanode(简称 DN) 是数据节点,执行协调节点分发的执行请求,实际存储业务数据。 各个 DN 可以部署在不同的物理机上, 也支持同物理机部署多个 DN 节点,DN互为主备节点不能部署在同一台物理机上。 DN 节点存储空间彼此之间独立、 隔离,是标准的 share nothing 存储拓扑结构。另外TBase-V2与V1最大的不同地方是DN与DN之间可以通信,互相交换数据。
三、基于TBase开源代码编译和搭建体验系统
开源版本安装流程开源直接参考HBase Github上的wiki教程,本文不做赘述。
安装完成会提示
Success. Done. Starting all the datanode masters. Starting datanode master dn001. Starting datanode master dn002. Done. Initialize all the datanode slaves. Initialize datanode slave dn001 Initialize datanode slave dn002 Starting all the datanode slaves. Starting datanode slave dn001. Starting datanode slave dn002. Done.
按教程安装完成发现无法建表的坑,解决办法:
test=> create table foo(id bigint, str text) distribute by shard(id); ERROR: default g