数据迁移扩展-商品数据迁移实践

一、背景描述:

双11前对原商品数据重新做了分库分表和数据迁移,称双11空闲做下复盘。

​ 原来我们商品主数据在2个公共库,每个库有100张商品主数据表,大概有3亿左右的商品数据,根据商品编码进行分库分表路由, 随着商品种类不断增加原库表数量不能满足,因此需要扩充以支持20亿商品数据的量。方案是将商品数据迁移到8个查询库去,每个查询库500张商品表,因此需要将原来的商品数据进行迁移和打散。

二、整个过程数据迁移过程:

1、前置准备

申请表扩容的磁盘空间,每个库预计需要100G的磁盘空间,总共需要800G的磁盘空间

2、全量同步

通过大数据任务将原库表中的数据全量拉取出来打散并写到新库表中,拉取数据的创建时间点指定小于某个时间点A, 例如拉取发布前7天之前的商品数据并打散到新的8个查询库4000张表中

3、代码修改

写库的时候增加一个配置开关,开关值为0的时候只写原库表,1的时候原库表和新库表都写,2的时候只写新的库表;即0写公共库,1写公共库+查询库,2写查询库

查询的时候也增加一个开关,开关未0的时候只查原库表,开关未1的时候只查新的库表;即0查公共库,1查查询库。

4、数据双写

新代码发布完后,打开写库的开关到1进行双写。即一份商品数据既写到公共库也写到查询库;我们的商品数据是商品中心通过kafka下发的,我们收到后会将需要的商品属性信息写到自己的商品主数据表中,像商品通子码、品牌目录编码等信息。

5、增量同步

双写开关打开后,追加增量数据,从时间点A到双写开关打开那个时间点的数据,将原库表中这个时间段的数据通过大数据任务追加到新库表; 如果追加过程中发现重复数据则新的不写入。

6、验证

增量初始化完后,原库表和新库表中的数据就完全一致了,打开查询的开关到1,验证查询新库表功能正常。即打开查询开关查查询库商品数据验证功能。

7、稳定运行

稳定运行一段时间

8、关闭双写

关闭双写,写库开关调整为2只往新的库表写数据,运行一段时间;即只写查询库。

9、清除老表数据

双写关闭后运行稳定,就可以清除老库表数据了,先改表名而非直接删表,一段时间后无问题再删表;即清除公共库商品数据,释放磁盘空间资源。

数据迁移-商品数据迁移实践相关推荐

  1. 【毕业设计】大数据购物商品数据关联分析 - Apriori python

    文章目录 1 前言 1.1 实现目的 2 数据集 3 数据分析目的 4 数据清洗和构建模型 5 Apriori算法介绍 5.1 Apriori算法基本原理 5.2 FP-growth算法 5.2.1 ...

  2. 爬取蝉妈妈数据平台商品数据

    本文旨在交流学习,勿作他用,否则后果自负 环境 linux+pycharm+anaconda import json import csv import requests from usere_age ...

  3. 百万级商品数据实时同步,查询结果秒出

    来自:微微科技公司 前阵子老板安排了一个新任务,要建设一个商家商品搜索系统,能够为用户提供快速.准确的搜索能力,在用户输入搜索内容时,要能从商家名称和商品名称两个维度去搜索,搜索出来的结果,按照准确率 ...

  4. 大数据简介:从数据到大数据,数据技术工具的演变

    最近在看大数据相关的书和资料,顺便梳理下笔记,于是有了本文 本文将用4张逻辑图为主线,简单介绍一个产品从"小数据"演化为"大数据"的过程,及可能用到的工具. ( ...

  5. Laravel 实践之路: 数据库迁移与数据填充

    数据库迁移实际上就是对数据库库表的结构变化做版本控制,之前对数据库库表结构做修改的方式比较原始,比如说对某张库表新增了一个字段,都是直接在库表中执行alter table xxx add .. 的方式 ...

  6. 教育启蒙赛道、亿级异构数据不停服平滑迁移方案和实践

    背景 学前启蒙教育赛道,竞争日益激励,好未来集团旗下"小猴英语","小猴语文","小猴思维"三条独立产品站线,战略调整,资源合并,重拳出击, ...

  7. 一部分 数据 迁移_11项最佳实践,每次数据中心迁移都必不可少

    随着企业业务和应用的发展,现有基础架构已经无法保障时,数据中心迁移无法避免,企业可能需要迁移来增加容量或推出新功能和服务. 基础架构要求可能会随时间变化,并且可能会考虑使用托管服务提供商或云服务的选项 ...

  8. pb利用datawindow查询符合条件的数据并且过滤掉其他数据_eBay将CAL上PB级的日志存储迁移到Ceph的实践...

    供稿 | Unified Monitoring Platform 翻译&编辑 | 顾欣怡 本文3663字,预计阅读时间11分钟 本文转载自"eBay技术荟",更多干货请关注 ...

  9. mongodb 导出到sqlserver_迁移sqlserver数据到MongoDb的方法

    迁移sqlserver数据到MongoDb的方法 前言 随着数据量的日积月累,数据库总有一天会不堪重负的,除了通过添加索引.分库分表,其实还可以考虑一下换个数据库.我强烈推荐使用MongoDb,我举例 ...

最新文章

  1. ibm linux mq 发送消息_RabbitMq、ActiveMq、Kafka和Redis做Mq对比
  2. Panda处理文本和时序数据?首选向量化
  3. linux fcntl
  4. fastapi学习(一):输出hello world与基本运行方法
  5. haddler处理队列 netty_Netty的任务队列的Task的三种使用场景
  6. ajax 将输入框内容清空_Robot Framework清空输入框文本内容
  7. Spark操作Hive分区表
  8. CentOS 7 启用远程连接和使用postgis等客户端连接
  9. python3修改pip执行环境和安装软件源
  10. SpringMVC复习
  11. java简述什么是事务_java什么是事务意思概念
  12. SpringBoot 使用validation数据校验-超级详细 - 第406篇
  13. 2021年中国研究生数学建模竞赛A题(华为公司命题)——相关矩阵组的低复杂度计算和存储建模
  14. shell连接CentOS启动可视化界面startx
  15. 相似图像识别算法是什么,机器图像识别常用算法
  16. pip安装的依赖不在虚拟环境中
  17. wltp和nedc续航差多少_WLTP续航和NEDC续航差多少?
  18. Qt 编译报错 error: invalid use of incomplete type 'class QXxx'
  19. connectbot本地安装php,Android studio下编译connectbot
  20. [excel]收藏夹-遇过问题的解决方法总览

热门文章

  1. Linux安装SQLite轻量级数据库
  2. 惠新宸:我也曾经是“不适合”编程的人
  3. 郎永淳妻子抗癌4年路:儿子弃读名校陪治病(转)
  4. linux 子shell
  5. 机器视觉核心算法——图像预处理
  6. 想知道账号被封的感觉么?
  7. Q91:真实地模拟透明材质(Realistic Transparency)(2)——Triangle Meshes
  8. Flink的容错机制
  9. 大数据分析的误区有哪些
  10. word保存不了磁盘已满_磁盘到底该不该分区?容量不够怎么办?