1、Doris使用(类似mysql的操作命令)
1)自带root用户
2)创建数据库并赋予权限(将test_db数据库权限赋予普通用户test)
2、Doris建表–基本概念
在doris中,数据都以表(table)的形式进行逻辑上的描述(行与列)
3、建表语法(create table)
类似mysql,字段的类型也是类似mysql很多
4、建表方式(引擎存储规则)
Doris支持单分区和符合分区两种建表分区
单分区即数据不进行分区,数据只做HASH分布,也就是分桶 Tablet
在复合分区中:
同一分区的不同Tablet物理上是分开存放的,数据最小的存储就是以Tablet存放的
eg:建立表table1,分桶列为siteid,桶数为10
create table table1(
siteid int default '10', //网站,给定默认值10
citycode smallint, //城市
username varchar(32)default ' ', //用户
pv bigint sum default ‘0’ //浏览次数
)aggregate key(siteid,citycode,username) //key,因为pv字段使用了sum聚合函数,当这里的key一样时,pv数据相加(预聚合)
distributed by HASH(siteid) BUCKETS 10
properties("replication_num" = "1"); //副本数,默认为3,可以设置
导入数据:5种
eg:建表-复合分区,建立表table2,分区分桶
create table table2(
event_day DATE,
siteid int default '10', //网站,给定默认值10
citycode smallint, //城市
username varchar(32)default ' ', //用户
pv bigint sum default ‘0’ //浏览次数
)aggregate key(event_day,siteid,citycode,username) //key,因为pv字段使用了sum聚合函数,当这里的key一样时,pv数据相加(预聚合)
partition by range(event_day)
(
partition p202106 values less than ('2021-07-01'),
partition p202107 values less than ('2021-08-01'),
partition p202108 values less than ('2021-09-01')
)
distributed by HASH(siteid) BUCKETS 10
properties("replication_num" = "1"); //副本数,默认为3,可以设置
5、数据类型
6、rollup(类似表的索引)
Rollup可以理解为表的一个物化索引结构。Rollup可以调整列的顺序以增加前缀索引的命中率,也可以减少key列以增加数据的聚合度
(1)以session_data为例添加Rollup
desc session_data all;
(2)比如我经常需要看某个城市的ip数,那么可以建立一个只有ip和city的rollup
alter table session_data add rollup rollup_city_ip(city,ip);
(3)创建完毕后,再次查看表结构
desc session_data all;