阿里巴巴数据库分库分表的实践(6)

简介: 阿里巴巴数据库分库分表的实践(6)

正是有了这样简单易用的用户体验,使得精卫平台在应用的接入效率和用户满意度上都有非常不错的表现。


4)平台管控和统计


在精卫的平台中,每天都运行着上千亿次的数据同步和复制任务,必然需要对这些任务的执行有一个清晰的管控,甚至可以从中找出对业务数据变化的趋势。实现的方法是定时轮询Zookeeper集群中对应任务的节点进行监控,如图5-17所示。目前提供以下三个方面监控:

心跳监控。

延迟堆积监控。

任务状态、数据监控(TPS、异常)等。


微信图片_20220121204847.jpg


5-17 精卫平台提供的数据同步监控


采用类似精卫这样的平台实现数据异构索引的好处是,不需要在各个前端应用层的代码中去实现,只需统一通过精卫平台实现。有了这样专业的平台来实现数据同步的效率、服务高可用性、任务管控、统计等,能提供更好的服务。但设计这样的平台确实需要掌握数据库相关知识,以及任务调度、平台管控等技术,甚至需要在各种复杂场景中逐步打磨和完善技术。所以如果有些企业还没有这样数据同步的专业平台,通常会建议采用通过在应用层实现数据的异构索引,具体实现方式在6.3节中重点阐述。

5.将多条件频繁查询引入搜索引擎平台


采用数据异构索引的方式在实战中基本能解决和避免90%以上的跨join或全表扫描的情况,是在分布式数据场景下,提升数据库服务性能和处理吞吐能力的最有效技术手段。但在某些场景下,比如淘宝商品的搜索(如图5-18)和高级搜索(如图5-19),因为商品搜索几乎是访问淘宝用户都会进行的操作,所以调用非常频繁,如果采用SQL语句的方式在商品数据库进行全表扫描的操作,则必然对数据库的整体性能和数据库连接资源带来巨大的压力。


微信图片_20220121204911.jpg


5-18 淘宝网商品全文搜索


微信图片_20220121204928.jpg


5-19 淘宝网商品高级搜索

所以面对此类场景,我们不建议采用数据库的方式提供这样的搜索服务,而是采用专业的搜索引擎平台来行使这样的职能,实现的架构如图5-20所示。


微信图片_20220121204943.jpg


5-20 全文搜索实现示意图


阿里巴巴有自身的主搜索平台,该平台承载了淘宝、天猫、一淘、1688、神马搜索等搜索业务,其核心功能跟业界开源工具,如IuceneSolrElasticSearch等搜索引擎类似,但在数据同步(从数据库到搜索引擎)、索引创建算法、查询执行计划、排序算法等方面针对商品搜索这样的场景做了相应的调整和功能增强。该搜索平台目前已经以阿里云上OpenSearch产品的形态,给有此类搜索需求的客户提供强大的搜索服务,更多关于该平台详细的资料可访问开放搜索服务的官方网站:


https://www.aliyun.com/product/opensearch


6.简单就是美


在真实的世界中,选择的困难往往是因为充满着各种诱惑,选择A方案,有这些好处;而选择B方案,也会有另外一些好处。


如果在“尽量减小事务边界”与“数据尽可能平均拆分”两个原则间发生了冲突,那么请选择“数据尽可能平均拆分”作为优先考虑原则,因为事务边界的问题相对来说更好解决,无论是做全表扫描或做异构索引复制都是可以解决的。而写入或单机容量如果出现不均衡,那么处理起来难度就比较大。


尽管复杂的切分规则或数据的异构索引能够给系统的性能和扩展性带来显著的收益,但其后面所带来的系统运维复杂度上升也是不能忽视的一个结果。


如果为每一个存在跨join或全表扫描的场景都采用数据异构索引的方式,整个数据库出现大量数据冗余,数据一致性的保障也会带来挑战,同时数据库间的业务逻辑关系也变得非常复杂,给数据库运维带来困难和风险,从而对数据库运维人员的要求和依赖会非常高,所以从系统风险的角度考虑,以82法则,在实际中,我们仅针对那些在80%情况下访问的那20%的场景进行如数据异构索引这样的处理,达到这类场景的性能最优化,而对其他80%偶尔出现跨库join、全表扫描的场景,采用最为简单直接的方式往往是就最有效的方式。

       


相关文章
|
4月前
|
存储 人工智能 NoSQL
AI大模型应用实践 八:如何通过RAG数据库实现大模型的私有化定制与优化
RAG技术通过融合外部知识库与大模型,实现知识动态更新与私有化定制,解决大模型知识固化、幻觉及数据安全难题。本文详解RAG原理、数据库选型(向量库、图库、知识图谱、混合架构)及应用场景,助力企业高效构建安全、可解释的智能系统。
|
11月前
|
人工智能 前端开发 JavaScript
代码采纳率从 22% 到 33%,通义灵码辅助数据库智能编码实践
通义灵码本质上是一个AI agent,它已经进行了大量的优化。然而,为了更完美或有效地调用模型的潜在能力,我们在使用时仍需掌握一些技巧。通常,大多数人在使用通义灵码时会直接上手,这是 AI agent 的一个优势,即 zero shot 使用,无需任何上下文即可直接使用通义灵码的能力。
|
5月前
|
存储 弹性计算 Cloud Native
云原生数据库的演进与应用实践
随着企业业务扩展,传统数据库难以应对高并发与弹性需求。云原生数据库应运而生,具备计算存储分离、弹性伸缩、高可用等核心特性,广泛应用于电商、金融、物联网等场景。阿里云PolarDB、Lindorm等产品已形成完善生态,助力企业高效处理数据。未来,AI驱动、Serverless与多云兼容将推动其进一步发展。
271 8
|
7月前
|
人工智能 运维 数据挖掘
瑶池数据库Data+AI驱动的全栈智能实践开放日回顾
阿里云瑶池数据库重磅推出“Data+AI能力家族”,包括DTS AI数据准备、Data Agent系列智能体及DMS MCP统一数据访问服务,重构数据与AI协同边界。通过智能化工具链,覆盖数据全生命周期,提升企业数据开发、分析、治理与运维效率,降低技术门槛,激活数据资产价值,助力企业迈向全栈智能新时代。
|
8月前
|
人工智能 运维 数据挖掘
瑶池数据库开放日:全新发布Data+AI能力家族,赋能企业全栈智能实践
近日,阿里云瑶池数据库生态工具产品重磅升级,推出“Data+AI能力家族”,并举办了为期3天的全栈智能实践开放日活动。发布会上首次公开了 “Data Agent for Analytics、Data Agent for Meta、DAS Agent”等瑶池数据库Data Agent系列能力,以工具智能化 × 智能化工具的双引擎重构数据与AI的协同边界,揭秘AI时代数据价值释放的全新路径。
|
11月前
|
数据库
|
5月前
|
缓存 关系型数据库 BI
使用MYSQL Report分析数据库性能(下)
使用MYSQL Report分析数据库性能
444 158
|
5月前
|
关系型数据库 MySQL 数据库
自建数据库如何迁移至RDS MySQL实例
数据库迁移是一项复杂且耗时的工程,需考虑数据安全、完整性及业务中断影响。使用阿里云数据传输服务DTS,可快速、平滑完成迁移任务,将应用停机时间降至分钟级。您还可通过全量备份自建数据库并恢复至RDS MySQL实例,实现间接迁移上云。
|
5月前
|
关系型数据库 MySQL 数据库
阿里云数据库RDS费用价格:MySQL、SQL Server、PostgreSQL和MariaDB引擎收费标准
阿里云RDS数据库支持MySQL、SQL Server、PostgreSQL、MariaDB,多种引擎优惠上线!MySQL倚天版88元/年,SQL Server 2核4G仅299元/年,PostgreSQL 227元/年起。高可用、可弹性伸缩,安全稳定。详情见官网活动页。
1040 152