在测试中,我们有三亿条数据,经物化视图聚合后大概有5000万左右,查询耗时在10s左右,能否把物化视图放在内存中以提升效率呢?
请问下是否命中物化视图,另外也可以发下profile,参考https://forum.mirrorship.cn/t/topic/730
命中物化视图,就是数据量大,查的慢
请提供下base表和物化视图的建表sql,还有profile。我们看下
这个是base表建表语句
CREATE TABLE test.d3 (
dt date NULL COMMENT “”,
cwl_id bigint(20) NULL COMMENT “”,
issue bigint(20) NULL COMMENT “”,
cs_index varchar(255) NULL COMMENT “”,
cs_ticket_code varchar(255) NULL COMMENT “”,
cs_ticket_mark varchar(255) NULL COMMENT “”,
cs_ticket_price bigint(20) NULL COMMENT “”,
cs_price bigint(20) NULL COMMENT “”,
cs_total_price bigint(20) NULL COMMENT “”,
cs_frequency varchar(255) NULL COMMENT “”,
cs_i_fk varchar(255) NULL COMMENT “”,
cs_d_fk varchar(255) NULL COMMENT “”,
cs_t_fk varchar(255) NULL COMMENT “”,
cs_cp_fk bigint(20) NULL COMMENT “”,
cs_s_fk bigint(20) NULL COMMENT “”,
cs_m_fk varchar(255) NULL COMMENT “”,
cs_pl_fk varchar(255) NULL COMMENT “”,
cs_tpl_fk varchar(255) NULL COMMENT “”,
cs_to_fk varchar(255) NULL COMMENT “”,
cs_w_fk varchar(255) NULL COMMENT “”,
cs_is_fk varchar(255) NULL COMMENT “”
) ENGINE=OLAP
DUPLICATE KEY(dt)
COMMENT “OLAP”
DISTRIBUTED BY HASH(cwl_id, issue) BUCKETS 10
PROPERTIES (
“replication_num” = “1”,
“in_memory” = “false”,
“storage_format” = “DEFAULT”
);
这个是物化视图建表语句
CREATE MATERIALIZED VIEW cs_have_s AS
SELECT cs_i_fk,cs_d_fk,cs_t_fk,cs_cp_fk,cs_m_fk,cs_pl_fk,cs_tpl_fk,cs_to_fk,cs_w_fk,cs_s_fk,SUM(cs_ticket_price),SUM(cs_total_price)
FROM test.d3
GROUP BY cs_i_fk,cs_d_fk,cs_t_fk,cs_cp_fk,cs_m_fk,cs_pl_fk,cs_tpl_fk,cs_to_fk,cs_w_fk,cs_s_fk;
这个是profileprofile (8.3 KB)
1.目前看并行度是默认的1?show variables like ‘%parallel_fragment_exec_instance_num’;可以看下,建议设置为be cpu核数的一半,set parallel_fragment_exec_instance_num=xx
2.几个be节点呢?只有一台?
be单机四核,8G内存,并行度设为4之后查询时间到9s
测试资源配置建议您参考下https://forum.mirrorship.cn/t/topic/567