开发者关心的十个数据库技术问题
作者 | 雷海林 责编 | 田玮靖
出品 | 《新程序员》
如今,数据库越来越受到业界的广泛关注,许多高校毕业生及资深技术人也逐渐投身于数据库产业。《新程序员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
云数据库时代,我们将探索极致的弹性伸缩架构,来解决性能、效率和成本问题。云原生数据库具有高性能和高度兼容的优势,敏捷、灵活的部署能力,可以让企业像使用水、电、煤一样使用云数据库,从而降低企业上云门槛,提升上云进程,更好地应对智慧时代复杂的业务场景。针对不同的场景,云原生分布式数据库可分为两种架构:Shared Nothing与Shared Storage,两者都可以通过实现计算与存储分离架构来整体获得更优秀的弹性伸缩能力,克服传统架构下的存储量受限、扩展难、主从延迟高等缺点,同时也能够将成本控制得更低,充分释放领先技术的成本效益。而计算与存储全Serverless架构的数据库服务也是未来可以重点关注的方向,它在可自动无感扩缩容的基础上,按实际使用计费,不用不付费,提升云数据库效用。
多模态融合
在信息化建设和数字化转型的浪潮之下,涌现出大量的新兴场景。数据库作为支撑各类 IT 系统架构的基础软件技术,也随之出现在各类新的应用实现中,包括大量的NoSQL实践和存储领域的B+树、 LSM树以及行存、列存等架构形态产品,还有OLTP、OLAP,HTAP数据库等。多种多样的引擎产品,在大多数情况下不会独立存在,服务于一个企业或系统,即“One size fits none”。从技术角度看,极致的性能成本与通用性有着天然的矛盾。因此,在多样化场景下,一定会是多引擎共存,充分发挥各种引擎的特点与优势,才能实现极致与通用的兼得。
标准化服务与智能自治
多模态技术引擎的现状必然给开发者带来选型、开发应用的困难,即如何能够适应不同场景,还有足够高的性能表现,这也是当前数据库发展面临的困境。为了解决这个问题,一个办法是无需用户进行复杂选择,而是由系统基于AI智能调度、Serverless等解决方案,彻底实现多引擎的统一标准化服务。从底层的角度看,未来开发者无需感知具体的产品选型,比如在做数据分析时,系统会自动调度性能最好、事务交易一致性的方案。与此同时,面对云数据库时代数十万的数据库实例,人力运维是不现实的,智能化技术与数据库底层的融合,可以智慧管理数据库全生命周期,也是未来数据库的关键特征。
程序员职业发展建议
10. 如何将程序员做成具有长久生命力的职业?
程序员从来不是一个只吃青春饭的职业。当你经历的东西越多,见过的架构越多,你的经验肯定会更丰富,看问题更能迅速看到本质。所以,做技术没有天花板,而技术人员的职业生涯,也没有瓶颈期。但是,最好在某些方面有比较深入的钻研,追求精度与深度。同时,不能放弃广度,广度意味着更多的机会,帮助你由点及面地开展工作。例如,一些通用的底层技术,就值得钻研。只要你从事计算机系统工作,那你在大多数时候都离不开它们,包括内核、网络、数据结构、算法等等。对底层技术的研究相当于不断发现水面下的冰山,它具有持久延续性、广泛延展性。不管你做什么工作,你依赖的这些基础都是相通的,所以我相信,提高基础能力,你的前景肯定会越来越光明。
雷海林:腾讯云数据库专家工程师,腾讯云TDSQL技术负责人、首席架构师。2007年加入腾讯,持续专注于金融级分布式数据库研发,带领团队实现多次业界领先的分布式数据库技术突破,在分布式事务、SQL兼容性、内核安全、智能运维方面持续创新,产品获得大量金融客户的认可,市场规模大幅领先同业。
本文出自《新程序员002:新数据库时代&软件定义汽车》,由60余位专家倾力创作。随书附赠《2021数据库全景图V1.0》和《2021汽车技术与产业生态全景图V1.0》,同时内含《2021年度数据库发展研究报告》和《2021年度软件定义汽车研究报告》,图文与视频多媒体呈现。
数据库作为核心技术三大件之一,我们从新型数据库普及、数据库开源趋势、数字化转型实现,以及资本助力产业等角度,邀请到27位数据库行业专家,共著非关系型数据库、文档型数据库、分布式数据库、混合式数据库、时序数据库、图数据库等的理论技术及行业实践,让数据库开发者快速提升。
《新数据库时代》目录
智能驾驶作为人工智能的顶上皇冠,我们以技术和商业融合创新为主线,邀请到23位汽车领域专家,从开源系统、车路协同、数字孪生等不同视角分析了云计算、人工智能、物联网等技术给汽车行业带来的影响和机会,让汽车从业者深入了解产业动态。
《软件定义汽车》目录
本书高屋建瓴的产业分析和趋势预判适合中高端从业人员参考决策。同时,多位专家亲历的入门和实践之旅也为初学者提供了可借鉴的专业路径。
扫描图中二维码立即订阅
扫描下方二维码,添加小助手,即可加入《新程序员002》「读者群」,抢先一步获取杂志最新资讯,精彩内容不再错过。
相关文章:

使用T-SQL语句操作数据表-更新数据
使用update语句更新表中的数据。也就是修改表中的数据。update语法格式:update <表名> set <列名更新值> [where <更新条件>] 解释:update 是更新数据名, 表明是更新数据set 是必要的, 后面可以紧随多个数据列的…

Category Archives: Linux
原文地址:http://blog.solrex.org/articles/solrex-linux-cheatsheet.html Cheatsheet:原意是考试的时候带的小抄,所以说是 cheat(作弊) sheet。在计算机科学领域里,主要是指记录一些难记命令或者操作的快查…

利用 OpenCV+ConvNets 检测几何图形
作者 | 小白 来源 | 小白学视觉 导读 人工智能领域中增长最快的子领域之一是自然语言处理(NLP),它处理计算机与人类(自然)语言之间的交互,特别是如何编程计算机以处理和理解大量自然语言数据。 自然语言处理…

《Linux实践及应用》
2019独角兽企业重金招聘Python工程师标准>>> 《Linux实践及应用》 本书以RedHat 9.0为蓝本,系统地介绍Linux的基础知识、Linux系统的安装与配置、常用命令,以及如何进行Linux系统管理和基本的网络服务设置(包括如何设置DNS服务器、…

找不到包含 OwinStartupAttribute 的程序集
2019独角兽企业重金招聘Python工程师标准>>> 尝试加载应用时出现了以下错误。 找不到包含 OwinStartupAttribute 的程序集。找不到包含 Startup 或 [AssemblyName].Startup 类的程序集。 若要禁用 OWIN 启动发现,请在 web.config 中为 appSetting owin:A…

Imagination 推新款GPU IP,首次实现桌面级光线追踪效果
游戏界被炒得最热的概念可能就是光线追踪技术了,不仅仅是PC端的游戏。光线追踪所展示出来的画面效果也确实惊艳,可以让我们感叹到图像技术达到的一个新高度。 但是实际上,光线追踪并不是一个新技术。10年前,光追就是游戏玩家茶余…

percent之集合
2019独角兽企业重金招聘Python工程师标准>>> 这个留到明天再来写吧,今天把hub剩下的坑填掉. 转载于:https://my.oschina.net/u/2011113/blog/416458

Mr. Process的一生-Linux内核的社会视角 (2)启动
原文地址: http://www.manio.org/cn/startup-of-linux-view-of-society.html 其实这才应该是这一系列文章的第一节,因为这篇文章讲的是盘古开天地的事。话说Mr. Process是一个现代人,但是,只要是人,总该有个祖先。人们…

深入研究ConcurrentHashMap 源码从7到8的变迁
ConcurrentHashMap是线程安全且高效的HashMap 1 为什么要使用ConcurrentHashMap 线程不安全的HashMap HashMap是Java中最常用的一个Map类,性能好、速度快,但不能保证线程安全,它可用null作为key/value HashMap的线程不安全主要体现在resize时…

IANA定义的常见服务的端口号列表
最新明细:http://www.iana.org/assignments/port-numbers 几个重要常见端口: 21 FTP 22 SSH 80 HTTP 443 HTTPS 1433 MSSQLserver 3306 MySQL 11211 memcached

oracel 服务详细介绍
中的方法成功安装Oracle 11g后,共有7个服务, 这七个服务的含义分别为: 1. Oracle ORCL VSS Writer Service: Oracle卷映射拷贝写入服务,VSS(Volume Shadow Copy Service)能够让存储基础设备&…

使用 Python 开发一个恐龙跑跑小游戏,玩起来
作者 | 周萝卜 来源 | 萝卜大杂烩 相信很多人都玩过 chrome 浏览器上提供的恐龙跑跑游戏,在我们断网或者直接在浏览器输入地址“chrome://dino/”都可以进入游戏 今天我们就是用 Python 来制作一个类似的小游戏 素材准备 首先我们准备下游戏所需的素材,比…

了解和入门注解的应用
2019独角兽企业重金招聘Python工程师标准>>> 一、概述 jdk的java.lang包中提供的最基本的annotation 1、SuppressWarnings("deprecation") package staticimport.annotation;SuppressWarnings("deprecation") public class AnnotationTest {pub…

Linux下开发优秀链接
不得不说CSDN博客这次改版变化很大,但是友情链接功能太脆弱了。 只有自己写个帖子,不断更新吧。Linux基础 Linux内核mirrors163LVS中文站点 孙海龙 howtoforge.com 地中海东岸的蒲公英 服务器运维与网站架构 Nginx中文维基 ACME Bory.Chan Tim[后端技术]…

Q 版老黄带着硬核技术再登场,有点可爱,很有东西
编译 | 禾木木 出品 | AI科技大本营(ID:rgznai100) 看到下面这个老黄是不是觉得很Q~ 11月9日,GTC 大会再次来了,英伟达创始人兼CEO黄仁勋再次从自己虚拟厨房走出来。 本次 GTC 大会都有哪些亮点呢? Q 版黄仁勋 英伟达展…

linux第七章《档案与目录管理》重点回顾
转载于:https://www.cnblogs.com/wubingshenyin/p/4514969.html

Effective java 43返回零长度的数组或者集合而不是null
转载于:https://www.cnblogs.com/limingxian537423/p/8391285.html

《Unix网络编程卷1-套接字联网API》第一个例子编译 不通过问题解决
《Unix网络编程卷1-套接字联网API》是本好书。 但是第一个例子不是很好编译。 需要如下步骤: 本人机器CentOS 5.4 1.下载源码 unpv13e解压到任意目录 然后按其readme文件操作./configure # try to figure out all implementation differencescd lib # bu…

angularJs的学习笔记-01(创建项目)
1,进入angular-phonecat目录 执行下面命令 git checkout -f step-0 然后访问 http://localhost:8000/app/ 页面出现 “Nothing here yet!” 现在就可以自己创建HTML,编写angular了 app/index.html <!doctype html> <html lang"en"…

一文搞定深度学习建模预测全流程(Python)
作者 | 泳鱼来源 | 算法进阶本文详细地梳理及实现了深度学习模型构建及预测的全流程,代码示例基于python及神经网络库keras,通过设计一个深度神经网络模型做波士顿房价预测。主要依赖的Python库有:keras、scikit-learn、pandas、tensorflow&a…

第163天:js面向对象-对象创建方式总结
面向对象-对象创建方式总结 1、 创建对象的方式,json方式 推荐使用的场合: 作为函数的参数,临时只用一次的场景。比如设置函数原型对象。 1 var obj {};2 //对象有自己的 属性 和 行为3 // 属性比如: 年龄、姓名、性别4 // 行…

一个从四秒到10毫秒,花了1年的算法问题?
原文:一个从四秒到10毫秒,花了1年的算法问题?五一后的第一周,由于搬家腰扭伤了,没注意导致压迫神经,躺在床上休息了好几天。所以没事就挂 QQ,一个网友突然问了我一个算法问题。所以有了这篇文章。感触很深&…

xinetd 说明
xinetd 是什么在linux中一些不长期使用的服务(不重要的服务?)没有被作为单独的守护进程在开机时启用,linux把这些服务监听端口全部由一个独立的进程xinetd集中监听,当收到相应的客户端请求之后,xinetd进程就…

英特尔携手中科院计算所建立中国首个 oneAPI 卓越中心
11月12日,在第三届中国超级算力大会(ChinaSC 2021)上,英特尔与中国科学院计算技术研究所共同建立中国首个 oneAPI 卓越中心,来扩大 oneAPI 对中国本土国产硬件的支持及使用oneAPI来开发全栈式开源软件。 在上个月刚结…

前端学习资源分享
2019独角兽企业重金招聘Python工程师标准>>> 推荐大神文章(文字教程) 1 综合类 前端知识体系前端知识结构Web前端开发大系概览Web前端开发大系概览-中文版智能社 - 精通JavaScript开发JavaScript中的this陷阱的最全收集--没有之一JS函数式编程指南腾讯移动Web前端知…

Nginx源码分析链接
nginx-0.8.38源码探秘:http://blog.csdn.net/ccdd14/article/details/5872312nginx源码分析: http://blog.sina.com.cn/s/blog_677be95b0100iiv7.html

基于聚类的图像分割(Python)
作者 | 小白来源 | 小白学视觉了解图像分割当我们在做一个图像分类任务时,首先我们会想从图像中捕获感兴趣的区域,然后再将其输入到模型中。让我们尝试一种称为基于聚类的图像分割技术,它会帮助我们在一定程度上提高模型性能,让我…

4月第4周全球域名商TOP15:万网第四 增势减弱
IDC评述网(idcps.com)05月21日报道:据WebHosting.info公布的最新数据显示,在4月第4周,全球十五强域名商中,域名总量成功实现净增长的有7家。其中,中法各1家,即中国万网与OVH.NET&…

PXE全自动安装操作系统--centos7.3学习笔记
PXE服务器:192.168.110.110 环境准备 安装软件 # yum -y install dhcp tftp-server tftp vsftpd lftp DHCP配置 # cd /var/dhcp # cp /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example /etc/dhcp/dhcpd.conf # vim /etc/dhcp/dhcpd.conf subnet 192.168.110.0 netmask…

无事“自动驾驶”,有事“辅助驾驶”?
近日来,智能汽车事故频发,且事故原因多与所谓的“自动驾驶”功能有关,这不由得引起了人们对“自动驾驶”发展前景的担忧。实际上,大众理解的“自动驾驶”与官方的定义可能有所出入。全球公认的标准一般是由SAE International&…