Server version: 5.7.99 Doris version doris-2.1.5-rc02-d5a02e095d
正准备将 doris升级到 3.0系列的存算分离架构。
具体业务如下:
有个一广告请求历史记录表,因为是明细表,所以没有去重,每天有50亿条数据左右。
现在需要 能够快速查询 :last_date,country,os 的uv和pv
但是这个表里面没有一个 userid long 这种数值类型的字段。
如何能够使用 物化视图的功能来加速查询呢。
因为不会有 join等跨表查询逻辑,所以直接使用单表同步物化视图:
尝试了
create materialized view daily_dev_cnt as SELECT last_date, country, os, count(distinct(dev_id)) dev_cnt FROM daily_access_details group by last_date, country, os;
报错:
ERROR 1105 (HY000): errCode = 2, detailMessage = The select expr count(DISTINCT (`dev_id`)) not in grouping or aggregate columns
具体业务明细表如下如下:
CREATE TABLE `daily_access_details` (
`last_date` DATE NULL,
`country` VARCHAR(20) NULL,
`source` TEXT NULL ,
`os` VARCHAR(20) NULL ,
`dev_id` VARCHAR(60) NULL,
`bundle` TEXT NULL ,
`device_type` SMALLINT NULL,
`connection_type` SMALLINT NULL,
`ad_media` TEXT NULL
) ENGINE=OLAP
DUPLICATE KEY(`last_date`, `country`)
PARTITION BY RANGE(`last_date`)
如上,如果使用同步物化视图应该怎么操作呢