This is an automated email from the ASF dual-hosted git repository.
yiguolei pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/doris.git
The following commit(s) were added to refs/heads/master by this push:
new 0ae449f7328 [ci](perf) integration clickbench test into new
performance pipeline (#29429)
0ae449f7328 is described below
commit 0ae449f7328c26fb0aaa2d9685fe2ea89b32d3ec
Author: Dongyang Li <[email protected]>
AuthorDate: Fri Jan 5 22:29:02 2024 +0800
[ci](perf) integration clickbench test into new performance pipeline
(#29429)
---
.licenserc.yaml | 2 +-
regression-test/pipeline/common/doris-utils.sh | 12 +--
regression-test/pipeline/common/github-utils.sh | 45 ++++++++--
.../performance/clickbench/check-query-result.sh | 32 ++++++++
.../performance/clickbench/conf/be_custom.conf | 21 +++++
.../performance/clickbench/conf/fe_custom.conf | 7 ++
.../clickbench/conf/opt_session_variables.sql | 7 ++
.../performance/clickbench/queries-sort.sql | 43 ++++++++++
.../clickbench/query-result-target/doris-q1.result | 2 +
.../query-result-target/doris-q10.result | 11 +++
.../query-result-target/doris-q11.result | 11 +++
.../query-result-target/doris-q12.result | 11 +++
.../query-result-target/doris-q13.result | 11 +++
.../query-result-target/doris-q14.result | 11 +++
.../query-result-target/doris-q15.result | 11 +++
.../query-result-target/doris-q16.result | 11 +++
.../query-result-target/doris-q17.result | 11 +++
.../query-result-target/doris-q18.result | 11 +++
.../query-result-target/doris-q19.result | 11 +++
.../clickbench/query-result-target/doris-q2.result | 2 +
.../query-result-target/doris-q20.result | 5 ++
.../query-result-target/doris-q21.result | 2 +
.../query-result-target/doris-q22.result | 11 +++
.../query-result-target/doris-q23.result | 11 +++
.../query-result-target/doris-q24.result | 11 +++
.../query-result-target/doris-q25.result | 11 +++
.../query-result-target/doris-q26.result | 11 +++
.../query-result-target/doris-q27.result | 11 +++
.../query-result-target/doris-q28.result | 26 ++++++
.../query-result-target/doris-q29.result | 26 ++++++
.../clickbench/query-result-target/doris-q3.result | 2 +
.../query-result-target/doris-q30.result | 2 +
.../query-result-target/doris-q31.result | 11 +++
.../query-result-target/doris-q32.result | 11 +++
.../query-result-target/doris-q33.result | 11 +++
.../query-result-target/doris-q34.result | 11 +++
.../query-result-target/doris-q35.result | 11 +++
.../query-result-target/doris-q36.result | 11 +++
.../query-result-target/doris-q37.result | 11 +++
.../query-result-target/doris-q38.result | 11 +++
.../query-result-target/doris-q39.result | 11 +++
.../clickbench/query-result-target/doris-q4.result | 2 +
.../query-result-target/doris-q40.result | 11 +++
.../query-result-target/doris-q41.result | 11 +++
.../query-result-target/doris-q42.result | 11 +++
.../query-result-target/doris-q43.result | 11 +++
.../clickbench/query-result-target/doris-q5.result | 2 +
.../clickbench/query-result-target/doris-q6.result | 2 +
.../clickbench/query-result-target/doris-q7.result | 2 +
.../clickbench/query-result-target/doris-q8.result | 19 +++++
.../clickbench/query-result-target/doris-q9.result | 11 +++
regression-test/pipeline/performance/compile.sh | 7 +-
.../pipeline/performance/conf/be_custom.conf | 4 +-
.../pipeline/performance/conf/fe_custom.conf | 5 +-
regression-test/pipeline/performance/deploy.sh | 27 +++---
regression-test/pipeline/performance/prepare.sh | 40 ++++++---
.../pipeline/performance/run-clickbench.sh | 96 ++++++++--------------
regression-test/pipeline/performance/run-load.sh | 60 ++++++++------
regression-test/pipeline/performance/run-tpcds.sh | 19 +++--
regression-test/pipeline/performance/run-tpch.sh | 21 ++---
60 files changed, 717 insertions(+), 155 deletions(-)
diff --git a/.licenserc.yaml b/.licenserc.yaml
index ea761f044f4..3f41200df2e 100644
--- a/.licenserc.yaml
+++ b/.licenserc.yaml
@@ -88,7 +88,7 @@ header:
- "conf/mysql_ssl_default_certificate/client_certificate/client-cert.pem"
- "conf/mysql_ssl_default_certificate/client_certificate/client-key.pem"
- "regression-test/ssl_default_certificate/*"
- - "regression-test/pipeline/performance/conf/session_variables"
+ - "regression-test/pipeline/performance/**"
- "extension/beats/go.mod"
- "extension/beats/go.sum"
- "pytest/hdfs"
diff --git a/regression-test/pipeline/common/doris-utils.sh
b/regression-test/pipeline/common/doris-utils.sh
index f90b9a077ae..f2436a11390 100644
--- a/regression-test/pipeline/common/doris-utils.sh
+++ b/regression-test/pipeline/common/doris-utils.sh
@@ -244,10 +244,6 @@ function check_tpcds_result() {
check_tpch_result "$1"
}
-function check_clickbench_query_result() {
- echo "TODO"
-}
-
function check_clickbench_performance_result() {
result_file="$1"
if [[ -z "${result_file}" ]]; then return 1; fi
@@ -260,10 +256,10 @@ function check_clickbench_performance_result() {
# 单位是秒
cold_run_time_threshold=${cold_run_time_threshold:-200}
hot_run_time_threshold=${hot_run_time_threshold:-55}
- cold_run_sum=$(awk -F ',' '{sum+=$2} END {print sum}' result.csv)
+ cold_run_time=$(awk -F ',' '{sum+=$2} END {print sum}' result.csv)
hot_run_time=$(awk -F ',' '{if($3<$4){sum+=$3}else{sum+=$4}} END {print
sum}' "${result_file}")
if [[ $(echo "${hot_run_time} > ${hot_run_time_threshold}" | bc) -eq 1 ]]
||
- [[ $(echo "${cold_run_sum} > ${cold_run_time_threshold}" | bc) -eq 1
]]; then
+ [[ $(echo "${cold_run_time} > ${cold_run_time_threshold}" | bc) -eq 1
]]; then
echo "ERROR:
cold_run_time ${cold_run_time} is great than the threshold
${cold_run_time_threshold},
or, hot_run_time ${hot_run_time} is great than the threshold
${hot_run_time_threshold}"
@@ -275,10 +271,6 @@ function check_clickbench_performance_result() {
fi
}
-function check_load_performance() {
- echo "TODO"
-}
-
get_session_variable() {
if [[ ! -d "${DORIS_HOME:-}" ]]; then return 1; fi
usage="
diff --git a/regression-test/pipeline/common/github-utils.sh
b/regression-test/pipeline/common/github-utils.sh
index 687d9c589b9..317667d15b2 100644
--- a/regression-test/pipeline/common/github-utils.sh
+++ b/regression-test/pipeline/common/github-utils.sh
@@ -50,36 +50,67 @@ function create_an_issue_comment() {
function create_an_issue_comment_tpch() {
local ISSUE_NUMBER="$1"
- local COMMENT_BODY="$2"
+ local COMMENT_BODY_SUMMARY="$2"
+ local COMMENT_BODY_DETAIL="$3"
local machine='aliyun_ecs.c7a.8xlarge_32C64G'
COMMENT_BODY="
-TPC-H test result on machine: '${machine}', run with scripts in
https://github.com/apache/doris/tree/master/tools/tpch-tools
+<details>
+<summary>TPC-H: <b>${COMMENT_BODY_SUMMARY}</b></summary>
+
\`\`\`
-${COMMENT_BODY}
+machine: '${machine}'
+scripts: https://github.com/apache/doris/tree/master/tools/tpch-tools
+${COMMENT_BODY_DETAIL}
\`\`\`
+</details>
"
create_an_issue_comment "${ISSUE_NUMBER}" "${COMMENT_BODY}"
}
function create_an_issue_comment_tpcds() {
local ISSUE_NUMBER="$1"
- local COMMENT_BODY="$2"
+ local COMMENT_BODY_SUMMARY="$2"
+ local COMMENT_BODY_DETAIL="$3"
local machine='aliyun_ecs.c7a.8xlarge_32C64G'
COMMENT_BODY="
-TPC-DS test result on machine: '${machine}', run with scripts in
https://github.com/apache/doris/tree/master/tools/tpcds-tools
+<details>
+<summary>TPC-DS: <b>${COMMENT_BODY_SUMMARY}</b></summary>
+
\`\`\`
-${COMMENT_BODY}
+machine: '${machine}'
+scripts: https://github.com/apache/doris/tree/master/tools/tpcds-tools
+${COMMENT_BODY_DETAIL}
\`\`\`
+</details>
"
create_an_issue_comment "${ISSUE_NUMBER}" "${COMMENT_BODY}"
}
function create_an_issue_comment_clickbench() {
+ local ISSUE_NUMBER="$1"
+ local COMMENT_BODY_SUMMARY="$2"
+ local COMMENT_BODY_DETAIL="$3"
+ local machine='aliyun_ecs.c7a.8xlarge_32C64G'
+ COMMENT_BODY="
+<details>
+<summary>ClickBench: <b>${COMMENT_BODY_SUMMARY}</b></summary>
+
+\`\`\`
+machine: '${machine}'
+scripts: https://github.com/apache/doris/tree/master/tools/clickbench-tools
+${COMMENT_BODY_DETAIL}
+\`\`\`
+</details>
+"
+ create_an_issue_comment "${ISSUE_NUMBER}" "${COMMENT_BODY}"
+}
+
+function create_an_issue_comment_load() {
local ISSUE_NUMBER="$1"
local COMMENT_BODY="$2"
local machine='aliyun_ecs.c7a.8xlarge_32C64G'
COMMENT_BODY="
-ClickBench test result on machine: '${machine}', run with scripts in
https://github.com/apache/doris/tree/master/tools/clickbench-tools
+Load test result on machine: '${machine}'
\`\`\`
${COMMENT_BODY}
\`\`\`
diff --git
a/regression-test/pipeline/performance/clickbench/check-query-result.sh
b/regression-test/pipeline/performance/clickbench/check-query-result.sh
new file mode 100755
index 00000000000..dec46e8ac6e
--- /dev/null
+++ b/regression-test/pipeline/performance/clickbench/check-query-result.sh
@@ -0,0 +1,32 @@
+#!/bin/bash
+# set -x
+set +e
+
+if [[ ! -d query-result-actual ]]; then mkdir query-result-actual; fi
+
+QUERY_NUM=1
+while read -r query; do
+ echo "query${QUERY_NUM}: ${query}"
+ mysql -h"${host:-127.0.0.1}" -P"${query_port:-9030}" -uroot
-D"${db_name:-clickbench}" -e"${query}"
>"query-result-actual/doris-q${QUERY_NUM}.result"
+ QUERY_NUM=$((QUERY_NUM + 1))
+done <queries-sort.sql
+
+is_ok=true
+for i in {1..43}; do
+ if ! diff -w <(tail -n +2 "query-result-target/doris-q${i}.result") <(tail
-n +2 "query-result-actual/doris-q${i}.result") >/dev/null; then
+ if [[ "${i}" == 4 ]] && [[ $(sed -n '2p'
"query-result-actual/doris-q${i}.result") == '2.528953029'* ]]; then
+ is_ok=true
+ else
+ is_ok=false
+ echo "ERRPR: query_${i} result is error"
+ echo "**** target result
**********************************************"
+ cat "query-result-target/doris-q${i}.result"
+ echo "**** actual result
**********************************************"
+ cat "query-result-actual/doris-q${i}.result"
+ echo
"*****************************************************************"
+ break
+ fi
+ fi
+done
+
+if ${is_ok}; then exit 0; else exit 1; fi
diff --git
a/regression-test/pipeline/performance/clickbench/conf/be_custom.conf
b/regression-test/pipeline/performance/clickbench/conf/be_custom.conf
new file mode 100644
index 00000000000..07f87dcaeb6
--- /dev/null
+++ b/regression-test/pipeline/performance/clickbench/conf/be_custom.conf
@@ -0,0 +1,21 @@
+priority_networks=127.0.0.1/24
+# master branch, branch_name=master
+# branch-2.0 branch, branch_name=branch20
+storage_root_path=/data/doris-storage-${branch_name}
+load_channel_memory_refresh_sleep_time_ms=1000
+soft_mem_limit_frac=1
+track_new_delete=false
+streaming_load_max_mb=102400
+doris_scanner_thread_pool_thread_num=8
+tc_enable_aggressive_memory_decommit=false
+enable_new_scan_node=false
+#mem_limit=100%
+mem_limit=90%
+#write_buffer_size=1609715200
+write_buffer_size=1209715200
+load_process_max_memory_limit_percent=100
+#load_process_soft_mem_limit_percent=80
+disable_auto_compaction=true
+disable_storage_page_cache=false
+disable_chunk_allocator=false
+enable_simdjson_reader = true
diff --git
a/regression-test/pipeline/performance/clickbench/conf/fe_custom.conf
b/regression-test/pipeline/performance/clickbench/conf/fe_custom.conf
new file mode 100644
index 00000000000..b3df52da7f1
--- /dev/null
+++ b/regression-test/pipeline/performance/clickbench/conf/fe_custom.conf
@@ -0,0 +1,7 @@
+priority_networks=127.0.0.1/24
+# master branch, branch_name=master
+# branch-2.0 branch, branch_name=branch20
+meta_dir=/data/doris-meta-${branch_name}
+stream_load_default_timeout_second=3600
+ignore_unknown_metadata_module=true
+enable_full_auto_analyze=false
diff --git
a/regression-test/pipeline/performance/clickbench/conf/opt_session_variables.sql
b/regression-test/pipeline/performance/clickbench/conf/opt_session_variables.sql
new file mode 100644
index 00000000000..6392e20cca4
--- /dev/null
+++
b/regression-test/pipeline/performance/clickbench/conf/opt_session_variables.sql
@@ -0,0 +1,7 @@
+set global exec_mem_limit=34359738368;
+set global parallel_fragment_exec_instance_num=16;
+set global parallel_pipeline_task_num=16;
+set global enable_single_distinct_column_opt=true;
+set global enable_function_pushdown=true;
+set global forbid_unknown_col_stats=false;
+set global runtime_filter_mode=global;
diff --git a/regression-test/pipeline/performance/clickbench/queries-sort.sql
b/regression-test/pipeline/performance/clickbench/queries-sort.sql
new file mode 100644
index 00000000000..221e08b8cf5
--- /dev/null
+++ b/regression-test/pipeline/performance/clickbench/queries-sort.sql
@@ -0,0 +1,43 @@
+SELECT COUNT(*) FROM hits;
+SELECT COUNT(*) FROM hits WHERE AdvEngineID <> 0;
+SELECT SUM(AdvEngineID), COUNT(*), AVG(ResolutionWidth) FROM hits;
+SELECT AVG(UserID) FROM hits;
+SELECT COUNT(DISTINCT UserID) FROM hits;
+SELECT COUNT(DISTINCT SearchPhrase) FROM hits;
+SELECT MIN(EventDate), MAX(EventDate) FROM hits;
+SELECT AdvEngineID, COUNT(*) FROM hits WHERE AdvEngineID <> 0 GROUP BY
AdvEngineID ORDER BY COUNT(*) DESC;
+SELECT RegionID, COUNT(DISTINCT UserID) AS u FROM hits GROUP BY RegionID ORDER
BY u DESC, RegionID LIMIT 10;
+SELECT RegionID, SUM(AdvEngineID), COUNT(*) AS c, AVG(ResolutionWidth),
COUNT(DISTINCT UserID) FROM hits GROUP BY RegionID ORDER BY c DESC,RegionID,
SUM(AdvEngineID),AVG(ResolutionWidth),COUNT(DISTINCT UserID) LIMIT 10;
+SELECT MobilePhoneModel, COUNT(DISTINCT UserID) AS u FROM hits WHERE
MobilePhoneModel <> '' GROUP BY MobilePhoneModel ORDER BY u DESC,
MobilePhoneModel LIMIT 10;
+SELECT MobilePhone, MobilePhoneModel, COUNT(DISTINCT UserID) AS u FROM hits
WHERE MobilePhoneModel <> '' GROUP BY MobilePhone, MobilePhoneModel ORDER BY u
DESC, MobilePhone, MobilePhoneModel LIMIT 10;
+SELECT SearchPhrase, COUNT(*) AS c FROM hits WHERE SearchPhrase <> '' GROUP BY
SearchPhrase ORDER BY c DESC,SearchPhrase LIMIT 10;
+SELECT SearchPhrase, COUNT(DISTINCT UserID) AS u FROM hits WHERE SearchPhrase
<> '' GROUP BY SearchPhrase ORDER BY u DESC,SearchPhrase LIMIT 10;
+SELECT SearchEngineID, SearchPhrase, COUNT(*) AS c FROM hits WHERE
SearchPhrase <> '' GROUP BY SearchEngineID, SearchPhrase ORDER BY c
DESC,SearchEngineID, SearchPhrase LIMIT 10;
+SELECT UserID, COUNT(*) FROM hits GROUP BY UserID ORDER BY COUNT(*)
DESC,UserID LIMIT 10;
+SELECT UserID, SearchPhrase, COUNT(*) FROM hits GROUP BY UserID, SearchPhrase
ORDER BY COUNT(*) DESC,UserID, SearchPhrase LIMIT 10;
+SELECT UserID, SearchPhrase, COUNT(*) FROM hits GROUP BY UserID, SearchPhrase
ORDER BY COUNT(*) ASC,UserID, SearchPhrase LIMIT 10;
+SELECT UserID, extract(minute FROM EventTime) AS m, SearchPhrase, COUNT(*)
FROM hits GROUP BY UserID, m, SearchPhrase ORDER BY COUNT(*) DESC,UserID,
extract(minute FROM EventTime), SearchPhrase LIMIT 10;
+SELECT UserID FROM hits WHERE UserID = 435090932899640449;
+SELECT COUNT(*) FROM hits WHERE URL LIKE '%google%';
+SELECT SearchPhrase, MIN(URL), COUNT(*) AS c FROM hits WHERE URL LIKE
'%google%' AND SearchPhrase <> '' GROUP BY SearchPhrase ORDER BY c
DESC,SearchPhrase, MIN(URL) LIMIT 10;
+SELECT SearchPhrase, MIN(URL), MIN(Title), COUNT(*) AS c, COUNT(DISTINCT
UserID) FROM hits WHERE Title LIKE '%Google%' AND URL NOT LIKE '%.google.%' AND
SearchPhrase <> '' GROUP BY SearchPhrase ORDER BY c DESC,SearchPhrase,
MIN(URL), MIN(Title),COUNT(DISTINCT UserID) LIMIT 10;
+SELECT
WatchID,JavaEnable,Title,GoodEvent,EventTime,EventDate,CounterID,ClientIP,RegionID,UserID,CounterClass,OS,UserAgent,URL,Referer,IsRefresh,RefererCategoryID,RefererRegionID,URLCategoryID,URLRegionID,ResolutionWidth,ResolutionHeight,ResolutionDepth,FlashMajor,FlashMinor,FlashMinor2,NetMajor,NetMinor,UserAgentMajor,UserAgentMinor,CookieEnable,JavascriptEnable,IsMobile,MobilePhone,MobilePhoneModel,Params,IPNetworkID,TraficSourceID,SearchEngineID,SearchPhrase,AdvEngineID,IsArtifical,Wi
[...]
+SELECT SearchPhrase FROM hits WHERE SearchPhrase <> '' ORDER BY
EventTime,SearchPhrase DESC LIMIT 10;
+SELECT SearchPhrase FROM hits WHERE SearchPhrase <> '' ORDER BY SearchPhrase
LIMIT 10;
+SELECT SearchPhrase FROM hits WHERE SearchPhrase <> '' ORDER BY EventTime,
SearchPhrase LIMIT 10;
+SELECT CounterID, AVG(length(URL)) AS l, COUNT(*) AS c FROM hits WHERE URL <>
'' GROUP BY CounterID HAVING COUNT(*) > 100000 ORDER BY l DESC,CounterID,c
LIMIT 25;
+SELECT REGEXP_REPLACE(Referer, '^https?://(?:www\.)?([^/]+)/.*$', '\\1') AS k,
AVG(length(Referer)) AS l, COUNT(*) AS c, MIN(Referer) FROM hits WHERE Referer
<> '' GROUP BY k HAVING COUNT(*) > 100000 ORDER BY l DESC,k,c LIMIT 25;
+SELECT SUM(ResolutionWidth), SUM(ResolutionWidth + 1), SUM(ResolutionWidth +
2), SUM(ResolutionWidth + 3), SUM(ResolutionWidth + 4), SUM(ResolutionWidth +
5), SUM(ResolutionWidth + 6), SUM(ResolutionWidth + 7), SUM(ResolutionWidth +
8), SUM(ResolutionWidth + 9), SUM(ResolutionWidth + 10), SUM(ResolutionWidth +
11), SUM(ResolutionWidth + 12), SUM(ResolutionWidth + 13), SUM(ResolutionWidth
+ 14), SUM(ResolutionWidth + 15), SUM(ResolutionWidth + 16),
SUM(ResolutionWidth + 17), SUM(Resolutio [...]
+SELECT SearchEngineID, ClientIP, COUNT(*) AS c, SUM(IsRefresh),
AVG(ResolutionWidth) FROM hits WHERE SearchPhrase <> '' GROUP BY
SearchEngineID, ClientIP ORDER BY c DESC,SearchEngineID,
ClientIP,SUM(IsRefresh), AVG(ResolutionWidth) LIMIT 10;
+SELECT WatchID, ClientIP, COUNT(*) AS c, SUM(IsRefresh), AVG(ResolutionWidth)
FROM hits WHERE SearchPhrase <> '' GROUP BY WatchID, ClientIP ORDER BY c
DESC,WatchID, ClientIP,SUM(IsRefresh), AVG(ResolutionWidth) LIMIT 10;
+SELECT WatchID, ClientIP, COUNT(*) AS c, SUM(IsRefresh), AVG(ResolutionWidth)
FROM hits GROUP BY WatchID, ClientIP ORDER BY c DESC,WatchID,
ClientIP,SUM(IsRefresh), AVG(ResolutionWidth) LIMIT 10;
+SELECT URL, COUNT(*) AS c FROM hits GROUP BY URL ORDER BY c DESC,URL LIMIT 10;
+SELECT 1, URL, COUNT(*) AS c FROM hits GROUP BY 1, URL ORDER BY c DESC,URL
LIMIT 10;
+SELECT ClientIP, ClientIP - 1, ClientIP - 2, ClientIP - 3, COUNT(*) AS c FROM
hits GROUP BY ClientIP, ClientIP - 1, ClientIP - 2, ClientIP - 3 ORDER BY c
DESC LIMIT 10;
+SELECT URL, COUNT(*) AS PageViews FROM hits WHERE CounterID = 62 AND EventDate
>= '2013-07-01' AND EventDate <= '2013-07-31' AND DontCountHits = 0 AND
IsRefresh = 0 AND URL <> '' GROUP BY URL ORDER BY PageViews DESC,URL LIMIT 10;
+SELECT Title, COUNT(*) AS PageViews FROM hits WHERE CounterID = 62 AND
EventDate >= '2013-07-01' AND EventDate <= '2013-07-31' AND DontCountHits = 0
AND IsRefresh = 0 AND Title <> '' GROUP BY Title ORDER BY PageViews DESC,Title
LIMIT 10;
+SELECT URL, COUNT(*) AS PageViews FROM hits WHERE CounterID = 62 AND EventDate
>= '2013-07-01' AND EventDate <= '2013-07-31' AND IsRefresh = 0 AND IsLink <> 0
AND IsDownload = 0 GROUP BY URL ORDER BY PageViews DESC,URL LIMIT 10 OFFSET
1000;
+SELECT TraficSourceID, SearchEngineID, AdvEngineID, CASE WHEN (SearchEngineID
= 0 AND AdvEngineID = 0) THEN Referer ELSE '' END AS Src, URL AS Dst, COUNT(*)
AS PageViews FROM hits WHERE CounterID = 62 AND EventDate >= '2013-07-01' AND
EventDate <= '2013-07-31' AND IsRefresh = 0 GROUP BY TraficSourceID,
SearchEngineID, AdvEngineID, Src, Dst ORDER BY PageViews DESC,TraficSourceID,
SearchEngineID, AdvEngineID, Src, Dst LIMIT 10 OFFSET 1000;
+SELECT URLHash, EventDate, COUNT(*) AS PageViews FROM hits WHERE CounterID =
62 AND EventDate >= '2013-07-01' AND EventDate <= '2013-07-31' AND IsRefresh =
0 AND TraficSourceID IN (-1, 6) AND RefererHash = 3594120000172545465 GROUP BY
URLHash, EventDate ORDER BY PageViews DESC,URLHash, EventDate LIMIT 10 OFFSET
100;
+SELECT WindowClientWidth, WindowClientHeight, COUNT(*) AS PageViews FROM hits
WHERE CounterID = 62 AND EventDate >= '2013-07-01' AND EventDate <=
'2013-07-31' AND IsRefresh = 0 AND DontCountHits = 0 AND URLHash =
2868770270353813622 GROUP BY WindowClientWidth, WindowClientHeight ORDER BY
PageViews DESC,WindowClientWidth, WindowClientHeight LIMIT 10 OFFSET 10000;
+SELECT DATE_FORMAT(EventTime, '%Y-%m-%d %H:%i:00') AS M, COUNT(*) AS PageViews
FROM hits WHERE CounterID = 62 AND EventDate >= '2013-07-14' AND EventDate <=
'2013-07-15' AND IsRefresh = 0 AND DontCountHits = 0 GROUP BY
DATE_FORMAT(EventTime, '%Y-%m-%d %H:%i:00') ORDER BY DATE_FORMAT(EventTime,
'%Y-%m-%d %H:%i:00'),PageViews LIMIT 10 OFFSET 1000;
diff --git
a/regression-test/pipeline/performance/clickbench/query-result-target/doris-q1.result
b/regression-test/pipeline/performance/clickbench/query-result-target/doris-q1.result
new file mode 100644
index 00000000000..1891f04fe00
--- /dev/null
+++
b/regression-test/pipeline/performance/clickbench/query-result-target/doris-q1.result
@@ -0,0 +1,2 @@
+count(*)
+99997497
diff --git
a/regression-test/pipeline/performance/clickbench/query-result-target/doris-q10.result
b/regression-test/pipeline/performance/clickbench/query-result-target/doris-q10.result
new file mode 100644
index 00000000000..ce94e92746c
--- /dev/null
+++
b/regression-test/pipeline/performance/clickbench/query-result-target/doris-q10.result
@@ -0,0 +1,11 @@
+RegionID sum(`AdvEngineID`) c avg(`ResolutionWidth`)
count(DISTINCT `UserID`)
+229 2077656 18295832 1506.0852431307851 2845673
+2 441662 6687587 1479.8386542111527 1081016
+208 285925 4261812 1285.2593246722286 831676
+169 100887 3320229 1465.9073732564832 604583
+32 81498 1843518 1538.0376568061718 216010
+34 161779 1792369 1548.360152401654 299479
+184 55526 1755192 1506.8082967561384 322661
+42 108820 1542717 1587.1085208758313 243181
+107 120470 1516690 1548.6028970982863 272448
+51 98212 1435578 1579.8860354505293 211505
diff --git
a/regression-test/pipeline/performance/clickbench/query-result-target/doris-q11.result
b/regression-test/pipeline/performance/clickbench/query-result-target/doris-q11.result
new file mode 100644
index 00000000000..6d39c05e960
--- /dev/null
+++
b/regression-test/pipeline/performance/clickbench/query-result-target/doris-q11.result
@@ -0,0 +1,11 @@
+MobilePhoneModel u
+iPad 1090347
+iPhone 45758
+A500 16046
+N8-00 5565
+iPho 3300
+ONE TOUCH 6030A 2759
+GT-P7300B 1907
+3110000 1871
+GT-I9500 1598
+eagle75 1492
diff --git
a/regression-test/pipeline/performance/clickbench/query-result-target/doris-q12.result
b/regression-test/pipeline/performance/clickbench/query-result-target/doris-q12.result
new file mode 100644
index 00000000000..727e1a4329d
--- /dev/null
+++
b/regression-test/pipeline/performance/clickbench/query-result-target/doris-q12.result
@@ -0,0 +1,11 @@
+MobilePhone MobilePhoneModel u
+1 iPad 931038
+5 iPad 48385
+6 iPad 29710
+7 iPad 28391
+118 A500 16005
+6 iPhone 14516
+26 iPhone 13566
+10 iPad 11433
+32 iPad 9503
+13 iPad 9417
diff --git
a/regression-test/pipeline/performance/clickbench/query-result-target/doris-q13.result
b/regression-test/pipeline/performance/clickbench/query-result-target/doris-q13.result
new file mode 100644
index 00000000000..7d4cb5d5a47
--- /dev/null
+++
b/regression-test/pipeline/performance/clickbench/query-result-target/doris-q13.result
@@ -0,0 +1,11 @@
+SearchPhrase c
+карелки 70263
+албатрутдин 34675
+смотреть онлайн 24580
+смотреть онлайн бесплатно 21647
+смотреть 19707
+мангу в зарабей грама 19195
+дружке помещение 17284
+galaxy table 16746
+экзоидные 16620
+сколько мытищи 12317
diff --git
a/regression-test/pipeline/performance/clickbench/query-result-target/doris-q14.result
b/regression-test/pipeline/performance/clickbench/query-result-target/doris-q14.result
new file mode 100644
index 00000000000..0cd4e5f4e09
--- /dev/null
+++
b/regression-test/pipeline/performance/clickbench/query-result-target/doris-q14.result
@@ -0,0 +1,11 @@
+SearchPhrase u
+карелки 23673
+смотреть онлайн 19747
+албатрутдин 18394
+смотреть онлайн бесплатно 17553
+смотреть 14603
+экзоидные 14529
+мангу в зарабей грама 14198
+сколько мытищи 9007
+дружке помещение 8792
+комбинирование смотреть 7572
diff --git
a/regression-test/pipeline/performance/clickbench/query-result-target/doris-q15.result
b/regression-test/pipeline/performance/clickbench/query-result-target/doris-q15.result
new file mode 100644
index 00000000000..eca77cb9205
--- /dev/null
+++
b/regression-test/pipeline/performance/clickbench/query-result-target/doris-q15.result
@@ -0,0 +1,11 @@
+SearchEngineID SearchPhrase c
+2 карелки 46258
+2 мангу в зарабей грама 18871
+2 смотреть онлайн 16905
+3 албатрутдин 16748
+2 смотреть онлайн бесплатно 14909
+2 албатрутдин 13716
+2 экзоидные 13414
+2 смотреть 13108
+3 карелки 12815
+2 дружке помещение 11946
diff --git
a/regression-test/pipeline/performance/clickbench/query-result-target/doris-q16.result
b/regression-test/pipeline/performance/clickbench/query-result-target/doris-q16.result
new file mode 100644
index 00000000000..686f5e81aa7
--- /dev/null
+++
b/regression-test/pipeline/performance/clickbench/query-result-target/doris-q16.result
@@ -0,0 +1,11 @@
+UserID count(*)
+1313338681122956954 29097
+1907779576417363396 25333
+2305303682471783379 10597
+7982623143712728547 7584
+6018350421959114808 6678
+7280399273658728997 6411
+1090981537032625727 6197
+5730251990344211405 6019
+835157184735512989 5211
+770542365400669095 4906
diff --git
a/regression-test/pipeline/performance/clickbench/query-result-target/doris-q17.result
b/regression-test/pipeline/performance/clickbench/query-result-target/doris-q17.result
new file mode 100644
index 00000000000..65c303deab5
--- /dev/null
+++
b/regression-test/pipeline/performance/clickbench/query-result-target/doris-q17.result
@@ -0,0 +1,11 @@
+UserID SearchPhrase count(*)
+1313338681122956954 29097
+1907779576417363396 25333
+2305303682471783379 10597
+7982623143712728547 6669
+7280399273658728997 6408
+1090981537032625727 6196
+5730251990344211405 6019
+6018350421959114808 5990
+835157184735512989 5209
+770542365400669095 4906
diff --git
a/regression-test/pipeline/performance/clickbench/query-result-target/doris-q18.result
b/regression-test/pipeline/performance/clickbench/query-result-target/doris-q18.result
new file mode 100644
index 00000000000..82ffbe4d38e
--- /dev/null
+++
b/regression-test/pipeline/performance/clickbench/query-result-target/doris-q18.result
@@ -0,0 +1,11 @@
+UserID SearchPhrase count(*)
+-9223360918607336854 1
+-9223360918607336854 мультики в театр по полтава психолодильное животный
дома 1
+-9223346024853429862 1
+-9223344277659414581 1
+-9223308501352264398 фэс серии охорис интернет водительсинка 1.5 гостин 2
серии форту в красноярск 1
+-9223274299909755627 люкс ижевском 1
+-9223260604755921098 бэу бесплатно 1
+-9223260604755921098 лифт выжигания белокуринфо 1
+-9223260604755921098 лифтов большие кедро заполиров 1
+-9223260604755921098 марина газоприместации 1
diff --git
a/regression-test/pipeline/performance/clickbench/query-result-target/doris-q19.result
b/regression-test/pipeline/performance/clickbench/query-result-target/doris-q19.result
new file mode 100644
index 00000000000..bf9c244d9e0
--- /dev/null
+++
b/regression-test/pipeline/performance/clickbench/query-result-target/doris-q19.result
@@ -0,0 +1,11 @@
+UserID m SearchPhrase count(*)
+1313338681122956954 31 589
+1313338681122956954 28 578
+1313338681122956954 29 572
+1313338681122956954 33 567
+1313338681122956954 27 557
+1313338681122956954 32 554
+1313338681122956954 30 552
+1313338681122956954 34 546
+1313338681122956954 26 540
+1313338681122956954 10 539
diff --git
a/regression-test/pipeline/performance/clickbench/query-result-target/doris-q2.result
b/regression-test/pipeline/performance/clickbench/query-result-target/doris-q2.result
new file mode 100644
index 00000000000..5823f4396a5
--- /dev/null
+++
b/regression-test/pipeline/performance/clickbench/query-result-target/doris-q2.result
@@ -0,0 +1,2 @@
+count(*)
+630500
diff --git
a/regression-test/pipeline/performance/clickbench/query-result-target/doris-q20.result
b/regression-test/pipeline/performance/clickbench/query-result-target/doris-q20.result
new file mode 100644
index 00000000000..eeb65cd730e
--- /dev/null
+++
b/regression-test/pipeline/performance/clickbench/query-result-target/doris-q20.result
@@ -0,0 +1,5 @@
+UserID
+435090932899640449
+435090932899640449
+435090932899640449
+435090932899640449
diff --git
a/regression-test/pipeline/performance/clickbench/query-result-target/doris-q21.result
b/regression-test/pipeline/performance/clickbench/query-result-target/doris-q21.result
new file mode 100644
index 00000000000..fba96700a59
--- /dev/null
+++
b/regression-test/pipeline/performance/clickbench/query-result-target/doris-q21.result
@@ -0,0 +1,2 @@
+count(*)
+15911
diff --git
a/regression-test/pipeline/performance/clickbench/query-result-target/doris-q22.result
b/regression-test/pipeline/performance/clickbench/query-result-target/doris-q22.result
new file mode 100644
index 00000000000..7a1f0206af8
--- /dev/null
+++
b/regression-test/pipeline/performance/clickbench/query-result-target/doris-q22.result
@@ -0,0 +1,11 @@
+SearchPhrase min(`URL`) c
+прокур горбуши http://smeshariki.ru/googleTBR%26ad 60
+римском качественны for cry http:%2F%2Fwwww.googlead&aktional 24
+стоит похуден
http://smeshariki.ru/index.ua/doc/22229/googlead%26aktion=2&input_bdsmpeople.ru/real-estate=0&state=2013070519381
23
+испанч боб новости дейская
http://smeshariki.ru/recipes/show/6840872&trafkey=6d0fc12c54059/loukhaAUXI&where=all&filter/Mitsubishi/google
21
+прокур готовки видеоэндоменя http://smeshariki.ru/googleTBR%26ad 14
+прокур гипоаллеры http://smeshariki.ru/googleTBR%26ad 11
+камедицинск автомобильних условодки на в крем
http://video.yandex.php?com=google.ru/arts/searchAutoSearch 9
+универ 11.6/1366x768/4096mb ddressary of thing
http://smeshariki.ru/index.ua/syllanet.ru/business/hotels.turizm.ru/igooglead%26ar_sliceid%3D1216629/0/&&puid2=15&lo=http
8
+вспомню о названы монстэр
http://tienskaia-moda-zhienskaia-obl.irr.ru/ch/google-c-38208 7
+купить трудовані резюме мертный дина кабинский лежит заднее устан
http://video.yandex.php?com=google.ru/arts/searchAutoSearch 7
diff --git
a/regression-test/pipeline/performance/clickbench/query-result-target/doris-q23.result
b/regression-test/pipeline/performance/clickbench/query-result-target/doris-q23.result
new file mode 100644
index 00000000000..93f79b17291
--- /dev/null
+++
b/regression-test/pipeline/performance/clickbench/query-result-target/doris-q23.result
@@ -0,0 +1,11 @@
+SearchPhrase min(`URL`) min(`Title`) c count(DISTINCT `UserID`)
+винки медведь смотреть фильмы 2013 смотреть
http://smeshariki.ru/a-folder-4/#page-3.2.1; WOW64;
Edition=1&input_action=2011/page_type=profiles/88436/currency
видеорегионалу Google 801 600
+секретарь оверка все серии порт
http://kinopoisk.ru/a-albums_scroll_to_auto_id=227&option/vacancies/liver.ru/cgi-bin/click.cgi%3Fsid%3D158197%26ad
@дневники Google Player 1.2.5 л, 214 182
+винки медведь смотреть фильмы чеческия
http://smeshariki.ru/a-folder-4/#page-3.2.1; WOW64;
Edition=1&input_action=2013-topy%2Fproduct_price_ot=&price видеорегионалу
Gooddock hotmail Google на толстовая комфорталенны Berlingo по давлений 138
121
+игры для дер блич
http://kinopoisk.ru/a-albums_scroll_to_auto_id=363064472354&lb_id=1559843
Легко на купить автозаврам телась Google Anaissage_599-61 «Оверлок колепный
рецепт: Твери 114 106
+винки медведь смотреть объятный ветерин
http://smeshariki.ru/a-folder-4/#page-3.2.1; WOW64;
Edition=1&input_age17/#page/Jeep,Lexus/rodimomu_vsegoddelki.ru/carbuznyj-90472-0-014031818%26height%3D901634571
видеорегионалу Google - Доставщиков и актрическая 102 85
+кино 2009) смотреть онлайн бессмерти мк в россипед
http://domchelove.ru/#!/search/page Далее о коллекции в GIMI LANCIA
0K3Y318104 продать Google, go-go в регистрии — Мой Крым 90 70
+винки медведь смотреть http://smeshariki.ru/a-folder-4/#page-3.2.1; WOW64;
Edition=1&input_active/?do=showCampState/renatzija-na-brietielkakh%2F&ti=С
видеорегионалу Google - модного языке - Пульс 87 56
+тайны избавитель в владимира для университет масляться
http://smeshariki.ru/a-folder=cars/article=199980150195,0.107736/detail.aspx#location=search?text=asc&maxyear=2001216629%26sob%3D3159&input_who1=1&cid=577&oki=1&op_product_id=25&pvno=2&evlg=VC,2;VL
Амитин обувь - Яндекс.Видео+текст песен Google.com 64 56
+коптимиквиды юриста с роуз рая
https://produkty%2Fpulove.ru/booklyattion-war-sinij-9182/women Легко на
участные участников., Цены - Стильная парнем. Саганрог догадения : Турции,
купить у 10 дне кольные машинки не представки - Новая с избиение спродажа:
котята 2014 г.в. Цена: 47500-10ECO060 – -------- купить квартиру Оренбург
(России Galantrax Flamiliada Google, Nо 18 фотоконверк Супер Кардиган 45
12
+винки медведь смотрейлера начальник
http://smeshariki.ru/a-folder-4/#page-3.2.1; WOW64; Edition=1&input_active/
видеорегионалу Google - модных Челябинск 40 35
diff --git
a/regression-test/pipeline/performance/clickbench/query-result-target/doris-q24.result
b/regression-test/pipeline/performance/clickbench/query-result-target/doris-q24.result
new file mode 100644
index 00000000000..4c7ffb0d1a7
--- /dev/null
+++
b/regression-test/pipeline/performance/clickbench/query-result-target/doris-q24.result
@@ -0,0 +1,11 @@
+WatchID JavaEnable Title GoodEvent EventTime
EventDate CounterID ClientIP RegionID UserID
CounterClass OS UserAgent URL Referer IsRefresh
RefererCategoryID RefererRegionID URLCategoryID URLRegionID
ResolutionWidth ResolutionHeight ResolutionDepth FlashMajor
FlashMinor FlashMinor2 NetMajor NetMinor UserAgentMajor
UserAgentMinor CookieEnable JavascriptEnable IsMobile
MobilePhone MobilePhoneModel Params IPNetworkID TraficSourceID
SearchEngineID SearchPhrase AdvEngineID IsArtifical WindowCli [...]
+7675678523794456216 1 Glavnaya gorand. Цветные объявлений районе,
вером 1 2013-07-01 20:01:09 2013-07-02 64469 1840073959
2 3714843517822510735 0 44 5
http://e96.ru/search/page.googleTBR%26ad%3D0%26rnd%3D158197%26anbietersburg
http://bdsmpeople.ru/obrazom_position/?page 0 13593 158 13606
216 1638 1658 22 15 7 700 0 0 22
nA 1 1 0 0 4005373 -1 0
0 0 1052 775 135 2013-07-02 10:20:22 0
0 0 0 windows 1601 0 0 0 0
213893614 0 0 0 0 0 6 2013-07-02
11:58:11 0 0 0 0 0 1412515749 63522 -1
12 S [...]
0
0 5972490271588207794 1369713899219085694 0
+6147260061318473746 1 Glavnaya gorand. Цветные объявлений районе,
вером 1 2013-07-01 20:01:29 2013-07-02 64469 1840073959
2 3714843517822510735 0 44 5
http://e96.ru/search/page.googleTBR%26ad%3D0%26rnd%3D158197%26anbietersburg
http://bdsmpeople.ru/obrazom_position/?page 0 13593 158 13606
216 1638 1658 22 15 7 700 0 0 22
D� 1 1 0 0 4005373 -1 0
0 0 1052 775 135 2013-07-02 10:20:42 0
0 0 0 windows 1601 0 0 0 0
810892658 0 0 0 0 0 6 2013-07-02
11:58:25 0 0 0 0 0 1412515749 63522 -1
13 S [...]
0
0 5972490271588207794 1369713899219085694 0
+5972689683963797854 1 Glavnaya gorand. Цветные объявлений районе,
вером 1 2013-07-01 20:02:11 2013-07-02 64469 1840073959
2 3714843517822510735 0 44 5
http://e96.ru/search/page.googleTBR%26ad%3D0%26rnd%3D158197%26anbietersburg
http://bdsmpeople.ru/obrazom_position/?page 0 13593 158 13606
216 1638 1658 22 15 7 700 0 0 22
D� 1 1 0 0 4005373 -1 0
0 0 1052 775 135 2013-07-02 10:21:16 0
0 0 0 windows 1601 0 0 0 0
47015096 0 0 0 0 0 6 2013-07-02
11:58:50 0 0 0 0 0 1412515749 63522 -1
13 S0 [...]
0
0 5972490271588207794 1369713899219085694 0
+8008688361303225116 1 Скачать онлайн играй! - Туризма - Крымский
тренчкоты в интернет магазин Wildberries.ru (Работа - IRR.ru - модных
словариумных 1 2013-07-01 20:12:01 2013-07-02 63217
1975817788 229 804133623150786791 1 44 7
http://bjdswaps.google-photo http://loveche.html?ctid 0 12409
20 10093 22 1749 867 23 15 3 700.224 0
0 15 D� 1 1 0 0 3056753
-1 0 0 0 1608 662 135 2013-07-02
06:19:55 4 1 16561 0 windows 1 0 0 0
5347008031302181363 766531830 0 0 0 0
0 5 2013-07-02 12:00:25 31 [...]
0
0 -2736470446903004689 7116991598850737408 0
+7436461208655480623 1 Компании Вино в хорошие 1 2013-07-01
20:32:24 2013-07-02 35534 1741555497 39
7082047337377160280 0 44 5
http://rsdn.ru/catalog/cifrovye-advertisement=little&category=22&input_bdsmpeople.ru/index,google.ru/news/39826
http://kalina?block/?inst_the_book.php?cPath=40_57470493958402/ 0 10634
20 0 0 1996 1781 37 15 7 700 0
0 22 D� 1 1 0 0 808950
5 0 0 0 1261 1017 433 2013-07-02
19:03:12 4 1 16561 0 windows-1251;charset 1601 1
0 0 6804199628189316872 626511463 0 0
0 1 [...]
0
0 8931346360692564721 1971436513446935197 0
+5564518777317455184 0 «set» в пробег аппах и обслуживатизиров 1
2013-07-01 20:44:29 2013-07-02 5822 1920787234 32
3712346975274085073 1 2 3
http://auto_gruppy/christikha/hotel=-1&trafkey=605&from=&power_name=Платья&produkty%2Furl.google.ru/index
http://rmnt.ru/cars/passenger/hellardous/42/~37/?suggest&id=3869551753&custom=0&undefined/undefined/under=28036,5;362;108;16762643539
0 8563 21482 9822 18528 1638 1658 23 15 7
700 0 0 16 D� 1 1 0 0
207348 -1 0 0 0 1509 733 135
2013-07-02 07:33 [...]
0
0 7820066807630413322 -3258566084785303139 0
+7381524648140977766 1 Ploshchad\\' stolitsi zwy 110911923, Г
официальная Прессы и Огонек 1 2013-07-01 21:01:46 2013-07-02
63217 1638850281 59 1564939829982760596 1 44 5
http://bjdleaksbrand=bpc
bonprix%2F12.02&he=1024&location=pm;f=inbox;pmsg_1733/page.google
http://loveplanet.ru/url?sa=t&rct 0 12409 20 10093 22
1996 1666 37 15 7 700 0 0 22 D�
1 1 0 0 2059788 -1 0
0 0 1261 1206 433 2013-07-02 10:04:38 0 0
0 0 windows 1 0 0 0 0
827020970 0 0 0 0 0 5 2013-07-02
18:53:56 0 0 0 0 0 20014 [...]
0
0 1384301141639030267 9047048983006699504 0
+8614832219462424183 1 Модель для сумки - регеш (Россия) 1
2013-07-01 21:19:23 2013-07-02 3035 2022088895 38
2590751384199385434 1 2 88
http://smeshariki.ru/googleTBR%26ar_ntype=citykurortmag
http://holodilnik.ru/GameMain.aspx?color=0&choos&source=web&cd 0 10271
158 13384 216 1917 879 37 15 7 700 0
0 1 D� 1 1 0 0 3991944
-1 0 0 0 746 464 322 2013-07-02
08:44:30 0 0 0 0 windows-1251;charset 1 0
0 0 7607749204513951316 427646581 0 0
0 0 0 5 2013-07-01 23:19:17 50 2 3
0 30 1146019198 -1 [...]
0
0 1157471009075867478 1000799766482180932 0
+7168314068394418899 1 по полиция +опытовой рецензии, 1
2013-07-01 21:22:40 2013-07-02 35534 -1420082055 11579
4822773326251181180 0 2 7
http:%2F%2Fsapozhki-advertime-2/#page.google/dodge
http://saint-peters-total=меньше
100007&text=b.akhua_deckaya-look/time-2/#page=3&oprnd=6817922197946&ei=JtHTUYWRCqXA&bvm=bv.49784469,d.ZWU&cad=rjt&fu=0&type_id=172&msid=1&marka=88&text=krasnaia-moda
0 14550 952 8565 375 1304 978 37 15 4
700.224 2 7 13 D� 1 1 0 0
2675432 3 3 dave kino 2013 года в ростоп [...]
0
0 -4470345086215748575 -5322637665780806659 0
+8235569889353442646 1 1 2013-07-01 21:22:53
2013-07-02 35534 -1420082055 11579 4822773326251181180 0
2 7 http:%2F%2Fsapozhki-advertime-2/#page.google/dodge
0 0 0 8565 375 1304 978 37 15 4
700.224 2 7 13 D� 1 1 0 0
2675432 0 0 0 1 1972 778 135
2013-07-01 21:05:22 4 1 16561 0 windows 1601 0
0 1 6494516778257365839 393719418 0 0
0 1 0 5 2013-07-02 16:28:24 31 2 2
14851 1 -1016483843 61823 -1 2 S0 �\\f
0 318 0 0 0 0 0 0
0 NH 0
0 -296158784638538920
-5322637665780806659 0
diff --git
a/regression-test/pipeline/performance/clickbench/query-result-target/doris-q25.result
b/regression-test/pipeline/performance/clickbench/query-result-target/doris-q25.result
new file mode 100644
index 00000000000..89b52be5e8a
--- /dev/null
+++
b/regression-test/pipeline/performance/clickbench/query-result-target/doris-q25.result
@@ -0,0 +1,11 @@
+SearchPhrase
+фильм небольшой бизнеса североятно
+симптомы регистратов
+ночно китая женщины
+galaxy s4 zoom фильм
+слон.руб., д. а.л. конфигурды по оргатства мультет
+скачать читалию в духовке
+расписание мультиварка для
+отдыха чем прокат
+компьютерапии серия нарий
+брита ганам котлы на шерлок
diff --git
a/regression-test/pipeline/performance/clickbench/query-result-target/doris-q26.result
b/regression-test/pipeline/performance/clickbench/query-result-target/doris-q26.result
new file mode 100644
index 00000000000..e30ee09f4c2
--- /dev/null
+++
b/regression-test/pipeline/performance/clickbench/query-result-target/doris-q26.result
@@ -0,0 +1,11 @@
+SearchPhrase
+ береж
+ за русский стил видео какой
+ завод тандалищные прода
+ заочное по земли в обрезни и метро
+ заочное сад цены нарощения музыка визу
+ зве
+ земные огурцы раб
+ золотой сайт samsung
+ прав
+ светы женске 2 сезон
diff --git
a/regression-test/pipeline/performance/clickbench/query-result-target/doris-q27.result
b/regression-test/pipeline/performance/clickbench/query-result-target/doris-q27.result
new file mode 100644
index 00000000000..12c4e72e9c0
--- /dev/null
+++
b/regression-test/pipeline/performance/clickbench/query-result-target/doris-q27.result
@@ -0,0 +1,11 @@
+SearchPhrase
+galaxy s4 zoom фильм
+ночно китая женщины
+симптомы регистратов
+фильм небольшой бизнеса североятно
+авом констеть ребенка краево
+анапа оперевянные волшебную
+брита ганам котлы на шерлок
+компьютерапии серия нарий
+отдыха чем прокат
+расписание мультиварка для
diff --git
a/regression-test/pipeline/performance/clickbench/query-result-target/doris-q28.result
b/regression-test/pipeline/performance/clickbench/query-result-target/doris-q28.result
new file mode 100644
index 00000000000..80350d269ea
--- /dev/null
+++
b/regression-test/pipeline/performance/clickbench/query-result-target/doris-q28.result
@@ -0,0 +1,26 @@
+CounterID l c
+233773 469.15431297456672 2938865
+245438 271.78534028284895 2510103
+122612 238.63990921114592 3574007
+234004 204.27835414397049 238660
+1634 197.8320354918649 323229
+786 186.75131919553962 120528
+114157 142.91515101105318 216408
+515 126.22661275500828 146907
+256004 125.3675852481615 858171
+95427 120.2673587920044 374306
+199550 109.81342052808459 7115413
+220992 105.85529726210743 494614
+196239 98.348608338370056 163797
+62 93.156611799769692 738150
+96948 92.742474620859241 396093
+188878 91.982019115507157 311998
+249603 91.880066486598793 120325
+3922 87.836801132956708 8527069
+191697 86.9569081691587 124664
+97467 84.294081324612364 131178
+186300 83.971374138539 802561
+146891 77.774166261899339 605286
+38 76.438409122240387 507770
+230962 76.303670304864 169223
+77639 75.384984308614321 253961
diff --git
a/regression-test/pipeline/performance/clickbench/query-result-target/doris-q29.result
b/regression-test/pipeline/performance/clickbench/query-result-target/doris-q29.result
new file mode 100644
index 00000000000..1b8b612d7dd
--- /dev/null
+++
b/regression-test/pipeline/performance/clickbench/query-result-target/doris-q29.result
@@ -0,0 +1,26 @@
+k l c MIN(Referer)
+svpressa.ru 307.97526863099216 242526 http://svpressa.ru/
+msuzie-showforumdisplay 263.32192343919291 183671
http://msuzie-showforumdisplay/63/~2/?name=&cost_neu%3D400%26retpath=default777TWCWkI9lalUwTXpJMU1q
+saint-peters-total=меньше 80 242.52264612008778 200520
http://saint-peters-total=меньше
80/cash/station=search&input_age1=&int[2274/trashbox.ru/details&cad=rjt&fu=0&input_who1=2&input_who1=2&input_city-4400047.html?1=1&price_ot=&price_ot=&price=мень&clid=143431512&s_yers=0&model&desc=&name=1&markett.ru%2Frenazheltyj-95692465&text=поздравстраницу&clid=4405404/menu_29.html&ei=UIX1UZTFNJTI0ci8guSn3tW.pl?cmd=showthreadreplies=978-4121-469171&history47/11/?from=&district
+domics 212.92562880641779 326094 http://domics/825179.11931861234499792
+e96.ru 210.08849973411719 1019246
http://e96.ru/%3Ffrom]=&input_act[count_num=0&dff=arian-carrina1201517&cad=rjt&fu=0&input_state/apartments-sale/list.htm?size=30&input_with_photo-takovo-zuevo-shpilki.ru/real.nn.ru/yandex.ua/searchAuto=on&input_who1=2&input_online.ru/clck/51cbd&ll=&top=http://loveplane=42621/page9
+gadgets.irr.ru 131.95831117211404 349710
https://gadgets.irr.ru/2jmj7l5rSw0yVb
+google.ru 109.23993676876725 2158427 http://google.ru/
+go.mail 108.63789748542318 8227786 http://go.mail/04/detskaia-moda-zhiensmed
+msouz.ru 106.10549947974312 301774 http://msouz.ru/?ffshop
+state=19945206 105.64595424793234 512414
http://state=19945206/foto-4/login%20NoTs3M&where=all&filmId=u8aGGqtWs3M&where=all&server=sc.cheloveplanet.ru/forum.little&categoriya/muzhskaya_istory.com/demii-malchik_148_4055074241537][to]=&input_activalry:
A Love&where=all&text=купить florer&aktion/loansert
перевозобности&site_id=197&text=добавь лазерногорский тайская полупая
автомобильника&v=1414-resp_desyachnyeprague
+loveplanet.ru 104.60110161772997 461140
http://loveplanet.ru/%3Faw_opel/page=2013
+bonprix.ru 104.41555808573025 1125087 http://bonprix.ru/
+novjob.ru 96.753316447323925 133049 http://novjob.ru/
+cn.ru 95.630391016643273 124675
http://cn.ru/GameMain.aspx#catalog/100523&tails.xml?market_pc.html?pid=9403&lr=47&msgid=36305f39386
+geomethiettai.ru 94.7878649320174 115912
https://geomethiettai.ru/GameMain.aspx?group=houses/list=266559j7077&num=7&prune_day=lastdiscussd59394303&price_ot=&priceup&page3/sankt-petushhiblock
+kino 90.275447606522448 120139
http://kino/6/21/2/women.asp?whichpage4/#oversion=unreadm&uid
+yaroslavens.ru 90.171114410690635 124595
http://yaroslavens.ru/main.aspx#catalog%2F1004-1100000147-otvet/actions/dislocal
+mysw.info 89.685400470867364 984566 http://mysw.info/
+m.myloveplanet.ru 88.7325696488195 151546 http://m.myloveplanet.ru/
+povarenok.ru 83.968890699665778 144812 http://povarenok.ru/
+gorod 80.330756448233515 110728 http://gorod/%3Fauto.ria.ua%2Fjob
+yandsearch 80.215351465625886 245970 http://www.yandsearch/rooms=1/page2
+myloveplanet.ru 80.080980629758912 110582
http://myloveplanet.ru/#associety/auto
+tambov.irr.ru 77.871520179628192 315318
http://tambov.irr.ru/0/c1/tgFtaeLDK0yb01A7xvQF08sjCFqQxn51
+kurortmag.ru 75.748930853256383 155264 http://kurortmag.ru/
\ No newline at end of file
diff --git
a/regression-test/pipeline/performance/clickbench/query-result-target/doris-q3.result
b/regression-test/pipeline/performance/clickbench/query-result-target/doris-q3.result
new file mode 100644
index 00000000000..bd34bad0128
--- /dev/null
+++
b/regression-test/pipeline/performance/clickbench/query-result-target/doris-q3.result
@@ -0,0 +1,2 @@
+sum(`AdvEngineID`) count(*) avg(`ResolutionWidth`)
+7280088 99997497 1513.4879349030107
diff --git
a/regression-test/pipeline/performance/clickbench/query-result-target/doris-q30.result
b/regression-test/pipeline/performance/clickbench/query-result-target/doris-q30.result
new file mode 100644
index 00000000000..5e48aa6bab1
--- /dev/null
+++
b/regression-test/pipeline/performance/clickbench/query-result-target/doris-q30.result
@@ -0,0 +1,2 @@
+sum(`ResolutionWidth`) sum(`ResolutionWidth` + 1) sum(`ResolutionWidth` +
2) sum(`ResolutionWidth` + 3) sum(`ResolutionWidth` + 4)
sum(`ResolutionWidth` + 5) sum(`ResolutionWidth` + 6)
sum(`ResolutionWidth` + 7) sum(`ResolutionWidth` + 8)
sum(`ResolutionWidth` + 9) sum(`ResolutionWidth` + 10)
sum(`ResolutionWidth` + 11) sum(`ResolutionWidth` + 12)
sum(`ResolutionWidth` + 13) sum(`ResolutionWidth` + 14)
sum(`ResolutionWidth` + 15) sum(`ResolutionWidth` + 16)
sum(`ResolutionWidth` + 17) su [...]
+151345005230 151445002727 151545000224 151644997721 151744995218
151844992715 151944990212 152044987709 152144985206 152244982703
152344980200 152444977697 152544975194 152644972691 152744970188
152844967685 152944965182 153044962679 153144960176 153244957673
153344955170 153444952667 153544950164 153644947661 153744945158
153844942655 153944940152 154044937649 154144935146 154244932643
154344930140 154444927637 154544925134 154644922631 154744920128
154844917625 154944915122 15504491261 [...]
diff --git
a/regression-test/pipeline/performance/clickbench/query-result-target/doris-q31.result
b/regression-test/pipeline/performance/clickbench/query-result-target/doris-q31.result
new file mode 100644
index 00000000000..ea8efe7f2b7
--- /dev/null
+++
b/regression-test/pipeline/performance/clickbench/query-result-target/doris-q31.result
@@ -0,0 +1,11 @@
+SearchEngineID ClientIP c sum(`IsRefresh`)
avg(`ResolutionWidth`)
+2 1138507705 1633 35 1408.0122473974282
+2 1740861572 1331 28 1577.9459053343351
+2 -807147100 1144 35 1553.1984265734266
+2 -497906719 1140 36 1543.4140350877192
+2 -1945757555 1105 30 1557.387330316742
+2 -1870623097 1102 31 1555.6588021778584
+2 -631062503 1083 31 1581.8171745152354
+2 -465813166 1082 30 1541.2532347504621
+2 -1743596151 1080 24 1559.8092592592593
+2 -1125673878 1058 22 1587
diff --git
a/regression-test/pipeline/performance/clickbench/query-result-target/doris-q32.result
b/regression-test/pipeline/performance/clickbench/query-result-target/doris-q32.result
new file mode 100644
index 00000000000..4aa7e67575f
--- /dev/null
+++
b/regression-test/pipeline/performance/clickbench/query-result-target/doris-q32.result
@@ -0,0 +1,11 @@
+WatchID ClientIP c sum(`IsRefresh`)
avg(`ResolutionWidth`)
+4611686071420045196 1618475002 1 0 1368
+4611686270165580596 1773698398 1 0 1996
+4611686294110223561 1593993174 1 0 1368
+4611686705865451788 -954492450 1 0 548
+4611687123803616825 -1169210775 1 0 1990
+4611687333949199458 2029546627 1 0 1368
+4611687377885419452 286029700 1 0 1990
+4611687393794238663 -1176766019 1 0 1368
+4611687496390261055 77438170 1 0 1638
+4611688027162466482 -1294239990 1 0 1750
diff --git
a/regression-test/pipeline/performance/clickbench/query-result-target/doris-q33.result
b/regression-test/pipeline/performance/clickbench/query-result-target/doris-q33.result
new file mode 100644
index 00000000000..e8b52dce9e4
--- /dev/null
+++
b/regression-test/pipeline/performance/clickbench/query-result-target/doris-q33.result
@@ -0,0 +1,11 @@
+WatchID ClientIP c sum(`IsRefresh`)
avg(`ResolutionWidth`)
+6655575552203051303 1611957945 2 0 1638
+7224410078130478461 -776509581 2 0 1368
+7904046282518428963 1509330109 2 0 1368
+8566928176839891583 -1402644643 2 0 1368
+4611686071420045196 1618475002 1 0 1368
+4611686075276949366 1754185883 1 0 1368
+4611686093393191411 982574472 1 0 1750
+4611686114854231582 813478092 1 0 2038
+4611686133577478679 1628368895 1 0 1638
+4611686211212249819 1575448609 1 0 1917
diff --git
a/regression-test/pipeline/performance/clickbench/query-result-target/doris-q34.result
b/regression-test/pipeline/performance/clickbench/query-result-target/doris-q34.result
new file mode 100644
index 00000000000..7f440019a7d
--- /dev/null
+++
b/regression-test/pipeline/performance/clickbench/query-result-target/doris-q34.result
@@ -0,0 +1,11 @@
+URL c
+http://liver.ru/belgorod/page/1006.jки/доп_приборы 3288173
+http://kinopoisk.ru 1625250
+http://bdsm_po_yers=0&with_video 791465
+http://video.yandex 582400
+http://smeshariki.ru/region 514984
+http://auto_fiat_dlya-bluzki%2F8536.30.18&he=900&with 507995
+http://liver.ru/place_rukodel=365115eb7bbb90 359893
+http://kinopoisk.ru/vladimir.irr.ru 354690
+http://video.yandex.ru/search/?jenre=50&s_yers 318979
+http://tienskaia-moda 289355
diff --git
a/regression-test/pipeline/performance/clickbench/query-result-target/doris-q35.result
b/regression-test/pipeline/performance/clickbench/query-result-target/doris-q35.result
new file mode 100644
index 00000000000..f31fb6921e8
--- /dev/null
+++
b/regression-test/pipeline/performance/clickbench/query-result-target/doris-q35.result
@@ -0,0 +1,11 @@
+1 URL c
+1 http://liver.ru/belgorod/page/1006.jки/доп_приборы 3288173
+1 http://kinopoisk.ru 1625250
+1 http://bdsm_po_yers=0&with_video 791465
+1 http://video.yandex 582400
+1 http://smeshariki.ru/region 514984
+1 http://auto_fiat_dlya-bluzki%2F8536.30.18&he=900&with 507995
+1 http://liver.ru/place_rukodel=365115eb7bbb90 359893
+1 http://kinopoisk.ru/vladimir.irr.ru 354690
+1 http://video.yandex.ru/search/?jenre=50&s_yers 318979
+1 http://tienskaia-moda 289355
diff --git
a/regression-test/pipeline/performance/clickbench/query-result-target/doris-q36.result
b/regression-test/pipeline/performance/clickbench/query-result-target/doris-q36.result
new file mode 100644
index 00000000000..15e5e09df7e
--- /dev/null
+++
b/regression-test/pipeline/performance/clickbench/query-result-target/doris-q36.result
@@ -0,0 +1,11 @@
+ClientIP `ClientIP` - 1 `ClientIP` - 2 `ClientIP` - 3 c
+-39921974 -39921975 -39921976 -39921977 47008
+-1698104457 -1698104458 -1698104459 -1698104460 29121
+-1175819552 -1175819553 -1175819554 -1175819555 25333
+1696638182 1696638181 1696638180 1696638179 20220
+1138507705 1138507704 1138507703 1138507702 15778
+-927025522 -927025523 -927025524 -927025525 12768
+-1262139876 -1262139877 -1262139878 -1262139879 11348
+1740861572 1740861571 1740861570 1740861569 11314
+-807147100 -807147101 -807147102 -807147103 9880
+-631062503 -631062504 -631062505 -631062506 9718
diff --git
a/regression-test/pipeline/performance/clickbench/query-result-target/doris-q37.result
b/regression-test/pipeline/performance/clickbench/query-result-target/doris-q37.result
new file mode 100644
index 00000000000..532a965bfb5
--- /dev/null
+++
b/regression-test/pipeline/performance/clickbench/query-result-target/doris-q37.result
@@ -0,0 +1,11 @@
+URL PageViews
+http://irr.ru/index.php?showalbum/login-leniya7777294,938303130 102341
+http://komme%2F27.0.1453.116 51218
+http://irr.ru/index.php?showalbum/login-kapusta-advert2668]=0&order_by=0
18315
+http://irr.ru/index.php?showalbum/login-kapustic/product_name 16461
+http://irr.ru/index.php 12577
+http://irr.ru/index.php?showalbum/login 10880
+http://komme%2F27.0.1453.116 Safari%2F5.0 (compatible; MSIE 9.0; 7627
+http://irr.ru/index.php?showalbum/login-kupalnik 4369
+http://irr.ru/index.php?showalbum/login-kapusta-advert27256.html_params
4058
+http://komme%2F27.0.1453.116 Safari 3021
diff --git
a/regression-test/pipeline/performance/clickbench/query-result-target/doris-q38.result
b/regression-test/pipeline/performance/clickbench/query-result-target/doris-q38.result
new file mode 100644
index 00000000000..a11e7836e67
--- /dev/null
+++
b/regression-test/pipeline/performance/clickbench/query-result-target/doris-q38.result
@@ -0,0 +1,11 @@
+Title PageViews
+Тест (Россия) - Яндекс 122407
+Шарарай), Выбрать! - обсуждаются на голд: Шоубиз - Свободная историс 82935
+Приморск - IRR.ru 80958
+Брюки New Era H (Асус) 258 общая выплаток, горшечными 39098
+Теплоску на 23123
+Dave and Hotpoint sport – самые вещие 14329
+AUTO.ria.ua ™ - Аппер 14053
+Приморск (Россия) - Яндекс.Видео 13912
+OWAProfessign), продать 10919
+Труси - Шоубиз 10157
diff --git
a/regression-test/pipeline/performance/clickbench/query-result-target/doris-q39.result
b/regression-test/pipeline/performance/clickbench/query-result-target/doris-q39.result
new file mode 100644
index 00000000000..4f4bd842794
--- /dev/null
+++
b/regression-test/pipeline/performance/clickbench/query-result-target/doris-q39.result
@@ -0,0 +1,11 @@
+URL PageViews
+http://afisha.yandex.php?id=1620_4_licanel 2
+http://afisha.yandex.php?np=c5c08969 2
+http://afisha.yandex.php?produkty%2Fproduct_name 2
+http://afisha.yandex.php?r=67628569/page=10275793663866 2
+http://afisha.yandex.php?r=788-78087542037 2
+http://afisha.yandex.php?s=4d450&pid 2
+http://afisha.yandex.php?showbiz/photo=0&is_hot 2
+http://afisha.yandex.php?st1=10&category 2
+http://afisha.yandex.php?t=1331623687778 2
+http://afisha.yandex.php?t=740146/ 2
diff --git
a/regression-test/pipeline/performance/clickbench/query-result-target/doris-q4.result
b/regression-test/pipeline/performance/clickbench/query-result-target/doris-q4.result
new file mode 100644
index 00000000000..75da030bc83
--- /dev/null
+++
b/regression-test/pipeline/performance/clickbench/query-result-target/doris-q4.result
@@ -0,0 +1,2 @@
+avg(`UserID`)
+2.52895302979023e+18
diff --git
a/regression-test/pipeline/performance/clickbench/query-result-target/doris-q40.result
b/regression-test/pipeline/performance/clickbench/query-result-target/doris-q40.result
new file mode 100644
index 00000000000..fa9c3bd5d64
--- /dev/null
+++
b/regression-test/pipeline/performance/clickbench/query-result-target/doris-q40.result
@@ -0,0 +1,11 @@
+TraficSourceID SearchEngineID AdvEngineID Src Dst PageViews
+1 0 0 http://mysw.info/node/215455&text
http://irr.ru/index.php?showalbum/logabass.ru/cation&op_category_id=&auto
15
+1 0 0 http://mysw.info/node/215455&text
http://irr.ru/index.php?showalbum/logabass.ru/cation&op_category_id=0&page9/#1440_S_Mitsubishi/196372
15
+1 0 0 http://mysw.info/node/215455&text
http://irr.ru/index.php?showalbum/logabass.ru/cation&op_category_id=9584%26pz%3D0%26ntype
15
+1 0 0 http://mysw.info/node/215455&text
http://irr.ru/index.php?showalbum/logabass.ru/cation&op_category_id=HOtbySdOiUw&where=all&film/4700
15
+1 0 0 http://mysw.info/node/215455&text
http://irr.ru/index.php?showalbum/login-3284][11]=6625f3634571&state=0&expand_search=0&damagecache/wm/2013&price_do=50000&page/1772,903742726108784&op_uid
15
+1 0 0 http://smeshariki.ru/diary.ru/yandex.ru/credir=1
http://komme%2F27.0.1453.116 15
+1 0 0
http://wildberrifiers?year_detailshop/id_art_type=7&s_yers
http://irr.ru/index.php?showalbum/login 15
+1 0 0 http://yandex.php?city[1]=700003
http://komme%2F27.0.1453.116 15
+1 0 0 http://yandex.ru/search?q=лавпланется монстружка
http://irr.ru/index.php?showalbum/login-kupaljinik-2008-g-v-stroika/photo=on&input_bdsmpeople.ru/image&sr=http://lk.wildberries
15
+1 0 0 http://yandex.ru/search?q=лавпланшеты&source
http://komme%2F27.0.1453.116 15
diff --git
a/regression-test/pipeline/performance/clickbench/query-result-target/doris-q41.result
b/regression-test/pipeline/performance/clickbench/query-result-target/doris-q41.result
new file mode 100644
index 00000000000..6071842b3a5
--- /dev/null
+++
b/regression-test/pipeline/performance/clickbench/query-result-target/doris-q41.result
@@ -0,0 +1,11 @@
+URLHash EventDate PageViews
+7199155066341437901 2013-07-15 27
+8165850906391446088 2013-07-15 27
+-8505838588544217213 2013-07-15 26
+2512899255762264913 2013-07-15 26
+-6048157399675510565 2013-07-15 25
+-6025761452198030778 2013-07-15 25
+-3611962581960090019 2013-07-15 25
+1045132364006275583 2013-07-15 24
+1851128641780263854 2013-07-15 24
+2033248414344857063 2013-07-15 24
diff --git
a/regression-test/pipeline/performance/clickbench/query-result-target/doris-q42.result
b/regression-test/pipeline/performance/clickbench/query-result-target/doris-q42.result
new file mode 100644
index 00000000000..184e5720d2e
--- /dev/null
+++
b/regression-test/pipeline/performance/clickbench/query-result-target/doris-q42.result
@@ -0,0 +1,11 @@
+WindowClientWidth WindowClientHeight PageViews
+1771 809 1
+1771 848 1
+1771 1020 1
+1772 532 1
+1772 724 1
+1772 816 1
+1772 878 1
+1774 587 1
+1777 617 1
+1778 560 1
diff --git
a/regression-test/pipeline/performance/clickbench/query-result-target/doris-q43.result
b/regression-test/pipeline/performance/clickbench/query-result-target/doris-q43.result
new file mode 100644
index 00000000000..77eb4537098
--- /dev/null
+++
b/regression-test/pipeline/performance/clickbench/query-result-target/doris-q43.result
@@ -0,0 +1,11 @@
+M PageViews
+2013-07-15 12:40:00 513
+2013-07-15 12:41:00 457
+2013-07-15 12:42:00 470
+2013-07-15 12:43:00 468
+2013-07-15 12:44:00 453
+2013-07-15 12:45:00 462
+2013-07-15 12:46:00 481
+2013-07-15 12:47:00 458
+2013-07-15 12:48:00 466
+2013-07-15 12:49:00 467
diff --git
a/regression-test/pipeline/performance/clickbench/query-result-target/doris-q5.result
b/regression-test/pipeline/performance/clickbench/query-result-target/doris-q5.result
new file mode 100644
index 00000000000..2fa34e1e17a
--- /dev/null
+++
b/regression-test/pipeline/performance/clickbench/query-result-target/doris-q5.result
@@ -0,0 +1,2 @@
+count(DISTINCT `UserID`)
+17630976
diff --git
a/regression-test/pipeline/performance/clickbench/query-result-target/doris-q6.result
b/regression-test/pipeline/performance/clickbench/query-result-target/doris-q6.result
new file mode 100644
index 00000000000..99d30d41339
--- /dev/null
+++
b/regression-test/pipeline/performance/clickbench/query-result-target/doris-q6.result
@@ -0,0 +1,2 @@
+count(DISTINCT `SearchPhrase`)
+6019103
diff --git
a/regression-test/pipeline/performance/clickbench/query-result-target/doris-q7.result
b/regression-test/pipeline/performance/clickbench/query-result-target/doris-q7.result
new file mode 100644
index 00000000000..8b0c65a2920
--- /dev/null
+++
b/regression-test/pipeline/performance/clickbench/query-result-target/doris-q7.result
@@ -0,0 +1,2 @@
+min(`EventDate`) max(`EventDate`)
+2013-07-02 2013-07-31
diff --git
a/regression-test/pipeline/performance/clickbench/query-result-target/doris-q8.result
b/regression-test/pipeline/performance/clickbench/query-result-target/doris-q8.result
new file mode 100644
index 00000000000..4333ac4d85c
--- /dev/null
+++
b/regression-test/pipeline/performance/clickbench/query-result-target/doris-q8.result
@@ -0,0 +1,19 @@
+AdvEngineID count(*)
+2 404602
+27 113167
+13 45631
+45 38960
+44 9730
+3 6896
+62 5266
+52 3554
+50 938
+28 836
+53 350
+25 343
+61 158
+21 38
+42 20
+16 7
+7 3
+22 1
diff --git
a/regression-test/pipeline/performance/clickbench/query-result-target/doris-q9.result
b/regression-test/pipeline/performance/clickbench/query-result-target/doris-q9.result
new file mode 100644
index 00000000000..289deb1835a
--- /dev/null
+++
b/regression-test/pipeline/performance/clickbench/query-result-target/doris-q9.result
@@ -0,0 +1,11 @@
+RegionID u
+229 2845673
+2 1081016
+208 831676
+169 604583
+184 322661
+158 307152
+34 299479
+55 286525
+107 272448
+42 243181
diff --git a/regression-test/pipeline/performance/compile.sh
b/regression-test/pipeline/performance/compile.sh
index 9fdb995487f..cf4320f23b1 100644
--- a/regression-test/pipeline/performance/compile.sh
+++ b/regression-test/pipeline/performance/compile.sh
@@ -136,8 +136,11 @@ sudo docker run -i --rm \
&& export CUSTOM_NPM_REGISTRY=https://registry.npmjs.org \
&& bash build.sh --fe --be --clean 2>&1 | tee build.log"
set +x
-succ_symble="BUILD SUCCESS"
-if [[ -d outout ]] && grep "${succ_symble}"
"${teamcity_build_checkoutDir}"/build.log; then
+set -x
+succ_symble="Successfully build Doris"
+if [[ -d output ]] && grep "${succ_symble}"
"${teamcity_build_checkoutDir}"/build.log; then
+ echo "INFO: ${succ_symble}"
+else
echo -e "ERROR: BUILD FAILED"
exit 1
fi
diff --git a/regression-test/pipeline/performance/conf/be_custom.conf
b/regression-test/pipeline/performance/conf/be_custom.conf
index f6ac4564857..0e3904faddf 100644
--- a/regression-test/pipeline/performance/conf/be_custom.conf
+++ b/regression-test/pipeline/performance/conf/be_custom.conf
@@ -16,6 +16,8 @@
# under the License.
priority_networks=127.0.0.1/24
-storage_root_path=/data/doris-storage
+# master branch, branch_name=master
+# branch-2.0 branch, branch_name=branch20
+storage_root_path=/data/doris-storage-${branch_name}
streaming_load_max_mb=102400
diff --git a/regression-test/pipeline/performance/conf/fe_custom.conf
b/regression-test/pipeline/performance/conf/fe_custom.conf
index bd679850532..65af05709ca 100644
--- a/regression-test/pipeline/performance/conf/fe_custom.conf
+++ b/regression-test/pipeline/performance/conf/fe_custom.conf
@@ -22,7 +22,8 @@
#####################################################################
priority_networks=127.0.0.1/24
-meta_dir=/data/doris-meta
+# master branch, branch_name=master
+# branch-2.0 branch, branch_name=branch20
+meta_dir=/data/doris-meta-${branch_name}
stream_load_default_timeout_second=3600
-ignore_unknown_metadata_module=true
diff --git a/regression-test/pipeline/performance/deploy.sh
b/regression-test/pipeline/performance/deploy.sh
index 5f2e673f040..42626775847 100644
--- a/regression-test/pipeline/performance/deploy.sh
+++ b/regression-test/pipeline/performance/deploy.sh
@@ -29,6 +29,7 @@ else
fi
EOF
+#####################################################################################
## deploy.sh content ##
# shellcheck source=/dev/null
@@ -46,14 +47,13 @@ source
"${teamcity_build_checkoutDir}"/regression-test/pipeline/common/doris-uti
if ${DEBUG:-false}; then
pull_request_num="28431"
commit_id="b052225cd0a180b4576319b5bd6331218dd0d3fe"
+ target_branch="master"
fi
echo "#### Check env"
-if [[ -z "${teamcity_build_checkoutDir}" ||
- -z "${pull_request_num}" ||
- -z "${commit_id}" ]]; then
- echo "ERROR: env teamcity_build_checkoutDir or pull_request_num or
commit_id not set"
- exit 1
-fi
+if [[ -z "${teamcity_build_checkoutDir}" ]]; then echo "ERROR: env
teamcity_build_checkoutDir not set" && exit 1; fi
+if [[ -z "${pull_request_num}" ]]; then echo "ERROR: env pull_request_num not
set" && exit 1; fi
+if [[ -z "${commit_id}" ]]; then echo "ERROR: env commit_id not set" && exit
1; fi
+if [[ -z "${target_branch}" ]]; then echo "ERROR: env target_branch not set"
&& exit 1; fi
echo "#### Deploy Doris ####"
DORIS_HOME="${teamcity_build_checkoutDir}/output"
@@ -64,16 +64,13 @@ need_backup_doris_logs=false
echo "#### 1. try to kill old doris process"
stop_doris
+set -e
echo "#### 2. copy conf from regression-test/pipeline/performance/conf/"
-rm -f "${DORIS_HOME}"/fe/conf/fe_custom.conf
"${DORIS_HOME}"/be/conf/be_custom.conf
-if [[ -f
"${teamcity_build_checkoutDir}"/regression-test/pipeline/performance/conf/fe_custom.conf
&&
- -f
"${teamcity_build_checkoutDir}"/regression-test/pipeline/performance/conf/be_custom.conf
]]; then
- cp -f
"${teamcity_build_checkoutDir}"/regression-test/pipeline/performance/conf/fe_custom.conf
"${DORIS_HOME}"/fe/conf/
- cp -f
"${teamcity_build_checkoutDir}"/regression-test/pipeline/performance/conf/be_custom.conf
"${DORIS_HOME}"/be/conf/
-else
- echo "ERROR: doris conf file missing in
${teamcity_build_checkoutDir}/regression-test/pipeline/performance/conf/"
- exit 1
-fi
+cp -f
"${teamcity_build_checkoutDir}"/regression-test/pipeline/performance/conf/fe_custom.conf
"${DORIS_HOME}"/fe/conf/
+cp -f
"${teamcity_build_checkoutDir}"/regression-test/pipeline/performance/conf/be_custom.conf
"${DORIS_HOME}"/be/conf/
+target_branch="$(echo "${target_branch}" | sed 's| ||g;s|\.||g;s|-||g')" #
remove space、dot、hyphen from branch name
+sed -i
"s|^meta_dir=/data/doris-meta-\${branch_name}|meta_dir=/data/doris-meta-${target_branch}|g"
"${DORIS_HOME}"/fe/conf/fe_custom.conf
+sed -i
"s|^storage_root_path=/data/doris-storage-\${branch_name}|storage_root_path=/data/doris-storage-${target_branch}|g"
"${DORIS_HOME}"/be/conf/be_custom.conf
echo "#### 3. start Doris"
meta_dir=$(get_doris_conf_value "${DORIS_HOME}"/fe/conf/fe_custom.conf
meta_dir)
diff --git a/regression-test/pipeline/performance/prepare.sh
b/regression-test/pipeline/performance/prepare.sh
index b3b54b85b28..ee3c8e0a990 100644
--- a/regression-test/pipeline/performance/prepare.sh
+++ b/regression-test/pipeline/performance/prepare.sh
@@ -39,23 +39,23 @@ EOF
if ${DEBUG:-false}; then
pull_request_num="28431"
commit_id_from_trigger="5f5c4c80564c76ff4267fc4ce6a5408498ed1ab5"
- commit_id="5f5c4c80564c76ff4267fc4ce6a5408498ed1ab5"
+ commit_id="5f5c4c80564c76ff4267fc4ce6a5408498ed1ab5" # teamcity checkout
commit id
+ target_branch="master"
fi
echo "#### Check env"
-if [[ -z "${teamcity_build_checkoutDir}" ||
- -z "${commit_id_from_trigger}" ||
- -z ${commit_id:-} ||
- -z ${pull_request_num:-} ]]; then
- echo "ERROR: env teamcity_build_checkoutDir or commit_id_from_trigger
- or commit_id or pull_request_num not set" && exit 1
-fi
+if [[ -z "${teamcity_build_checkoutDir}" ]]; then echo "ERROR: env
teamcity_build_checkoutDir not set" && exit 1; fi
+if [[ -z "${pull_request_num}" ]]; then echo "ERROR: env pull_request_num not
set" && exit 1; fi
+if [[ -z "${commit_id_from_trigger}" ]]; then echo "ERROR: env
commit_id_from_trigger not set" && exit 1; fi
+if [[ -z "${commit_id}" ]]; then echo "ERROR: env commit_id not set" && exit
1; fi
+if [[ -z "${target_branch}" ]]; then echo "ERROR: env target_branch not set"
&& exit 1; fi
+
commit_id_from_checkout=${commit_id}
echo "#### 1. check if need run"
if [[ "${commit_id_from_trigger}" != "${commit_id_from_checkout}" ]]; then
echo -e "从触发流水线 -> 流水线开始跑,这个时间段中如果有新commit,
-这时候流水线 checkout 出来的 commit 就不是触发时的传过来的 commit了,
-这种情况不需要跑,预期pr owner会重新触发。"
+这时候流水线 checkout 出来的 commit 就不是触发时的传过来的 commit 了,
+这种情况不需要跑,预期 pr owner 会重新触发。"
echo -e "ERROR: PR(${pull_request_num}),
the lastest commit id
${commit_id_from_checkout}
@@ -67,6 +67,13 @@ fi
# shellcheck source=/dev/null
source "$(bash
"${teamcity_build_checkoutDir}"/regression-test/pipeline/common/get-or-set-tmp-env.sh
'get')"
if ${skip_pipeline:=false}; then echo "INFO: skip build pipline" && exit 0;
else echo "INFO: no skip"; fi
+if [[ "${target_branch}" == "master" || "${target_branch}" == "branch-2.0" ]];
then
+ echo "INFO: PR target branch ${target_branch} is in (master, branch-2.0)"
+else
+ echo "WARNING: PR target branch ${target_branch} is NOT in (master,
branch-2.0), skip pipeline."
+ bash
"${teamcity_build_checkoutDir}"/regression-test/pipeline/common/get-or-set-tmp-env.sh
'set' "export skip_pipeline=true"
+ exit 0
+fi
# shellcheck source=/dev/null
# _get_pr_changed_files file_changed_performance
source
"${teamcity_build_checkoutDir}"/regression-test/pipeline/common/github-utils.sh
@@ -78,6 +85,7 @@ if _get_pr_changed_files "${pull_request_num}"; then
fi
echo "#### 2. check if tpch depending files exist"
+set -x
if ! [[ -f
"${teamcity_build_checkoutDir}"/regression-test/pipeline/common/oss-utils.sh &&
-f
"${teamcity_build_checkoutDir}"/regression-test/pipeline/common/doris-utils.sh
&&
-f
"${teamcity_build_checkoutDir}"/regression-test/pipeline/common/github-utils.sh
&&
@@ -85,6 +93,12 @@ if ! [[ -f
"${teamcity_build_checkoutDir}"/regression-test/pipeline/common/oss-u
-f
"${teamcity_build_checkoutDir}"/regression-test/pipeline/performance/conf/be_custom.conf
&&
-f
"${teamcity_build_checkoutDir}"/regression-test/pipeline/performance/conf/custom_env.sh
&&
-f
"${teamcity_build_checkoutDir}"/regression-test/pipeline/performance/conf/fe_custom.conf
&&
+ -f
"${teamcity_build_checkoutDir}"/regression-test/pipeline/performance/clickbench/conf/be_custom.conf
&&
+ -f
"${teamcity_build_checkoutDir}"/regression-test/pipeline/performance/clickbench/conf/fe_custom.conf
&&
+ -f
"${teamcity_build_checkoutDir}"/regression-test/pipeline/performance/clickbench/conf/opt_session_variables.sql
&&
+ -f
"${teamcity_build_checkoutDir}"/regression-test/pipeline/performance/clickbench/check-query-result.sh
&&
+ -f
"${teamcity_build_checkoutDir}"/regression-test/pipeline/performance/clickbench/queries-sort.sql
&&
+ -d
"${teamcity_build_checkoutDir}"/regression-test/pipeline/performance/clickbench/query-result-target/
&&
-f
"${teamcity_build_checkoutDir}"/regression-test/pipeline/performance/prepare.sh
&&
-f
"${teamcity_build_checkoutDir}"/regression-test/pipeline/performance/compile.sh
&&
-f
"${teamcity_build_checkoutDir}"/regression-test/pipeline/performance/deploy.sh
&&
@@ -94,3 +108,9 @@ if ! [[ -f
"${teamcity_build_checkoutDir}"/regression-test/pipeline/common/oss-u
-f
"${teamcity_build_checkoutDir}"/tools/tpcds-tools/bin/run-tpcds-queries.sh ]];
then
echo "ERROR: depending files missing" && exit 1
fi
+
+echo "#### 3. try to kill old doris process"
+# shellcheck source=/dev/null
+# stop_doris
+source
"${teamcity_build_checkoutDir}"/regression-test/pipeline/common/doris-utils.sh
+stop_doris
diff --git a/regression-test/pipeline/performance/run-clickbench.sh
b/regression-test/pipeline/performance/run-clickbench.sh
index 225fa802ec6..1caf0ed55c6 100644
--- a/regression-test/pipeline/performance/run-clickbench.sh
+++ b/regression-test/pipeline/performance/run-clickbench.sh
@@ -45,14 +45,13 @@ source
"${teamcity_build_checkoutDir}"/regression-test/pipeline/common/oss-utils
if ${DEBUG:-false}; then
pull_request_num="28431"
commit_id="5f5c4c80564c76ff4267fc4ce6a5408498ed1ab5"
+ target_branch="master"
fi
echo "#### Check env"
-if [[ -z "${teamcity_build_checkoutDir}" ||
- -z "${pull_request_num}" ||
- -z "${commit_id}" ]]; then
- echo "ERROR: env teamcity_build_checkoutDir or pull_request_num or
commit_id not set"
- exit 1
-fi
+if [[ -z "${teamcity_build_checkoutDir}" ]]; then echo "ERROR: env
teamcity_build_checkoutDir not set" && exit 1; fi
+if [[ -z "${pull_request_num}" ]]; then echo "ERROR: env pull_request_num not
set" && exit 1; fi
+if [[ -z "${commit_id}" ]]; then echo "ERROR: env commit_id not set" && exit
1; fi
+if [[ -z "${target_branch}" ]]; then echo "ERROR: env target_branch not set"
&& exit 1; fi
# shellcheck source=/dev/null
source "$(bash
"${teamcity_build_checkoutDir}"/regression-test/pipeline/common/get-or-set-tmp-env.sh
'get')"
@@ -71,70 +70,39 @@ exit_flag=0
host="127.0.0.1"
query_port=$(get_doris_conf_value "${DORIS_HOME}"/fe/conf/fe.conf
query_port)
-
backup_session_variables_file="${teamcity_build_checkoutDir}/regression-test/pipeline/performance/backup_session_variables_file.sql"
-
opt_session_variables_file="${teamcity_build_checkoutDir}/regression-test/pipeline/performance/opt_session_variables_file.sql"
-
- echo "####optimize doris config"
- echo "
-priority_networks=127.0.0.1/24
-meta_dir=/data/doris-meta
-stream_load_default_timeout_second=3600
-ignore_unknown_metadata_module=true
-enable_full_auto_analyze=false
-" | tee "${DORIS_HOME}"/fe/conf/fe_custom.conf
-
- echo "
-priority_networks=127.0.0.1/24
-storage_root_path=/data/doris-storage
-load_channel_memory_refresh_sleep_time_ms=1000
-soft_mem_limit_frac=1
-track_new_delete=false
-streaming_load_max_mb=102400
-doris_scanner_thread_pool_thread_num=8
-tc_enable_aggressive_memory_decommit=false
-enable_new_scan_node=false
-#mem_limit=100%
-mem_limit=90%
-#write_buffer_size=1609715200
-write_buffer_size=1209715200
-load_process_max_memory_limit_percent=100
-#load_process_soft_mem_limit_percent=80
-disable_auto_compaction=true
-disable_storage_page_cache=false
-disable_chunk_allocator=false
-enable_simdjson_reader = true
-" | tee "${DORIS_HOME}"/be/conf/be_custom.conf
-
- opt_session_variables="
-set global exec_mem_limit=34359738368;
-set global parallel_fragment_exec_instance_num=16;
-set global parallel_pipeline_task_num=16;
-set global enable_single_distinct_column_opt=true;
-set global enable_function_pushdown=true;
-set global forbid_unknown_col_stats=false;
-set global runtime_filter_mode=global;
-"
- echo -e "${opt_session_variables}" | tee "${opt_session_variables_file}"
+
backup_session_variables_file="${teamcity_build_checkoutDir}/regression-test/pipeline/performance/clickbench/conf/backup_session_variables.sql"
+
opt_session_variables_file="${teamcity_build_checkoutDir}/regression-test/pipeline/performance/clickbench/conf/opt_session_variables.sql"
+ echo "#### 1. backup session variables to file
${backup_session_variables_file}"
+ if ! restart_doris; then echo "ERROR: Restart doris failed" && exit 1; fi
backup_session_variables() {
_IFS="${IFS}"
IFS=$'\n'
- for line in ${opt_session_variables}; do
+ while read -r line; do
+ if [[ -z "${line}" || "${line}" == "#"* ]]; then continue; fi
k="${line/set global /}"
k="${k%=*}"
v=$(mysql -h"${host}" -P"${query_port}" -uroot -e"show variables
like '${k}'\G" | grep " Value: ")
v="${v/*Value: /}"
echo "set global ${k}=${v};" >>"${backup_session_variables_file}"
- done
+ done <"${opt_session_variables_file}"
IFS="${_IFS}"
}
backup_session_variables
- mysql -h"${host}" -P"${query_port}" -uroot -e"source
${opt_session_variables_file};"
- echo "#### 1. Restart doris"
+ echo "#### 2. optimize doris config"
+ cp -f
"${teamcity_build_checkoutDir}"/regression-test/pipeline/performance/clickbench/conf/fe_custom.conf
"${DORIS_HOME}"/fe/conf/
+ cp -f
"${teamcity_build_checkoutDir}"/regression-test/pipeline/performance/clickbench/conf/be_custom.conf
"${DORIS_HOME}"/be/conf/
+ target_branch="$(echo "${target_branch}" | sed 's| ||g;s|\.||g;s|-||g')" #
remove space、dot、hyphen from branch name
+ sed -i
"s|^meta_dir=/data/doris-meta-\${branch_name}|meta_dir=/data/doris-meta-${target_branch}|g"
"${DORIS_HOME}"/fe/conf/fe_custom.conf
+ sed -i
"s|^storage_root_path=/data/doris-storage-\${branch_name}|storage_root_path=/data/doris-storage-${target_branch}|g"
"${DORIS_HOME}"/be/conf/be_custom.conf
if ! restart_doris; then echo "ERROR: Restart doris failed" && exit 1; fi
- echo "#### 2. check if need to load data"
+ echo "#### 3. optimize session variables"
+ cat "${opt_session_variables_file}"
+ mysql -h"${host}" -P"${query_port}" -uroot -e"source
${opt_session_variables_file};"
+
+ echo "#### 4. check data rows"
data_home="/data/clickbench" # no / at the end
db_name="clickbench"
if ! check_clickbench_table_rows "${db_name}"; then
@@ -287,30 +255,32 @@ set global runtime_filter_mode=global;
data_reload="true"
fi
- echo "#### 3. run clickbench query"
+ echo "#### 5. run clickbench query"
+ sed -i '/^run_sql \"analyze table hits with sync;\"/d'
"${teamcity_build_checkoutDir}"/tools/clickbench-tools/run-clickbench-queries.sh
bash
"${teamcity_build_checkoutDir}"/tools/clickbench-tools/run-clickbench-queries.sh
# result.csv 来自 run-clickbench-queries.sh 的产出
if ! check_clickbench_performance_result result.csv; then exit 1; fi
- if ! check_clickbench_query_result; then exit 1; fi
+ if ! (cd clickbench && bash check-query-result.sh && cd -); then exit 1; fi
cold_run_sum=$(awk -F ',' '{sum+=$2} END {print sum}' result.csv)
best_hot_run_sum=$(awk -F ',' '{if($3<$4){sum+=$3}else{sum+=$4}} END
{print sum}' result.csv)
- comment_body="ClickBench test result on commit ${commit_id:-}, data
reload: ${data_reload:-"false"}
+ comment_body_summary="Total hot run time: ${best_hot_run_sum} s"
+ comment_body_detail="ClickBench test result on commit ${commit_id:-}, data
reload: ${data_reload:-"false"}
$(sed 's|,|\t|g' result.csv)
Total cold run time: ${cold_run_sum} s
Total hot run time: ${best_hot_run_sum} s"
- echo "#### 4. comment result on clickbench"
- comment_body=$(echo "${comment_body}" | sed -e
':a;N;$!ba;s/\t/\\t/g;s/\n/\\n/g') # 将所有的 Tab字符替换为\t 换行符替换为\n
- create_an_issue_comment_clickbench "${pull_request_num:-}"
"${comment_body}"
+ echo "#### 6. comment result on clickbench"
+ comment_body_detail=$(echo "${comment_body_detail}" | sed -e
':a;N;$!ba;s/\t/\\t/g;s/\n/\\n/g') # 将所有的 Tab字符替换为\t 换行符替换为\n
+ create_an_issue_comment_clickbench "${pull_request_num:-}"
"${comment_body_summary}" "${comment_body_detail}"
rm -f result.csv
- echo "INFO: Restore session variables"
+ echo -e "INFO: Restore session variables \n$(cat
"${backup_session_variables_file}")"
mysql -h"${host}" -P"${query_port}" -uroot -e "source
${backup_session_variables_file};"
rm -f "${backup_session_variables_file}"
)
exit_flag="$?"
-echo "#### 5. check if need backup doris logs"
+echo "#### 7. check if need backup doris logs"
if [[ ${exit_flag} != "0" ]]; then
stop_doris
print_doris_fe_log
diff --git a/regression-test/pipeline/performance/run-load.sh
b/regression-test/pipeline/performance/run-load.sh
index 784ac38aafa..47664b5ecf1 100644
--- a/regression-test/pipeline/performance/run-load.sh
+++ b/regression-test/pipeline/performance/run-load.sh
@@ -36,7 +36,7 @@ EOF
# restart_doris, set_session_variable
source
"${teamcity_build_checkoutDir}"/regression-test/pipeline/common/doris-utils.sh
# shellcheck source=/dev/null
-# create_an_issue_comment
+# create_an_issue_comment_load
source
"${teamcity_build_checkoutDir}"/regression-test/pipeline/common/github-utils.sh
# shellcheck source=/dev/null
# upload_doris_log_to_oss
@@ -45,14 +45,13 @@ source
"${teamcity_build_checkoutDir}"/regression-test/pipeline/common/oss-utils
if ${DEBUG:-false}; then
pull_request_num="28431"
commit_id="5f5c4c80564c76ff4267fc4ce6a5408498ed1ab5"
+ target_branch="master"
fi
echo "#### Check env"
-if [[ -z "${teamcity_build_checkoutDir}" ||
- -z "${pull_request_num}" ||
- -z "${commit_id}" ]]; then
- echo "ERROR: env teamcity_build_checkoutDir or pull_request_num or
commit_id not set"
- exit 1
-fi
+if [[ -z "${teamcity_build_checkoutDir}" ]]; then echo "ERROR: env
teamcity_build_checkoutDir not set" && exit 1; fi
+if [[ -z "${pull_request_num}" ]]; then echo "ERROR: env pull_request_num not
set" && exit 1; fi
+if [[ -z "${commit_id}" ]]; then echo "ERROR: env commit_id not set" && exit
1; fi
+if [[ -z "${target_branch}" ]]; then echo "ERROR: env target_branch not set"
&& exit 1; fi
# shellcheck source=/dev/null
source "$(bash
"${teamcity_build_checkoutDir}"/regression-test/pipeline/common/get-or-set-tmp-env.sh
'get')"
@@ -77,7 +76,7 @@ exit_flag=0
shopt -s inherit_errexit
stream_load_json() {
- echo "#### create table"
+ echo "## create table"
ddl="
CREATE TABLE IF NOT EXISTS hits_json (
CounterID INT NOT NULL,
@@ -191,7 +190,7 @@ exit_flag=0
PROPERTIES (\"replication_num\"=\"1\");
"
${clt} -D"${DB}" -e"${ddl}"
- echo "#### load data"
+ echo "## load data"
if [[ ! -d "${data_home}" ]]; then mkdir -p "${data_home}"; fi
if [[ ! -f "${data_home}"/hits.json.1000000 ]] || [[ $(wc -c
"${data_home}"/hits.json.1000000 | awk '{print $1}') != '2358488459' ]]; then
cd "${data_home}"
@@ -212,7 +211,7 @@ exit_flag=0
sleep 5
if [[ $(${clt} -D"${DB}" -e"select count(*) from hits_json" | sed -n
'2p') != 1000000 ]]; then echo "check load fail..." && return 1; fi
- echo "#### record load test result"
+ echo "## record load test result"
stream_load_json_size=$(echo "${ret}" | jq '.LoadBytes')
stream_load_json_time=$(printf "%.0f" "$(echo "scale=1;$(echo "${ret}"
| jq '.LoadTimeMs')/1000" | bc)")
stream_load_json_speed=$(echo "${stream_load_json_size} / 1024 / 1024/
${stream_load_json_time}" | bc)
@@ -222,7 +221,7 @@ exit_flag=0
}
stream_load_orc() {
- echo "#### create table"
+ echo "## create table"
ddl="
CREATE TABLE IF NOT EXISTS hits_orc (
CounterID INT NOT NULL,
@@ -336,7 +335,7 @@ exit_flag=0
PROPERTIES (\"replication_num\"=\"1\");
"
${clt} -D"${DB}" -e"${ddl}"
- echo "#### load data"
+ echo "## load data"
if [[ ! -d "${data_home}" ]]; then mkdir -p "${data_home}"; fi
if [[ ! -f "${data_home}"/hits_0.orc ]] || [[ $(wc -c
"${data_home}"/hits_0.orc | awk '{print $1}') != '1101869774' ]]; then
cd "${data_home}"
@@ -355,7 +354,7 @@ exit_flag=0
sleep 5
if [[ $(${clt} -D"${DB}" -e"select count(*) from hits_orc" | sed -n
'2p') != 8800160 ]]; then echo "check load fail..." && return 1; fi
- echo "#### record load test result"
+ echo "## record load test result"
stream_load_orc_size=$(echo "${ret}" | jq '.LoadBytes')
stream_load_orc_time=$(printf "%.0f" "$(echo "scale=1;$(echo "${ret}"
| jq '.LoadTimeMs')/1000" | bc)")
stream_load_orc_speed=$(echo "${stream_load_orc_size} / 1024 / 1024/
${stream_load_orc_time}" | bc)
@@ -365,7 +364,7 @@ exit_flag=0
}
stream_load_parquet() {
- echo "#### create table"
+ echo "## create table"
ddl="
CREATE TABLE IF NOT EXISTS hits_parquet (
CounterID INT NOT NULL,
@@ -479,7 +478,7 @@ exit_flag=0
PROPERTIES (\"replication_num\"=\"1\");
"
${clt} -D"${DB}" -e"${ddl}"
- echo "#### load data"
+ echo "## load data"
stream_load_parquet_size=0
stream_load_parquet_time=0
if [[ ! -d "${data_home}" ]]; then mkdir -p "${data_home}"; fi
@@ -507,7 +506,7 @@ exit_flag=0
sleep 5
if [[ $(${clt} -D"${DB}" -e"select count(*) from hits_parquet" | sed
-n '2p') != 5000000 ]]; then echo "check load fail..." && return 1; fi
- echo "#### record load test result"
+ echo "## record load test result"
stream_load_parquet_speed=$(echo "${stream_load_parquet_size} / 1024 /
1024/ ${stream_load_parquet_time}" | bc)
export stream_load_parquet_size
export stream_load_parquet_time
@@ -515,7 +514,7 @@ exit_flag=0
}
insert_into_select() {
- echo "#### create table"
+ echo "## create table"
ddl="
CREATE TABLE IF NOT EXISTS hits_insert_into_select (
CounterID INT NOT NULL,
@@ -630,7 +629,7 @@ exit_flag=0
"
${clt} -D"${DB}" -e"${ddl}"
- echo "#### load data by INSERT INTO SELECT"
+ echo "## load data by INSERT INTO SELECT"
insert_into_select_time=0
insert_into_select_rows=10000000
start=$(date +%s%3N)
@@ -644,7 +643,7 @@ exit_flag=0
sleep 5
if [[ $(${clt} -D"${DB}" -e"select count(*) from
hits_insert_into_select" | sed -n '2p') != "${insert_into_select_rows}" ]];
then echo "check load fail..." && return 1; fi
- echo "#### record load test result"
+ echo "## record load test result"
insert_into_select_speed=$(echo "${insert_into_select_rows} / 1000 /
${insert_into_select_time}" | bc)
export insert_into_select_rows
export insert_into_select_time
@@ -652,9 +651,14 @@ exit_flag=0
}
echo "#### 1. Restart doris"
+ cp -f
"${teamcity_build_checkoutDir}"/regression-test/pipeline/performance/conf/fe_custom.conf
"${DORIS_HOME}"/fe/conf/
+ cp -f
"${teamcity_build_checkoutDir}"/regression-test/pipeline/performance/conf/be_custom.conf
"${DORIS_HOME}"/be/conf/
+ target_branch="$(echo "${target_branch}" | sed 's| ||g;s|\.||g;s|-||g')" #
remove space、dot、hyphen from branch name
+ sed -i
"s|^meta_dir=/data/doris-meta-\${branch_name}|meta_dir=/data/doris-meta-${target_branch}|g"
"${DORIS_HOME}"/fe/conf/fe_custom.conf
+ sed -i
"s|^storage_root_path=/data/doris-storage-\${branch_name}|storage_root_path=/data/doris-storage-${target_branch}|g"
"${DORIS_HOME}"/be/conf/be_custom.conf
if ! restart_doris; then echo "ERROR: Restart doris failed" && exit 1; fi
- echo "#### 3. run streamload test"
+ echo "#### 2. run load test"
set_session_variable runtime_filter_mode global
${clt} -e "DROP DATABASE IF EXISTS ${DB}" && sleep 1
${clt} -e "CREATE DATABASE IF NOT EXISTS ${DB}" && sleep 5
@@ -662,22 +666,28 @@ exit_flag=0
if ! stream_load_orc; then exit 1; fi
if ! stream_load_parquet; then exit 1; fi
if ! insert_into_select; then exit 1; fi
- if ! check_load_performance; then exit 1; fi
+
+ echo "#### 3. check load performance"
+ if [[ ${stream_load_json_speed} -lt ${stream_load_json_speed_threshold}
]]; then echo "ERROR: stream_load_json_speed ${stream_load_json_speed} is less
than the threshold ${stream_load_json_speed_threshold}" && exit 1; fi
+ if [[ ${stream_load_orc_speed} -lt ${stream_load_orc_speed_threshold} ]];
then echo "ERROR: stream_load_json_speed ${stream_load_orc_speed} is less than
the threshold ${stream_load_orc_speed_threshold}" && exit 1; fi
+ if [[ ${stream_load_parquet_speed} -lt
${stream_load_parquet_speed_threshold} ]]; then echo "ERROR:
stream_load_json_speed ${stream_load_parquet_speed} is less than the threshold
${stream_load_parquet_speed_threshold}" && exit 1; fi
+ if [[ ${insert_into_select_speed} -lt
${insert_into_select_speed_threshold} ]]; then echo "ERROR:
stream_load_json_speed ${insert_into_select_speed} is less than the threshold
${insert_into_select_speed_threshold}" && exit 1; fi
echo "#### 4. comment result on tpch"
- comment_body="Load test result on commit ${commit_id:-} with default conf
and session variables"
+ comment_body="Load test result on commit ${commit_id:-} with default
session variables"
if [[ -n ${stream_load_json_time} ]]; then comment_body="${comment_body}\n
stream load json: ${stream_load_json_time} seconds loaded
${stream_load_json_size} Bytes, about ${stream_load_json_speed} MB/s"; fi
if [[ -n ${stream_load_orc_time} ]]; then comment_body="${comment_body}\n
stream load orc: ${stream_load_orc_time} seconds loaded
${stream_load_orc_size} Bytes, about ${stream_load_orc_speed} MB/s"; fi
- if [[ -n ${stream_load_parquet_time} ]]; then
comment_body="${comment_body}\n stream load parquet:
${stream_load_parquet_time} seconds loaded ${stream_load_parquet_size} Bytes,
about ${stream_load_parquet_speed} MB/s"; fi
- if [[ -n ${insert_into_select_time} ]]; then
comment_body="${comment_body}\n insert into select:
${insert_into_select_time} seconds inserted ${insert_into_select_rows} Rows,
about ${insert_into_select_speed}K ops/s"; fi
+ if [[ -n ${stream_load_parquet_time} ]]; then
comment_body="${comment_body}\n stream load parquet:
${stream_load_parquet_time} seconds loaded ${stream_load_parquet_size} Bytes,
about ${stream_load_parquet_speed} MB/s"; fi
+ if [[ -n ${insert_into_select_time} ]]; then
comment_body="${comment_body}\n insert into select:
${insert_into_select_time} seconds inserted ${insert_into_select_rows} Rows,
about ${insert_into_select_speed}K ops/s"; fi
comment_body=$(echo "${comment_body}" | sed -e
':a;N;$!ba;s/\t/\\t/g;s/\n/\\n/g') # 将所有的 Tab字符替换为\t 换行符替换为\n
- create_an_issue_comment_tpch "${pull_request_num:-}" "${comment_body}"
+ create_an_issue_comment_load "${pull_request_num:-}" "${comment_body}"
)
exit_flag="$?"
echo "#### 5. check if need backup doris logs"
if [[ ${exit_flag} != "0" ]]; then
+ stop_doris
print_doris_fe_log
print_doris_be_log
if file_name=$(archive_doris_logs
"${pull_request_num}_${commit_id}_doris_logs.tar.gz"); then
diff --git a/regression-test/pipeline/performance/run-tpcds.sh
b/regression-test/pipeline/performance/run-tpcds.sh
index 0684454ca49..bff7a9872d1 100644
--- a/regression-test/pipeline/performance/run-tpcds.sh
+++ b/regression-test/pipeline/performance/run-tpcds.sh
@@ -45,15 +45,14 @@ source
"${teamcity_build_checkoutDir}"/regression-test/pipeline/common/oss-utils
if ${DEBUG:-false}; then
pull_request_num="28431"
commit_id="5f5c4c80564c76ff4267fc4ce6a5408498ed1ab5"
+ target_branch="master"
SF="1"
fi
echo "#### Check env"
-if [[ -z "${teamcity_build_checkoutDir}" ||
- -z "${pull_request_num}" ||
- -z "${commit_id}" ]]; then
- echo "ERROR: env teamcity_build_checkoutDir or pull_request_num or
commit_id not set"
- exit 1
-fi
+if [[ -z "${teamcity_build_checkoutDir}" ]]; then echo "ERROR: env
teamcity_build_checkoutDir not set" && exit 1; fi
+if [[ -z "${pull_request_num}" ]]; then echo "ERROR: env pull_request_num not
set" && exit 1; fi
+if [[ -z "${commit_id}" ]]; then echo "ERROR: env commit_id not set" && exit
1; fi
+if [[ -z "${target_branch}" ]]; then echo "ERROR: env target_branch not set"
&& exit 1; fi
# shellcheck source=/dev/null
source "$(bash
"${teamcity_build_checkoutDir}"/regression-test/pipeline/common/get-or-set-tmp-env.sh
'get')"
@@ -131,14 +130,16 @@ exit_flag=0
if ! check_tpcds_result
"${teamcity_build_checkoutDir}"/run-tpcds-queries.log; then exit 1; fi
line_end=$(sed -n '/^Total hot run time/='
"${teamcity_build_checkoutDir}"/run-tpcds-queries.log)
line_begin=$((line_end - 100))
- comment_body="TPC-DS sf${SF} test result on commit ${commit_id:-}, data
reload: ${data_reload:-"false"}
+ comment_body_summary="$(sed -n "${line_end}p"
"${teamcity_build_checkoutDir}"/run-tpcds-queries.log)"
+ comment_body_detail="TPC-DS sf${SF} test result on commit ${commit_id:-},
data reload: ${data_reload:-"false"}
run tpcds-sf${SF} query with default conf and session variables
$(sed -n "${line_begin},${line_end}p"
"${teamcity_build_checkoutDir}"/run-tpcds-queries.log)"
echo "#### 4. comment result on tpcds"
- comment_body=$(echo "${comment_body}" | sed -e
':a;N;$!ba;s/\t/\\t/g;s/\n/\\n/g') # 将所有的 Tab字符替换为\t 换行符替换为\n
- create_an_issue_comment_tpcds "${pull_request_num:-}" "${comment_body}"
+ comment_body_summary=$(echo "${comment_body_summary}" | sed -e
':a;N;$!ba;s/\t/\\t/g;s/\n/\\n/g') # 将所有的 Tab字符替换为\t 换行符替换为\n
+ comment_body_detail=$(echo "${comment_body_detail}" | sed -e
':a;N;$!ba;s/\t/\\t/g;s/\n/\\n/g') # 将所有的 Tab字符替换为\t 换行符替换为\n
+ create_an_issue_comment_tpcds "${pull_request_num:-}"
"${comment_body_summary}" "${comment_body_detail}"
rm -f result.csv
)
exit_flag="$?"
diff --git a/regression-test/pipeline/performance/run-tpch.sh
b/regression-test/pipeline/performance/run-tpch.sh
index d3e408eef86..a8f5dcdd30f 100644
--- a/regression-test/pipeline/performance/run-tpch.sh
+++ b/regression-test/pipeline/performance/run-tpch.sh
@@ -45,15 +45,14 @@ source
"${teamcity_build_checkoutDir}"/regression-test/pipeline/common/oss-utils
if ${DEBUG:-false}; then
pull_request_num="28431"
commit_id="5f5c4c80564c76ff4267fc4ce6a5408498ed1ab5"
+ target_branch="master"
SF="1"
fi
echo "#### Check env"
-if [[ -z "${teamcity_build_checkoutDir}" ||
- -z "${pull_request_num}" ||
- -z "${commit_id}" ]]; then
- echo "ERROR: env teamcity_build_checkoutDir or pull_request_num or
commit_id not set"
- exit 1
-fi
+if [[ -z "${teamcity_build_checkoutDir}" ]]; then echo "ERROR: env
teamcity_build_checkoutDir not set" && exit 1; fi
+if [[ -z "${pull_request_num}" ]]; then echo "ERROR: env pull_request_num not
set" && exit 1; fi
+if [[ -z "${commit_id}" ]]; then echo "ERROR: env commit_id not set" && exit
1; fi
+if [[ -z "${target_branch}" ]]; then echo "ERROR: env target_branch not set"
&& exit 1; fi
# shellcheck source=/dev/null
source "$(bash
"${teamcity_build_checkoutDir}"/regression-test/pipeline/common/get-or-set-tmp-env.sh
'get')"
@@ -123,7 +122,8 @@ exit_flag=0
if ! check_tpch_result
"${teamcity_build_checkoutDir}"/run-tpch-queries.log; then exit 1; fi
line_end=$(sed -n '/^Total hot run time/='
"${teamcity_build_checkoutDir}"/run-tpch-queries.log)
line_begin=$((line_end - 23))
- comment_body="Tpch sf${SF} test result on commit ${commit_id:-}, data
reload: ${data_reload:-"false"}
+ comment_body_summary="$(sed -n "${line_end}p"
"${teamcity_build_checkoutDir}"/run-tpch-queries.log)"
+ comment_body_detail="Tpch sf${SF} test result on commit ${commit_id:-},
data reload: ${data_reload:-"false"}
------ Round 1 ----------------------------------
$(sed -n "${line_begin},${line_end}p"
"${teamcity_build_checkoutDir}"/run-tpch-queries.log)"
@@ -134,14 +134,15 @@ $(sed -n "${line_begin},${line_end}p"
"${teamcity_build_checkoutDir}"/run-tpch-q
if ! grep '^Total hot run time'
"${teamcity_build_checkoutDir}"/run-tpch-queries.log >/dev/null; then exit 1; fi
line_end=$(sed -n '/^Total hot run time/='
"${teamcity_build_checkoutDir}"/run-tpch-queries.log)
line_begin=$((line_end - 23))
- comment_body="${comment_body}
+ comment_body_detail="${comment_body_detail}
----- Round 2, with runtime_filter_mode=off -----
$(sed -n "${line_begin},${line_end}p"
"${teamcity_build_checkoutDir}"/run-tpch-queries.log)"
echo "#### 5. comment result on tpch"
- comment_body=$(echo "${comment_body}" | sed -e
':a;N;$!ba;s/\t/\\t/g;s/\n/\\n/g') # 将所有的 Tab字符替换为\t 换行符替换为\n
- create_an_issue_comment_tpch "${pull_request_num:-}" "${comment_body}"
+ comment_body_summary="$(echo "${comment_body_summary}" | sed -e
':a;N;$!ba;s/\t/\\t/g;s/\n/\\n/g')" # 将所有的 Tab字符替换为\t 换行符替换为\n
+ comment_body_detail="$(echo "${comment_body_detail}" | sed -e
':a;N;$!ba;s/\t/\\t/g;s/\n/\\n/g')" # 将所有的 Tab字符替换为\t 换行符替换为\n
+ create_an_issue_comment_tpch "${pull_request_num:-}"
"${comment_body_summary}" "${comment_body_detail}"
rm -f result.csv
)
exit_flag="$?"
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]