Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[feature](mtmv) Support variants rewrite by materialized view #37929

Merged
merged 9 commits into from
Jul 24, 2024

Conversation

seawinde
Copy link
Contributor

@seawinde seawinde commented Jul 16, 2024

Proposed changes

Support variants rewrite by materialized view

Such as the mv def is as following:

CREATE MATERIALIZED VIEW test1 BUILD IMMEDIATE REFRESH AUTO ON MANUAL
DISTRIBUTED BY RANDOM BUCKETS 2
PROPERTIES ('replication_num' = '1')
as
SELECT
id,
type,
actor,
payload,
payload['pull_request']
FROM github_events1;

the query following can rewrite successfully and the data is right

SELECT
id,
type,
floor(cast(actor['id'] as int) + 100.5),
actor['display_login'],
payload['pull_request']['id']
FROM github_events1;

@doris-robot
Copy link

Thank you for your contribution to Apache Doris.
Don't know what should be done next? See How to process your PR

Since 2024-03-18, the Document has been moved to doris-website.
See Doris Document.

@seawinde
Copy link
Contributor Author

run buildall

@doris-robot
Copy link

TPC-H: Total hot run time: 39642 ms
machine: 'aliyun_ecs.c7a.8xlarge_32C64G'
scripts: https://github.com/apache/doris/tree/master/tools/tpch-tools
Tpch sf100 test result on commit 2815a0676b6d333eed1fcc6b059ab3548fd5b1c5, data reload: false

------ Round 1 ----------------------------------
q1	17598	4983	4278	4278
q2	2023	190	180	180
q3	10537	1152	1014	1014
q4	10202	752	834	752
q5	7541	2686	2677	2677
q6	222	134	134	134
q7	961	594	588	588
q8	9233	2085	2059	2059
q9	8851	6540	6518	6518
q10	8740	3762	3785	3762
q11	457	221	231	221
q12	437	224	226	224
q13	18964	2963	3001	2963
q14	282	229	231	229
q15	529	485	486	485
q16	519	396	377	377
q17	957	707	636	636
q18	7977	7507	7370	7370
q19	7589	1466	1379	1379
q20	641	311	321	311
q21	4847	3282	3202	3202
q22	346	283	291	283
Total cold run time: 119453 ms
Total hot run time: 39642 ms

----- Round 2, with runtime_filter_mode=off -----
q1	4386	4267	4284	4267
q2	387	262	288	262
q3	3081	2897	2963	2897
q4	1965	1746	1745	1745
q5	5558	5494	5539	5494
q6	231	137	132	132
q7	2219	1854	1774	1774
q8	3255	3466	3426	3426
q9	8658	8844	8794	8794
q10	4155	3777	3945	3777
q11	594	506	490	490
q12	835	623	664	623
q13	16170	3190	3157	3157
q14	314	283	291	283
q15	534	493	490	490
q16	495	432	427	427
q17	1818	1506	1497	1497
q18	8119	7997	7913	7913
q19	1798	1643	1557	1557
q20	2144	1879	1875	1875
q21	5130	4687	4791	4687
q22	589	513	498	498
Total cold run time: 72435 ms
Total hot run time: 56065 ms

@doris-robot
Copy link

TPC-DS: Total hot run time: 175235 ms
machine: 'aliyun_ecs.c7a.8xlarge_32C64G'
scripts: https://github.com/apache/doris/tree/master/tools/tpcds-tools
TPC-DS sf100 test result on commit 2815a0676b6d333eed1fcc6b059ab3548fd5b1c5, data reload: false

query1	925	389	382	382
query2	6441	1910	1855	1855
query3	6627	207	217	207
query4	27480	17580	17468	17468
query5	3645	480	492	480
query6	259	170	178	170
query7	4580	293	289	289
query8	239	198	197	197
query9	8599	2400	2411	2400
query10	433	314	279	279
query11	12876	10055	10162	10055
query12	116	100	88	88
query13	1645	369	360	360
query14	10390	7957	7975	7957
query15	229	171	168	168
query16	7785	326	319	319
query17	1783	562	549	549
query18	1967	307	297	297
query19	203	156	164	156
query20	93	90	86	86
query21	205	140	135	135
query22	4576	4074	4099	4074
query23	34425	33709	33972	33709
query24	11230	2936	2927	2927
query25	620	433	422	422
query26	1092	159	154	154
query27	2722	287	288	287
query28	7297	2070	2053	2053
query29	947	694	734	694
query30	265	161	172	161
query31	972	772	777	772
query32	103	55	60	55
query33	782	303	303	303
query34	997	525	503	503
query35	709	599	606	599
query36	1163	966	1002	966
query37	151	88	98	88
query38	2941	2851	2817	2817
query39	893	830	807	807
query40	213	124	120	120
query41	45	45	43	43
query42	116	96	102	96
query43	492	463	463	463
query44	1199	729	721	721
query45	200	164	161	161
query46	1086	716	739	716
query47	1882	1785	1807	1785
query48	354	293	288	288
query49	847	419	426	419
query50	777	385	382	382
query51	6991	6787	6774	6774
query52	101	102	91	91
query53	363	288	301	288
query54	921	448	449	448
query55	76	73	77	73
query56	289	266	280	266
query57	1161	1084	1024	1024
query58	260	263	260	260
query59	2781	2672	2680	2672
query60	311	282	275	275
query61	95	92	96	92
query62	817	656	676	656
query63	326	290	288	288
query64	9548	2234	1675	1675
query65	3246	3136	3158	3136
query66	739	328	338	328
query67	15852	15008	14992	14992
query68	6151	529	534	529
query69	720	468	380	380
query70	1219	1181	1172	1172
query71	499	281	278	278
query72	8613	5782	5594	5594
query73	788	327	325	325
query74	6115	5697	5660	5660
query75	4639	2716	2688	2688
query76	4011	942	1025	942
query77	717	315	309	309
query78	10100	9358	9236	9236
query79	3756	531	529	529
query80	1366	499	486	486
query81	591	257	236	236
query82	1451	145	136	136
query83	318	175	178	175
query84	276	85	92	85
query85	1502	312	305	305
query86	440	314	326	314
query87	3364	3108	3134	3108
query88	4821	2383	2374	2374
query89	511	392	413	392
query90	1903	196	200	196
query91	137	102	103	102
query92	65	50	56	50
query93	4938	518	508	508
query94	1221	226	215	215
query95	414	316	315	315
query96	622	275	274	274
query97	3279	3047	3063	3047
query98	216	202	199	199
query99	1563	1256	1290	1256
Total cold run time: 295819 ms
Total hot run time: 175235 ms

@doris-robot
Copy link

ClickBench: Total hot run time: 30.51 s
machine: 'aliyun_ecs.c7a.8xlarge_32C64G'
scripts: https://github.com/apache/doris/tree/master/tools/clickbench-tools
ClickBench test result on commit 2815a0676b6d333eed1fcc6b059ab3548fd5b1c5, data reload: false

query1	0.04	0.03	0.03
query2	0.08	0.04	0.04
query3	0.22	0.04	0.05
query4	1.68	0.09	0.09
query5	0.50	0.49	0.49
query6	1.14	0.75	0.73
query7	0.02	0.01	0.01
query8	0.05	0.04	0.04
query9	0.57	0.47	0.49
query10	0.55	0.54	0.52
query11	0.16	0.11	0.11
query12	0.15	0.12	0.13
query13	0.58	0.58	0.57
query14	0.76	0.77	0.77
query15	0.84	0.81	0.82
query16	0.36	0.37	0.37
query17	0.99	1.01	1.03
query18	0.23	0.22	0.22
query19	1.89	1.83	1.71
query20	0.01	0.01	0.01
query21	15.39	0.73	0.64
query22	4.06	7.65	1.79
query23	18.29	1.35	1.28
query24	2.16	0.23	0.21
query25	0.16	0.08	0.09
query26	0.29	0.21	0.20
query27	0.45	0.24	0.22
query28	13.23	1.03	1.00
query29	12.64	3.33	3.35
query30	0.25	0.07	0.06
query31	2.86	0.38	0.40
query32	3.29	0.48	0.47
query33	2.92	2.88	2.95
query34	17.13	4.40	4.36
query35	4.40	4.40	4.42
query36	0.66	0.48	0.46
query37	0.18	0.15	0.15
query38	0.15	0.15	0.15
query39	0.05	0.04	0.04
query40	0.15	0.13	0.12
query41	0.10	0.05	0.04
query42	0.07	0.05	0.06
query43	0.05	0.04	0.04
Total cold run time: 109.75 s
Total hot run time: 30.51 s

Comment on lines 87 to 95
if (targetSlot == null) {
continue;
}
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

add comment to explain why not print warn log when data type is variant

}
if (minExpr != null) {
targetToTargetReplacementMappingQueryBased.put(queryNameEntry.getValue(),
constructElementAt(minExpr, minCompensateName));
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

after rewrite, these new element_at will be push into scan node too?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

yeah, this will push into scan node again by RBO

@seawinde
Copy link
Contributor Author

run buildall

@doris-robot
Copy link

TPC-H: Total hot run time: 40078 ms
machine: 'aliyun_ecs.c7a.8xlarge_32C64G'
scripts: https://github.com/apache/doris/tree/master/tools/tpch-tools
Tpch sf100 test result on commit 294e32b643fb2bcd4644850e4806561ea30a3e41, data reload: false

------ Round 1 ----------------------------------
q1	17629	4339	4266	4266
q2	2013	190	184	184
q3	10458	1213	1087	1087
q4	10203	907	863	863
q5	7534	2687	2631	2631
q6	221	136	138	136
q7	953	609	601	601
q8	9225	2056	2089	2056
q9	8952	6569	6576	6569
q10	8827	3831	3786	3786
q11	450	236	234	234
q12	398	230	229	229
q13	19049	3021	3013	3013
q14	293	237	242	237
q15	524	480	491	480
q16	512	391	388	388
q17	978	746	694	694
q18	7981	7565	7389	7389
q19	7801	1381	1400	1381
q20	695	337	337	337
q21	5015	3237	4018	3237
q22	354	280	298	280
Total cold run time: 120065 ms
Total hot run time: 40078 ms

----- Round 2, with runtime_filter_mode=off -----
q1	4449	4304	4295	4295
q2	368	294	284	284
q3	3229	3020	2949	2949
q4	2086	1783	1726	1726
q5	5630	5579	5684	5579
q6	235	143	138	138
q7	2250	1837	1856	1837
q8	3331	3421	3444	3421
q9	9060	9115	9022	9022
q10	4140	4002	4080	4002
q11	619	526	507	507
q12	884	731	672	672
q13	18266	3229	3162	3162
q14	348	313	299	299
q15	542	484	498	484
q16	521	454	451	451
q17	1830	1594	1527	1527
q18	8181	7917	7989	7917
q19	1721	1603	1595	1595
q20	2935	1889	1878	1878
q21	7682	4938	4784	4784
q22	579	519	524	519
Total cold run time: 78886 ms
Total hot run time: 57048 ms

@doris-robot
Copy link

TPC-DS: Total hot run time: 173633 ms
machine: 'aliyun_ecs.c7a.8xlarge_32C64G'
scripts: https://github.com/apache/doris/tree/master/tools/tpcds-tools
TPC-DS sf100 test result on commit 294e32b643fb2bcd4644850e4806561ea30a3e41, data reload: false

query1	918	376	367	367
query2	6483	1876	1791	1791
query3	6660	208	219	208
query4	28299	17483	17303	17303
query5	3623	474	470	470
query6	257	175	157	157
query7	4584	296	300	296
query8	248	210	191	191
query9	8578	2398	2379	2379
query10	455	297	287	287
query11	11054	10088	10049	10049
query12	116	91	84	84
query13	1643	378	370	370
query14	10277	7460	7768	7460
query15	215	169	174	169
query16	7944	327	321	321
query17	1795	572	539	539
query18	2051	290	282	282
query19	199	154	151	151
query20	95	82	86	82
query21	208	127	131	127
query22	4257	4077	3979	3979
query23	34050	33736	33768	33736
query24	10581	2964	2952	2952
query25	623	410	414	410
query26	714	157	151	151
query27	2257	280	279	279
query28	6149	2063	2075	2063
query29	941	656	612	612
query30	249	155	156	155
query31	964	755	763	755
query32	93	55	53	53
query33	664	298	291	291
query34	890	494	499	494
query35	699	606	599	599
query36	1143	1004	992	992
query37	148	85	88	85
query38	2988	2831	2780	2780
query39	879	846	829	829
query40	206	117	117	117
query41	47	44	42	42
query42	116	100	104	100
query43	514	467	479	467
query44	1083	714	720	714
query45	195	161	162	161
query46	1098	739	734	734
query47	1876	1770	1799	1770
query48	358	288	294	288
query49	833	402	408	402
query50	775	384	399	384
query51	6765	6831	6823	6823
query52	103	93	91	91
query53	353	289	287	287
query54	875	450	450	450
query55	75	74	71	71
query56	289	253	273	253
query57	1139	1069	1052	1052
query58	256	247	241	241
query59	2937	2470	2716	2470
query60	298	269	283	269
query61	96	116	93	93
query62	787	645	651	645
query63	312	290	286	286
query64	9128	2204	1668	1668
query65	3162	3094	3087	3087
query66	693	321	334	321
query67	15453	14988	14888	14888
query68	4594	529	572	529
query69	613	449	351	351
query70	1195	1153	1169	1153
query71	429	283	276	276
query72	8737	5930	5822	5822
query73	749	325	322	322
query74	6110	5712	5718	5712
query75	4271	2667	2640	2640
query76	3135	1005	895	895
query77	667	296	305	296
query78	11873	9458	9028	9028
query79	8219	523	521	521
query80	1368	472	476	472
query81	594	224	228	224
query82	711	138	136	136
query83	334	226	167	167
query84	273	84	84	84
query85	772	316	296	296
query86	488	326	294	294
query87	3307	3141	3092	3092
query88	5021	2388	2402	2388
query89	514	374	404	374
query90	1998	199	191	191
query91	131	98	100	98
query92	65	49	49	49
query93	4661	506	504	504
query94	1178	212	259	212
query95	417	319	320	319
query96	618	270	271	270
query97	3232	3028	3037	3028
query98	219	198	202	198
query99	1505	1270	1220	1220
Total cold run time: 291811 ms
Total hot run time: 173633 ms

@doris-robot
Copy link

ClickBench: Total hot run time: 30.88 s
machine: 'aliyun_ecs.c7a.8xlarge_32C64G'
scripts: https://github.com/apache/doris/tree/master/tools/clickbench-tools
ClickBench test result on commit 294e32b643fb2bcd4644850e4806561ea30a3e41, data reload: false

query1	0.04	0.04	0.03
query2	0.08	0.04	0.04
query3	0.23	0.05	0.05
query4	1.69	0.07	0.07
query5	0.50	0.48	0.50
query6	1.14	0.73	0.73
query7	0.02	0.02	0.01
query8	0.05	0.05	0.05
query9	0.56	0.50	0.49
query10	0.56	0.55	0.55
query11	0.16	0.12	0.11
query12	0.14	0.12	0.12
query13	0.59	0.59	0.58
query14	0.77	0.78	0.78
query15	0.86	0.81	0.82
query16	0.36	0.38	0.37
query17	1.01	0.97	1.04
query18	0.22	0.22	0.22
query19	1.80	1.72	1.79
query20	0.02	0.00	0.00
query21	15.38	0.76	0.66
query22	4.58	6.33	2.02
query23	18.33	1.44	1.33
query24	2.19	0.22	0.24
query25	0.16	0.09	0.08
query26	0.29	0.20	0.21
query27	0.45	0.24	0.23
query28	13.20	1.02	1.00
query29	12.55	3.34	3.36
query30	0.25	0.06	0.05
query31	2.86	0.38	0.39
query32	3.31	0.48	0.47
query33	2.91	2.96	2.91
query34	16.88	4.40	4.35
query35	4.48	4.38	4.46
query36	0.66	0.49	0.49
query37	0.18	0.15	0.16
query38	0.15	0.15	0.15
query39	0.04	0.04	0.03
query40	0.15	0.13	0.13
query41	0.09	0.05	0.04
query42	0.06	0.05	0.05
query43	0.05	0.04	0.04
Total cold run time: 110 s
Total hot run time: 30.88 s

morrySnow
morrySnow previously approved these changes Jul 18, 2024
@github-actions github-actions bot added the approved Indicates a PR has been approved by one committer. label Jul 18, 2024
Copy link
Contributor

PR approved by at least one committer and no changes requested.

Copy link
Contributor

PR approved by anyone and no changes requested.

@seawinde seawinde force-pushed the support_variants_rewrite_by_mv branch from 294e32b to 31b9b5a Compare July 19, 2024 01:50
@seawinde
Copy link
Contributor Author

run buildall

Copy link
Contributor

@zfr9527 zfr9527 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@doris-robot
Copy link

TPC-H: Total hot run time: 40118 ms
machine: 'aliyun_ecs.c7a.8xlarge_32C64G'
scripts: https://github.com/apache/doris/tree/master/tools/tpch-tools
Tpch sf100 test result on commit 31b9b5a3363232b6eb864dae57955d24b6748c6b, data reload: false

------ Round 1 ----------------------------------
q1	17607	4571	4298	4298
q2	2015	197	192	192
q3	10430	1197	1128	1128
q4	10183	913	816	816
q5	7546	2757	2691	2691
q6	226	140	139	139
q7	973	601	612	601
q8	9216	2141	2107	2107
q9	8848	6657	6614	6614
q10	8685	3820	3782	3782
q11	451	248	241	241
q12	398	228	226	226
q13	17767	2975	3003	2975
q14	275	238	235	235
q15	541	490	477	477
q16	515	378	375	375
q17	993	693	754	693
q18	8229	7631	7383	7383
q19	7771	1393	1280	1280
q20	671	337	342	337
q21	5012	3237	3238	3237
q22	363	291	291	291
Total cold run time: 118715 ms
Total hot run time: 40118 ms

----- Round 2, with runtime_filter_mode=off -----
q1	4431	4265	4297	4265
q2	384	280	263	263
q3	3156	2929	2939	2929
q4	1996	1749	1759	1749
q5	5690	5608	5538	5538
q6	227	142	137	137
q7	2246	1886	1861	1861
q8	3330	3454	3432	3432
q9	8953	9015	8833	8833
q10	4146	3748	3930	3748
q11	606	515	504	504
q12	864	662	646	646
q13	16229	3186	3219	3186
q14	329	302	286	286
q15	519	499	488	488
q16	503	434	440	434
q17	1832	1517	1509	1509
q18	8156	8156	7973	7973
q19	1765	1659	1420	1420
q20	2168	1889	1914	1889
q21	9184	4740	4944	4740
q22	618	521	551	521
Total cold run time: 77332 ms
Total hot run time: 56351 ms

@doris-robot
Copy link

TPC-DS: Total hot run time: 176035 ms
machine: 'aliyun_ecs.c7a.8xlarge_32C64G'
scripts: https://github.com/apache/doris/tree/master/tools/tpcds-tools
TPC-DS sf100 test result on commit 31b9b5a3363232b6eb864dae57955d24b6748c6b, data reload: false

query1	909	371	379	371
query2	6420	1867	1806	1806
query3	6659	208	218	208
query4	28523	17579	17328	17328
query5	3646	500	518	500
query6	266	187	157	157
query7	4587	294	295	294
query8	242	200	192	192
query9	8650	2478	2449	2449
query10	429	286	272	272
query11	10760	10048	10055	10048
query12	126	86	87	86
query13	1641	370	357	357
query14	10176	7779	7760	7760
query15	224	168	172	168
query16	7579	312	307	307
query17	1654	543	525	525
query18	1791	283	274	274
query19	208	163	175	163
query20	92	86	84	84
query21	209	131	125	125
query22	4450	4035	4056	4035
query23	34067	33914	33844	33844
query24	11036	3027	2879	2879
query25	590	398	400	398
query26	725	155	154	154
query27	2211	288	282	282
query28	6025	2102	2133	2102
query29	875	642	657	642
query30	257	154	153	153
query31	979	773	769	769
query32	104	59	57	57
query33	678	330	323	323
query34	914	508	496	496
query35	740	597	597	597
query36	1155	993	1003	993
query37	151	87	97	87
query38	2986	2878	2884	2878
query39	945	861	866	861
query40	213	129	130	129
query41	48	44	43	43
query42	120	98	102	98
query43	502	483	470	470
query44	1120	739	741	739
query45	198	162	157	157
query46	1102	783	732	732
query47	1851	1766	1794	1766
query48	361	306	297	297
query49	837	420	438	420
query50	784	400	401	400
query51	6853	6861	6834	6834
query52	105	103	96	96
query53	367	297	306	297
query54	889	452	452	452
query55	77	76	76	76
query56	292	282	271	271
query57	1156	1038	1070	1038
query58	253	259	260	259
query59	2754	2627	2652	2627
query60	301	284	293	284
query61	97	96	96	96
query62	805	659	645	645
query63	318	296	295	295
query64	9181	2369	5598	2369
query65	3149	3108	3113	3108
query66	737	325	328	325
query67	15712	15148	15094	15094
query68	4504	551	554	551
query69	574	462	388	388
query70	1202	1147	1130	1130
query71	385	282	291	282
query72	7179	6068	6118	6068
query73	744	331	330	330
query74	6107	5773	5677	5677
query75	3393	2699	2734	2699
query76	2527	964	940	940
query77	650	319	326	319
query78	13092	9439	8929	8929
query79	2557	539	550	539
query80	1032	499	500	499
query81	592	221	219	219
query82	472	136	135	135
query83	320	172	169	169
query84	273	90	90	90
query85	802	326	314	314
query86	461	312	333	312
query87	3333	3148	3113	3113
query88	4141	2375	2390	2375
query89	469	406	390	390
query90	1772	200	201	200
query91	132	101	103	101
query92	59	49	51	49
query93	2951	533	518	518
query94	1009	221	222	221
query95	413	323	327	323
query96	598	273	272	272
query97	3223	2984	3058	2984
query98	224	199	208	199
query99	1760	1273	1259	1259
Total cold run time: 280811 ms
Total hot run time: 176035 ms

@doris-robot
Copy link

ClickBench: Total hot run time: 31.13 s
machine: 'aliyun_ecs.c7a.8xlarge_32C64G'
scripts: https://github.com/apache/doris/tree/master/tools/clickbench-tools
ClickBench test result on commit 31b9b5a3363232b6eb864dae57955d24b6748c6b, data reload: false

query1	0.04	0.04	0.03
query2	0.08	0.04	0.04
query3	0.22	0.05	0.05
query4	1.67	0.07	0.07
query5	0.49	0.50	0.59
query6	1.13	0.72	0.73
query7	0.02	0.01	0.01
query8	0.05	0.04	0.04
query9	0.57	0.49	0.49
query10	0.54	0.52	0.54
query11	0.16	0.12	0.12
query12	0.15	0.12	0.12
query13	0.59	0.58	0.59
query14	0.78	0.76	0.78
query15	0.87	0.81	0.82
query16	0.36	0.37	0.37
query17	0.95	1.04	1.00
query18	0.23	0.22	0.23
query19	1.83	1.79	1.76
query20	0.02	0.01	0.01
query21	15.42	0.77	0.67
query22	4.60	6.32	2.02
query23	18.26	1.41	1.38
query24	2.13	0.23	0.22
query25	0.15	0.09	0.09
query26	0.30	0.21	0.21
query27	0.46	0.24	0.24
query28	13.27	1.02	1.00
query29	12.59	3.42	3.34
query30	0.26	0.06	0.06
query31	2.89	0.39	0.39
query32	3.24	0.48	0.48
query33	2.93	2.95	2.97
query34	16.86	4.40	4.42
query35	4.52	4.42	4.41
query36	0.66	0.49	0.48
query37	0.18	0.15	0.16
query38	0.14	0.14	0.14
query39	0.04	0.03	0.03
query40	0.16	0.12	0.13
query41	0.09	0.04	0.04
query42	0.05	0.05	0.05
query43	0.05	0.04	0.04
Total cold run time: 110 s
Total hot run time: 31.13 s

@seawinde seawinde force-pushed the support_variants_rewrite_by_mv branch from 91983a7 to 2398c5f Compare July 22, 2024 12:32
@seawinde
Copy link
Contributor Author

run buildall

@doris-robot
Copy link

TPC-H: Total hot run time: 40190 ms
machine: 'aliyun_ecs.c7a.8xlarge_32C64G'
scripts: https://github.com/apache/doris/tree/master/tools/tpch-tools
Tpch sf100 test result on commit 2398c5f4da1555dd74ffd3b3b091e117506e4065, data reload: false

------ Round 1 ----------------------------------
q1	17638	4431	4314	4314
q2	2022	192	202	192
q3	10633	1228	1144	1144
q4	10684	890	903	890
q5	7593	2738	2720	2720
q6	223	138	141	138
q7	959	614	613	613
q8	9454	2112	2112	2112
q9	8948	7089	6691	6691
q10	8900	3762	3798	3762
q11	453	240	239	239
q12	400	229	229	229
q13	17780	3021	2981	2981
q14	283	240	242	240
q15	531	486	505	486
q16	500	380	382	380
q17	965	677	703	677
q18	8032	7640	7429	7429
q19	5443	1290	1336	1290
q20	665	322	342	322
q21	4888	3059	3273	3059
q22	366	292	282	282
Total cold run time: 117360 ms
Total hot run time: 40190 ms

----- Round 2, with runtime_filter_mode=off -----
q1	4419	4262	4294	4262
q2	381	273	271	271
q3	3202	2954	2941	2941
q4	2035	1704	1752	1704
q5	5491	5473	5595	5473
q6	227	139	145	139
q7	2259	1863	1847	1847
q8	3273	3449	3350	3350
q9	8713	8668	8713	8668
q10	4084	3896	3852	3852
q11	619	476	489	476
q12	817	662	637	637
q13	16401	3194	3213	3194
q14	313	295	295	295
q15	534	485	503	485
q16	488	440	443	440
q17	1825	1569	1519	1519
q18	8075	7957	7568	7568
q19	1684	1572	1569	1569
q20	2293	1867	1857	1857
q21	5034	4906	4749	4749
q22	643	515	517	515
Total cold run time: 72810 ms
Total hot run time: 55811 ms

@doris-robot
Copy link

TPC-DS: Total hot run time: 174022 ms
machine: 'aliyun_ecs.c7a.8xlarge_32C64G'
scripts: https://github.com/apache/doris/tree/master/tools/tpcds-tools
TPC-DS sf100 test result on commit 2398c5f4da1555dd74ffd3b3b091e117506e4065, data reload: false

query1	918	416	367	367
query2	6174	2008	1955	1955
query3	6653	206	215	206
query4	24605	17505	17364	17364
query5	3811	460	483	460
query6	274	190	187	187
query7	4610	287	286	286
query8	248	209	199	199
query9	8492	2472	2467	2467
query10	438	301	275	275
query11	12406	10015	10103	10015
query12	130	93	105	93
query13	1636	368	369	368
query14	10149	7836	7501	7501
query15	220	167	166	166
query16	7727	495	481	481
query17	1323	557	517	517
query18	1895	276	287	276
query19	192	144	151	144
query20	98	78	87	78
query21	201	133	133	133
query22	4249	4060	4037	4037
query23	34134	34093	33613	33613
query24	11875	2928	2891	2891
query25	654	413	387	387
query26	1762	163	153	153
query27	2993	272	277	272
query28	7614	2079	2053	2053
query29	1116	632	638	632
query30	271	151	156	151
query31	975	771	740	740
query32	92	57	56	56
query33	772	331	328	328
query34	909	489	498	489
query35	868	805	745	745
query36	1151	965	946	946
query37	339	86	83	83
query38	2959	2858	2839	2839
query39	893	869	807	807
query40	266	123	124	123
query41	47	46	46	46
query42	122	101	104	101
query43	538	490	495	490
query44	1166	740	718	718
query45	199	163	162	162
query46	1107	730	708	708
query47	1926	1792	1760	1760
query48	381	291	286	286
query49	936	398	419	398
query50	782	395	396	395
query51	6715	6671	6573	6573
query52	101	94	89	89
query53	354	296	292	292
query54	880	452	444	444
query55	74	74	72	72
query56	286	267	263	263
query57	1147	1031	1065	1031
query58	254	236	245	236
query59	2942	2889	2819	2819
query60	309	275	273	273
query61	95	97	92	92
query62	758	661	649	649
query63	316	291	294	291
query64	10307	2234	1666	1666
query65	3183	3151	3126	3126
query66	1099	323	329	323
query67	15635	15282	14958	14958
query68	4446	535	529	529
query69	449	332	343	332
query70	1153	1108	1110	1108
query71	384	276	283	276
query72	6949	5467	5620	5467
query73	738	325	325	325
query74	6204	5655	5714	5655
query75	3420	2679	2702	2679
query76	2666	908	888	888
query77	426	299	296	296
query78	12092	9385	8985	8985
query79	3195	513	507	507
query80	1808	482	469	469
query81	589	213	221	213
query82	533	144	136	136
query83	290	176	174	174
query84	287	94	96	94
query85	926	308	312	308
query86	484	304	328	304
query87	3330	3181	3111	3111
query88	4534	2447	2453	2447
query89	501	378	401	378
query90	2149	195	191	191
query91	130	101	97	97
query92	62	51	51	51
query93	3697	513	495	495
query94	1449	291	298	291
query95	406	319	323	319
query96	594	277	284	277
query97	3254	3024	3028	3024
query98	223	205	198	198
query99	1569	1254	1260	1254
Total cold run time: 286688 ms
Total hot run time: 174022 ms

@doris-robot
Copy link

ClickBench: Total hot run time: 30.4 s
machine: 'aliyun_ecs.c7a.8xlarge_32C64G'
scripts: https://github.com/apache/doris/tree/master/tools/clickbench-tools
ClickBench test result on commit 2398c5f4da1555dd74ffd3b3b091e117506e4065, data reload: false

query1	0.04	0.03	0.03
query2	0.08	0.04	0.04
query3	0.22	0.05	0.06
query4	1.67	0.09	0.08
query5	0.50	0.51	0.50
query6	1.13	0.73	0.73
query7	0.02	0.01	0.02
query8	0.06	0.04	0.04
query9	0.53	0.49	0.50
query10	0.54	0.55	0.55
query11	0.14	0.11	0.11
query12	0.15	0.12	0.13
query13	0.60	0.59	0.58
query14	0.76	0.79	0.75
query15	0.85	0.82	0.81
query16	0.36	0.36	0.36
query17	0.99	0.95	0.93
query18	0.23	0.22	0.21
query19	1.75	1.70	1.76
query20	0.01	0.00	0.00
query21	15.40	0.76	0.66
query22	4.13	7.97	1.72
query23	18.28	1.36	1.35
query24	2.09	0.26	0.22
query25	0.15	0.08	0.08
query26	0.30	0.21	0.22
query27	0.45	0.23	0.23
query28	13.20	1.02	1.00
query29	12.64	3.23	3.27
query30	0.25	0.06	0.05
query31	2.88	0.39	0.39
query32	3.26	0.47	0.48
query33	2.88	2.89	2.90
query34	17.00	4.34	4.39
query35	4.46	4.46	4.42
query36	0.65	0.46	0.49
query37	0.18	0.16	0.15
query38	0.15	0.16	0.15
query39	0.04	0.04	0.04
query40	0.16	0.12	0.14
query41	0.09	0.05	0.04
query42	0.06	0.05	0.05
query43	0.05	0.04	0.04
Total cold run time: 109.38 s
Total hot run time: 30.4 s

@seawinde
Copy link
Contributor Author

run buildall

@doris-robot
Copy link

TPC-H: Total hot run time: 39745 ms
machine: 'aliyun_ecs.c7a.8xlarge_32C64G'
scripts: https://github.com/apache/doris/tree/master/tools/tpch-tools
Tpch sf100 test result on commit 694f8cd0b4ec05e5416af7239f64381fb08294c1, data reload: false

------ Round 1 ----------------------------------
q1	17619	4444	4270	4270
q2	2003	190	185	185
q3	10455	1182	1172	1172
q4	10180	830	805	805
q5	7534	2692	2601	2601
q6	224	140	145	140
q7	967	596	605	596
q8	9224	2057	2049	2049
q9	8760	6599	6570	6570
q10	8844	3751	3842	3751
q11	478	231	237	231
q12	462	225	234	225
q13	17785	3029	2983	2983
q14	297	232	242	232
q15	523	487	495	487
q16	503	378	372	372
q17	961	647	649	647
q18	8054	7391	7343	7343
q19	5534	1303	1334	1303
q20	675	332	322	322
q21	4955	3176	3234	3176
q22	332	285	291	285
Total cold run time: 116369 ms
Total hot run time: 39745 ms

----- Round 2, with runtime_filter_mode=off -----
q1	4436	4279	4247	4247
q2	384	264	276	264
q3	2997	2739	2857	2739
q4	1990	1702	1702	1702
q5	5678	5834	5496	5496
q6	228	138	139	138
q7	2162	1824	1833	1824
q8	3267	3382	3383	3382
q9	8818	8837	8930	8837
q10	4074	3842	3825	3825
q11	599	489	482	482
q12	800	675	642	642
q13	17317	3233	3208	3208
q14	319	301	295	295
q15	532	489	474	474
q16	497	437	424	424
q17	1791	1567	1515	1515
q18	8028	7887	7858	7858
q19	1954	1504	1566	1504
q20	2164	1914	1873	1873
q21	5023	4953	4880	4880
q22	595	486	513	486
Total cold run time: 73653 ms
Total hot run time: 56095 ms

@doris-robot
Copy link

TPC-DS: Total hot run time: 174339 ms
machine: 'aliyun_ecs.c7a.8xlarge_32C64G'
scripts: https://github.com/apache/doris/tree/master/tools/tpcds-tools
TPC-DS sf100 test result on commit 694f8cd0b4ec05e5416af7239f64381fb08294c1, data reload: false

query1	909	364	364	364
query2	6438	1898	1911	1898
query3	6662	205	215	205
query4	28583	17476	17517	17476
query5	3661	486	471	471
query6	254	185	170	170
query7	4596	284	291	284
query8	236	199	190	190
query9	8738	2414	2380	2380
query10	435	278	264	264
query11	11802	10059	10182	10059
query12	111	82	81	81
query13	1629	362	352	352
query14	10334	7599	7530	7530
query15	217	166	169	166
query16	7703	450	477	450
query17	1390	566	514	514
query18	1912	267	263	263
query19	190	141	143	141
query20	86	95	80	80
query21	203	133	124	124
query22	4482	4149	4037	4037
query23	33846	33644	33602	33602
query24	11089	2924	2905	2905
query25	639	422	374	374
query26	1148	144	151	144
query27	3001	270	270	270
query28	7363	2030	2038	2030
query29	908	643	640	640
query30	250	150	150	150
query31	981	774	750	750
query32	99	53	53	53
query33	745	334	319	319
query34	990	488	483	483
query35	894	765	759	759
query36	1186	995	984	984
query37	156	80	84	80
query38	2975	2891	2774	2774
query39	944	859	835	835
query40	197	114	119	114
query41	45	43	42	42
query42	118	96	100	96
query43	521	469	475	469
query44	1228	751	721	721
query45	190	161	159	159
query46	1093	745	742	742
query47	1806	1747	1780	1747
query48	377	278	277	277
query49	875	403	407	403
query50	771	382	385	382
query51	6695	6655	6674	6655
query52	109	85	93	85
query53	360	292	281	281
query54	865	438	436	436
query55	76	74	75	74
query56	303	284	280	280
query57	1122	1061	1072	1061
query58	260	272	263	263
query59	2839	2817	2783	2783
query60	318	290	292	290
query61	116	115	114	114
query62	818	652	659	652
query63	323	299	289	289
query64	9562	2341	1675	1675
query65	3145	3103	3111	3103
query66	741	324	318	318
query67	15477	15017	15167	15017
query68	4851	527	516	516
query69	729	453	358	358
query70	1212	1163	1043	1043
query71	466	281	275	275
query72	7684	5837	5819	5819
query73	763	323	317	317
query74	6348	5644	5620	5620
query75	4254	2735	2705	2705
query76	3518	1011	1009	1009
query77	641	317	308	308
query78	9678	8998	8991	8991
query79	3159	512	511	511
query80	2467	473	464	464
query81	591	222	216	216
query82	1286	143	137	137
query83	291	174	164	164
query84	280	101	87	87
query85	1476	315	292	292
query86	470	332	326	326
query87	3316	3132	3134	3132
query88	4661	2359	2361	2359
query89	501	380	367	367
query90	1750	186	186	186
query91	132	99	110	99
query92	68	49	48	48
query93	4002	492	494	492
query94	1097	299	296	296
query95	456	307	317	307
query96	599	263	264	263
query97	3212	3053	3011	3011
query98	231	202	193	193
query99	1542	1249	1257	1249
Total cold run time: 289866 ms
Total hot run time: 174339 ms

@doris-robot
Copy link

ClickBench: Total hot run time: 30.58 s
machine: 'aliyun_ecs.c7a.8xlarge_32C64G'
scripts: https://github.com/apache/doris/tree/master/tools/clickbench-tools
ClickBench test result on commit 694f8cd0b4ec05e5416af7239f64381fb08294c1, data reload: false

query1	0.04	0.03	0.03
query2	0.07	0.04	0.04
query3	0.23	0.05	0.05
query4	1.67	0.07	0.07
query5	0.51	0.50	0.48
query6	1.14	0.73	0.73
query7	0.02	0.01	0.01
query8	0.05	0.04	0.04
query9	0.55	0.50	0.49
query10	0.55	0.54	0.54
query11	0.15	0.10	0.11
query12	0.14	0.12	0.12
query13	0.58	0.59	0.59
query14	0.74	0.79	0.81
query15	0.84	0.81	0.81
query16	0.36	0.37	0.38
query17	0.97	0.95	1.01
query18	0.22	0.20	0.22
query19	1.80	1.72	1.72
query20	0.01	0.01	0.00
query21	15.40	0.76	0.65
query22	4.06	7.88	2.00
query23	18.24	1.29	1.29
query24	2.08	0.25	0.23
query25	0.15	0.09	0.09
query26	0.34	0.22	0.23
query27	0.57	0.23	0.23
query28	13.66	1.01	1.01
query29	12.59	3.32	3.28
query30	0.25	0.06	0.05
query31	2.85	0.39	0.38
query32	3.26	0.50	0.46
query33	2.91	2.84	2.86
query34	17.18	4.31	4.42
query35	4.45	4.43	4.37
query36	0.65	0.47	0.46
query37	0.18	0.16	0.16
query38	0.15	0.15	0.15
query39	0.04	0.04	0.03
query40	0.15	0.12	0.11
query41	0.09	0.04	0.05
query42	0.06	0.05	0.05
query43	0.04	0.04	0.04
Total cold run time: 109.99 s
Total hot run time: 30.58 s

@seawinde
Copy link
Contributor Author

run buildall

@doris-robot
Copy link

TPC-H: Total hot run time: 40281 ms
machine: 'aliyun_ecs.c7a.8xlarge_32C64G'
scripts: https://github.com/apache/doris/tree/master/tools/tpch-tools
Tpch sf100 test result on commit 5be359fc91289c5302af0b20f4eb26179dacf9f0, data reload: false

------ Round 1 ----------------------------------
q1	17776	4664	4422	4422
q2	2626	199	194	194
q3	10755	1322	1169	1169
q4	10537	752	790	752
q5	7866	2720	2695	2695
q6	224	142	141	141
q7	979	624	628	624
q8	9576	2107	2129	2107
q9	8701	6578	6574	6574
q10	8672	3786	3824	3786
q11	484	241	241	241
q12	391	230	226	226
q13	18741	2983	2989	2983
q14	296	241	234	234
q15	519	484	493	484
q16	506	402	376	376
q17	963	714	707	707
q18	8015	7510	7452	7452
q19	7025	1393	1376	1376
q20	693	317	345	317
q21	4966	3137	3293	3137
q22	345	284	294	284
Total cold run time: 120656 ms
Total hot run time: 40281 ms

----- Round 2, with runtime_filter_mode=off -----
q1	4439	4240	4268	4240
q2	371	273	284	273
q3	3049	2822	2797	2797
q4	1874	1645	1614	1614
q5	5303	5342	5354	5342
q6	222	134	137	134
q7	2159	1749	1741	1741
q8	3181	3346	3337	3337
q9	8495	8379	8384	8379
q10	3960	3740	3717	3717
q11	600	502	485	485
q12	777	641	618	618
q13	16389	2995	3003	2995
q14	305	272	280	272
q15	515	486	478	478
q16	484	436	423	423
q17	1771	1465	1471	1465
q18	7597	7604	7354	7354
q19	1656	1500	1492	1492
q20	1966	1783	1776	1776
q21	4920	4731	4695	4695
q22	569	532	511	511
Total cold run time: 70602 ms
Total hot run time: 54138 ms

@doris-robot
Copy link

TPC-DS: Total hot run time: 173736 ms
machine: 'aliyun_ecs.c7a.8xlarge_32C64G'
scripts: https://github.com/apache/doris/tree/master/tools/tpcds-tools
TPC-DS sf100 test result on commit 5be359fc91289c5302af0b20f4eb26179dacf9f0, data reload: false

query1	904	380	378	378
query2	6461	2018	1872	1872
query3	6656	213	218	213
query4	28240	17543	17724	17543
query5	4246	473	483	473
query6	268	178	160	160
query7	4588	287	285	285
query8	251	206	200	200
query9	8465	2416	2381	2381
query10	455	323	284	284
query11	12486	10172	10083	10083
query12	133	85	90	85
query13	1654	370	372	370
query14	10364	7975	8003	7975
query15	227	173	171	171
query16	7488	448	471	448
query17	1585	571	529	529
query18	1943	305	276	276
query19	198	151	155	151
query20	92	86	84	84
query21	209	126	128	126
query22	4307	4076	4014	4014
query23	34796	33252	33330	33252
query24	11149	2872	2828	2828
query25	608	394	376	376
query26	1147	155	152	152
query27	2762	283	267	267
query28	7469	1974	1962	1962
query29	858	631	616	616
query30	285	152	148	148
query31	954	734	748	734
query32	100	56	62	56
query33	763	325	354	325
query34	885	478	476	476
query35	843	735	731	731
query36	1120	929	975	929
query37	136	80	80	80
query38	2843	2778	2766	2766
query39	893	814	831	814
query40	205	119	126	119
query41	47	45	49	45
query42	123	101	98	98
query43	517	478	478	478
query44	1195	713	711	711
query45	198	167	160	160
query46	1113	725	718	718
query47	1863	1801	1775	1775
query48	374	296	289	289
query49	1047	420	414	414
query50	794	396	394	394
query51	6845	6706	6610	6610
query52	110	93	98	93
query53	361	298	301	298
query54	925	449	451	449
query55	78	74	77	74
query56	303	269	296	269
query57	1148	1044	1072	1044
query58	260	250	275	250
query59	2969	2739	2665	2665
query60	306	293	290	290
query61	99	95	95	95
query62	797	638	659	638
query63	338	311	306	306
query64	9572	2185	1656	1656
query65	3222	3101	3102	3101
query66	779	331	346	331
query67	15378	14943	15127	14943
query68	4576	528	523	523
query69	461	351	353	351
query70	1181	1133	1130	1130
query71	384	284	286	284
query72	7060	5461	5778	5461
query73	742	321	319	319
query74	6035	5725	5675	5675
query75	3406	2672	2675	2672
query76	2867	922	920	920
query77	504	311	307	307
query78	9614	8928	8983	8928
query79	2898	526	515	515
query80	2488	488	489	488
query81	600	225	227	225
query82	921	142	140	140
query83	306	172	170	170
query84	266	92	88	88
query85	1305	326	403	326
query86	445	322	307	307
query87	3328	3126	3099	3099
query88	4478	2368	2361	2361
query89	474	382	396	382
query90	1809	196	203	196
query91	134	103	100	100
query92	60	52	50	50
query93	2791	492	486	486
query94	1121	282	289	282
query95	411	324	320	320
query96	607	278	272	272
query97	3257	2994	3037	2994
query98	218	201	194	194
query99	1602	1259	1245	1245
Total cold run time: 286146 ms
Total hot run time: 173736 ms

@doris-robot
Copy link

ClickBench: Total hot run time: 30.9 s
machine: 'aliyun_ecs.c7a.8xlarge_32C64G'
scripts: https://github.com/apache/doris/tree/master/tools/clickbench-tools
ClickBench test result on commit 5be359fc91289c5302af0b20f4eb26179dacf9f0, data reload: false

query1	0.04	0.04	0.04
query2	0.08	0.03	0.04
query3	0.22	0.05	0.05
query4	1.67	0.08	0.07
query5	0.49	0.50	0.47
query6	1.14	0.74	0.73
query7	0.02	0.01	0.02
query8	0.05	0.05	0.05
query9	0.54	0.49	0.49
query10	0.55	0.55	0.55
query11	0.16	0.11	0.11
query12	0.15	0.12	0.12
query13	0.60	0.59	0.59
query14	0.78	0.79	0.78
query15	0.85	0.85	0.82
query16	0.38	0.36	0.34
query17	1.00	1.04	1.02
query18	0.22	0.21	0.21
query19	1.74	1.75	1.69
query20	0.02	0.01	0.00
query21	15.41	0.76	0.66
query22	4.37	6.74	2.16
query23	18.29	1.38	1.29
query24	2.09	0.23	0.22
query25	0.17	0.09	0.07
query26	0.29	0.20	0.20
query27	0.46	0.23	0.22
query28	13.61	1.03	1.02
query29	12.89	3.31	3.31
query30	0.25	0.06	0.05
query31	2.86	0.39	0.40
query32	3.27	0.48	0.46
query33	2.92	2.92	2.93
query34	16.93	4.30	4.36
query35	4.44	4.39	4.44
query36	0.65	0.48	0.48
query37	0.19	0.16	0.16
query38	0.15	0.15	0.14
query39	0.04	0.03	0.04
query40	0.16	0.12	0.12
query41	0.10	0.06	0.05
query42	0.06	0.05	0.05
query43	0.05	0.04	0.04
Total cold run time: 110.35 s
Total hot run time: 30.9 s

@morrySnow morrySnow merged commit 7ddb296 into apache:master Jul 24, 2024
26 of 27 checks passed
dataroaring pushed a commit that referenced this pull request Jul 24, 2024
Support variants rewrite by materialized view

Such as the mv def is as following:

CREATE MATERIALIZED VIEW test1 BUILD IMMEDIATE REFRESH AUTO ON MANUAL
DISTRIBUTED BY RANDOM BUCKETS 2
PROPERTIES ('replication_num' = '1') 
as
   SELECT
   id,
   type,
   actor,
   payload,
   payload['pull_request']
   FROM github_events1;

the query following can rewrite successfully and the data is right

  SELECT
  id,
  type,
  floor(cast(actor['id'] as int) + 100.5),
  actor['display_login'],
  payload['pull_request']['id']
  FROM github_events1;
seawinde added a commit to seawinde/doris that referenced this pull request Aug 6, 2024
…#37929)

Support variants rewrite by materialized view

Such as the mv def is as following:

CREATE MATERIALIZED VIEW test1 BUILD IMMEDIATE REFRESH AUTO ON MANUAL
DISTRIBUTED BY RANDOM BUCKETS 2
PROPERTIES ('replication_num' = '1') 
as
   SELECT
   id,
   type,
   actor,
   payload,
   payload['pull_request']
   FROM github_events1;

the query following can rewrite successfully and the data is right

  SELECT
  id,
  type,
  floor(cast(actor['id'] as int) + 100.5),
  actor['display_login'],
  payload['pull_request']['id']
  FROM github_events1;
yiguolei pushed a commit that referenced this pull request Aug 7, 2024
## Proposed changes

pr: #38115
commitId: 2b29288

pr: #38008
commitId: c6b924d

pr: #37929
commitId: d44fcdc
@yiguolei yiguolei mentioned this pull request Sep 5, 2024
3 tasks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
approved Indicates a PR has been approved by one committer. dev/2.1.6-merged dev/3.0.1-merged reviewed
Projects
None yet
Development

Successfully merging this pull request may close these issues.

6 participants