一篇文章读懂阿里云企业级数据库最佳实践

news2024/12/28 18:00:01

今天阿里数据库不再是简单的电商业务,而是涵盖了视频娱乐、IM、地图、在线零售、新零售、物流、在线旅游、音乐、IoT等纵多领域。2017年双十一交易额达1682亿,数据库交易峰值也以数十倍的速度在增长。超大规模的业务压力,在阿里巴巴内部淬炼出了一套完整的企业数据库解决方案:超大数据分库分表技术、毫秒级别的跨地区数据传输、秒级RPO的备份技术、混合云数据库管理、支撑数万研发的数据库devops平台、基于机器学习的智能数据库优化技术。

超大数据规模下的分库分表技术实践

在阿里巴巴去IOE的浪潮中,数据库面临的第一个问题就是,运行在普通PC Server上的MySQL在单机容量、性能等方面无法直接替换原来的存储和小型机架构。另外,如果单个MySQL数据库太大,给数据库备份、DDL变更等都会带来很大的复杂度。DRDS就是在这样的背景下产生的,通过DRDS的分库分表功能,化整为零,一方面让核心数据库的压力分到多个分库中,实现了性能和容量的巨大的扩展能力;另外,单个较小库表也给维护带来很大的便利。在刚刚过去的的双十一,交易核心库承担约32.5万/秒的交易创建,如果是传统的集中式架构很难想象需要怎样的硬件支撑。

在这里插入图片描述

毫秒级延迟的数据传输服务

在两年前,阿里巴巴上线了数据中心异地双活项目。阿里在全国很多地方都有数据中心,异地双活一个最大的挑战就是如何在毫秒的级别实现跨地区数据中心的数据同步。如果这个延迟很大,举个例子,卖家更改了一个商品描述、或者修改了价格,那么有的地区的用户可能很久才能看到,这对买家和买家体验上都是巨大的牺牲。阿里云早在2010年就开始在数据库流技术上做了很大的投入,通过在网络传输、并发写入等方面的极致优化,保证了多数据中心毫秒级的数据复制延迟。
2015年,我们在阿里云上也以产品的形式输出阿里巴巴数据流技术:数据传输DTS。除了复杂异地多活,DTS还可以解决很多企业内部数据流的问题,例如在线数据库上的数据变更,可能同时有数个下游需要这些数据,比如数据仓库、搜索、相关业务、实时大屏等。在云端,我们的一个典型的客户的场景,当有新的用户进行某个操作(或者是一次购买,或者是某次签到),那么下游的运营系统,可能要实时对用户行为进行一次分析,同时根据智能的分析,决定向用户推送某个实用的信息或者运营消息等。

基于数据流技术的,秒级RPO备份技术

数据传输DTS是通过日志获取的方式来获得数据变更。这项技术的另一个创新应用就是,实现秒级RPO的在线数据备份。我们先对数据库进行一次全量备份,然后使用DTS相同在线日志获取技术获取最新的数据库日志,然后对日志进行存储归档,从而实现秒级RPO的备份解决方案。

这次云栖大会,我们也重磅发布了我们“数据库备份”产品,让云上的用户也可以使用这项技术进行数据库备份。针对云环境的特殊性,我们新增了加密传输和存储模块,存储的目标也支持标准、低频、归档多种OSS存储类型,让用户可以更低成本、更安全的使用秒级RPO的数据备份解决。

支撑数十个机房,数十万实例的混合云数据库管控技术

阿里巴巴数据库管控系统发展至今已经到了第四代架构,第四代架构是基于BASE理论和微服务架构下完成,实现了管控系统的多机房容灾问题。另外,海量的数据库管理也带来更多的挑战:全网秒级监控让您轻松掌握数据库上千个指标,抓住数据库每一个细节;异地多活让你如何通过一键完成异地数据库搭建,实现异地数据库服务;一般管控系统更多聚焦在运维层面,而阿里的企业级服务还具备更多垂直的数据库能力,例如数据轨迹、数据回滚、数据库压测、业务大盘等。

支撑数万数据库用户的DevOps数据管理平台

企业规模快速发展,带来的两个大的挑战,管理的数据库数量巨大,使用数据库员工也非常多。但是,DBA团队却很难以相同的比率增长。具体的,我们发现,DBA业务压力巨大,需要处理事情繁多;同时,新入职的员工,对于数据库开发标准并不熟悉,给线上数据库的稳定性带了很大隐患。

既要有DBA的安全把控能力,又希望高效支撑大量业务的发展,阿里数据库团队研发了自己的企业数据库管理平台:iDB。企业内部的研发、测试等人员,可以使用iDB完成大部分数据库相关的操作,包括数据查询、数据变更、结构变更、实例申请等等。另外,iDB产品中还继承了大量DBA的经验,比如判断哪些DDL会锁表、InnoDB表结构设计是需要主要哪些问题等等。

iDB上可以闭环完成所有的数据库服务,包括实例申请、库表设计、变更发布、数据查询、数据变更、逻辑表查询、数据库下线等全生命周期的数据库实例管理。同时,通过平台集成的数据库能力,让研发有了更强数据库能力,也保障了线上业务的稳定。
在这里插入图片描述

基于机器学习的智能数据库性能优化技术

随着阿里巴巴快速扩张,传统的DBA支持的性能优化模式的弊端很快就体现出来:被动优化(监控/报警/慢SQL/应用报错等);优化过程耗时耗力且低效,较难形成闭环;优化结果受限于人的局限性;优化操作大规模复杂场景下缺乏扩展性;优化决策过程中数据价值缺失;DBA专家紧缺与数据库服务要求高效及时之间的矛盾越来越突出。

智能数据库性能优化技术在性能优化上分五大部分:收集、分析、预测、优化、验证。可以完整的、自助的完成优化并评估优化的效果。给企业带来多方面的价值。信息透明:向开发人员提供全面专业的数据库 信息分析和展示。自助化服务:全面专业的诊断优化建议,诊断流 程闭环,提供自助优化服务。自诊断、自优化:基于海量数据和机器学习的自诊断、自优化能力。降低成本:发现规模化优化点,优化资源管理,降低计算和存储成本。专家经验产品化:DBA专家优化经验转服务产品化,降低人工成本,提高服务质量和效率。主动优化:持续主动优化数据库性能,提高数据库稳定性。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/333424.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Chrome 浏览器的四大进程

一个进程就是一个程序的运行实例。详细解释就是,启动一个程序的时候,操作系统会为该程序创建一块内存,用来存放代码、运行中的数据和一个执行任务的主线程,我们把这样的一个运行环境叫进程。 总结来说,进程和线程之间的…

2023年地方两会政府工作报告汇总(各省市23年重点工作)

新年伊始,全国各地两会密集召开,各省、市、自治区2023年政府工作报告相继出炉,各地经济增长预期目标均已明确。相较于2022年,多地经济增长目标放缓,经济不断向“高质量”发展优化转型。今年是二十大后的开局之年&#…

从0开始学python -27

Python3 函数-1 函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段。 函数能提高应用的模块性,和代码的重复利用率。你已经知道Python提供了许多内建函数,比如print()。但你也可以自己创建函数&#x…

基于Prometheus和k8s搭建监控系统

文章目录1、实验环境2、Prometheus介绍?3、Prometheus特点3.1 样本4、Prometheus组件介绍5、Prometheus和zabbix对比分析6、Prometheus的几种部署模式6.1 基本高可用模式6.2 基本高可用远程存储6.3 基本HA 远程存储 联邦集群方案7、Prometheus的四种数据类型7.1 C…

教你搞懂线段树,从基础到提高

秋名山码民的主页 🎉欢迎关注🔎点赞👍收藏⭐️留言📝 🙏作者水平有限,如发现错误,还请私信或者评论区留言! 目录前言线段树逻辑概念线段树的俩个重要用处代码实现线段树题目巩固最后…

Android Jetpack组件之WorkManager后台任务管理的介绍与使用(一)

一、介绍 Jetpack? 我们经常看到,似乎很高端,其实这个就是一个名词,或者说是一种框架概念。 Jetpack 包含一系列 Android 库,它们都采用最佳做法并在 Android 应用中提供向后兼容性。 Jetpack 应用架构指南概述了构…

不要忽视web渗透测试在项目中起到的重要性

在当前数字化环境中,IT的一个里程碑式增长便是公司组织和企业数字化。为了扩大市场范围和方便业务,许多组织都在转向互联网。这导致了一股新的商业浪潮,它创造了网络空间中的商业环境。通过这种方式,公司和客户的官方或机密文件都…

Reflections反射包在springboot jar环境下扫描不到class排查过程

需求: 要实现指定pkg(如com.qiqitrue.test.pojo)扫描包下所有class类信息:使用代码如下 使用的版本:0.10.2(截至目前是最新版)发现只能在idea编译期间可以获取得到(也就是在开发阶段…

项目管理的十条成功经验(建议收藏)

项目管理的十条成功经验 1、定义项目成功的标准 在项目的开始,要保证各方对于判断项目是否成功有统一的标准。 2、把握各种要求之间的平衡 每个项目都需要平衡它的功能、人员、预算、进度和质量目标。 3、部门客户间的沟通 坦诚地与客户、管理人员沟通那些实…

无需注册即可免费使用ChatGPT

无需注册即可免费使用ChatGPT 最近OpenAI的ChatGPT异常火爆,有很多人都想尝试尝试,但是因为一些原因折戟,这里提供一个免注册的体验方法,仅供学习交流。 一,首先下载vscode 官网下载地址 Visual Studio Code - Code…

文本匹配SimCSE模型代码详解以及训练自己的中文数据集

前言 在上一篇博客文本匹配中的示例代码中使用到了一个SimCSE模型,用来提取短文本的特征,然后计算特征相似度,最终达到文本匹配的目的。但是该示例代码中的短文本是用的英文短句,其实SimCSE模型也可以用于中文短文本的特征提取&a…

使用STM32 CUBE IDE配置STM32F7 用DMA传输多通道ADC数据

我的使用环境: 硬件:STM32F767ZGT6、串口1、ADC1、16MHz晶振、216MHz主频 软件:STM32 CUBE IDE 优点:不用定时触发采样,ADC数据是不停的实时更新,ADC数据的更新频率根据采样时钟和采样周期决定,…

负载均衡反向代理下的webshell上传+apache漏洞

目录一、负载均衡反向代理下的webshell上传1、nginx 负载均衡2、搭建环境3、负载均衡下的 WebShell连接的难点总结难点一、需要在每一台节点的相同位置都上传相同内容的 WebShell难点二、无法预测下次的请求交给哪台机器去执行。难点三、下载文件时,可能会出现飘逸&…

面试题:Redis的内存策略

1 Redis内存回收Redis之所以性能强,主要原因是基于内存存储,然而单节点的Redis内存不易过大,会影响主从同步和持久化性能我们可以通过修改配置文件设置Redis的最大内存:当内存存储到上限时,就无法存储更多的数据了。1.…

html控件Aspose.Html for .NET 授权须知

Aspose.Html for .NET是一种高级的HTML操作API,可让您直接在.NET应用程序中执行广泛的HTML操作任务,Aspose.Html for .NET允许创建,加载,编辑或转换(X)HTML文档,而无需额外的软件或工具。API还为…

Java开发学习(四十六)----MyBatisPlus新增语句之id生成策略控制及其简化配置

在前面有一篇博客:Java开发学习(四十一)----MyBatisPlus标准数据层(增删查改分页)开发,我们在新增的时候留了一个问题,就是新增成功后,主键ID是一个很长串的内容。 我们更想要的是按照数据库表字段进行自增…

CleanMyMac X4.12新版本下载及功能介绍

CleanMyMac X2023最新版终于迎来了又4.12,重新设计了 UI 元素,华丽的现代化风格显露无余。如今的CleanMyMac,早已不是单纯的系统清理工具。在逐渐融入系统优化、软件管理、文件管理等功能后,逐渐趋近于macOS的系统管家&#xff0c…

Python数据可视化(三)(pyecharts)

分享一些python-pyecharts作图小技巧,用于展示汇报。 一、特点 任何元素皆可配置pyecharts只支持python原生的数据类型,包括int,float,str,bool,dict,list动态展示,炫酷的效果,给人视觉冲击力 # 安装 pip install pyecharts fr…

算法训练营DAY51|300.最长递增子序列、674. 最长连续递增序列、718. 最长重复子数组

本期是求子序列的新的一期,题目前两道有一些相似之处,思路差不多,第三道有一点难度,但并不意味着第一道没有难度,没有做过该类型题的选手,并不容易解出题解。 300. 最长递增子序列 - 力扣(Leet…

22级浙江大学MBA笔试备考的若干经验分享

我是浙江大学2022级的一名新生,虽然没有参加提前批面试,但是通过笔试的有序备考最终也有幸上岸浙大,对于部分提前批面试没拿到优秀资格的考友,今天我想把自己的笔试上岸经验做个总结,给大家提供一个参考模版。 先…