00:00
那在接下来我们看一下其他几个模块啊,第一个是表属性properties,在这里呢,我们看一下这个案例啊,我们截一个图啊properties。比如说我们之前的事例里边指定了什么副本数。为三,还记得咱们前面说的副本吗?对吧,副本数为三。这是每张表副本数可以指定不一样的啊,那么副本数为三,这个好理解啊。那如果我们不指定呢,这个replication number如果不指定,它默认就是三啊。默认就有三。那如果你增加新分区啊,新分区可以单独指定副本数量啊。那后面我们也会知道怎么去增加分区,对吧?啊,那时候我们再回头再看一眼就行了,你就知道增加分区可以指定不同的副本数量,那么副本数量在运行时可以修改啊,也就是说它是可以支持修改的,那我们强烈建议是保持一个基数。
01:14
那这个我们前面讲的一个原则啊,最大的副本数量取决于集群中独立IP的数量,说白了就是机器的数量,或者说节点的数量,而不是be的数量,为什么?因为我们说这假设是一台服务器,我们是不是可以部署多个be啊?对吧,这我们前面讲的时候已经提到过这个事儿了,但我们说默认三副本对不对,那三副本我在一台机器部署三个B行不行,不行,你必三副本,必须是每个副本都在不同的节点,也就是说都在不同的机器上面,这样才可以啊,啊这是这句话的意思。通过IP来识别啊。那对于一些我们使用中啊,一些数据量比较小,更新不频繁的维表就好,呃,一些尾表嘛,啊,可以考虑设置更多的副本数。
02:09
那这样的时候,我们在join查询时有更大概率进行本地join,那关于join我们后面也会聊到啊,先了解一下,那看第二个参数。存储的相关的,还有一个存储时间相关的,这是什么意思?你看这个ssda好眼熟对不对?还记得我们部署be的时候,我们在配置文件,是不是指定数据存储路径啊,路径是不是可以后缀点HDD,也可以点SSD是不是?那这里为什么要单独指定呢?其实就是一个选择题,我们在be配置的时候,指定存储路径可能有多个,而且每一个可能是不一样,可能是SSD,可能是HDD,对吧,那问题就来了,那我这张表。
03:02
的数据是放在假设啊,我两个路径,一个是SSD,一个HDD,到底是这张表是存在这个路径下还是存在这个路径下呢?是不是一个选择题啊。对吧,那这个时候就涉及到一个问题,指定初始存储介质,这个就是这个意思。比如说我这边指定为SSD,那意思啊,就是说我be既有指定了SSD路径,也有HDD路径,表示我这张表啊,默认就往SSD的这个路径去存啊,优先往这里存,另外其实啊,我们be配置文件指定了这两个后缀,它你把它理解成一个标记就好了。比如说我明明不是固态,我偏偏把路径标记成点SSD可不可以可以,因为它不会跳验,这个其实就是一个记号,就跟我们这个配置项做一个匹配而已啊,这个也要注意了。
04:08
那这个配置项不写行不行啊,不写的话,假设我没有当前这个配置项。而我B又指定了两种不同存储介质的路径。那我这张表到底优先去哪?哎,有一个默认配置,这个配置是在fe指定的,叫default storage,然后这个me啊。你可以去指定它,也就是说你建表语句不指定,就按这个来啊,按照这个来,那如果这个也没写,见表也没写呢,那这个时候就默认HDD啊,默认HDD。能理解吧,这其实就是一个选择题啊,我们be部署的时候只是给出了有这么多个选项啊,那接下来建表我就要指定我到底选哪一个去存OK啊,另外一个参数这个时间它默认值啊是30天。
05:03
会同SSD迁移到HDD。那如果这个参数我们指定的。那就按照我们指定的时间点去迁移,为什么迁移呢?其实你想一个数据存在久了,是不是可能他被查的需要就慢慢的就降低了,对不对。其实也是一个等额数据的一个考虑啊,一个考虑。比如说过一阵子人家对你新鲜,就像你生活中啊,就没新鲜感了,对吧,就腻了就就就不跟你玩了,找新的其他人玩呐,对吧,你就自觉一点啊。当然这个。要注意啊,这个存储介质这个东西,它有一个检查项的参数。他。如果你为force,那就是一个尽力而为的。
06:03
也就是说。嗯呃,假设你设设了SSD,这里设了SSD,但是集群内并没有SSD。这个时候也不会报错啊,它会自动说哪个可用我就存哪就得了啊。也就是说会降级嘛啊,固态你看不可访问空间不足,都可能初始化的数据放在其他可用介质上啊。如果你把这个检查项设为处啊,然后建表时指定为SSD,但是集群也就be的配置文件并没有SSD,或者说SSD空间不足了,那这个时候他会真正去执行检查。检查说哦,我不能从SSD不行,我就要一哭二闹三上吊啊,我就直接给你什么报错啊,就这个意思。
07:00
这边几个参数给大家聊一聊啊,聊聊这是这三个参数的意思,当然properties还有很多很多参数可以设啊。那其次我们再聊一聊这个engine engine呢,其实就是。电表示例里面的K。对吧,我们说op是默认的啊。默认的是op。而且呢,只有OAP这个引擎还是由Doris自己来负责管理和存储的,其他的我说其实就是一种外表,对吧?像什么引擎文my circleql,那其实这张表原先是在my circleq里的,你只不过是建立了一个映射啊,通过Doris来操作MYSQL表而已啊,那还有其他一样的道理,为broker为E一样,这些都是外表啊,只是一个映射而已。Do本身不创建、管理和存储。这些什么MY的,Broke的,E的表示数据啊,大家要明白这一点啊,所以我之前才会讲,Ola应该是用的最多的。
08:09
那其他的就没什么好讲的,If not exist,如果没有创建过,则创建啊,这里判断的只是什么表明啊,其他不会做判断,只判断表明,OK啊,这就是,呃,我们前面讲了一个电表事例、案例,然后呢,每一块是什么内容,我们非常详细的介绍了,相信到这里大家应该对基本建表语法用法有一个初步的认识。
我来说两句