00:00
我给大家介绍一款工具。这款工具呢,是用于那个大表数据归档的。啊,这个工具呢,是我对那个原版这个bocano PT CA呃,做一下那个重构。嗯,它原版呢,嗯,它这个工具呢,是有一定的问题的啊,我们先来介绍一下它的原版,它那个思是什么思。那比如说呃,一张大表啊,呃,比如说比如说有1亿条这个数据。那么呢,我现在要求呢,就是说要保留线上七天的数据,那poca这个原版这个工具啊,是这么做的。它是逐条把历史数据insert这个归档表,同时呢会删除原表数据。那七天数据,比如说只有10万号。那么呢,原表呢,它就会直接删除。9990万行的记录,所以说呢,这里呢,就操作成本就会很高。
01:00
那并且呢,你执行这个操作以后呢,你那个主动同步也会。会会有延迟。那这里呢,我给大家嗯,画一个图。我们来看一下它原版是怎么做的啊。首先呢,我。我这里画一个图啊。比如这个是有,嗯一个亿啊。嗯,然后呢。这个吧。啊,比如说啊这个。呃,是我们要保,呃,这个我画勾的是我们要保留七天的这个数据,它原版呢,是这么着的。他先把你看就这些。把这里边儿的数据,它会先insert到。一张那个。新表里。他先把这个给音色一下。
02:02
阴完以后呢?然后呢,他再把这里山。啊,把这一行一行和一行一行删,那你想想这个操作是不是就很繁琐呀。那么呢,我这个呢,工具是怎么做的呢。啊,我们还还画一下啊。我我这个,我这个重构版那个。是把我们需要的七天数据啊。我直接我给他。插入到一张这个临时表里头,这样的话,你这个数据量不是变小了吗?然后呢,做完以后呢。离职表和原表一交换一下名字。那这样呢,我。嗯,这个就是说。就实施完完成了,这样的话呢。呃,首先是比较快,第二呢,冰帽呢,产生的冰帽比较比较小。
03:00
啊,同步呢,也不会延迟。这就是呃,重构版的一个思。啊,这个就是。大体的就是是这样的。嗯,下面呢,是这个工作原理,那么呢,这里呢,要注意的,呃,就是因为你在那个实施。呃呃,在归档期间肯定会有一些。这个表原表会有一些增强改查嘛。那么这个增量数据是怎么做的呢?那这里呢,是我借鉴了这个poca p cap这个工具的。呃,原来那原来那个触发器,我把他那触发器呢,我给他拷贝过来啊,放入到我这个脚本里了。等于说这个。我下面这些都是原来不康的这个思路,我只是相相当于给他照搬过来了。啊,后面呢,就是我们。刚才说的啊,这个。最后呢,做完以后呢,也需要两个表要互要要交换一下,临时表和原表要交换一下,这样的归档呢,就做完了。
04:08
啊,这是具体的一个工作原理啊,感兴趣的感兴趣的大家可以到我这个github上去看看。啊,我这里写的比较详,详细一些,因为我们的视频有时间限制,我们这里就加快一下这个速度。那这里呢,需要注意的地地点啊,有些限制啊,因为我我做的时候呢,是因为我们线上的表都是有主建ID。啊,当然你这个主角,呃,这个I可以是这个名字,可以是不叫ID啊。啊,但是呢,你必须有主,必须得有主见啊,这是前前提条件,因为我这个是。呃,通过逐渐呢,嗯。会有一个范围框。会切分成一个小的范围框。这样呢?
05:03
就会呃,通过这个范围块把这个数据呢,插入到这个临时表里的,我我大概是这么做的。然后呢,我这个工具呢,嗯,请大家注意了啊,我这个只是把你需要的数据插到临时表里头,然后我并不会删除你原来那个。原表的数据,嗯。原表的数据如果你想删的话,我后面写了,那你就借助于这个普康的原版这个。啊,这我怎么实现,我都给你写好了,你就直接复制一粘贴就可以跑了。啊,你用他这个来删除我这个工具,嗯是嗯,没有删除任何的操作,大家可以看看一下我这个源代码实现的。呃,方式。那么我这里是用这个PP写的啊。呃,你首先你需要把这个装一个PP解释解解析器,还有驱动,那么你嗯压压一下就可以了,这个基本上嗯,哪个圆就都有这个驱动,嗯,比较普遍啊,你装一下就行了。
06:10
然后下面呢,就是来运行。那么我们今天呢,就来演示一下这个工具是怎么使用的。那么呢,我现在呢,要对这个。嗯,TAX1表啊,SB1表来进行那个。操作,那我这张表呢,是有100万行数据。啊,总共是有100万行,我们现在要提取。提取那个100万。呃,提取10万方就是。我要保留12行数据。首先呢,你需要把我那个。呃,工具脚本给下载下来,然后呢。
07:01
啊,你执行这个,看一下这个帮助是怎么使用的。啊,那么这里是很简单,那么这里呢,我我为了要保呃。保证和线上是一样,我这里呢先开这个cven,让那个现在这台机器呢有正常的读写。那么我这里呢,是压缩一。1800秒,也就是半小时啊,我们运行。啊,这这里呢,我现在这数据已经产生了读写了。正常的读写吧。啊,然后呢,我们就来开始来运行,运行这个呢,也很简单啊。嗯,你只需要啊,就按照这个,我这上面填,你首先你需要输入这个。IP服务器的IP啊,你你输一下,然后呢。用户名密码端口,嗯,什么库,就是我这个是太子库,然后呢表呢就是sb test c表。
08:03
杠W呢,就是你那个过滤条件,你需要要保留那个那个多少数据。一般呢是我这里写的是ID,当然你也你也可以写别的什么条件。比如通过时间啊,时间范围啊,这都可以。嗯,然后后面呢,就是那个limit,就是分批次插入数据量,这是什么意思呢。就相当于就是这个意思。比如说五偏要插啊,插插一张表啊,就这样Y6,比如说一。三啊,就点点点点啊是这个意思,这是比如说我我你要是输入1000行呢,那相当于就是这样。就这么,大概意思就是这么差。就一下插入1000行,就这么个意思。然后sleep呢,就相当于这个我休眠的时间啊,我我插完了1000行,我得先休休眠一会儿啊,想让这个机器跑卦什么的啊,我这里呢,就是休眠一秒。
09:10
然后呢,这里呢,我们就一直行就行了。啊,现在就开始查了。那这里呢?我们为了要看的比较清晰一些呢。怎么来验证这个我们的增量数据,嗯。我这个工具是是正常的,把增量数据产生了。数据没有丢啊,我们可以先你update一下。啊,比如说这个。嗯,我们这插入叫NBA啊。记好了这条,然后呢。最后一条吧,100万啊。千万、10万、百万。这个呢,就叫CBA啊,你就先看一眼。然后呢,等我这个。
10:01
数据归档完了以后,然后我们来验证一下这个增量数据是否有。啊,这里时间呢,可能有些长,大家到时候你看的时候可以把这块。给跳过,我这里呢,为了给大家演演示,那那我这里呢就不会。有任何的去呃中断截屏啊,我这个不会的,就是实时的给大家来演示一下。到时候大家看的时候,这块就可以直接跳过。嗯,因为呃,如果你的机器线上,呃,线上比较好呢,你配置比较好呢,你可以每次插入的行数你可以调大一点。比如十万二十万三十万啊啊这都可以。嗯,好了,这个基本上快插完了。现在这个表已经归档成功了,那归档成功以后呢?
11:06
我这里会生成一个,嗯。叫下划线back,然后这后面的是时间,也时间后缀,那我们先来看一眼,归档完了以后这个数据,因为我们刚才只提取这个10万条嘛,那我们看是不是10万条。然后呢?啊,这这个期间因为产生的增量数据嘛,就所以这里,呃。这个数据会会多一些。然后我们再来看这个。啊,这是。这原来的100万,然后呢,我们再来看刚才验证一下,刚才那个。刚才那个ID是99999。当时那个。Pad。
12:01
啊,你看这是NBA,刚才我们改的是NBA对吧。这呢是吧,然后我们再来看这只。一百二一百万行是不是CBA啊。我们就来看这个。哎,你看这个数据过了,说明这个在增量期间,我们这数据是没有丢的,通过归档完了以后是这个数据是没有丢的。啊,这个我现在就停了。啊,这里呢,主要是通过这个触发器啊,这里触发器是这个核心。啊,这样的话可以避免你在归档期间,你这个数据新增的数据。是不会有丢失的啊,就这个是。这个整体的工具的一个核心。啊,然后这个工具使用是比较简单的啊,这个我这里再强调一下,这我这个工具是不会有任何的删除的,只是把你需要的数据提取到这个临时表里头,然后临时表跟原表做一下互换。
13:02
啊,这么一个操作,如果你要真想删的话,你用这个原版的con。这个pd CA去删啊,这是我这就给你写好了。呃,怎么操作命令你直接一改就行了。改成你你自己的。然后呢,就是针对原来那个5.7,呃,比如说你老版本啊,5.7可能有些不兼容,你需要执行这两条,先运行这两条。啊,这个在运行,运行我这个工具就没有问题了,因为我现在这个这个版本呢,是。啊,5.7.42啊,所以倒没有遇到过这这个问题。这是给大家嗯嗯说明一下,因为这个工具我研发的比较久了。也是两三年前啊,我我做的啊。所以可能当时版本跟现在版本不太一样。啊,这里是需要注意的地方。
14:02
然后具体的更详细的信息,大家就访问我这get have,就看这个就行了,因为我这里写的。嗯,比较详细了,其实他这。呃呃,其实借鉴呢,其实就是这个p to IC这个原理啊,其实跟这个原理是差不多的。嗯,今天呢,我们我就是把这个。呃,重构版的PT cap给大家介绍完了,大家可以在测试环境来试一试。
我来说两句