00:00
那接下来就可以写这个代码的呀,啊就可以写了行,那第一个获取数据并解析这个Y6,大家还记得这个Y6大概长什么样子吗?这个Y6的格式。一定要注意啊,这个Y6的格式我们一定要清楚对不对。他是什么样子?库明表明数据after before,哎,没问题啊,对的啊,那这个我们要写一下,就是你在操作这个数据,接下来我们要操作这个数据的,所以呢,给这个什么。
01:00
我们得知道这个数据的格式是不是啊,对吧。我们大概的来写一写啊,大概的写一写好,那这边呢,有DB啊,我就简写了啊,然后呢,TN table name对吧?呃,然后还有。比。还有那个阿,还有一个。没问题吧,而对于这个before跟after的数据呢,它也是一个。这样的数据。啊,需要这样的数据对吧?好,那接下来呢,我们要获取并解析数据,那我们解析的是哪一块啊,是不是阿的这个数据啊。是不是阿的数据大家想一下。对不对,是不是阿的数据。啊,而且呢,这张表往往来说只有新增啊,只有新增,所以呢,只有阿一定有数据啊,就这张表的数据呢,我们一般不会删,不会删也不会改,就是新增就完了,对吧?所以呢,我也就不用判断了,假如说你考虑到未来可能会删啊,可能会怎么样,你做一个判断,这个阿的这个数据呢,它不能为none。
02:18
对吧,它不等为了那这个地方呢,我们就不做这个处理了,我就直接获取这个阿的数据,获取数据,那就是Y6.get。呃,诶,Value是一个啊,String类型,首先呢,我们要把它变成一个杰森对象对吧?好,那这个呢,杰森点pass object把这个value呢扔进去。CLV得到一个JS object,然后接下来我们获取这个数据点。Get JA an object,然后呢,这个地方我们写的是after啊,得到这个data啊,这个呢,我们叫data date,对吧,这是我们要的那个数据,接下来呢,我们要把这个数据转成交B啊,那就是杰森。
03:02
点pass。Object,哎,注意还是它,但这个地方呢,注意看啊,除了这个我们以前用的都是它,但实际上呢,这里面还有看啊,可以传一个类型进来,可以转换成我们指定的这个类型,对吧?好,那这个地方呢,我们就直接把这个data放进来,接下来呢是table process.class放一个类型进来,CTRL加V。哎,我看一下啊呃。好,这个地方不能啊,这个地方写错了,应该是get string。对,String啊,获取这个string数据。String的推啊,得是string类型啊,这个造不行是吧?二加V得到一个table process。啊,得到一个table process,这个就是获取数据,对吧?这一步比较简单,重要的是你一定要知道这个value的格式是什么样子,它是由弗林CDC读进来的,所以它的格式是我们自定义的反序列化器里面的格式,这个一定要清楚,对吧?好,那将来第二见表。
04:10
啊见表,那我这个呢叫check。Table。Table,好,那这个地方呢,我们只有是才需要去建表了,所以这边我们加一个table process.think.equals谁呀,Table process当中的get。啊,如果你是at才需要电表,那你觉得不是需要电表吗?注意这个think type啊。是不是think这个里边未来写的就是或者卡夫卡或者卡夫卡对吧,所以我们判断必须是我们才要去见表,这个有没有问题。有没有问题?
05:00
我们没必要直接去见表吧?好,那这块呢,大家也都OK啊,那我们接下来建表这个方法呢,等会我们创建一下,那这里边大家告诉我,我需要传什么东西进来。我需要把谁传进来?传哪些参数就是为了这个电表?我们写一个方法出去啊。要传哪些东西呢?PK啊,Sing table sing columns PS PK吧,对了啊,其实就这几个啊,行,那就从table process当中点get s table表明要有,对吧,好table.get字段名要有好table process点那。
06:14
主件要有最后扩展字段,点get。对吧,那这四个作音肯定要有的,OK,好,那alt加回车,直接创建当前这个方法。好,这个方法呢,我们就写到这,然后接下来呢,我们看一下这个建表语句。啊,那大家告诉我这个建表语句应该长什么样子?前面语句。
07:04
注意,我之前还写了校验,对吧,叫check table啊,要做校验,那这个东西应该怎么做啊?先要判断表是否存在吗?需要吗?大家想一想。来接语句怎么写啊?Create table if not exist,哎,漂亮对,我其实就是想看到这个if not exist。啊,其实最想看到的就是他。啊,因为如果说我们加了if not exists的话,那需要。还需要做什么校验吗?不需要了吧,对吧?所以呢,这个介绍语句是create table if not exist。然后呢,表明对吧,注意这个地方呢,我们要加了一个库,这个库呢,我也改一下二一。
08:01
0325对吧,我用这个库啊,交这个库,所以呢,我们应该是这边是DB.t。对吧,括号,然后这个里边第一个是么?主键ID,假如说是我差啊,因为在当中呢,其实没有其他数据类型,只有这个字节数组,所以所有东西我统一都用过上,然后它是主键primary。K对吧,一个主键好其他的比方说有一个TM下划线内,它呢,只要是我差就好了,主要是我差好,接下来呢,Xxx扩展字段。那我们的清调语句是不是这样,有没有问题?主要的关键点是在于这个啊。这个应该也没有问题吧,啊,一步一步来啊。那大家这边啊回应比较慢,因为确实有网络延迟对吧?好,那接下来呢,我们要在这里边去拼接这个circle去执行啊拼接circle首先这边我们要干什么事呢?创建一个。
09:11
也有一个。Buff啊B对吧,这里边呢,我们放一些东西,放水料放它。好,注意这个地方一定要有空格啊,拼接字符传的时候一定要注意一下,点aend追加一个什么呢?我们的库名对吧?我们的库名呢,是这个,呃,K,呃,不是table process j more con点。对吧,这是我们的库名,好,那继续点A一个。点,然后表明对吧,表明呢是think table。选择table好,然后呢,左半边括号。注意,现在我是不是写到这儿了。
10:01
现在我是不是写到这儿了?对吧,好,那接下来这个里边东西是不是要便利这玩意去写对吧,所以就不能这样玩了啊我们这样。CTRL加V得到一个。值,这个呢叫create。Table circle。啊是创建表的一个circle语句,对吧?间表的一个circle语句,OK,好,那接下来呢,我们要去看这里面东西的,那这个里面默认的啊,我们按逗号分割,按逗号分割好CTRLC拿过来点split啊要遍利它来做的split按照逗号分割。CTRL加V得到false一个一个的字段,然后接下来呢,对这个字段做遍历。啊啊,那我们要做对它做一个便利啊,让这个点lets.for I循环。对吧,这是一个数组,我们便利它,那我们取出来当年这个字段false,哎。
11:07
让单位得到一个field,好,那关键的问题在于,你看啊,这里边儿有的要加primary key,有的不需要加。对吧,而且最后一个字段不需要加逗号,其他前面字段需要加逗号,所以这个里边我们还要做一些什么处理的,所以第一我们先判断它是否是主键,那怎么判断。判断是否为主键,那这个地方很简单,If p pk.equals咱们的什么fail,哎,它是主键,它是主键的话,那我们怎么办?我们就直接把这个字段拼接上去啊,叫create table circle.a field拼接起来对吧,好,继续。
12:00
点。注意加一个空格,加个空格,现在加谁呢?加what primary。如果你是主键加他如果不是主键呢。是不是就直接加一个误差就好了。对吧,是主键加一个,它不是主键直接加我差直接加过差好,那还要判断,如果不是最后一个字段,只要不是最后一个字段,后面是不是又要拼接逗号呀,对吧,所以判断。这边还有一个判断。是否为最后一个字段啊,当然,如果不是。如果不是,则添加。
13:01
逗号对吧?如果不是,则添加一个逗号就好了,那这个地方我们如何去判断它是否是最后一个字段呢?我们怎么判断它是否是最后一个字段呢?怎么做这个地方,注意我们用的是负I循环,我们有没有办法来判断它是不是最后一个姿态?对,它最后一个字段是不是这个I会等于它减一啊对吧,所以很简单if。什么呢?这个I小于我们的f.length减一。注意,如果小于的话,它最后一个是不是等于啊。它最后一个是等于减一对吧?如果小于说明不是最后一个字态,则添加,那就create table点一个什么逗号。
14:10
有没有问题?好,等我们for循环结束之后,应该是右半边括号加扩展字段吧,对吧?好,那接下来create.aend右半边括号,然后继续end叫think。OK吗?我们可以对这个三个做一个什么打印对吧,打印见到语句。啊,这边呢,我们可以对这个界面语句做一个打印,这个没有问题吧,啊这个是比较简单的啊,就是字符站的一个拼接,大家一定要注意一下啊好,那这边呢,我没有加空格,这边也没有加空格,那是因为有的要不然是逗号,要不然是括号对吧?如果你不是最后一个字段,那后面就逗号,如果是最后一个字段,那么后面加的是这个右半边括号,所以这个地方不需要加空格啊,但是前面最好再加一个空格啊,但是你加一个也不会错,对吧?如果说你那你不放心是不是我们最好加一下,好把单词中间呢都加一个空格啊开这样呢更安全一点,更安全一点,好,那这里面呢,还有一个东西我们要处理,你比方说有的时候呢,我们这个地方没有扩展字段,可不可以。
15:28
所有的表都要有扩展字段码,大家想一下。所有的表都需要有扩展字段吗?那我有的表没有扩展字段行不行。可以吧,那如果说没有扩展字段,这就是一个什么值。是一个nu,那你觉得so里边直接拼一个,那这合理吗?
16:03
不合理吧,要拼的话,我们如果没有的话,我们也拼接一个什么。空串而不能拼接一个浪值对不对?对吧,我们允许它拼接空串,但不允许拼接浪值。啊,不允许拼接倒值好,那当然还有这个CPK呢,有时候我们可能也不写,如果不写的话,那大家默认的就是ID。默认的就ID,因为维度表嘛,为秒数据啊,都是用ID作为主键的,一般来说都叫ID对吧,所以它这个值呢,也有可能为呢,那如果它为呢,我们就把它赋值为ID,所以这两个准备工作我们要做一下啊,要做一下好那接下来我们过来。呃,在这个当中,我们做一个判断,If,我们的SPK,它等等于什么?
17:03
那那我们SPK,我们重新赋值为ID,默认值ID对吧?好,那接下来if s extend它如果说没赋值等于呢,那我们呢,Think extend重新赋值为空串,那这样的话我们后面就不会有问题了,那我做的这两个操作大家能不能理解,能不能跟上。因为未来我们的表里边这两个字段有可能没给啊,所以呢,我们要做一个处理,默认的给一个ID,哎,这个地方呢,默认的给一个空的对吧,做这个事好,那这块呢,我们就相当于把这个解析跟间表搞定了。
我来说两句