12.1.2、Doris__基本使用、doris的基本命令、建表概念、语句、建表语法、建表方式(引擎存储规则)、导入数据的方式、支持的数据类型、rollup索引

1、Doris使用(类似mysql的操作命令)

1)自带root用户

进入Doris集群:mysql -uroot -h node1 -P 9030 -p (回车输入密码)
创建用户(普通用户):create user ‘test’ identified by ‘123456’
创建数据库:create database test_db;
显示数据库:show databases

2)创建数据库并赋予权限(将test_db数据库权限赋予普通用户test)

grant all on test_db to test

2、Doris建表–基本概念

在doris中,数据都以表(table)的形式进行逻辑上的描述(行与列)
12.1.2、Doris__基本使用、doris的基本命令、建表概念、语句、建表语法、建表方式(引擎存储规则)、导入数据的方式、支持的数据类型、rollup索引_第1张图片

12.1.2、Doris__基本使用、doris的基本命令、建表概念、语句、建表语法、建表方式(引擎存储规则)、导入数据的方式、支持的数据类型、rollup索引_第2张图片

3、建表语法(create table)

类似mysql,字段的类型也是类似mysql很多

4、建表方式(引擎存储规则)

Doris支持单分区和符合分区两种建表分区
单分区即数据不进行分区,数据只做HASH分布,也就是分桶 Tablet
在复合分区中:

第一级称为Partition,即分区,用户可以指定某一维度列作为分区列(当前仅支持整形和时间类型的列),并指定每个分区的取值范围
第二级成为Distribution,即分桶,用户可以指定一个或多个维度列以及桶数对数据进行HASH分布

12.1.2、Doris__基本使用、doris的基本命令、建表概念、语句、建表语法、建表方式(引擎存储规则)、导入数据的方式、支持的数据类型、rollup索引_第3张图片

同一分区的不同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种

1)Stream load 方式(小数据,文件等) curl --location-trusted -u root:123456 -H
“label:table_20210210” -H “column_separator:,”(分隔符) -T
table_data(本地数据文件) http://node01:8030/api/test_db/tablet/_stream_load
2)insert方式 insert into table1 value(1,1,‘user1’,10);
3)brokerLoad导入数据(大数据量)
4)Routine Load导入数据(实时数据) 仅支持kafka系统进行例行导入

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、数据类型

12.1.2、Doris__基本使用、doris的基本命令、建表概念、语句、建表语法、建表方式(引擎存储规则)、导入数据的方式、支持的数据类型、rollup索引_第4张图片
12.1.2、Doris__基本使用、doris的基本命令、建表概念、语句、建表语法、建表方式(引擎存储规则)、导入数据的方式、支持的数据类型、rollup索引_第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;

你可能感兴趣的:(Dcc12,Doris,&,Docker-原创,kafka,架构)