Apache Doris 03|杂问题记录和案例测试

目录

案例测试

导入数据测试

查询测试


技术文档:

百度数据仓库 (baidu.com)

https://www.kancloud.cn/dorisdb/dorisdb/2146878

http://doris.apache.org/master/zh-CN/getting-started/basic-usage.html

  1. be 配置storage_root_path 多目录,选择策略是什么?A:一个盘一个
  2. insert单条输入,单条就会触发这种compaction(不要单条输入)(实时入库,后台的compation太占资源了,加机器应该解决不了,不管怎么调整参数,控制不了,一启动就把内存直接吃完)
  3. Doris怎么解决实时场景,怎么解决单条入库的问题呢?A:微批来实现,如果你的实时数据量没那么大,建议微批,比如1000条或者10秒钟一批,哪个值先到就就执行哪个。
  4. routine load,一个topic多个任务可以消费多张表吗?A:一个routine load只能对一张表。
  5. web端:设置fe.conf中 enable_http_server_v2=true就可以登录新版的UI。
  6. doris启动的时候,按照默认的配置来。doris用了内网的ip地址。现在通过priority_networks  设置外网的ip地址,发现启动不了了,必须设置生成 priority_networks=内网ip  才行。ip迁移之后fe启动不了怎么处理  配置文件已经改成新的ip了  但是日志里还是报错旧ip  应该是因为之前添加的节点都是旧的信息  fe启动不了好像也没法进去修改。可否采用固定ip?doris 节点不能更改ip。(方法:备份master节点doris-meta,新ip的机子重建fe,将doris-meta/image/ROLE中ip改为`hostname -i`。172.17.0.0/16只保留172.17这十六位不变,然后ip就按照改ROLE的方式来重启节点)
  7. and..

案例测试

bug:hive本地导入数据,建表时不能创建分通表,因为数据复制过去的时候不能确定分桶策略。在hdfs上可以,应为数据本来就是保存在hdfs上,导入时只是将数据移动过去而已。

Doris集群:

  • devtest1.com: 节点1配置FE(Leader)
  • devtest2.com: 节点2配置FE(Observer)和 BE
  • devtest3.com: 节点4配置BE
  • devtest4.com: 节点3配置BE

Hive:

Spark:

  • Video表:1127万约500M(496M)数据
  • User表:212万条约35M数据
  • User_info表:196,608条数据约11M

导入数据测试

表1. doris与hive、spark导入数据对比

1127万约500M(496M)数据

hive

本地导入

无分区无分桶

2.397s

hdfs导入

无分区无分桶

0.455s

10分桶

89.954s

spark

hdfs导入

无分区无分桶

0.761s

doris

stream load

1 buckets

66.707s

10 buckets

48.153s

100 buckets

39.551s

broker load

1 buckets

53s

10 buckets

27s

100 buckets

19s

表2. doris导入数据自行对比(均100 buckets)

doris

stream load

1127万约500M(496M)数据

变化

追加500条数据速度

导入时间

BE

BE

BE

导入后总大小

无索引

39.551s

118M

103M

135M

356M

压缩了140M

0.287s

3个rollup索引

62.301s

251M

249M

262M

759M

增加了263M

0.290 s

3个物化视图

62.753s

283M

249M

267M

799M

增加了303M

0.294 s

1:Doris

1127万约500M(496M)数据,

stream load本地导入:39.551s100 buckets)、66.707s(1 buckets)48.153s,(1 0buckets

三个BE:118M,103M,135M(合计:356M,原文件:496M,压缩了140M)

(curl --location-trusted -u root  -H "label:video20210625_01" -H "column_separator:\t" -H "max_filter_ratio:0.2" -T videoall.txt http://devtest1.com:18030/api/example_db/video_test1/_stream_load)

Broker load : 从hdfs上导入数据,用时19s100 buckets。、53s 1 buckets, 27s10 buckets

分区+分桶是doris的优势

测试一个分区+分桶的。

追加更新数据的速度:追加500条数据:287 ms

2:hive

本地导入用时:(2.397 seconds)

Hdfs导入用时:0.455s(无分区无分桶)

89.954 s(10分桶)

3:Doris创建了3个rollup索引

CREATE TABLE IF NOT EXISTS video_test1 (
    videoid VARCHAR(32) NOT NULL COMMENT "id of video",
    uploader VARCHAR(64) NOT NULL COMMENT "course name ",
    age INT NOT NULL COMMENT "city",
    category VARCHAR(64) NOT NULL COMMENT "category",
    length INT NOT NULL COMMENT "length",
    views INT NOT NULL COMMENT "views",
    rate FLOAT NOT NULL COMMENT "rate",
    rating INT NOT NULL COMMENT "rating",
    conments INT NOT NULL COMMENT "conments count"
)
DUPLICATE KEY(videoid,uploader)
DISTRIBUTED BY HASH(videoid) BUCKETS 100
rollup(
r1(videoid,category),
r2(videoid,rate),
r3(videoid,views,rating)
)
PROPERTIES("replication_num" = "1");

stream load本地导入:62.301s

三个BE:251M,246M,262M(合计:759M,原文件:496M,增加了263M)

追加更新数据的速度:500条数据0.290 s

Broker load :

4:Doris创建了3个上述相同的物化视图

stream load62.753s

三个BE:283M,249M,267M(合计:799M,原文件:496M,增加了303M)

追加更新数据的速度:500条数据0.294 s

查询测试

表1 video表字段

字段

备注

详细描述

video id

视频唯一id

11位字符串

uploader

视频上传者

上传视频的用户名String

age

视频年龄

视频在平台上的整数天

category

视频类别

上传视频指定的视频分类

length

视频长度

整形数字标识的视频长度

views

观看次数

视频被浏览的次数

rate

视频评分

满分5分

ratings

流量

视频的流量,整型数字

conments

评论数

一个视频的整数评论数

表2 user表字段

字段

备注

字段类型

uploader

上传者用户名

string

videos

上传视频数

int

friends

朋友数量

int

表3 user_info表字段

字段

备注

字段类型

id

唯一id

int

name

名字

string

sex

性别

string

age

年龄

int

city

城市

string

job

工作

string

sale

工资

int

hobby

爱好

string

1、统计视频观看数Top100

select videoid,  uploader,  age,  category,  length,  views,  rate,  ratings from video order by views desc limit 100;

Hive:  40.764 s

Spark: 14.413s

Doris:  0.84 s

2、统计视频类别热度

select category, count(videoid) as hot from video group by category order by hot desc limit 10;

Hive: 61.061 s

Spark: 13.569s

Doris: 0.65 sec

3、统计每个类别中视频流量Top10

select videoId,views,ratings from video where category = "Music" order by  ratings desc limit 10;

Hive: 32.464 seconds

Spark: 7.058s

Doris:0.14 sec  (使用了rollup时间:)

4、select category from video order by ratings desc limit 10;

Hive:39.6s

Spark: 14.752 s

Doris:0.37s(使用了rollup)

5、两个表的join:

表1:video:11274,227条数据,user:2139,109条数据

例1:select t2.videoid, t2.views, t2.rating, t1.videos, t1.friends from ( select * from user order by videos desc limit 10) t1 join video t2 on t1.uploader = t2.uploader order by views desc limit 20;

Hive:OOM

Spark:16.165 s

Doris:11.32s

6、测试colocation join

例2:select * from user_orl join video on user_orl.uploader = video.uploader order by views desc limit 20;

Spark:56.619s

Doris:9.42s :未使用colocation_join

             3.37s(使用colocation_join,本地join)

7、物化视图

create materialized view category_views as select category, sum(views) from video group by category;

select  category, sum(views) from video group by category;

Spark:8.032s

原来查询:3.52s

物化视图:0.13s

建的物化视图,因为数据量不大,物化视图表大小太小,看不到大小变化。

大小没有变化有两个可能,1. 大小收集的不及时 2. 数据量不大,不足以产生明显的变化。

8、三个表的join操作

表1:video:11274,227条数据,user:2139,109条数据,user_info:196,608条数据


例1

select t1.name, t1.city, t1.job, t1.sale, t1.hobby, t2.category, t2.rating, t3.videosfrom user_info t1 join user t3 on t1.name = t3.uploader
join video t2 on t1.name = t2.uploader order by t2.views desc limit 40;

Spark:36.817s

Doris:3.088s

例2

select t2.videoid,t2.uploader, t2.views, t2.rating, t1.videos, t1.friends,t3.city, t3.job, t3.sale, t3.hobby
from ( select videoid, uploader,views, rating,conments from video order by views desc) t2
join user t1 on t1.uploader = t2.uploader
join user_info t3 on t2.uploader = t3.name
order by rating desc limit 20;

Spark:72.461 s

Doris:4.024 s

目的:

  1. 这组件支持哪些功能
  2. 有哪些特点,有什么特殊功能,其他组件没有的
  3. 像索引是否必须使用,用和不用的区别
  4. 查询效率,对于复杂查询,简单查询,join查询等不同场景下的效率
  5. 性能小数据量下的性能大数据量下的性能
  6. 应用场景适合于哪些场景
  7. 环境部署是否方便/复杂
  8. 维护方便?
  9. 跟其他产品的兼容性如何?
  10. 使用体验怎么样,方不方便用?
  11. 数据存储的大小是否有压缩?
  12. 物化视图,rollup创建前后,数据存储的大小差异?数据导入速度的差异?
  13. 1G数据导入速度?
  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值