00:00
好,那接下来咱们继续把特house里边没有讲完的东西呢,我们继续给大家讲完啊呃,首先呢,第五章三个操作啊,这个操作他之前我们就说过,它最基本的语法呢,跟我们之前学过的买so课呀,还有这个have呀,没什么大的区别,对吧?啊,那第一个in色。Ins色与这个MY色基本一致,没什么区别啊,标准的这个呢,我们用过了。Inser into表明,然后Y64对吧,Y64可以同时插入多条数据,然后呢,从表到表的插入。从秒到的,也就是说色的INTO1张表,然后C代表。啊,然后select查询一张表,往另外一张表里边去放入数据,对吧?啊这个也是可以的,好,那这个的不多聊了,因为就比较熟悉了,那第二个5.2它有这个update和delete的操作,那这样啊,我们演示一下,我这样我打开一个啊。
01:05
我开启一个我们的C搜度,然后system controlr对吧?Start,诶这这边因为我加了配置文件,所以呢,我先要启一下这个ZK啊,你们是没关系,但是后面你配置的时候,你要启动这个ZK啊,最后行,那这边呢,我们启动一下这个。速度。啊,因为我配了集群的东西在里边,我就没有把那个删掉,因为今天我们要用嘛,所以我就没有删了啊,所以我这边要请一下CK,但是你们现在还不需要啊呃,速度,然后呢,System。C,然后start这个click。到搜就行了啊好,那这个我们检查一下。好,这边呢,已经运行了,那我们用playhouse-client-M对吧,进来呃受。
02:01
Tables,好,这还是我们昨天做测试的一些表,那这个没有关系啊,好,那接下来呢,我们继续。这里面呢,其实它支持这个更新和删除操作,但是呢,我们了解一下就行了,因为我们之前说过像格列号这种呢,属于o lap数据。对吧,虽然它可以实现,但是呢,他。并不好啊,并不好对吧,就是比较重,这个操作比较重,而且呢很少用,因为orp数据库呢,它有一个特点嘛,就在于一次写入多次读取,很少去删除或者修改里面的东西。对吧,那比方说像我们的have。还不?有更新操作,那我问大家你用过吗。或者说大家有多少人知道have其实可以做更新。
03:03
有多少人知道have其实可以做更新啊?知道吗?可以扣一波一或者二。知道的扣一,不知道的扣二。没反应。二一听说过设置起来很麻烦,那是因为现在版本高了,设置起来比较麻烦,其实在老版本啊,一点几版本的时候直接写update的,不用设置什么参数,直接update。但是效率极低,因为因为你想想看,Have的数据存到HDFS。对吧,他要实现这种更新的这种操作,他得怎么做呀。
04:03
你看大家都不知道吧,啊,因为根本就不会用,公司当中也不会去用。也不会去用,呃,我带了这么久,在硅谷带了四年的课,只有一个学生,只有一个啊,我带过的,但是有的同学可能没跟我说这个存在幸存者偏差是吧?呃,但是我接触到的有学生问我的只有一个人。用到了have的一个更新语法。只有一个同学。啊,所以我印象比较深刻啊,其实在老版本当中直接update好了,它效率极低对吧,因为它是基于HDFS,基于这个ID,如果说你要想实现这种更新操作,必须要干什么事啊。要把它读出来,改了重新写回去,效率特别低,对吧,那有的人说,哎,At为什么实现at上随机的写操作速度这么快,因为它是采用了一个版本。对吧,它添加一个更高的版本。
05:01
来做这个事的啊,它是其实啊,是牺牲了读的效率来实现随机写这个操作。啊,你要知道是牺牲了读的速度。啊,因为他用版本这样去做的话,你想想看,他读的时候是不是要把当前这条数据所有的版本全部读出来,然后做一个比较,给用户返回最大的这个版本的数据。对吧,而且如果最大的版本是一个删除标记,那么这条数据将不再返回。哎,克号感觉会取代,不取代不了。他俩应用面不一样。啊,那克林浩斯呢?咱们说的是叫orp对吧?斯有说过它叫orp吗?爱斯这种写操作是非常快的,艾斯的写操作比他的读操作还要快。
06:05
更适合的查询明细,House呢,更适合的是分析,所以我们把维度信息放到了,而我们最终的DWS层放到了颗house,这是有讲究的啊,他俩呢,呃,换过来能不能用,能用但是不好。啊,能用,但是不好啊,他俩应用面还是不一样的,一个产明细用的,一个是分析计算的,也就是说要做数据加工的,等会你就知道了,好,那我们刚才举那个have的例子讲了什么事呢?其实它在尽管号里边有这个update和delete的功能,但是几乎不在用在生产环境当中,因为毕竟是orp数据库,对吧?啊但是呢,我们来看一下啊,我们来看一下首先呢,这俩操作。好,那我们谁那个的。新from这张表对吧?好,这里边呢,我们把数据放在这,然后接下来呢,我们执行这个词语句叫out table,修改表,修改这张表,Delete well。
07:05
啊,第六个SQID等于SQ01。来走一下,因为咱们数据量比较小,所以呢它的速度还是蛮快,然后呢,C新from来看SKU001这个数据还有吗。没了,刚才是不是有的SQ001在这个分区对吧,在这现在呢,没了没了对吧,这是删除啊就删除掉的好,那接下来呢,我们继续修改操作也可以啊,修改操作也可以,那修改操作呢,还是一样的out table修改表,然后呢,这张表还是这张表,我们用还是这张表阿的更新一个字段对吧,为ID等102好那我们把它看一下。CC拿过来,呃,ID等于102,也就是说这三条我们都要改一下,诶这个怎么就变成它了啊,我没复制上啊,重新复制一下CTRLC啊。拿过来对吧?VID等于102,好,我重新查这条数据,现在呢,三个人的头头帽子都改成了2000,没有问题。
08:06
对吧,都改成2000,因为刚才我们改成2000。啊,改成2000的三条数据都改,因为三个都是102嘛,这个没有问题对吧,就是说它里边呢,可以做到这个修改和更新啊,但是呢,一般很少用啊好第三块是查询查询,查询这块有一个东西比较有意思,比较有意思什么东西呢来看啊,第一个支持子查询这个没有问题。子查询没有问题,第二个支持这个CDE,所谓CDE呢,就是公共的位置表达式,假如说我们用到某一个子查询的表,对吧,它多次使用的时候,那为了看起来更简洁,或者写起来更简洁,我们可以把子查询呢写到with语句里边。写到被字语句里边对吧?啊,做这样的事情,然后接下来支持join啊,但是由于join呢,它无法使用缓存啊,所以尽管是join相同的语句,它会两条不同的SQ语句啊,它会视为两条不同的SL语句,也就是说呃,像那个啊,对大家现在king不讲了是不是。
09:07
K还讲吗?不讲了吧,大家现在已经课程当中不讲K了是不是?不讲了,对,已经不讲了,呃,比方说K,其实里边的一个三语句呢,它就会做这个。做这个缓存啊,假如说你第一次执行这个操作,普通的一个操作对吧,它会把这个缓存下来,第二次再接着执行的时候呢,呃,他就不用去触发读取数据了,他会把这个缓存数据直接拿出来,所以第一次可能用到的时间啊,如果说呃,现在不讲了,我给大家说一下第一次用到。假如说0.03秒,0.03秒,第二次呢,可能就0.00秒啊,第二次执行的时候,因为他们做缓存,但是隔离耗里边不做缓存啊,但是它查询速度比较快啊呃,窗口函数,窗口函数呢,现在还用不了,因为作为分析型数据库啊,其实有窗口函数更更更优一点。
10:09
对吧,啊,刷完之后可以做很多的事情,但是现在呢,还在官方测试当中,那这块呢,我们也可以来看一下,还是我们的这个文档的官网,对吧,然后进到我们的搜Q查询,SQL查询当中呢,最后一最后一个就是这个窗口函数啊,你点进来。它其实跟那个二级索引一样的,也是还是在测试阶段。啊,但是这个网速又差了啊呃,来看首先这。对吧,啊,窗口函数呢,还是在测试里边啊,那跟我们用法都一样的,当然既然是测试的话,那一般工作当中就不太会去用。对吧,就不会去用啊,但是未来如果说他这个关键词给干掉了,就跟fli一样啊,Flink circle现在在公司当中用的非常多啊,你比方说我给大家举个例子,为什么呃弗。
11:01
大家可能应该也知道对吧。我们进到这个啊,给大家看一下。其实大家可以留个心眼关注一下这个,当这个关键词对吧,它不再有的时候,你看一下它是哪个版本,你从这个版本往上你就可以用了啊,你就可以用了,对吧,但是现在呢,还是跟那个二级索引一样啊,还是在测试阶段啊,但是也不知道他测到什么时候,已经很久了。这个我开一下这个梯子。你看都防不了,我把梯子打开,稍等一下。这个网速不得行啊。其实大家应该知道,就是说在。01:12这个版本之前。啊,都会有这个什么,有一句话在flink里边有一个注意事项,当然说了弗Li s或者TABLE1PI呢,在还是在测试环测试环境当中啊,不建议大家在生产环境当中去用啊。
12:23
这个今天的网速这么差吗?大家那边卡不卡呀,我害怕的是这边网速差,大家卡,大家卡不卡不卡吧。因为我发现今天访问这个怎么这个网站的时候就就特别的慢。不卡是吧,对不卡就行了,行,那我们就不看了啊,大家知道这个事儿就行了,就是说呃,我想告诉大家什么事呢?就是当这个东西被移除掉的时候,可能生长环境当中就开始用了,对吧,现在他告诉你在测试环境当中,生产环境的时候,他不会用啊,就是任何公司不敢冒这个风险,对吧。
13:01
这个到时候有有如果说网速好了,我大家看一下吧,这个大家知道一下就行了啊,这这个没法看了,我就不耽误时间了,对吧?呃,然后不支持自定义函数,但是其实还好,因为它在里边实现了很多的这个函数啊。这个地方就有这个函数嘛,聚合函数对吧,各种各样的聚合函数啊,呃,包括这个还有什么table function,正常的一些表达函数。对吧,他都会有啊,还有一些正常的一些操作啊,监控啊,这些东西都有啊好这个呢,我们就说了啊,它不支持我们就不聊了,对吧,那接下来还有go by增加了这几个操作啊,那我们来看一下啊,我先把。
我来说两句