最新要闻
- 《小美人鱼》在多国遭遇集体刷差评 女主假发造价15万美元
- 不是手游、不抽角色!国产大作《影之刃零》官宣为买断单机游戏|快播报
- 天天微动态丨日版任天堂Switch OLED版618抄底价:到手1817元
- 时讯:余承东放出豪言:问界年产上千万 做世界第一
- 快看:充满80%仅需30分钟!7座理想4C超级充电站上线
- 打造全国一流职教发展共同体,深职院与深圳二职签约合作办学
- 有梦想就了不起!高考307分女孩考研逆袭211:还将继续攻读博士
- 累计被扣78分 男子酒驾被查:自述“我平时是个老实人”
- 全球时讯:血糖健康开拓者!华为WATCH4 Pro评测:全面的腕上守护专家
- 女性出现这7个症状要小心尿路感染:再忙也要去医院看看!-世界速递
- 全球头条:山东一公司要求员工签自愿放弃社保承诺书 同事:不签担心被挤兑
- 2023天津和平四平东道小学转学通知
- LCD小金刚!Redmi Note 12T Pro配备12GB大内存、5080mAh电池
- iPhone 16 Pro机型屏幕为6.3和6.9英寸 为啥手机屏越来越大? 今日热讯
- 世界今日报丨2999元起 魅族20斩获京东预售销量TOP4:三年质保行业罕见
- 苹果WWDC 2023来了!iOS 17把短板都消灭干净了
手机
iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?
警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案
- iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?
- 警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案
- 男子被关545天申国赔:获赔18万多 驳回精神抚慰金
- 3天内26名本土感染者,辽宁确诊人数已超安徽
- 广西柳州一男子因纠纷杀害三人后自首
- 洱海坠机4名机组人员被批准为烈士 数千干部群众悼念
家电
世界聚焦:Doris(三) -- Rollup和物化视图
【资料图】
Rollup
ROLLUP 在多维分析中是“上卷”的意思,即将数据按某种指定的粒度进行进一步聚合。通过建表语句创建出来的表称为 Base 表(Base Table,基表)在 Base 表之上,我们可以创建任意多个 ROLLUP 表。这些 ROLLUP 的数据是基于 Base 表产生的,并且在物理上是独立存储的。Rollup表的好处:
- 和基表共用一个表名,doris会根据具体的查询逻辑选择合适的数据源(合适的表)来计算结果
- 对于基表中数据的增删改,rollup表会自动更新同步
Aggregate 模型中的 ROLLUP
添加一个roll up
alter table aggregate表名 add rollup "rollup表的表名" (user_id,city,date,cost);alter table ex_user add rollup rollup_ucd_cost(user_id,city,date,cost);alter table ex_user add rollup rollup_u_cost(user_id,cost);alter table ex_user add rollup rollup_cd_cost(city,date,cost);alter table ex_user drop rollup rollup_u_cost;alter table ex_user drop rollup rollup_cd_cost;--如果是replace聚合类型得value,需要指定所有得key-- alter table ex_user add rollup rollup_cd_visit(city,date,last_visit_date);-- ERROR 1105 (HY000): errCode = 2, detailMessage = Rollup should contains -- all keys if there is a REPLACE value--添加完成之后可以show一下,看看底层的rollup有没有执行完成SHOW ALTER TABLE ROLLUP;
在查询时, Doris 会自动命中这个 ROLLUP 表,从而只需扫描极少的数据量,即可完成这次聚合查询。
explain SELECT user_id, sum(cost) FROM ex_user GROUP BY user_id;
获取不同城市,不同年龄段用户的总消费、最长和最短页面驻留时间
alter table ex_user add rollup rollup_city(city,age,cost,max_dwell_time,min_dwell_time); -- 当创建好了立即去查看得时候就会发现,他还没有开始 SHOW ALTER TABLE ROLLUP; 然后过会再去查询得时候,他就完成了,看他的状态即可
Unique 模型中的 ROLLUP
-- unique模型示例表drop table if exists test.user;CREATE TABLE IF NOT EXISTS test.user( `user_id` LARGEINT NOT NULL COMMENT "用户 id", `username` VARCHAR(50) NOT NULL COMMENT "用户昵称", `city` VARCHAR(20) COMMENT "用户所在城市", `age` SMALLINT COMMENT "用户年龄", `sex` TINYINT COMMENT "用户性别", `phone` LARGEINT COMMENT "用户电话", `address` VARCHAR(500) COMMENT "用户地址", `register_time` DATETIME COMMENT "用户注册时间" )UNIQUE KEY(`user_id`, `username`)DISTRIBUTED BY HASH(`user_id`) BUCKETS 1;--插入语句insert into test.user values\(10000,"zss","北京",18,0,12345678910,"北京朝阳区 ","2017-10-01 07:00:00"),\(10000,"zss","北京",18,0,12345678910,"北京朝阳区 ","2017-10-01 08:00:00"),\(10001,"lss","北京",20,0,12345678910,"北京海淀区","2017-11-15 06:10:20");-- 在unique模型中做rollup表,rollup的key必须延用base表中所有的key,不同的是value可以随意指定-- 所以说,unique模型中建立rollup表没有什么太多的意义alter table user add rollup rollup_username_id(username,user_id,age);
Duplicate 模型中的 ROLLUP
因为 Duplicate 模型没有聚合的语意。所以该模型中的 ROLLUP,已经失去了“上卷” 这一层含义。而仅仅是作为调整列顺序,以命中前缀索引的作用。下面详细介绍前缀索引,以及如何使用 ROLLUP 改变前缀索引,以获得更好的查询效率。ROLLUP 调整前缀索引(新增一套前缀索引)因为建表时已经指定了列顺序,所以一个表只有一种前缀索引。这对于使用其他不能命中前缀索引的列作为条件进行的查询来说,效率上可能无法满足需求。因此,我们可以通过创建 ROLLUP 来人为的调整列顺序。
-- 针对log_detail这张基表添加两个rollup表-- 按照type 和error_code 进行建前缀索引alter table log_detail add rollup rollup_tec(type,error_code,timestamp,error_msg,op_id,op_time);alter table log_detail drop rolluprollup_tec-- 按照op_id和error_code 进行建前缀索引alter table log_detail add rollup rollup_oec(op_id,error_code,timestamp,type,error_msg,op_time);-- 查看基表和rollup表desc log_detail all;
ROLLUP使用说明
- ROLLUP 是附属于 Base 表的,用户可以在 Base 表的基础上,创建或删除 ROLLUP,但是不能在查询中显式的指定查询某 ROLLUP。是否命中 ROLLUP 完全由 Doris 系统自动决定
- ROLLUP 的数据是独立物理存储的。因此,创建的 ROLLUP 越多,占用的磁盘空间也就越大。同时对导入速度也会有影响,但是不会降低查询效率(只会更好)。
- ROLLUP 的数据更新与 Base 表是完全同步的。用户无需关心这个问题。
- 在聚合模型中,ROLLUP 中列的聚合类型,与 Base 表完全相同。在创建 ROLLUP 无需指定,也不能修改。
- 可以通过 EXPLAIN your_sql; 命令获得查询执行计划,在执行计划中,查看是否命中 ROLLUP。
- 可以通过 DESC tbl_name ALL; 语句显示 Base 表和所有已创建完成的 ROLLUP
物化视图
就是查询结果预先存储起来的特殊的表。物化视图的出现主要是为了满足用户,既能对原始明细数据的任意维度分析,也能快速的对固定维度进行分析查询
优势
- 可以复用预计算的结果来提高查询效率 ==> 空间换时间
- 自动实时的维护物化视图表中的结果数据,无需额外人工成本(自动维护会有计算资源的开销)
- 查询时,会自动选择最优物化视图
物化视图 VS Rollup
•明细模型表下,rollup和物化视图的差别:物化视图:都可以实现预聚合,新增一套前缀索引rollup:对于明细模型,新增一套前缀索引•聚合模型下,功能一致
创建物化视图
CREATE MATERIALIZED VIEW [MV name] as [query] -- sql逻辑--[MV name]:物化视图的名称--[query]:查询条件,基于base表创建物化视图的逻辑-- 物化视图创建成功后,用户的查询不需要发生任何改变,也就是还是查询的 base 表。Doris 会根据当前查询的语句去自动选择一个最优的物化视图,从物化视图中读取数据并计算。-- 用户可以通过 EXPLAIN 命令来检查当前查询是否使用了物化视图。create table sales_records(record_id int, seller_id int, store_id int, sale_date date, sale_amt bigint) duplicate key (record_id,seller_id,store_id,sale_date)distributed by hash(record_id) buckets 2properties("replication_num" = "1");-- 插入数据insert into sales_records values \(1,1,1,"2022-02-02",100),\(2,2,1,"2022-02-02",200),\(3,3,2,"2022-02-02",300),\(4,3,2,"2022-02-02",200),\(5,2,1,"2022-02-02",100),\(6,4,2,"2022-02-02",200),\(7,7,3,"2022-02-02",300),\(8,2,1,"2022-02-02",400),\(9,9,4,"2022-02-02",100);-- 创建一个物化视图select store_id, sum(sale_amt) from sales_records group by store_id; CREATE MATERIALIZED VIEW store_id_sale_amonut as select store_id, sum(sale_amt) from sales_records group by store_id;CREATE MATERIALIZED VIEW store_amt as select store_id, sum(sale_amt) as sum_amountfrom sales_records group by store_id; --针对上述场景做一个物化视图create materialized view store_amt as select store_id, sum(sale_amt) as sum_amount from sales_records group by store_id; -- 检查物化视图是否构建完成(物化视图的创建是个异步的过程)show alter table materialized view from 库名 order by CreateTime desc limit 1;show alter table materialized view from test order by CreateTime desc limit 1;-- 查看 Base 表的所有物化视图 desc sales_records all;--查询并查看是否命中刚才我们建的物化视图EXPLAIN SELECT store_id, sum(sale_amt) FROM sales_records GROUP BY store_id;-- 删除物化视图语法-- 语法:DROP MATERIALIZED VIEW 物化视图名 on base_table_name; --示例:drop materialized view store_amt on sales_records;
练习
计算广告的 pv、uv
pv:page view,页面浏览量或点击量uv:unique view,通过互联网访问、浏览这个网页的自然人
-- 创建表drop table if exists ad_view_record;create table ad_view_record( dt date, ad_page varchar(10), channel varchar(10), refer_page varchar(10), user_id int ) distributed by hash(dt) properties("replication_num" = "1");select dt,ad_page,channel,count(ad_page) as pv, count(distinct user_id ) as uvfrom ad_view_recordgroup by dt,ad_page,channel-- 插入数据insert into ad_view_record values \("2020-02-02","a","app","/home",1),\("2020-02-02","a","web","/home",1),\("2020-02-02","a","app","/addbag",2),\("2020-02-02","b","app","/home",1),\("2020-02-02","b","web","/home",1),\("2020-02-02","b","app","/addbag",2),\("2020-02-02","b","app","/home",3),\("2020-02-02","b","web","/home",3),\("2020-02-02","c","app","/order",1),\("2020-02-02","c","app","/home",1),\("2020-02-03","c","web","/home",1),\("2020-02-03","c","app","/order",4),\("2020-02-03","c","app","/home",5),\("2020-02-03","c","web","/home",6),\("2020-02-03","d","app","/addbag",2),\("2020-02-03","d","app","/home",2),\("2020-02-03","d","web","/home",3),\("2020-02-03","d","app","/addbag",4),\("2020-02-03","d","app","/home",5),\("2020-02-03","d","web","/addbag",6),\("2020-02-03","d","app","/home",5),\("2020-02-03","d","web","/home",4);-- 创建物化视图-- 在doris的物化视图中,一个字段不能用两次,并且聚合函数后面必须跟字段名称-- count(distinct) 不能使用。需要用bitmap_union来代替create materialized view tpc_pv_uv as selectdt,ad_page,channel,count(refer_page) as pv,bitmap_union(to_bitmap(user_id)) as uv_bitmapfrom ad_view_record group by dt,ad_page,channel;-- 在 Doris 中,count(distinct) 聚合的结果和 bitmap_union_count 聚合的结果是完全一致的。而 bitmap_union_count 等于 bitmap_union 的结果求 count,所以如果查询中涉及到count(distinct) 则通过创建带 bitmap_union 聚合的物化视图方可加快查询。因为本身 user_id 是一个 INT 类型,所以在 Doris 中需要先将字段通过函数 to_bitmap 转换为 bitmap 类型然后才可以进行 bitmap_union 聚合。
关键词:
世界聚焦:Doris(三) -- Rollup和物化视图
《小美人鱼》在多国遭遇集体刷差评 女主假发造价15万美元
不是手游、不抽角色!国产大作《影之刃零》官宣为买断单机游戏|快播报
天天微动态丨日版任天堂Switch OLED版618抄底价:到手1817元
时讯:余承东放出豪言:问界年产上千万 做世界第一
快看:充满80%仅需30分钟!7座理想4C超级充电站上线
天天热点评!【一步步开发AI运动小程序】九、姿态辅助调试桌面工具折使用
刷爆的“信用卡”——起底美国债务危机_全球最资讯
每日聚焦:深交所:调整深证成指、创业板指、深证100等指数样本股
打造全国一流职教发展共同体,深职院与深圳二职签约合作办学
有梦想就了不起!高考307分女孩考研逆袭211:还将继续攻读博士
累计被扣78分 男子酒驾被查:自述“我平时是个老实人”
全球时讯:血糖健康开拓者!华为WATCH4 Pro评测:全面的腕上守护专家
女性出现这7个症状要小心尿路感染:再忙也要去医院看看!-世界速递
全球头条:山东一公司要求员工签自愿放弃社保承诺书 同事:不签担心被挤兑
2023天津和平四平东道小学转学通知
11)MySQL编程基础
【Oracle impdp/expdp】Big lesson from failure with impdp/expdp in 12c 焦点要闻
交易商协会:一季度债市信评调整次数下降 负面调整占七成-今日热讯
LCD小金刚!Redmi Note 12T Pro配备12GB大内存、5080mAh电池
iPhone 16 Pro机型屏幕为6.3和6.9英寸 为啥手机屏越来越大? 今日热讯
世界今日报丨2999元起 魅族20斩获京东预售销量TOP4:三年质保行业罕见
苹果WWDC 2023来了!iOS 17把短板都消灭干净了
618会员抄底:百度/腾讯/QQ/京东/B站/爱奇艺等大促合集-环球头条
东莞景湖装饰,家居装修达人_世界报道
Angular Highcharts教程_编程入门自学教程_菜鸟教程-免费教程分享
2、AS400 开发环境
每天一个Linux命令-gunzip. 每日看点
当前聚焦:揭秘“AI换脸”诈骗背后,黑灰产使用的手段
第二单元 常用快捷键,注释,变量
环球动态:香港金管局6月7日拟重启10年期政府债券机构增发
三星GalaxyChromebook2预购价格为$550美元
299元 荣耀Earbuds X5耳机发布:13.4mm超大动圈、27小时续航-世界快看
当前关注:超越朋友圈 微信视频号大升级
每日速递:想入职特斯拉?官方发声明提醒谨防诈骗:未与第三方人力资源合作
比日系品牌识时务!别克大五座中型纯电SUV交付:20.89万起香爆
【全球播资讯】NVIDIA黄仁勋“挑战”CPU:GPU训练AI大模型可降低96%成本
环球观热点:花了亿点点时间,写了一个赶海和茶艺小程序:探索多重功能,开启精彩互动之旅!
环球快消息!不推荐使用Date日期和Calendar日期
10)索引、视图 热讯
章子怡坐廉价航空被偶遇,空姐频打扰身份暴露,穿7000块一条裤子 焦点讯息
天天亮点!收评:创指跌1.14%创逾1年新低 脑机接口概念整体走强
GPT现状终于有人讲清楚了!还得是马斯克钦点的天才-环球视点
全球速读:零风险调光护眼屏 荣耀90系列全球首发3840Hz超高频屏幕技术
江西多地加入“高温群聊” 体感平均温度超40℃
比亚迪和特斯拉的“对垒” 正在进入一个新阶段
环球资讯:荣耀90系列搭载创新动脉仿生VC:首发航天级导热凝胶
实验作文300字_小实验作文300字
当前消息!vue列表逐个进入过渡动画
【世界时快讯】数字化转型,低代码开发真的靠谱?
世界播报:VST实例(3)绘制VST
【快播报】一图胜千言,气泡图引领数据时代的视觉革命
环球视讯!Unity的Console的控制类LogEntries:深入解析与实用案例
天天热资讯!金观平:唱响新时代“黄河大合唱”
专项债券不能“一拨了之”
广告弹窗太多!小米应用商店出手严管WiFi、清理类App
环球快播:100%自研!印度本土4G/5G网络来了:设备将投入大规模部署 还要推广全球
国产大飞机C919商用首飞成功!全机供应链揭秘_环球热讯
减肥就非得痛苦吗?华为鸿蒙3全家桶打造运动健身新体验-全球快报
阻止Wii模拟器登陆Steam!任天堂表态:模拟器非法 当前热点
关于征集载人月球车研制方案的公告
3年来首升!日本应届大学生就业率97.3% 全面复苏争夺汽车、半导体等人才
“礼让行人”该不该被取消 网友吵翻:车主称拿规则当保护伞 你怎么看?|全球观天下
3万多条含图片的菜谱资料ACCESS\EXCEL数据库-天天视讯
聊聊MassTransit——实现Saga模式概览(译)|天天视点
Visual Studio 2022的一个惊艳新功能开发隧道|滚动
嫁给金牛男最多的星座女 金牛男婚后会出轨吗?
PHEV车型常压油箱如何吸附燃油蒸汽?比亚迪公布技术细节 天天关注
Redmi Note 12T Pro搭载罕见LCD原色屏:144Hz超高刷新率
不靠显卡 NVIDIA太会做AI生意了:转手就卖出100倍 环球观焦点
热讯:华为官宣开发者大会 7月7日见:全球第三大手机系统鸿蒙4.0要来了
吸湿速干 反光设计:鸿星尔克男士速干冰丝短袖39元发车
马斯克旗下Neuralink获准启动人体临床试验 脑机接口概念股集体拉升_最资讯
直播源码技术屏幕共享功能
Python压缩JS文件,重点是 slimit
Python工具箱系列(三十四)
环球热头条丨U3DFrameWorkDemo:四、资源打包和热更
焦点日报:基于 Mindspore 框架与 ModelArts 平台的 MNIST 手写体识别实验
神十六有航天飞行工程师和载荷专家:戴眼镜也能上太空了-天天快看点
红魔电竞显示器2K银翼版618优惠300元:240Hz超高刷 环球新消息
头条焦点:12点正式开始!天猫618红包首发 超高概率中现金红包
世界快看:改款将至?曝特斯拉上海工厂Model 3产线停工:价格或将调整
世界今头条!官宣2030年前登月 我国面向全社会征集载人月球车研制方案
丰立智能:5月26日融资净买入2470.32万元,连续3日累计净买入4969.34万元
Docker 学习笔记
过滤器链及责任链设计模式 观热点
阿里一面:MySQL 单表数据最大不要超过多少行?为什么?这样回答满分! 世界热消息
gps网络时间服务器(时间同步装置)助力电力信息化建设|世界观焦点
deepin-for-arm64支持
全球关注:债市观察:利好钝化收益率窄幅波动 十债2.7%踌躇踏步
【世界新视野】抖音打不开视频怎么回事_抖音打不开
当前要闻:山姆同款蛋糕杭州卖165上海卖95 网友直呼太坑:你遇到过吗
绵云般口感!和路雪千层雪冰淇淋3.5元官方大促(商超6元)
今年唯一LCD性能机!Redmi Note 12T Pro外观公布-当前独家
重点聚焦!研究称每天排便超一次或影响健康:心力衰竭风险增加33%
全球快资讯丨接近小米1英寸了!曝iPhone 16 Pro Max主摄大升级
“候鸟”老人现在是否可以在海南澄迈县买房子?深蓝苑·滨江城PK五指山森林湖养老分析!|焦点简讯
JS中的arguments
今日视点:关于切片参数传递的问题
天天视点!十大券商看后市:A股底部特征浮现 市场进一步下行空间较小