开发者关心的十个数据库技术问题
扫描二维码
随时随地手机看文章
出品 | 《新程序员》如今,数据库越来越受到业界的广泛关注,许多高校毕业生及资深技术人也逐渐投身于数据库产业。《新程序员002》经过用户、专家调研,收集汇总了十个开发者关心的数据库技术问题,并邀请腾讯云TDSQL技术负责人、首席架构师雷海林作出解答,希望为越来越多投身数据库的技术人才提供参考。数据技术应用与创新1. 数据库产品在面向企业时(涉及负载均衡、数据传输、运营平台、故障发现分析和治愈、发布系统、冷备系统等等),核心服务有哪些?数据库是一个复杂的技术系统,真正在业务中投产,要求同时满足稳定、高性能、一致、高可靠、易运维等特性,缺一不可。也就是说,从数据库设计到数据库引擎的运营、迁移,再到数据安全等,包含数据全生命周期在内的每一环都需要考虑。例如,计算和存储都需要实现独立弹性扩展,保障系统的事务处理与分析查询能够稳定、高效地完成。而在云时代,保障跨城、跨中心大型集群的高可用比以往集中式数据库更复杂,因此自动化运营以及智能运维、智能监控等能力,是提升日常运营效率的关键,也是故障识别、全局仲裁、自动资源配置和调度,以及保障系统稳定、高可用的关键支撑。2. 数据库迁移怎么做?通常数据库迁移包含两个层面:全量迁移和增量同步。针对增量可以通过数据日志同步、数据订阅等手段进行,但问题在于,数据库迁移涉及业务系统数据库的迁移替换,这类数据库一般都服务于关键业务场景,因此“快”和“稳”缺一不可。快速迁移数据和保证数据持续准实时同步,是数据库迁移过程的两个关键要素。这就要求,迁移方案需要包含数据校验、回滚、安全风险控制机制等,实现迁移过程中的系统高性能、数据一致、服务高可用。针对高性能的优化可通过并发控制机制、有序消息并发重放、并发解析机制等方案来实现。数据一致性可通过消息异常检测、自动化切换、自动化冲突检测与恢复等技术机制来保障。服务高可用可以基于自动化扩容感知、多机容灾保护等能力实现。如果涉及迁移的源端与目标端异构,还需要自动化迁移评估平台,进行库表结构、数据库对象、数据类型自动转换等等。3. 如何在低配服务器中,实现数据库高性能、高可用运行?首先,云上数据库应用,可以通过云原生、多租户能力很好地控制资源,做到按需使用,不用担心资源瓶颈问题,也不会使资源过度消耗。同时,设置一套自动化资源配置规则,当系统识别到资源即将打满时,可以有效地进行资源分配与调度,管理资源开销,保障系统稳定。这就要求开发阶段尽量避免使用动态分配的方式,而是采用内存池等优化手段来管理内存,提升应急能力。当然,也有一些场景,需要将数据库部署在配置很低的服务器上(如低规格的虚拟机),这个时候对数据库的稳定运行确实是一个考验。所以我们在设计时要注意尽量控制配套的辅助模块,降低对资源(如CPU、IO等)的利用率,让资源真正为业务所用。低配服务器,当SQL请求增加时,更容易触发资源阈值告警,这时DBA人员需要根据情况考虑是否扩容。另一种方式,是从DB设计侧支持自动限流,通过对请求进行流控,以保证整体的高可用。4. 大数据量的并行处理如何应对? 大数据量的并行处理意味着数据库计算框架要具备并行化处理能力,比如能够把SQL拆解成一个并行的执行计划,采用多线程的方式去执行,需要时能够将这些子查询计划推到对应的数据节点上并行执行。而在并行处理中,也有很多问题要解决,比如当海量流量涌入,我们需要针对用户或者某类SQL控制总的资源消耗度(如并行的连接数,线程数,总的资源利用率等),另外也需要对在线SQL和离线分析SQL进行区分,在资源不够的时候要优先保障在线SQL的执行,这都是设计数据库时需要考虑的问题。数据技术融合发展洞见5. 实时计算大行其道,数据库如何应对?随着技术的发展,物联网、大数据和互联网监控等拥有海量时序数据、需要实时数据作决策的场景越来越广泛,这些新兴的场景都是云计算、“产业互联网 ”深化发展的必然结果,也是数据库等基础数据技术需要提前应对布局的技术场景。针对实时计算场景提出的要求(比如大量数据输入、秒级别计算响应),数据库技术需要具备高性能服务、低成本存储、超强聚合分析能力等基本特性。而这些要求,时序数据库产品能够很好地满足。随着未来场景特征的融合,实时计算的需求也将可能出现在各行各业的实际场景中。因此作为底层技术,数据库也将走向满足多种计算能力要求的多引擎融合发展,用强大的底层能力支撑通用场景应用。这也是我们应该探索的方向。6. 数据库与大数据是什么关系? 从宏观层面来看,数据库是一个非常宽泛的概念,大数据应该也属于数据库的一种形态。当然从更细粒度的角度来看,数据库主要用来处理联机交易和中等规模的数据分析,强调高性能低延时的数据存取。而大数据一般面向海量数据以及基于这些数据从产生、收集、存储到计算的分布式计算框架,如Hadoop、Spark生态下的各种软件和框架。7. 数据库基础研究创新有哪些值得考虑的方向?基础研究创新的方向要从未来行业对数据库的需求角度来分析。第一,数据库的主流方向是分布式架构,同时在数据规模不断增长、对数据价值分析效率要求不断提升的背景下,满足HTAP场景是一个重要的发展方向。而数据库需要很好支持HTAP的能力,系统需要真正实现计算层高扩容能力,以及支持不同的计算和存储引擎,还要做到资源良好地隔离等等。目前从整个行业来看,这一方面的能力还有待完善和探索。第二,执行器、优化器等技术模块也将是数据库发展中值得关注的技术。第三,“数据库 AI”等多技术生态底层融合将带来新的发展机会,如通过“AI for DB”实现数据库自治是当前广受关注的方向。第四,“数据库 新硬件”结合也是值得关注的发展方向,如今,新硬件层出不穷,我们如何基于新硬件实现创新式应用、释放创新源动能,同时保持数据库ACID能力?如何实现数据库面向新硬件的技术迁移?这些都是值得探索的方向。8. “AI 智能运维”是否会取代DBA?智能化运维能力,更多的作用是覆盖云时代大规模实例运维中基础、重复的工作,以及提升诊断、资源配置的效率,也就是说,它最终能够释放DBA烦琐的日常工作、提高DBA处理问题的效率、减少故障对企业带来的损失(也降低了DBA的精神压力),让DBA有更多时间和精力去做一些有助于个人成长和业务发展的事,包括但不限于业务整体数据架构的梳理、内核源码的研究等。9. 未来数据库的核心是什么?关于未来数据库发展的核心,我个人认为,一方面是面向未来的高精尖技术发展与技术基础设施升级,另一方面是国产分布式数据库生态的培育建设。而数据库的发展仍将以云原生、HTAP等多模态融合、智能自治为主要核心:
-
云原生与Serverless
-
多模态融合
-
标准化服务与智能自治