00:00
那我们再聊聊他的一些查询操作啊,查询呢,基本上都差不大差不差的啊,那么它支持只查询,这肯定支持啊,只查询还有支持cte,就是什么呢?就用一个with。咱们是不是可以把一张表用个with的方式给它写出来,是不是也一样,然后后面你是不是可以直接查这张临时表,对吧,这个就是公用表啊,这种公用表它也支持,还有它语法上是支持join。但是一般咱们实际使用还是建议避免使用。尽量避免啊,一定要注意啊。因为它的实现比较奇葩,呃,另外一点就是,当然这一点无关紧要,我觉得就是说它join操作无法使用缓存,也就是说什么呢,两次与呃,同一个join的语语句,你重复执行两遍,它每次都是重新从头到尾跑一遍。也就是说上一次的结果它不会缓存,呃,这是从一方面,另一方面是什么呢?咱们说了A表join b表它是怎么实现呢?它是把B表加载到缓存里面。
01:09
加载到缓存,然后呢,再跟A表的数据一条一条去匹配啊,是这种方式,那而且如果我们说了,如果A表和B表都是分布式表,什么叫分布式表呢?也就是说一张表它的数据在多个节点上面,简单这么理解啊,那你想想,比如说它三个节点,它三个节点。那那你想想他是不是得。几次啊?它这三个是不是都得广播出去,而而且A表的三个节点是不是都得要啊,那是多少三乘三啊。是不是得存九份?你想想好吗?对吧,不好呗。那如果表B数据量比较大呢?错误的使用嘛,我们have普还有MYSQL,是不是习惯上说小表驱动大表啊,说小表写在左边嘛,大表写在右边嘛,你要是这么写那你就完了。
02:02
那直接就是内存超过限制,连语句都跑不完,跑一半就报错啊,这个咱们在高级部分也有做一个演示跟介绍啊,让大家关注高级部分就行了。那么还有一个窗口函数,窗口函数呢,目前还是属于一个实验阶段啊,那我们在官网也可以看到啊,呃,我们点开官网的文档,呃,把收起来啊,这菜单是这样对吧?我们看这个思考参考语法点开,点开之后我们找到一个谁啊,Function是不是函数啊,点开,嗯,点开之后我们直接拉到后面一点。我看有没有。Window window window。喂。搁哪去了?我找找啊找找,刚才还有看到呢。哦,也不是也不用啊,你都不用点,它没放在function里面,我们点开circle参考了之后,在最后这里就有一个什么窗口函数。
03:09
你他额外拎出来的。那点开点进去。那么这里面有一个啥呢?这是不是实验性呢,对吧。它是实验性的。而且他你实验性的一些东西,咱们一般需要去。设置把它打开才能用啊,那也就是说,那那么你在生产环境上会去用吗?一般不会,因为既然是实验性,就有一些不可预知的bug,那回头啊,有一些不好的事情。那一般咱们还是比较谨慎的,不会去用对吧,怕它出问题,那什么时候等官网你发现他最新的文档把这个东西去掉了,把这个warning警告告警也去掉了,那你就可以放心用,相对放心的用,对吧?呃,那如果你是保老老一点的版本,甚至连这个参数都没。
04:04
老一点的版本都没有,那咱们这个版本应该是有的,来你看我set一下,他如果不报错说未知的参数,那就是可以用的啊。对吧,咱们目前版本是可以的,如果你在二零年的一些版本里面20开头的,那可能就没有了,他直接就报错,说这个参数不认识啊,还有一个不支持自定义函数。为啥呢?你你咱们的,呃,他提供的函数相对还是比较全的啊。那咱们可以看一下一个官网的一些函数介绍,咱们就不去做演示了,了解了解没啥啊,那还是这个circle reference,然后点开function,当然还有其他的分类对吧,像什么聚合的,还有炸裂的。字典啊,这些都有啊,那我们看一些常规的啊,常规的一些函数,呃,你看这个是什么。这是不是数学的函数啊?
05:02
是吗?你看plus,或者直接写个A加B,大家比较习惯的加减,这是什么?加减乘除呗,数学运算呗,那还可以什么?求div的求什么?求这个求这个求这个求绝对值求等等等等,你它支持哪些哦,右边也有个列表啊。右边也有个列表,你看这边就行了。Div就是除法嘛,这。常识嘛,这是一个常识问题啊,那当然这边也有一些案例了,对吧。那大家去看一看就行,加减乘除,那还有一个数组相关的啊,我们看一下数组,你看有一堆吧。还有一个什么相关的什么润函数啊,可以取一个范围啊,对吧,润润润还有一些什么啊,看右边呗。
06:02
还有可以取它第几第几个位置啊的数据啊元素啊,对吧,还可以做排序啊。等等等等。这边提供的函数够多了吧,还有什么数组里的最小最大求和均值都有。这些你等到需要用的时候,你呃上官网瞄一眼就行了,看有没有符合你要求的,其实大部分函数你看一眼什么,看一眼它名字你也就懂了。应该对大家来讲没什么难度啊,那这个什么comparison这是什么意思啊,比较函数比较是什么。就罗就什么大于小于等于呗,你看E口等于等等于,还有什么不等于,也可以这么写。小于对吧,大于小于等于大于等于这个就很简单了啊,那还有一个逻辑函数,逻辑函数是啥呀。与或非嘛,你看看右边就行了,End or not。对吧,那这边还有一个X,像后面还有这个X or就异货呗,求异货嘛,说白了就求异货,那么再看看其他的有一个什么类型转换,这个可能咱们就可能会用啊。
07:12
To就很简单,To什么to什么,转换成日期,就是to date类似的啊,可以把它做一个转换,那往后呢,这个是一个日期跟时间,对吧,可以to date time,可以to date。同string也可以啊,那这边其实你看你用英文版的是不是都甚至有一些案例啊,对吧,很多,那如果你切成中文版再看看。嗯,这边案例还有以前的话,中文版更新比较慢,可能你都没有一些案例啊,所以咱们还是一般比较新的内容,还是看一个英文版会舒服一点,往后呢,一个字符串类型的。那看右边列表就行了呗,是不是相关的转换判空啊,不为空长度。
08:00
还有小写大写对吧等等的,还有截取字符串,String,拼接contact。这些都跟汉的差不多,还有train。等等,呃,这些就按区域去选择就行了。嗯,这些大家去看一下,那我们看关注一个这个condition条件函数,说白了就是什么呢?If,如果对吧,分支判断if,那这个跟我们have语法一样的if一个条件为true呢就执行,但false就执行第三个,那这边我们聊过它不类型是没有true or false。但它有一个什么呢?它用零跟一来表示啊,零跟一表示一就表示出。零就是表示false,那除了这个咱们应该还知道一个啥呢。嗯,他应该有一个什么。咦,这?
09:00
这个东西有什么用呢?就是多分之判断的时候用咱们平常是不是用一个什么his when呢。对吧?Case问,呃,那我们是不是可以写多个问呢?那相当于说有多个分支条件呗,那前面的if函数大家能看到只有一层对吧?当然你可以选择嵌套,当然要嗯,使用起来不是很方便,那咱们在help里面分析啊,经常用一个case问多个问来做一个分支,相当于说咱们代码里面的if as if as if as if对吧?那这个它有一个Mo if可以用,那你看啊,它是这样。一个条件对应一个。呃,对应的执行逻辑。那你看这是第二个条件,对应它的第二个执行逻辑,对吧,它可以有多个,你看点点点啊,那咱们就可以用multi if,甚至你一些嵌套的if啊,也就是说你if里面写一个,呃,这边是一个条件。
10:03
然后这个是处的时候执行,这个false的时候执行,那你在这里,比如说其中一个你在嵌到为if,那我们其实是可以开启一个参数,它会自动把我们的语句优化成multi e啊就是这么玩意,因为相对来讲它的话,呃,执行效率会高一点嘛,对吧。这个是咱们单独给大家说明一些它特有的一个函数啊。那除了这个其他的应该也没什么特别难的啊,其他这些你就看需要去看求哈希啊位图啊对吧。Jason啊,IP地址的解析啊,URL的解析啊,对吧,这一块可能你会用到啊,去瞅一瞅,呃,那像其他的就不是很多了啊。那咱们再看看。
我来说两句