0067.T 腾讯云分布式数据库TDSQL初探
TDSQL初探
目录
1.初识
2.TDSQL简介
3.架构认知
4.赤兔组件
5.数据库集群管理
6.期待改进的方向
7.下一个风口
No.
1
初识
不久之前,某大厂受鹰将和兔子贸易战影响,5G芯片发展受阻,不得不卖掉部分手机业务。即使很有¥,ORACLE也不卖原厂授权,只能外包ORACLE服务到第三方公司。
商业的发展和IT的可持续性,被各种卡脖子,磨难历历在目,而在关系型数据库方面,国内众多核心业务系统关系型数据库技术也是严重依赖于ORACLE。
2020年年末,仿佛突然间,国产数据库爆发了,突然看到了光芒。除原有的一众国产RDBMS,如达梦,发布一些新版本外,一众国产的分布式数据库扎堆推广、产单,如AnalyticDB、EsgynDB、GoldenDB、OCEANBASE、TDSQL、TiDB...(A -> Z)。
百闻不如一见,面对一众数据库,本着先从大厂择一开拓的想法,近几日,兴趣蔚然,测试了鹅厂的分布式数据库TDSQL,下面就个人对TDSQL浅薄的认知进行分享,不足之处,还望抛砖。
No.
2
TDSQL简介
· 分布式数据库(Tencent Distributed SQL,TDSQL)是腾讯推出的一款兼容MySQL的自主可控的、高一致性、分布式的数据库产品。
· 2002腾讯内部部分业务使用mysql数据库,2012年TDSQL诞生在腾讯内部,2014年在微众银行核心系统投产,2015年提供腾讯云TDSQL服务,2019年传统银行核心系统使用,2020年TDSQL已经为超过600机构提供数据库服务。
· 它支持自动水平拆分,业务感受完整的逻辑表,而数据却均匀的拆分到多个物理分片中,可以有效解决超大并发、超高性能、超大容量的OLTP类场景;
· TDSQL的每个分片默认采用主从高可用架构,提供弹性扩展、备份、恢复、容灾、监控、迁移、分析、优化等全套解决方案,适用于TB或PB级的海量数据库场景。
· 应用在电商、金融、O2O、社交应用、零售、SaaS、音视频等领域,腾讯90%的金融、计费、交易类业务核心系统承载在TDSQL中,TDSQL拥有核心系统的多年商用经验,可达到金融级别99.999%以上高可用性。
No.
3
架构认知
TDSQL是基于MySQL/Mariadb社区版本打造的一款金融级分布式数据库集群方案。采用优化的强同步技术,保障了运行速度的同时,确保数据库分布式集群间数据一致,保障数据安全。
TDSQL集成了TDSQL Agent、TDSQL SQLEngineSQLEngine、TDSQL Scheduler等多个模块,实现了读写分离、AutoSharding、自动主备强一致性切换、自动故障修复、实时监控、实时冷备、支持扩容等一系列功能。
图1 TDSQL系统总览
下面从TDSQL系统总览认知进行分享:
· 从资源池来看,可部署在物理机和虚拟机上,建议物理机部署,当然也有云上TDSQL;
· 存储节点:可以使用传统的单数据库(Noshard)方式运行,也可以采用分布式数据库集群;
· 计算节点(数据库节点):支持HATP,采用OLTP和OLAP两种引擎,OLAP功能还在研发中;
· 赤兔平台:对数据库进行日常基本运营,提供监控等。
· 扁鹊平台:包含在赤兔平台,包含日常的可用性分析、性能分析、锁的分析、SQL优化、系统健康诊断等。
· 同时提供了较多的服务功能模块(系统),如常见的维护性功能:备份恢复、数据迁移、资源调度、容量调度、多租户管理等,还包含了数据库安全功能:审计、数据校验、SQL审核等,还使用了大数据技术对平台数据的分析治理功能。
No.
4
赤兔组件
赤兔管理平台包含了:集群总览、资源管理、DB汇总监控、网关汇总监控、接入层管理、调度与管理系统、数据同步、控制台操作日志、告警分析、集群管理、业务运营、接口管理。系统管理众多模块,用来进行集群的日常维护,各组件的运行状态查看、异常告警、权限管理、系统升级、授权等维护。
图2 TDSQL赤兔管理台界面
TDSQL的组件:
· Zookeeper-zookeeper集群,提供高可用性和一致性集群;
· Keeper(Manager/scheduler)-负责TDSQL调度模块,进行主备切换、扩缩容、资源管理;
· OSS-TDSQL操作接口,提供http页面操作接口;
· DB-数据库模块,包含mysql和agent;
· Proxy-网关模块,账号鉴权、sql解析和转发;
· Monitor-监控采集模块,从zk定期采集实例动态数据;
· Chitu-运营平台,进行实例管理、告警管理权限控制等;
· Clouddba-扁鹊系统,提供sql优化和诊断
· HDFS-冷备存储模块,备份binlog/slowlog/errorlog;
· LVS-负载均衡模块,提供vip,对业务透明到后端proxy;
· Kafka-消息队列,多源同步和elaticsearch的基础组件;
· Consumer-多源同步消费者,提供mysql、tdsql和oracle之间的同步方案;
· Elaticsearch-数据检索及分析工具,用于分析网关日志,帮助定位问题;
· Kibana-在elaticsearch使用spl语言分析结果展现。
不难看出,除了在提供OLTP功能外,结合了众多大数据技术,提供了海量数据存储,为后期扩展提供了基础平台,也可以在数据治理、分析、展现的功能。
No.
5
数据库集群管理
数据库集群管理包括了:实例详情、数据库管理、DB监控、Proxy监控、实例监控、告警查询、日志管理、异常会话、备份&恢复、数据迁移、性能分析模块。
图3 TDSQL数据库管理界面
各个模块功能:
· 实例详情-数据库实例概要、分布、资源、版本、网关基础信息,同时包含数据库复制方式、容灾配置、备份配置、IO隔离等其它信息;
· 数据库管理-对数据库用户、在线DDL、在线SQL、在线SQL日志、数据库参数、网关参数等进行配置、优化;
· DB监控-当前DB节点的硬件资源使用率、运行状况、告警策略等展示和部分信息修改;
· Proxy监控-proxy连接数、SQL总数、响应时间,运行状态、告警策略、告警状态等监控和部分信息修改;
· 实例监控-数据库实例的详细指标历史曲线图,以及实例指标的当前状态;
· 告警查询-历史告警查询;
· 日志管理-慢查询、主备切换、DBA日志、控制台操作日志、网关日志等管理,其中网关日志可通过查询在kibana中展现;
· 异常会话-数据库运行的实时会话和异常会话;
· 备份&恢复-数据库的备份和恢复操作,可以备份到HDFS、本地文件系统和COS上,可采用物理备份和逻辑备份;
· 数据迁移-提供TDSQL到mysql、oracle等迁移和mysql回迁;
· 性能分析-提供一键式巡检报告、性能报告,进行SQL优化、实时诊断(冗余索引、锁等待、死锁等)、会话检查、表空间分布、故障诊断、历史SQL分析等。
通过数据库模块集群管理来看,相比传统的ORACLE,管理功能得到极大的提升,方便了日常的维护、管理,更好的发现性能及语句问题,实时处理后,系统能较稳定运行,同时数据迁移也更加方便,提供部分数据库双向迁移。
No.
6
期待改进的方向
· anisble运维智能化,除使用anisble进行基本安装之外,加强anisble的日常管理、维护;
· tdsql待完善的方向:spark技术融入,加强OLAP功能,OLTP+OLAP结合,实现HATP数据库支撑;
· 融合闪存卡、infiniband、SSD超融合等技术的软硬结合数据库的一体机;
· 加强对ORACLE语法的支持;
· 后期多平台数据同步工具的实现,如加强从ORACLE迁移到TDSQL平台;
· 产业链及合作伙伴、销售渠道的构造,开拓更多的商业核心客户;
No.
7
下一个风口
TDSQL已经为超过600机构提供数据库服务。据官方介绍,TDSQL客户包括张家港行、微众银行以及省部级政务机构等,行业覆盖计费、第三方支付、银行、保险、政务等领域。君不见数家国产数据库产品集中出现在四大行、运营商客户现场进行PK测试已成为常态,一旦金融行业经过短期的验证,在国际大环境下和现有传统架构饱和的情况下,国产替代计划、IT新基建、国产技术出海等浪潮将会迎来一波的推动,带来一个新产业链,无疑又会是一个巨大的金矿。
风已来,下一个飞上天的会是谁,会是已有良好的基因的TDSQL吗?
点击左下角“阅读原文”,了解更多!