TDpg-v5产品小结
微信支付商户系统在这一年成功的从业务分库分表的模式中迁移到了TDSQL PostgreSQL版分布式集群里,通过自动化sharding的方案帮助业务解降低了分库分表带来的业务开发复杂度、通过独创性的冷热分区的方案降低了业务的使用成本、灵活的扩容方案应对业务的快速增长。针对当前的应用场景,建议将prefer_olap参数关闭,针对个别复杂查询,有一定的性能需要,若开启prefer_olap参数,sq
产品核心
1.HTAP主要支持OLTP场景,也支持OLAP;
2.高度兼容 Oracle 语法;
3.支持集中式主备、分布式两种架构;
内核版本说明
TDSQL PostgreSQL 版支持的内核大版本有三种,分别为 V2、V5.06和 V5.21,下面分别就兼容性和架构为您说明三种大版本的差别。
|
内核大版本 |
支持的架构 |
兼容性说明 |
|
V2 |
分布式 |
完全兼容 PostgreSQL |
|
V5.06 |
分布式、集中式 |
完全兼容 PostgreSQL、高度兼容 Oracle |
|
V5.21 |
分布式、集中式 |
PG 模式完全兼容 PostgreSQL、Oracle 模式高度兼容 Oracle |
内核版本生命周期说明
|
内核大版本 |
首次发布日期 |
停止销售日期 |
停止服务日期 |
|
V2 |
2020年之前 |
2023.12.30 |
2026.12.30 |
|
V5.06 |
2021年 |
2025.12.30 |
2027.12.30 |
|
V5.21 |
2024.06.30 |
/ |
/ |
产品核心能力
架构:TDSQL PostgreSQL 版同时支持集中式主备、分布式两种架构,适用于不同的业务场景,同时统一的管控平台可以进行不同架构的实例的生命周期管理和运维管理。
高度兼容 PostgreSQL 和 Oracle:TDSQL PostgreSQL 版在 PG 模式完全兼容 PostgreSQL,在 Oracle 模式高度兼容 Oracle 语法,包含数据类型与运算符、分区表、系统内置包、系统视图、函数、存储过程、PL/SQL 等语法的兼容。具体的 Oracle 兼容性说明请参见 Oracle 兼容特性概述。
支持行列混合存储:TDSQL PostgreSQL 版支持行列混合存储,即支持一个数据库内同时存储行存表和列存表。同时支持自适应高压缩能力,支持向量化执行引擎。不同的存储格式适用于不同的业务系统,列存在 OLAP 场景中能发挥更高效的查询性能。支持行列混合存储能力使得 TDSQL PG 能更好地同时支持 OLTP/OLAP/HTAP各种场景。
多周边生态支持:TDSQL PostgreSQL 版具有丰富的周边生态:
1)支持强大的地理信息系统(GIS)。通过集群化的 PostGIS 插件,支持存储空间地理数据,使 TDSQL PostgreSQL 版成为一个空间数据库,能够通过 SQL 语言高效的进行空间数据管理、数量测量和几何拓扑分析。
2)TDSQL PostgreSQL 版不仅是一个分布式关系型数据库系统,同时还支持非关系数据类型 JSON。
发展历史
大数据时代的来临以及去IOE浪潮的兴起,基于开源PostgreSQL扩展而来的tPG(tencent PG)系统作为腾讯商业数据库的替代方案,同时作为腾讯大数据平台TDW(Tencent Distributed Warehouse)的实时数据库组件,从2008年开始在腾讯内部使用。
TDSQL PostgreSQL版(原tbase版)团队从2011年起开始分布式数据库集群化的探索,通过详细的前期测试,综合tPG上的场景,从OLTP场景入手,走自研的路线。在2013年,TDSQL PostgreSQL版数据库集群应运而生。微信支付商户系统在这一年成功的从业务分库分表的模式中迁移到了TDSQL PostgreSQL版分布式集群里,通过自动化sharding的方案帮助业务解降低了分库分表带来的业务开发复杂度、通过独创性的冷热分区的方案降低了业务的使用成本、灵活的扩容方案应对业务的快速增长。
伴随着腾讯云HTAP全功能能力的需求十分旺盛,TDSQL PostgreSQL版产品经过不断迭代,强化了企业级安全特性、压缩、读写分离,资源隔离等多方面的能力,TDSQL PostgreSQL版数据库集群也在这个基础上发布了。
截止到目前,TDSQLPostgreSQL版凭借着产品的卓越竞争力,已经在多个行业提供底层数据库支撑。
2020年12月31日起原分布式数据库TBase更名为TDSQL PostgreSQL版。原TBase兼容Oracle版更名为TDSQL PostgreSQL兼容Oracle版。
TDSQL-A PostgreSQL版 和 TDSQL PostgreSQL版 数据库什么区别
二者都是腾讯云基于 PostgreSQL 研制的分布式数据库,都是腾讯云原分布式数据库 TBase 的不同产品系列。 主要差别是 TDSQL-A PostgreSQL版 是 OLAP 增强版,有自研列式存储和向量化执行引擎,主打 OLAP 场 景;TDSQL PostgreSQL版 则更专注在高并发的 OLTP 场景及混合 HTAP 场景。 二者的很多功能特性都是相通和相互继承的,如 Oracle 兼容性、多级安全特性、冷热分离能力等,而且也会在后 续的演进中互相继承功能特性。
TDSQL-PG数据库V5版本与V2版本的主要差异说明
基于项目碰到的一些问题,就V5版本和V2版本的主要差异做补充说明。
一、时间字段类型说明
TDSQL-PG数据库的V5版本Date类型,精确到秒,如:2022-11-07 14:42:52。
TDSQL-PG数据库的V2版本Date类型,精确到天,如:2022-11-07。
应用程序去查询时可能会报错,获取长度或者截取会因为长度变化而报错,需要应用程序进行修改优化。
二、null和’’的含义说明
TDSQL-PG数据库V5版本,开启oracle兼容性开关(默认打开),null和’’的意义一样,都定义为null,在not null的约束中,’’会当作null无法插入。
TDSQL-PG数据库V2版本,null和’’的意义不一样,在not null的约束中,’’可以当作非空插入。
三、char类型定长问题
TDSQL-PG数据库,不管是V5版本还是V2版本,数据库字段属性为char(2),当存储长度小于2时,数据库会进行右侧进行填充空格补足长度的处理方式。如存储值为a时,真实存储的时候为‘a(空格)’,当应用程序来查询此字段值时,拿到的结果集为‘a(空格)’,需要应用程序使用rtrim函数进行处理。
四、prefer_olap参数说明
prefer_olap参数在V5版本和V2版本的含义一样。
开启prefer_olap参数(set prefer_olap to on;),当有大量多表关联的复杂查询时,如果关联字段不是分片键,会走重分布,将会产生数据库的连接风暴,降低数据库性能及增加连接数。
关闭prefer_olap参数时,复杂查询不走重分布,此时会将数据直接从DN节点(数据节点)拉到CN节点(协调节点)计算,部分SQL执行性能会加长,但对于数据库来说,整体性能保持稳定。
针对当前的应用场景,建议将prefer_olap参数关闭,针对个别复杂查询,有一定的性能需要,若开启prefer_olap参数,sql执行效率明显高于关闭prefer_olap参数,建议以session级别开启参数,执行完后关闭参数。
注:重分布,即在两表关联时,关联字段为非分片键,会以关联字段作为分片键重新打散分布,再两表关联,最后将DN节点的关联结果汇总到CN节点。
更多推荐
所有评论(0)