00:00
好同学们,现在呢,我们接下来还要讲查询啊,那么现在呢,我们先把这个max呢给它删掉啊,再次点击提交。好,那么接下来呢,把这个往下拉一下,可以看到这里呢,还是五条数据两个序列。呃,那么参考我们之前文档里面写过的这个查询思路啊,我们给大家说的是先对时间的范围呢进行筛选,然后呢,再根据我们的标签啊,或者说measurement,或者说这个字段来进行一个维度上的过滤啊,像这个样子,先呢选定一个时间范围,然后呢,再根据这个标签集来选定我们这条黄色的序列。呃,那么为了可以给大家更好的演示这个效果呢?我们再去插入几条数据。好哎,点到我们的这个插入数据的页面来。啊,选择我们的example query这个存储桶啊,手动输入数据。从这个我们之前的编辑器里面啊Vs code可能给关掉了,重新打开一下。
01:02
好,从我们之前的这个编辑器里面呢,拿到我们的这个数据模板啊,直接复制过来。啊,这里呢,我直接输点数据,比如说这个code的零一啊,我现在不想要一一辆车了,我想要第二辆车,Cold的呢等于零二,然后瑞特等于35啊36吧,啊然后呢,它的这个温度呢,车内温度就是28度。DP等于28啊,时间戳呢,我们还是不指定,让英发TB的自动报名补全,点击data把这个数据提交上去。好,以此这个思路呢,我们重复的再多写几条。啊,刚才忘了复制那个那个那条数据了啊啊,重新刷新一下。啊,去写数据,一条条写就可以了,啊在在在这里呢,我们还是手动输入,然后我们还是去啊只能这样再复制一遍了。啊,那么一粘啊扣的零二呢,我想再要一条数据。呃,然后这个车速呢,是39吧,啊,温度就是20。
02:06
啊,此时呢,这个时候我们可以一次性写出好几条数据,叭,如说我把这个上面这一条啊,再复制一下,哎,把它改成CO01。啊,然后呢,这个数字稍微改一改,哎,37啊什么的。22啊,记住这个逗号不能丢啊,哎,再次点击提交。啊,点击这个写入数据。啊,稍等我看啊,没事,这个没有问题,好呃,现在呢,我们再再去写一遍吧,再写最后一条,哎,还是得把这个页面呢刷新一下。啊,选择我们的example carry,然后呢,把这个数据呢粘进来,呃,稍微做一下修改,比如说这个地方我还是扣零一,这次呢,我不写这个,哎,还是写上温度吧。啊,这里呢,写一个呃,29度,然后此时呢,这个车速呢,再改一下,改成44啊零二呢,我也插一条数据。
03:07
好,这个温度呢啊,注意这个逗号不能丢啊。这个字段机之间逗号不能丢,呃,那么这个地方是44的话,我改一下改成22啊,温度改成23度,好点击提交。好,现在呢,回到我们的这个查询页面,诶,此处呢,我们是从example query这个存储里面呢,查过去四小时的数据,点击提交,诶可以看到呢,这里面的数据呢,已经很多了,我现在在这个前端页面上呢,已经看不全这个数据了,必须得翻页。呃,可以看到这个第二页啊,这是第一页。接下来呢,如果你觉得这个不方便啊,我们可以直接下载CSV啊,去别的软件里面看,比如这里呢,我就直接打开啊,在文件在文件夹中显示。啊,直接用这个VSQ打开吧,我这直接双击就可以了。
04:01
啊,那么这里呢,其实看到的是一个CSV,我现在换一个这个来查看的方式啊,那么通过这个我的一个插件啊,直接把它这个写成表格了。好,我现在呢,往右看一下。啊,可以看到现在呢,我们是有CODED01,还有CODED02。然后经过这个那么一个分组呢,我们可以看到现在这里面有几个序列呢,一共是有四个序列。好,那么现在呢,我们又通过一个函数叫filter来对哎,我们现在看到的这个数据呢,进行一个过滤,来保留哎,我们只想要的序列。好哎,现在呢,我给我这个在底下呢,继续写,哎,写一个管道符,然后后面呢,跟上一个函数叫filter file啊,然后小括号。啊,那么可以看到呢,这里需要两个参数,一个是FN,一个是UN empty啊如果你看不懂什么意思的话呢,我们可以在右边搜一下file啊,然后呢,可以看这里的文档啊,这里呢可以看到FN,它需要一个函数。
05:11
啊,这里说呢,是只有一个参数的函数,然后而且呢,这个函数最后要返回错和false这一个布尔类型的值,然后呢,说这个records,也就是record这个类型啊,它会不停的往你这个函数里面来传,来传递啊然后呢,如果说这个record呢,进入你这个函数里面一计算啊,得到的结果是错,那么这一个record就会被留下来,好,我们这里呢,直接还是上手敲。啊,另外呢,可以看到啊,它另外有一个参数叫on empty,这个地方呢,我们先不用管,因为它有一个默认值叫drop,所以说我们现在呢,先把精力放在上面的这个FN上好哎,此处呢,我们传递一个函数FN冒号,这里呢写一个匿名函数小括号R,这是它的一个参数列表,然后使用等于号箭头来声明它的一个函数体啊此处呢,我们可以直接返回一个位词表达式啊,这里呢我就直接写,哎,我这里写一个小括号啊,其实这个小括号写不写都可以啊。
06:20
哎,直接写一个,比如说哎,那么我可以给大家说啊,这个R里面传递来,传递进来是什么呢?哎,传递进来的是一个record类型啊,那么我们可以通过R中括号的方式呢,去访问这里面的属性啊,比如说我想找这个啊,我们的车的编号是零二的数据啊,车的编号零二的,我们对这个code呢做一个过滤,哎此处呢,我就直接写二中括号,哎,然后双引号code的code。啊,那么它的值呢,应该等于等于哎,此处记住啊,我们的这个这个字段类型是什么,是不是string,哎,所以说呢,这里面我们直接哎加上一个引号,哎写上说我们的扣的呢得是零二了,好点sum可以看到我们现在这个数据的页数变少了,现在我们来看一下啊这个图。
07:12
好,可以看到呢,现在有两条序列,我把这个filter呢注释一下,再次点击提交,诶可以看到呢,现在其实有四条序列。啊,那么这个图呢,非常抽象啊,你可以看到右边的啊,除了这个现在主体呢,是这个蓝色和紫色的两条线啊,另外呢,还有我们右边的哎,粉色和这个黄色的两条线啊,这是因为我们有两条序列呢,它起始的时间比较晚,这个时候呢,我们可以尝试把这个时间给它,哎,不要查四小时前的了,哎查一小时前的可不可以呢?点击提交,好可以看到这里面呢,就是我们的四条序列。呃,它分别是这个啊,一个是car,然后啊扣的等于零一,然后呃这个值呢叫做呃,T温度啊还有一个car code等于零一,然后right速度,还有一个car code等于零二,哎,还是温度,Car扣的等于零二,哎,也是速度好,一共是这四个序列,现在呢,我去把这个过滤的函数呢给它加上,也就是说呢,通过这个位次表达式,我希望只得到哎这个扣的的值为零二的呃这些序列,现在点击提交可以看到,哎,其实呢,就只剩我们的code的等于零二的序列了,查看一下原始数据。
08:41
啊,把这个呢,移动一下。好把它移走啊,算了,直接给它删掉吧,好哎,可以看到这里面呢,这个measurement就是car,然后关键就是扣的呢,现在只剩零二了,拉长哎,可以看到扣的只剩零二了啊,那么这就是我们通过维度进行过滤的一个方法。
09:00
哎,不过一个正经的查询呢,其实不应该从呃,对tag进行过滤开始啊,假如说我们可以看一下之前的啊,把这个页面复制一遍啊,复制一个新的。啊,我们可以去别的存储桶看一下,其实在这个test in里面呢,有很多的measurement,而且不同的measurement呢,它的这个数据的含义是天壤地别的,呃,那么现在呢,我给大家演示一下,比如说呢,我现在再次在这个example块里面呢,去插一条数据,把这个页面刷新一下。好,现在呢,还是手动输入这个E发B行协议,这次呢,我写的这个数据叫people PU啊,那么说起来人呢,我也想给他一个编号,哎,这个标签呢,恰好起的名字也叫扣子,而且取值呢,也有零一跟零二啊,也有零一跟零二,接下来呢,我还给他一个字段叫温度,是它的体温,哎,TP等于36.4。啊,再回车,我再输入一个peo啊,然后呢,扣的等于零二啊,体温等于36.6。
10:10
好,现在呢,我点击一下提交,诶,写入这个数据,回到我们的查询页面上来,哎,我们再次运行这个代码,点击提交,呃,往下往下拉。哎,可以看到现在呢,这里面有一行数据是36.6。而且我们这个example query这个存储桶呢,现在也有两种测量了啊,所以说通常来说一个存储桶里面有很多测量啊,所以说在生产环境下呢,第一个第一个查询啊,第一个过滤条件,它一般不是我们的tag,不是我们的标签,而是我们的measurement,诶先指定要从哪一个测量里面呢,进行一个查询,此处呢,对measurement进行一个过滤的方式,还是通过filter file,然后传入一个匿名函数,好二啊,一样的写法啊,这里呢,我们选择二,然后这里直接。
11:06
哎,敲上我们的一个属性名称叫measurement,哎,注意这里不能直接敲mea smartt,要敲下划线mea men,然后呢,那它等于一个什么呢?哎,等于people,好啊,可以看到这一次呢,我没有写小括号啊,我直接点击点提点击提交。诶,可以看到这么一过滤呢,就只剩我们P炮,而且编码还是零二的这一个,呃,这个人的体温数据了,呃,把这个编码零二呢给他给它注射掉,哎,可以看到我们这里呢,其实应该有两个人啊,现在加再加上这个会议条件啊,那么我们现在呢,现在呢,就可以得到只剩一个人的数据。呃,最后呢,还给大家介绍一下,这个filter里面有一个另外的呃参数叫on empty,呃它呢其实只能传两个值,一个是keep,一个是drop,默认是drop,我们来分别运行一下,看看什么效果。呃,此处呢,我们先把呃这里所有的这个值呢给它干掉,所有的分数条件呢都给它干掉,注释掉,点击提交好现在可以看到我们有几个序列,012,然后直接翻到页尾,可以看到有四五,哎,那中间肯定还有个三,也就是说012345,我们现在呢,一共是有六个序列。
12:25
呃,我们现在呢,先用这个filter。哎,把这个过滤出measurement为P的数据来。点击提交,诶可以看到我现在呢,其实有两条数据,但是这两条数据呢,分别属于两个序列,哎,这里table的编号呢是零到一,如果呢,这里再加上一个选项参数叫on empty,哎,留上一个字符串,我说叫keep,注意这一块的变化。好,现在是零合一哈,点击提交。啊,你会发现变成了四和五,但是查询结果的数据呢,还是这两条啊,也就是说这个on,它其实是影响到我们啊一个table这个编号,哎是把是把另外的几个序列呢,视为已经消失的这个处理,还是说呢?哎保留那些已经被过滤掉的序列的编号,哎从他们基础之上再继续进行编号。
13:19
啊,那么这就是我们filter函数的用法,这一个呢是非常常用的啊,对应到我们这个查询步骤里面呢,其实相当于我们对measurement tag,还有field对这些东西呢,进行一个过滤的操作。好,那么关于filter的知识呢,就给大家建议到这儿。
我来说两句