对明细表创建同步物化视图没有数值类型的列应该怎么做

Viewed 12

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`)

如上,如果使用同步物化视图应该怎么操作呢

0 Answers