00:00
好,同学们,那么这一节开始呢,我们正式给大家介绍flux语言的查询,首先呢,我们做一些准备工作啊,啊,就是把我们这个里面东西呢,给它清空,那编辑器的东西清空啊,然后呢,我们把这个页面呢,重新再复制一份。啊,现在呢,到这个load data塔里面呢,呃,我们点开这个行协议啊,随时准备呢去插入数据啊,此处呢,我点击这个create buck,我们去创建一个新的存储桶啊,这个存储桶呢,就叫example query_query,呃,那么后面我们做查询的时候呢,都是对这个存储桶里的数据呢进行查询好这个数据的保留策略,策略呢啊什么时候删除数据,就永远都不要删除数据。啊,点击create创建这一个存储桶,好,现在呢,我们切换到这个手动输入数据里面来,呃,然后在这里啊,要选择我们刚才创建的example,哎,Query这个存储桶啊,不要写错这个,不要把数据写错地方了啊那么现在呢,我们去创建一个行协议,此处呢,啊打开Vs code,在这里呢,我去输入一个啊数据的模板。
01:09
呃,现在呢,我们还是模仿车速啊,那么首先呢,有我们的car。呃,那么这个呢,就表示我们的测量名称啊,把它放大一下啊好呃,然后呢,我们给这个每个车呢,给上一个编号,所以说我们在这个标签集里面呢,放一个叫做太叫做code的啊标签,Code这个标签啊,接下来呢,我这个第一辆车编号呢,就叫零一。呃,然后后面呢,空一个格来写一个字段,叫rate,表示车速。哎,再加一个等于号。啊,当前的车速呢是多少,我写一个35啊,时间戳呢,我们省略,待会儿呢,让我们的这个啊in Fla TB呢自动帮我们补全时间戳好啊接下来呢,我就把这个数据呢,把这个CL协议CTRLC复制诶到我们这里面来,诶直接点击提交啊瑞。
02:03
好啊,现在呢,我再去插入一条啊,再去插入一条啊,这个页面呢,需要刷新一刷新一下。好一样哈,还是选择我们的example_query这个存储桶,然后呢,把这个数据给它粘进来啊,车速呢,我现在变一下,现在变到40。好,再次呢,点击提交啊,点点击road red。好啊,现在呢,相当于我在这个存储通里面呢,插入了两条数据,现在教给大家呢,如何去做这个查询啊,回到我们的编辑器里面来。呃,现在我们调用一个函数叫做from ------,呃,那么这个from函数呢,它就是用来呃查询我们的infa DB的啊,输入一个小括号可以看到,这里面呢需要很多的参数,呃,这里呢,有一个参数叫做bucket,那么这个bucket呢,其实就是让我们指定一个哎,我们的存储桶的名称啊,这里呢,我重新登录一下啊,这个。
03:04
录到期了,点击登录好,呃,假如说现在呢,我们要去查询,呃,我们刚才这个叫example_W这个存储桶啊,我就直接这么写啊,那么现在呢,我们可以尝试一下submit提交啊,也可以看到呢,这里面直接报错了,呃,那么这里面报错信息呢,说的就是。呃,这个我们不能执行一个没有边界的查询啊,不能对这个存储桶指定一个没有边界的查询啊,请尝试在from后面呢,直接调用range函数。呃,所以说在我们flux语言里面,如果你想查询inlu DB from后面必须紧跟一个论证函数。好,那紧跟润置函数的方式呢,就是先敲回车,然后打上两个空格,哎,这个空格几个其实无所谓啊,回车敲不敲也无所谓,关键是这个符号,哎先打一个竖杠哎,再敲一个大于号,哎,它就像那这个就像箭头一样,哎那么这两个啊在一块呢,叫一个符号,叫什么呢?叫管道符。
04:11
啊,叫管道服。好啊,那么后面呢,我们要跟一个函数叫做润R啊,后面呢,我会给大给大家讲啊,这个管道符啊,它是什么原理,包括什么东西啊,都会给大家讲明白啊,那么这里呢,也可以看到润质函数呢,哎,它其实就是在声明我们的边界。呃,看到这个参数的提醒啊,它需要两个参数,一个是start,一个是stop。啊,那么这里呢,可以回忆一下我们之前给大家说的in Fla DB的查询思路,呃,回到我们的文档。呃,之前呢,我给大家说过,呃,我们是有双重索引设计,通常呢,查询的时候呢,先指定一个时间范围,呃,从哪个时间开始到哪个时间结束,我要查询这个时间范围内的数据。呃,所以说我们这个range函数呢,其实就其实就是起到一个指定时间范围的作用,呃,Start呢是开始时间,Stop呢是截止时间,呃,在右边呢,我们搜索一下润志,然后看它的文档。
05:12
哎,可以看到这里面呢,有一个关键的一句话defas to,哎可以看到其实stop这个参数呢,是有默认值的,它的默认的截,呃,默认的值呢,就是当前时间,就是我们这个Fla脚本运行的时间。也就是说我这里呢,如果只指定start函数,哎,那么就是表示哎,从什么什么时间点至今啊,从哪里哪里至今。现在呢,我们再看到这个文档,可以看到这个参数呢,啊,这个start和stop的参数,它支持三种数据类型,一个就是持续时间,另外一个呢,就是time啊我们的这个一个时间点,另外呢,就是你可以使用这个整数类型呢,来表示一个时间戳。啊,此处呢,我们给这给大家演示一个啊,就是传递这个duration的方式。
06:00
呃,如如果呢,你传递一个负1H啊,其实呢,你传递的相当于啊,相当于从现在的时间向前减一小时。比如说我现在呢,是呃,04:34减一小时呢,就是03:34,也就是说呢,查询03:34至今的数据,好至此呢,我点击submit提交。哎,可以看到这里面呢,没有值,但是呢,我们可以点一下VI塔。啊,往下拉一下。哎,可以看到呢,就是没有值,为什么呢?是因为我这个存储图写错了啊,存储写错了叫example query query啊不是we啊,点击提交sum。哎,可以看到呢,这就是我刚才呢提交的数据啊,可以展示出来。啊,那么这里呢,给大家解释几个关键的字段。哎,首先是我们这个start。Start什么意思呢?可以看到啊,这两行数据的start_start啊,它的取值呢,一模一样,其实这个start是指我们这个润值函数的,哎,当时查询时的一个时间范围来,这个start呢,其实是我们润值函数指定的start啊,然后stop呢,其实就是我们润质函数指定的stop,我们知道这个stop呢,它其实有一个默认值啊,这个润质的润质函数的stop参数啊,有个默认值就是nu。
07:27
啊,也就是说相当于呢,这个stop,相当于我们整个程序的运行的时间。哎,可以看到这个stop的时间呢,是啊零时区啊,注意是零时区。20:34,然后呢,我们这里给的偏移量是负1H啊,那么start呢,应该比这个stop呢,哎要小一小时,可以看到呢,这个时间就是19:34,而stop呢,就是20:34。啊,另外呢,可以看到还有一个下划线time的这个字段啊,那么这个字段呢,其实就是我们数据的插入时间,哎,是我们数据里面的时间戳。
08:02
现在呢,我把这个屏清一下。啊,把这个屏清一下,然后呢,这个光标啊,可以看到底下呢,有一个有一个这个滑动条。我呢把它往右拉,哎,可以看到有一个字段,哎,就是我们的标签。啊,那么这个标签呢,可以看到它的类型呢,是什么,是不是字符串啊,那么这个现象呢,符合我们之前呢,在in Fla TB行斜页里面给大家介绍的啊,就是标签的取值类型呢,只能是字符串。呃,接下来呢,还要再注意几个地方。啊,一个是我们的表里面呢,有一个字段叫做measurement,这个呢,其实就是我们的测量名称,然后另外呢,还有两个字段。啊,给大家圈一下。呃,就是我们的下划线file和下划线value啊,那么这两个字段呢,其实相当于什么呢?相当于我们之前在这个插入数据时候写的这个right,哎,等于35 right等于40啊,那么如果在表格里面的话呢,我们应该有一个字段,那叫做rate rte,然后呢,呃,第一行是35,第二行呢是40,但在这个地方呢,其实我们把它给拍扁了,哎,把这个rate呢,当做一个我们的行的数据啊来进行处理,那么这个时候呢,把它拍远之后呢,啊,有一个字段的名称就叫field。
09:19
哎,然后这里呢,直接把这个字段的名字呢拿过来,这一行呢就叫rate,然后呢,这里再来一个值的字段,哎,直的字段v lue value啊,然后这时候呢,就是35啊,再给派扁,那么这里呢,第二行就是rate re,然后呢40啊,那么如果这里我有两个字段会发生什么呢?哎,那么现在我们可以去试一下。现在呢,我去插入一条新的数据,然后先把原来的原始数据呢给拿过来啊,然后到我们的这个插入数据的页面上,好点击行协议,我先把这个屏清一下啊。哎,现在选择example curry啊,选择好正确的存储桶,然后呢,手动输入数据,哎把这个数据呢粘过来好,哎现在车速呢,我再给大家输一个值,比如说呢是44。
10:11
啊,然后呢,我们在这里面呢,再给他一个呃字段。哎,我们就叫TP,表示我们当前的车内的温度,哎,等于比如说现在是26度好。呃,接下来呢,点击瑞塔。可以看到这里呢,已经写入成功,呃,接下来呢,回到我们的查询的这个页面上,再次点击submit。好,大家可以看到呢,我这个数据呢,变成了两页啊,是因为我这里呢太窄了,再往下拉一下,好,我们在一页里面呢,看到这个数据。呃,现在呢,可以看到,哎,我刚才插入了一条数据,但是这里面呢,显示了两行啊,新增了两行。啊,这就是因为我们这个查询的时候呢,其实有一个把宽表转成窄表的操作啊,这里呢,再给大家敲一下啊,刚才呢,我这个按理来说啊,如果是宽表的话,我们应该是有一个字段叫right,然后呢,哎,这个值呢应该是44。
11:09
然后呢,还有一个是呃,Temperature就是我们是取的首字母啊,是温度的意思啊T啊,那么它呢,应该是26啊,这这呢是一个宽表啊,现在呢,把它转成一个窄表。呃,首先我们有一个字段。啊,叫做下划线。Gunfid。啊,下划线field的fie啊,然后呢,这里面呢,它就会有两行,第一行呢叫做啊,Right righte,然后呢,还有一个字段是value value。啊,然后呢,它这里面啊,可以看到这个呢,就应该取值呢,就是44。好,那么这是第一行,接下来呢,第二行字段的名称呢是TP啊,那么它的这个取值呢,就应该是26。
12:01
所以说呢,原先啊,对数据来说,我们呢是一行,现在呢,到我们这个,呃,Flax查询的结构来说呢,变成了两行。呃,另外呢,同学们要注意一个问题,之前呢,我们说car呢,相当于一张表啊,如果呢,你把它理解成表的概念。呃,那么现在我们看啊,呃,它现在有两个字段,如果你理理解成表的概念呢,应该是这个结构啊,有一个啊right,然后呢,再有一个tmp,还有两个字段,然后之前呢,我们写过35,四十四十四啊这三个数据。哎,三十五四十四十四啊,那么这三行数据最后呢,跟着44的时候呢,我们一块写入了tmp这个字段,哎,是26。26写进来好。啊,那么如果呢,Measurement它是一张表啊,那么我这里是不是应该啊,应该有两个nu值呢,是吧,有一个空值把它填充掉啊,但是从我们查询的结果来看啊,这一次呢,没有做任何过滤条件啊,查询的结果呢,只有一个T的值啊,前面两条呢,并没有出现啊,为了验证这个问题呢,我们可以再去呃,插入一条数据。
13:14
这一次呢,我们只去插入一个T,然后看这个right呢,会不会新增一条数据。好,现在呢,我们还是点到这个,呃,写入数据的地方,来把这个页面的刷新一下。好,选择example query这一个存储桶,然后呢,把我的数据粘进来,诶此时呢,我们可以把这个车速再改一下,改到60,好,我们说现在呢,应该是去添加一个啊一行啊,它的值呢应该是60,我们可以试一下代入查询呢,会不会出,会不会出来一个tmp,然后这个时候呢,是那样的一个情况。啊,接下来呢,我们进行查询。啊,先点击插入啊,先点点击插入,点击RI data把数据呢插进去,好,现在呢,点击sumit重新查询我们这个数据。
14:02
哎,可以看到。呃,现在呢,我们的right呢,有一个有一行新的数据,但是tmp呢,并没有出现一条新的数据啊,那么这是为什么呢?啊,以及我们左边的这一个字段,哎,所谓的table。啊又是什么意思呢?啊,还有就是我们右边为什么这个标签,哎,它不写成我们的这个,哎摘表的格式。为什么我我们的标签呢,不写成这种格式,哎,写成这个啊下划线tag,呃,然后呢,再来一个code。啊,然后呢,再来一个什么tag value这种格式啊,那么所有的这些问题呢,我们都在下一节进行揭晓。
我来说两句