[案例]如何异构一个数十亿级别的数据库

数据源为mysql,目标介质为elasticsearch。


1、 我们能利用的资源

1.1 源数据模型

源库是别人(库存)的数据,分为A,B,C三种类型的库存模型,需要将三种类型的模型整合成一中通用库存模型方便我方(商家)做业务。
典型的互联网企业是协作方式,通过数据副本实现业务之间的解耦。

1.2 特殊表(非重点)

D为库存占用订单详情,也要异构一份。

1.3 分库分表

ABCD均做了分库分表,A(16个库,4096张表),B(1,512),C(1,256),D(8,1024)

1.4 数据量

数据总量在数十亿级别

1.5 线上影响

不影响对方业务,数据源只有对方mysql分组中对应的抽数从库。
mysql分组解释

1.6 性能要求

未来要支持复杂的条件查询,对查性能有很高要求,目标介质是ES。


2、 难点

2.1 导数

交易库存复杂的分片规则,数据量大,导数是个大工程。

2.2 更新频繁

写操作频繁,ES 创建索引的tps能否满足要求。

2.3 一致性如何保证

通过mq 实现 base最终一致性。


3、 最终方案

3.1 系统整体架构

首先增量数据采用canal做收集(图中binLake同集群化canal),ABC库全部存入es,D库存入mysql。

3.2 如何做全量倒库

sop对应的类型A,使用多个topic分散消息中间件压力,同时解决中间件同一topic的连接数限制。

3.3 如何提高es写性能(bulk)

通过jmq异步创建es索引,通过redis队列实现bulk模式提交对应用的透明化

如何提高Elasticsearch性能

如何提高Elasticsearch性能

  1. solr查询快,但更新索引时慢(即插入删除慢),用于电商等查询多的应用;

2.ES建立索引快(即查询慢),即实时性查询快,用于facebook新浪等搜索。

  • 如何提高ES性能:
  • 1.ES更新操作尽量提供批处理,减少写入次数;(bulk)
  • 2.按商家维度分多套集群, 在集群里再按照商家维度分片;
  • 3.热点集中问题解决方案:路由规则可定制化由ES团队负责;
  • 4.提供数据重建reindex功能,要求mapping配置source为true;(方便重建数据)
  • 5.ES团队要求,业务方需要提供至少10台物理机用以部署;
  • 6.深分页条数建议控制在1万条以内,做分页用scroll方式实现,禁止跳转到大页

Elasticsearch同Solr对比

Elasticsearch同Solr对比

二者安装都很简单;
Solr 利用 Zookeeper 进行分布式管理,而 Elasticsearch 自身带有分布式协调管理功能;
Solr 支持更多格式的数据,而 Elasticsearch 仅支持json文件格式;
Solr 官方提供的功能更多,而 Elasticsearch 本身更注重于核心功能,高级功能多有第三方插件提供;
Solr 在传统的搜索应用中表现好于 Elasticsearch,但在处理实时搜索应用时效率明显低于 Elasticsearch。

Solr 是传统搜索应用的有力解决方案,但 Elasticsearch 更适用于新兴的实时搜索应用。

  1. solr查询快,但更新索引时慢(即插入删除慢),用于电商等查询多的应用;

2.ES建立索引快(即查询慢),即实时性查询快,用于facebook新浪等搜索。

并发数-吞吐量-响应时间

并发数-吞吐量-响应时间

用于指网站性能/服务器性能时候:并发数:系统同时处理的请求数(分为查询类请求数、事务类请求数)。
吞吐量:系统在单位时间内处理请求的数量。只不过是一个很宽泛的术语,
大家经常指的吞吐量的单位可能是:TPS/QPS、页面数/秒、人数/天、处理业务数/小时等等。
几个相关的概念:

TPS、QPS、RPSTPS:Transactions Per Second(每秒事务处理数),
指服务器每秒处理的事务次数。一般用于评估数据库、交易系统的基准性能。

QPS:Queries Per Second(查询量/秒),
是服务器每秒能够处理的查询次数,例如域名服务器、Mysql查询性能。

RPS:Request Per Second(请求数/秒)
RPS(Request Per Second)和QPS可以认为是一回事。

RT:Response Time(响应时间):客户端发一个请求开始计时,到客户端接收到从服务器端返回的响应结果结束所经历的时间,
响应时间由请求发送时间、网络传输时间和服务器处理时间三部分组成。也叫Think Time。

并发数与TPS/QPS的关系:QPS(TPS)= 并发数/平均响应时间这里的并发数如果为事务处理请求数,则为TPS,如果为查询请求数,则为QPS。

原文地址:https://www.cnblogs.com/java920043111/p/9286291.html

时间: 2024-11-04 13:30:40

[案例]如何异构一个数十亿级别的数据库的相关文章

es 在数据量很大的情况下(数十亿级别)如何提高查询效率啊?

面试题es 在数据量很大的情况下(数十亿级别)如何提高查询效率啊?面试官心理分析这个问题是肯定要问的,说白了,就是看你有没有实际干过 es,因为啥?其实 es 性能并没有你想象中那么好的.很多时候数据量大了,特别是有几亿条数据的时候,可能你会懵逼的发现,跑个搜索怎么一下 5~10s,坑爹了.第一次搜索的时候,是 5~10s,后面反而就快了,可能就几百毫秒.你就很懵,每个用户第一次访问都会比较慢,比较卡么?所以你要是没玩儿过 es,或者就是自己玩玩儿 demo,被问到这个问题容易懵逼,显示出你对

数据迁移经验总结——亿级别多表异构的数据迁移工作

由于系统改版,最近三个月在做数据迁移工作,由于业务的特殊,基本将数据迁移所能踩的坑都踩了一遍,决定好好做个总结. 迁移类型--新老系统表结构变化较大的历史数据 一.核心问题 1.新老表结构变化极大.新表是以deliver为核心,另外还涉及仓储系统的一张表,订单系统的4张表,并按照新的逻辑映射关系进行迁移. 2.增量数据迁移.在全量数据迁移时必然会有新的数据,这些数据应该实时进行迁移 3.亿级别数据性能.效率的考虑.由于订单业务非常重要,数据迁移带来的qps对数据库的压力非常大,需要不断测试迭代找

权威详解 | 阿里新一代实时计算引擎 Blink,每秒支持数十亿次计算

王峰,淘宝花名"莫问",2006年毕业后即加入阿里巴巴集团,长期从事搜索和大数据基础技术研发工作,目前在计算平台事业部,负责实时计算北京研发团队. 在阿里巴巴的11年工作期间,持续专注大数据计算与存储技术领域,基于Hadoop开源生态打造的数据基础设施一直服务于搜索.推荐等阿里核心电商业务场景,最近一年带领团队对Apache Flink进行了大量架构改进.功能完善和性能提升,打造出了阿里新一代实时计算引擎: Blink.目前数千台规模的Blink生产集群已经开始在线支持搜索.推荐.广告

大数据计算:如何仅用1.5KB内存为十亿对象计数

在Clearspring,我们从事统计数据.统计一组不同元素且数量很大的数据集时,是一个挑战. 为了更好地理解已经明确基数的大数据集的挑战,我们假设你的日志文件包含16个字符的ID,并且你想统计不同ID的数量.例如: 4f67bfc603106cb2 这16个字符需要用128位来表示.6万5千个ID将需要1MB的空间.我们每天收到30多亿条事件记录,每条记录都有一个ID.这些ID需要3840亿位或45GB的存储.而这仅仅是ID字段需要的空间.我们采取一种简单的方法获取日常事件记录中以ID为基数的

一个文本文件,找出前10个经常出现的词,但这次文件比较长,说是上亿行或十亿行,总之无法一次读入内存

Top K 算法详解应用场景: 搜索引擎会通过日志文件把用户每次检索使用的所有检索串都记录下来,每个查询串的长度为1-255字节.        假设目前有一千万个记录(这些查询串的重复度比较高,虽然总数是1千万,但如果除去重复后,不超过3百万个.一个查询串的重复度越高,说明查询它的用户越多,也就是越热门.),请你统计最热门的10个查询串,要求使用的内存不能超过1G. 必备知识:什么是哈希表?        哈希表(Hash table,也叫散列表),是根据关键码值(Key value)而直接进

谷歌为什么把上十亿行代码都放在一个仓库里

相对于一般公司,Google 使用了单一代码仓库,很多人不理解为什么这么做.本文作者是谷歌基础设施小组的工程师,他对这个问题进行了详细解读. 早期 Google 员工决定使用集中式源代码管理系统来管理代码库.这种方法已经在 Google 运行了 16 年以上,而今天绝大多数的 Google 软件仍然存储在一个共享的代码库中. 随着 Google 开发软件数量稳步增加,Google 代码库的规模也呈指数增长. 因此,用于管理代码库的技术也发生了显著变化. 本文概述了该代码库的规模,并详细介绍了 G

如何在发型不乱的前提下应对单日十亿计Web请求

原文地址:http://developer.51cto.com/art/201502/464640.htm 就在不久之前,AppLovin移动广告平台的单一广告请求数量突破了200亿大关——相当于每一秒钟处理50万项事务——其如火如荼的发展态势帮助众多品牌在激励现有客户的同时.从市场中拉拢到了新的买家.那么AppLovin是如何打造出这样一套有能力应对数百亿请求.但又无需对硬件及运维人员进行显著扩张的基础设施的呢? 在今天的文章中,我们将共同了解该公司如何发现并选择采用各类最佳实践,从而通过技术

十亿级视频播放技术优化揭密

本文为转载文章,文章来自:王辉|十亿级视频播放技术优化揭密 QCon是由InfoQ主办的全球顶级技术盛会,每年在伦敦.北京.东京.纽约.圣保罗.上海.旧金山召开.自 2007年 3月份首次举办以来,已经有超万名高级技术人员参加过QCon大会.QCon内容源于实践并面向社区,演讲嘉宾依据热点话题,面向 5年以上工作经验的技术团队负责人.架构师.工程总监.高级开发人员分享技术创新和最佳实践. 4月18日性能优化面面观专题会议上,腾讯研发总监王辉以“十亿级视频播放技术优化揭秘”为主题,用QQ空间的日均

日均数十亿请求!京东评价系统海量数据存储高可用设计

京东的商品评论目前已达到数十亿条,每天提供的服务调用也有数十亿次,而这些数据每年还在成倍增长,而数据存储是其中最重要的部分之一,接下来就介绍下京东评论系统的数据存储是如何设计的. 整体数据存储包括基础数据存储.文本存储.数据索引.数据缓存几个部分. 基础数据存储 基础数据存储使用MySQL,因用户评论为文本信息,通常包含文字.字符等,占用的存储空间比较大,为此MySQL作为基础数据库只存储非文本的评论基础信息,包括评论状态.用户.时间等基础数据,以及图片.标签.点赞等附加数据.而不同的数据又可选