00:00
首先第一个啊,把这个依赖拿进来。跟F跟这个fli也没什么关系啊,就放到最后啊呃,那接下来这个是查询的,我们就不聊了,接YouTube把这个拿一下,这个大家之前在。Spark s命都用过了,我就直接拿过来了,这个就不在这写了啊,它就获取一个连接啊,获取一个连接池好吧。但是呢,你拿过来之后,你可能要改的东西,我跟你说一下,稍等啊。啊,我的依赖还没有完全导入,稍等一下。他还在处理那个依赖,所以这边还还没有导入,看见没标红啊。这里边儿其实啊,就这么一行代码。嗯。这个。就这一行代码,其他的都是参数设置连接起的个数啊什么东西对吧?好依赖处理完了这边就搞定了啊,那其实这里边呢,就是一个je,你有一个je conflict。
01:01
含缩幺啊,6379啊,你超时时间啊,之后呢,是这里边你可以设置最总数。然后呢?设置一个超时以及归还的时候要不要做这个测试,对吧?归还的时候要不要做测试,获取的时候要不要做测试,这些东西都可以对吧?重要会议连接时,然后获取这个连接返回。从连接池里面去获取一个。连接并返回OK吧,就这样的一个内容。啊,就这样的一个内容对吧?啊,我们可以去,呃,直接去构建一个连接池啊,当然你也可以直接把它写成返回一个连接池,然后去获取,就是一个数据库里边咱们只要有一个,不是一个并行度里边咱们只要有一个连接池就够了,对吧?当然了,这边我们是写了这个判断,如果他已经池的等等于呢,我们就初始化,如果不等于,那直接就获取连接一样的。对吧,当然你也可以写返回这个连接池,直接把它返回对吧?啊,不返回这个具体的连接也可以,这个都行啊,无所谓啊好,这个东西呢,我们就不多聊了,接下来呢,我们到这来。
02:11
到咱们DMU这来这边这地方我们要先干什么?读取red中的。维度数据,维表数据对吧,好,那在这一块。干什么?将从Phoenix查询到的。数据写入。对吧,啊,那这两个操作在这写,我们先把这个写完啊,那首先呢,不管怎么样,我们要获取一个。连接。对吧,啊或者连接,呃,Red连接呢,我就不在这个里边去。获取了啊,怎么做呢?我在外面去获取一个连接池可以吧,啊,就是把这个red连接给它传进来一样吗?对吧,我们也传一个这个连接进来,好吧,Red的连接啊,因为这样的话,我们到时候在这个位置啊。
03:08
在这个位置就可以构建。的连接池或者什么样的东西都可以啊,当然了,你要在里边直接写也行,因为我们在连接池里边是判断是否为档的,两种都行啊,啊,那既然我们这儿啊已经返回的是连接了,那我就直接把连接在里边获取啊,如果说你要想把连接传进来,你要怎么做呢?跟我们德鲁伊菲eni斯的连接值一样。一样的做法懂吗?好,那我们给大家做一下吧,这样啊。啊,要不然这样光说大家呢,还是不太明白啊,那干脆直接这样得了啊。嗯。
04:05
这可以吧,对吧?啊,我就写两个工具类,我中间的东西呢,也不提取了,这是一个po的一个U啊,那这是JEU,这是直接获取连接,这是获取一个连接池,跟德鲁伊那个连接池一样,对吧?那我们都这样啊,那既然这样的话呢,我们就可以呃传一个什么J进来。对吧,咱就可以传一个这个接进来。是不是把它缠进来。好,那接下来我们要读取red当中的维表数据,那肯定要拿着je点好点的时候发现点不下去了。因为这个地方涉及到你要怎么存这个数据。对吧,你准备存。什么呀?啊,那我们就要想一想关于red存储存储这个维表数据的问题了,对吧,我们来思考一下啊。
05:08
嗯,那怎么来,第一个存什么数据对吧。存什么数据,第二个使用什么。数据结构。第三个。Key该如何设计?怎么来对吧,那这三个问题,第一个问题很简单对吧,第一个问题明摆着我们存什么数据啊。对吧,那它就是一个string类型,没什么好说的啊,单个的对吧?好,那接下来大家觉得这个地方我们该用什么数据结构呢?对吧?因为你数据结构定了以后,你才可以去定什么red keep,想一想我们这个地方该用什么数据结构。
06:06
啊,你们可以想一想对吧,然后呢,报给我好吧。你觉得用什么比较合适?啊,用什么数据。用什么数据结构比较合适啊?你觉得存我们这个数据对吧,这个。啊,淘淘说set,好,那我们先写上。
07:06
Set,那你告诉我这个key怎么设计呢?就关于这个set这种结构,这个red key你准备怎么放?对吧,或者其他人有想法也可以说一说好吧。表明加主见,好表明加主见。表明加主键。呃,那表明加主键。我问一下啊,淘淘,那在我们的这个维度表当中,它是不是唯一的。它具不具备唯一性?在我们维表当中,我表明加主键如果确定了这个数据是不是唯一的。
08:06
淘淘,你说一下。啊,表明加主键是不是唯一的。表明确定主键确定这个数据是不是唯一的。好,呃,那既然是唯一的。你用一个集合干嘛呀。你用set的目的,你你为啥想到用set呢?就是你都知道表明加主键是唯一的,为什么要用set呢?你用一个集合去存一条数据。
09:03
有必要吗?你可以告诉一下你你是怎么想的,好吧,那既然表明加主键是唯一的,你用set目的是什么?为什么要用个集合呀?我用string不好吗?我都已经知道是唯一的了,New set缺点在哪你知道吗?首先你通过表明加主键,你确定的是一个集合,这个集合里边虽然你知道只有一条数据,但是你得到的是一个集合,你还得咱那集合遍历一下。对吧,取出一条就没了。那既然你要用表明加主见,那我用string不好吗?你,你为什么想到用said呢?就是你出于什么样的目的用set,用set有什么好处吗?
10:05
是不是很明显咱们这个地方set不合适啊,对吧,这样一推反而。你想的是多次查询结果。需要去重。他只有一种结果呀,驱什么虫啊?你每一次获取的都要单独拿过来呀,对吧,啊,那从这个角度来说反而蛮好的吧,对吧,而且呢。刚才我也分析过了,Spring它的T怎么样,那是不是这样表明加主键?对吧,那我也考获取啊。对吧,还有一个问题那。还有没有其他的可以?还有没有其他的可以,其实我跟你说哈希能不能行啊。哈希能不能行啊?那如果用哈希。
11:01
呃,他的key应该怎么做,Key应该怎么设计。哈希,它的结构不一样了,它有两层对吧,里边又是一个什么?KV啊,那我们这个Y6在这儿已经知道了,存这个,那主要就在这。这两个位置应该怎么放?外层K跟内层K怎么放?是不是外层上表明?内层放主键的。对吧,那这样看来从简单的使用上来看是不是可以啊,但是其实这个地方哈希并不好,因为你还得考虑啊,考虑什么问题呢。我们这个red只是缓存中间的数据,对吧,那换句话说,咱们存的应该是不是热点数据啊。对吧,我们应该给这个数据设置一个过期时间,对吧,就是频繁访问的,我们可以在这儿。
12:08
保留着,但是如果有一个人对吧,有一个人他只是访问了一回,就下了一个订单,对吧,后来一个月或者两个月都没有访问过。那这样的数据你一直放在合适吗?也不合适,要设置过期时间。对不对,像咱们这个数据而言,得设置过期时间好,那么你如果用哈希它设置过期时间,就会发生一个什么情况。因为我们知道设置过期时间是针对于red key而言的吧?好,如果是哈希呢,它是针对于外层而言的,那就会导致一个什么问题啊。就是你在设置过期时间,要针对于red key来设计。对吧。啊。一张表都过期了,或者说大家都不过期,因为我们肯定要用什么,如果你这个数据被读了,我是不是要重置过期时间啊。
13:06
如果数据被读了,我是不是应该重置过期时间啊?对吧,他一读就重置嘛,对吧,你不能说按写操作,应该按读操作吧,对吧,那如果说你这个表里边只要有一条数据被访问,那是不是就过期不了。如果接下来好多天没有人访问,是不是表同时都过期了?对吧,一过期都过期了,一步过期都不过期,那这个就怎么样不好了吧。是吧,所以这样看来是不是string?才是。最好的。有没有问题对吧,因为它呢是表明单独的一条数据,单独的一个key,那这样的话我可以单独设置过期时间,这样就不会跟其他的数据有任何关系了,在过期上。能明白吗?这块其实哈希从使用上来说可以啊,但是呢,我们由于存热点数据对吧,我们要设置过期时间,那你哈希结构设置过期时间就不合适了。
14:06
是针对于这个外层的key来的。这块能明白吗?能不能听懂?嗯,能听懂吗?好,这是我们所说的这样的一个数据啊好,那接下来呢,我们把这个完成,那既然我们已经说了要用这个。结构对吧,好。那在这边我们来一个three,叫key。啊,然后dim冒号。拼接那table name对吧,再拼接冒号,再拼接一个。逐件叫key可以吧,好,那么这样我们加个DM嘛,因为在生产环境当中,你可能有很多的人都要用,所以呢,你做一个区分对吧,维表数据啊,然后呢,这个string类型,那就是get RA key r w,得到一个DM INF for s tr。
15:18
对吧,得到一个这样的一个数据,好,那接下来我们判断if Di for。Str它怎么样,它如果不等于nu值不等于,那那我们就要对吧,我们就直接要返回这个数据啊return。什么呢?呃。那返回值是杰森object,所以呢,我们做一个转换,杰森点pass object,把这个D。String把它返回出去好,但是我们刚才说了,这边你读了这个数据,对吧,既然你读了这个数据,那就怎么样。读了这个数据,我叫重置过期时间对吧,这边叫重置。
16:02
过期时间对吧,那我们比如说我们存一天好吧,我们就存一天,那怎么写呢点。ACE。Reality。啊,然后后面是一个second,看见没。对吧,是一个秒,那秒的话,我们就是一天24小时乘以60分钟乘以60秒,对吧?啊就这个。重置一下过期时间,然后并返回对吧?啊嗯,那呃,这个杰斯呢,你也不用管,因为它从外面传进来的,所以里边呢,你也就不用管了。对吧,好,那接下来呢,在这我们把它完成一下,从把这个数据呢取出来,要写出写出去对吧,好,那这边呢,CTRLC。Di ino对吧?那我们要把这个Di info呢给它返回写到red,那写到red就je get set对吧?String类型吗?Set,好,那第一个red key,第二个damn in for。
17:00
点to JA森string对吧,转成字符串类型,好,这边呢,注意上面叫重置,这边是第一次写对吧,叫设置过期时间对吧?这个叫设置,那还是一样的啊呃,无论怎么写还是一样xcel对吧?Ret啊,这边呢,还是24乘以60乘以60。对吧,写法还是这样写。OK吗?这个就比较简单对吧?啊,下面报错是因为我们这个连接的问题对吧,那我们在这。Je破U9.getje看位得到一个je对吧,Je点。Get,得到一个。啊,那这个地方呢,因为我们少放一个连接,它当然会报错了参数,因为我们把这个入参改了对吧?啊在后面呢,嗯,也要注意一下,把这个。Red也观想的点close。
18:04
把它也关一下,OK吧,这是让它不报错啊,等会儿呢,方便咱们去做一个。测试OK吧,这一块有没有问题,这个代码这两块啊,第一个。读取第二个往外写。没问题吧的API其实用起来比较简单。这个有没有问题,没有问题,我们可以做一个。测试好吧。这块有没有问题啊,等会儿我们给他看一下啊,它的一个速度提升多少。啊。这块啊,我直接截掉了啊。
我来说两句