腾讯云数据仓库 TCHouse-D 2.0 内核版本于 2023 年 10 月启动邀测,并于 2024 年 3 月正式上线。在过去的 9 个月中,在电商、教育、汽车、金融、游戏等多个行业的客户中生产落地,提供了更快速、更稳定、更强大的数据分析体验,获得了客户的高度赞誉和良好口碑。
在 2.0 内核版本中,腾讯云 TCHouse-D 在查询写入性能、产品易用性、产品安全及降本、日志场景支持等方面都进行了大幅加强:
性能方面
引入新的查询优化器及 Pipeline 执行引擎,查询更快更稳定;新增行存模式,点查能力更强。
场景更丰富
新增支持部分列更新,数据写入更灵活;新增倒排索引,日志检索分析、非主键列查询性能有了巨大提升。
产品易用性
支持一键开启数据实时同步、一键开启湖仓联动,一键备份恢复/跨集群迁移。
安全及降本
新增资源隔离、冷热分层、跨可用区高可用功能。
下文将对这些 2.0 内核的新 Feature 进行简要介绍。
查询性能大幅提升
腾讯云 TCHouse-D 2.0 引入了全新查询优化器和自适应的并行执行模型,结合存储层、执行层以及执行算子上的一系列性能优化手段,相较 1.2 内核版本盲测性能、及高并发点查能力都得到了大幅提升。
1、全新查询优化器,30%+性能提升
全新查询优化器(CBO)采取了更先进的 Cascades 框架、使用了更丰富的统计信息、实现了更智能化的自适应调优,在绝大多数场景无需任何调优和 SQL 改写即可实现极致的查询性能。以 TPC-H 性能测试为例,全新优化器在未进行任何手工调优和 SQL 改写的情况下,测试集中绝大多数 SQL 的性能表现仍领先于旧优化器手工调优后的结果,盲测性能平均提升超过 30%。
注:全新查询优化器在 2.0 版本默认开启,并支持通过配置变量灵活切换新老优化器。若采用新优化器查询且时间超过 5s,查询任务会无感转为通过老优化器进行查询,最大程度保障稳定性。
2、Pipeline执行引擎,查询更稳定性
2.0 内核版本上引入了 Pipeline 执行模型作为查询执行引擎,替换了早期版本的火山模型,以确保多个混合分析负载的执行效率以及查询的稳定性。Pipeline 执行引擎基于多核 CPU 的特点,重新设计由数据驱动的执行引擎:
将传统 Pull 拉取的逻辑驱动的执行流程改造为 Push 模型的数据驱动的执行引擎。
阻塞操作异步化,减少了线程切换,线程阻塞导致的执行开销,对于 CPU 的利用更为高效。
控制了执行线程的数目,通过时间片的切换的控制,在混合负载的场景中,减少大查询对于小查询的资源挤占问题。
从而提高了 CPU 在混合负载 SQL 上执行时的利用效率,提升了混合负载场景中的查询性能和稳定性。
注:Pipeline 在 2.0 版本中将默认开启,支持通过 Session 变量控制。在混合负载的场景的实践中,通过控制执行线程的数目以及时间片的切换,能够有效缓解大查询对小查询的资源挤占问题,从而提高 CPU 在混合负载 SQL 上执行时的效率。
3、行存模式,查询并发提升超20倍
在用户画像、实时风控、电商订单查询等数据服务场景中,存在大量一线业务人员、 C端用户、或程序化的基于主键 ID 检索整行数据场景。此类场景查询并发很高,查询返回的数据量较少(通常只需返回一行或者少量行数据),但对于查询耗时极为敏感、期望在毫秒内返回查询结果 —— TCHouse-D 1.2及之前的版本仅支持列式存储,更适合批量读取和分析大量数据,是很难满足此类诉求。
在腾讯云 TCHouse 2.0 内核版本中,引入了全新的行列混合存储以及行级 Cache,使得单次读取整行数据时效率更高、极大减少了磁盘访问次数,同时引入了点查询短路径优化、跳过执行引擎直接使用快速高效的读路径来检索所需的数据、预处理语句复用执行 SQL 解析来减少 FE 开销。
通过以上一系列优化,在开启行存模式后 TCHouse-D 的并发能力可实现数量级的提升,查询语句符合条件时,查询并发可提升20倍以上(单节点QPS最大可超过3000)。
注:Pipeline 在 2.0 版本中将默认开启,支持通过 Session 变量控制。在混合负载的场景的实践中,通过控制执行线程的数目以及时间片的切换,能够有效缓解大查询对小查询的资源挤占问题,从而提高 CPU 在混合负载 SQL 上执行时的效率。
适用场景更丰富
腾讯云 TCHouse-D 2.0 内核在日志检索分析、非主键列查询、数据更新等场景进行了大幅的能力加强。
1、倒排索引,特定场景10倍性能提升
倒排索引是一种反向索引,被用来存储在全文搜索下某个单词在一个文档或者一组文档中的存储位置的映射,是文档检索系统中最常用的数据结构。倒排索引可以用来加速文本类型的全文检索、普通数值和日期类型的等值及范围查询、加速计算单词词频等。倒排索引可适用于以下场景:
|日志检索分析/用户行为分析
倒排索引在日志分析场景加速效果非常显著,英文分词的倒排索引,match 性能可提升大概18倍;中文分词的倒排索引列,match 性能提升15~40倍;Unicode 分词的倒排索引列,match 性能提升近100倍。同时腾讯云 TCHouse-D 提供可视化检索服务,可白屏化、向导式的对日志进行检索。
|非主键列查询性能提升
针对非主键列的查询,可通过创建索引的方式进行查询提速,大基数列(基数在 5000 以上,如:身份证号)可考虑添加 BloomFilter 索引,低基数列(基数在 100-10 万之间,如:职业、地市等)可考虑添加 Bitmap 索引。但涉及文本检索、模糊匹配或其他 Bitmap/BloomFilter 效果不好的场景,可考虑引入倒排索引进行加速,非主键查询最大可达百倍性能增强。
2、数据更新增强,支持部分列更新
在实时分析场景中,数据更新是非常普遍的需求。用户不仅希望能够实时查询最新数据,也希望能够对某些列进行灵活的实时更新。典型场景如电商订单分析、物流运单分析、用户画像等,需要支持数据更新类型包括整行更新、部分列更新、按条件进行批量更新或删除以及整表或者整个分区的重写( insert overwrite )。
TCHouse 1.2 内核版本已支持在 Unique Key 主键模型中开启 Merge-on-Write 的数据更新模式,数据在写入阶段就能完成所有的数据合并工作,最大可实现查询性能 5-10 倍提升。TCHouse 2.0 版本进一步加强了数据更新能力,包括:
易用性增强,数据联邦/搬迁高效
1、一键湖仓联动,3-8 倍查询加速
除支持常规的通过 Multi-Catalog 查询 Hive、Iceberg、Hudi 等外部数据源外,腾讯云 TCHouse-D 同腾讯云EMR、腾讯云数据湖计算DLC进行了充分的云上适配和融合,只需要进行简单配置,即可打通腾讯云 EMR、腾讯云 DLC,实现对湖中数据的查询加速。
2、Zero ETL新体验,一键开启实时同步
MySQL 等 OLTP 数据库无法承载大规模数据的查询分析,可以将数据实时写入 TCHouse-D 进行 OLAP 查询,极大提升大规模数据分析和复杂查询能力。但通过 FLink CDC 等工具进行数据写入,可能存在字段格式不兼容(如 TIMESTAMP 时区不对齐、VARCHAR 精度丢失等)、操作太繁琐(如需要手动批量建表)、集群不稳定(如数据写入过快导致集群235)等问题。针对这些问题,TCHouse-D 联动腾讯云 DataInlong 对数据实时同步链路进行了专项优化,极大提升了链路易用性和健壮性。
易用性方面
另外,在 TCHouse-D 控制台新增了 “一键开启数据实时同步”的功能,无需前往 DataInlong 进行复杂的项目/资源组/数据源配置,即可快速开启 Mysql/Kafka 等数据源的实时同步
健壮性方面
3、数据备份恢复/跨集群迁移
支持一键开启数据备份恢复、跨集群数据迁移服务,开启服务后,可将备份数据写入腾讯云对象存储 COS,并按需将数据恢复至本集群,或跨集群迁移至其他 TCHouse-D 集群。
业务更安全,存储更降本
1、资源隔离,避免业务间资源抢占
TCHouse-D 1.2 版本和 2.0 版本都有资源隔离机制,但 1.2 内核的资源隔离是 BE 节点粒度的,存在以下问题:① 需要扩容多个 BE 节点;② 需要在建表时为每个表建立资源组 tag 的绑定关系,操作非常复杂;③ 可能存在某些资源组紧张而某些资源组空闲的情况,造成资源浪费。
2.0 版本额外支持了 Workload group,可支持用户级别的资源隔离,操作简便。可以限制单个 Query 在 BE 节点上的 CPU 和内存资源的百分比,并可以配置开启资源组的内存软限制。当集群资源紧张时,将自动 Kill 组内占用内存最大的若干个查询任务以减缓集群压力。当集群资源空闲时,一旦 Workload Group 使用资源超过预设值时,多个 Workload 将共享集群可用空闲资源并自动突破阈值,继续使用系统内存以保证查询任务的稳定执行。
2、跨AZ高可用,提升集群健壮性
若您对安全有强诉求,期望某个 AZ 出问题不会影响整体业务,可在新购 TCHouse-D 集群的时候选择“三可用区高可用”部署模式,可保障任意一样AZ挂了都不会影响您的业务。
3、冷热数据分层,存储成本最高降低 70 %
在存储方面,冷热数据往往面临不同频次的查询和响应速度要求,因此可以将冷数据存储在成本更低的存储介质中。TCHouse-D 2.0 版本具备了数据冷热能力,开启降冷配置后,冷数据从块存储下沉到存储成本更加低廉的对象存储 COS 中,同时在不降低数据可靠性的前提下,冷数据从 3 副本转变为 1 副本。通过实际测算,存储成本最高可以降低超过 70 %!
数据降冷可支持 2 种降冷策略
将超时未更新的老数据降冷(TTL降冷):关联此策略后,超过“降冷TTL时间”未更新的老数据将转为冷数据存入对象存储 COS ,新数据还会继续热存在BE节点中
从指定时间起整体降冷:关联此策略后,到达“降冷时间”后,关联此策略的所有表/分区都会整体降冷至对象存储(新数据也会直接写入对象存储)
支持控制台一键开启数据冷热分层
支持按节点、库表查看数据降冷详情
诚邀体验,未来可期!
腾讯云数据仓库 TCHouse-D 2.0 内核版本现已全面上线,您可在创建集群时直接选择2.0内核版本。若您有内核版本升级诉求,可联系 TCHouse-D 产研团队开展升级集群。
腾讯云 TCHouse-D 2.1 内核版本和存算分离版本也将在后续推出,为您提供更高效、更弹性、场景更丰富的产品能力,敬请期待!
附:功能概览小结
关注腾讯云大数据公众号
邀您探索数据的无限可能