Files
datastore/tests/performance/numeric_indexed_vector.xml
2025-06-09 17:15:52 +08:00

128 lines
6.5 KiB
XML

<test>
<settings>
<max_threads>1</max_threads>
<max_insert_threads>1</max_insert_threads>
</settings>
<create_query>CREATE TABLE uin_value_details (ds Date, uin UInt32, value Float64) ENGINE = MergeTree() ORDER BY ds</create_query>
<fill_query>INSERT INTO uin_value_details (ds, uin, value) SELECT '2023-12-20', number, number * number from numbers(1000)</fill_query>
<fill_query>INSERT INTO uin_value_details (ds, uin, value) SELECT '2023-12-21', number, number from numbers(1000)</fill_query>
<fill_query>insert into uin_value_details (ds, uin, value) select '2023-12-22', number, number * number from numbers(5000)</fill_query>
<fill_query>insert into uin_value_details (ds, uin, value) select '2023-12-23', number, number from numbers(5000)</fill_query>
<fill_query>insert into uin_value_details (ds, uin, value) select '2023-12-26', number, number * number from numbers(1000)</fill_query>
<fill_query>insert into uin_value_details (ds, uin, value) select '2023-12-27', number, number from numbers(1000)</fill_query>
<fill_query>insert into uin_value_details (ds, uin, value) select '2023-12-28', number * 3, number * 3 * number * 3 from numbers(1000)</fill_query>
<fill_query>insert into uin_value_details (ds, uin, value) select '2023-12-29', number * 3, number * 3 from numbers(1000)</fill_query>
<!-- Individual vector sums -->
<query>
SELECT numericIndexedVectorAllValueSum(groupNumericIndexedVectorStateIf(uin, value, ds = '2023-12-20')) AS sum_1
FROM uin_value_details
</query>
<query>
SELECT numericIndexedVectorAllValueSum(groupNumericIndexedVectorStateIf(uin, value, ds = '2023-12-21')) AS sum_2
FROM uin_value_details
</query>
<query>
SELECT numericIndexedVectorAllValueSum(groupNumericIndexedVectorStateIf(uin, value, ds = '2023-12-22')) AS sum_1
FROM uin_value_details
</query>
<query>
SELECT numericIndexedVectorAllValueSum(groupNumericIndexedVectorStateIf(uin, value, ds = '2023-12-23')) AS sum_2
FROM uin_value_details
</query>
<!-- Operations for 2023-12-20 and 2023-12-21 -->
<query>
WITH
(SELECT groupNumericIndexedVectorStateIf(uin, value, ds = '2023-12-20') FROM uin_value_details) AS vec_1,
(SELECT groupNumericIndexedVectorStateIf(uin, value, ds = '2023-12-21') FROM uin_value_details) AS vec_2
SELECT
numericIndexedVectorAllValueSum(numericIndexedVectorPointwiseMultiply(vec_1, vec_2)) AS sum_multiply,
numericIndexedVectorAllValueSum(numericIndexedVectorPointwiseDivide(vec_1, vec_2)) AS sum_divide
</query>
<!-- Operations for 2023-12-22 and 2023-12-23 -->
<query>
WITH
(SELECT groupNumericIndexedVectorStateIf(uin, value, ds = '2023-12-22') FROM uin_value_details) AS vec_1,
(SELECT groupNumericIndexedVectorStateIf(uin, value, ds = '2023-12-23') FROM uin_value_details) AS vec_2
SELECT
numericIndexedVectorAllValueSum(numericIndexedVectorPointwiseMultiply(vec_1, vec_2)) AS sum_multiply,
numericIndexedVectorAllValueSum(numericIndexedVectorPointwiseDivide(vec_1, vec_2)) AS sum_divide
</query>
<!-- All four dates in one query -->
<query>
SELECT
numericIndexedVectorAllValueSum(groupNumericIndexedVectorStateIf(uin, value, ds = '2023-12-26')) AS sum_26,
numericIndexedVectorAllValueSum(groupNumericIndexedVectorStateIf(uin, value, ds = '2023-12-27')) AS sum_27,
numericIndexedVectorAllValueSum(groupNumericIndexedVectorStateIf(uin, value, ds = '2023-12-28')) AS sum_28,
numericIndexedVectorAllValueSum(groupNumericIndexedVectorStateIf(uin, value, ds = '2023-12-29')) AS sum_29
FROM uin_value_details
</query>
<!-- Pairwise operations -->
<query>
WITH
(SELECT groupNumericIndexedVectorStateIf(uin, value, ds = '2023-12-26') FROM uin_value_details) AS v1,
(SELECT groupNumericIndexedVectorStateIf(uin, value, ds = '2023-12-27') FROM uin_value_details) AS v2
SELECT
numericIndexedVectorAllValueSum(numericIndexedVectorPointwiseMultiply(v1, v2)) AS mul_26_27,
numericIndexedVectorAllValueSum(numericIndexedVectorPointwiseDivide(v1, v2)) AS div_26_27
</query>
<query>
WITH
(SELECT groupNumericIndexedVectorStateIf(uin, value, ds = '2023-12-26') FROM uin_value_details) AS v1,
(SELECT groupNumericIndexedVectorStateIf(uin, value, ds = '2023-12-28') FROM uin_value_details) AS v2
SELECT
numericIndexedVectorAllValueSum(numericIndexedVectorPointwiseMultiply(v1, v2)) AS mul_26_28,
numericIndexedVectorAllValueSum(numericIndexedVectorPointwiseDivide(v1, v2)) AS div_26_28
</query>
<query>
WITH
(SELECT groupNumericIndexedVectorStateIf(uin, value, ds = '2023-12-26') FROM uin_value_details) AS v1,
(SELECT groupNumericIndexedVectorStateIf(uin, value, ds = '2023-12-29') FROM uin_value_details) AS v2
SELECT
numericIndexedVectorAllValueSum(numericIndexedVectorPointwiseMultiply(v1, v2)) AS mul_26_29,
numericIndexedVectorAllValueSum(numericIndexedVectorPointwiseDivide(v1, v2)) AS div_26_29
</query>
<query>
WITH
(SELECT groupNumericIndexedVectorStateIf(uin, value, ds = '2023-12-27') FROM uin_value_details) AS v1,
(SELECT groupNumericIndexedVectorStateIf(uin, value, ds = '2023-12-28') FROM uin_value_details) AS v2
SELECT
numericIndexedVectorAllValueSum(numericIndexedVectorPointwiseMultiply(v1, v2)) AS mul_27_28,
numericIndexedVectorAllValueSum(numericIndexedVectorPointwiseDivide(v1, v2)) AS div_27_28
</query>
<query>
WITH
(SELECT groupNumericIndexedVectorStateIf(uin, value, ds = '2023-12-27') FROM uin_value_details) AS v1,
(SELECT groupNumericIndexedVectorStateIf(uin, value, ds = '2023-12-29') FROM uin_value_details) AS v2
SELECT
numericIndexedVectorAllValueSum(numericIndexedVectorPointwiseMultiply(v1, v2)) AS mul_27_29,
numericIndexedVectorAllValueSum(numericIndexedVectorPointwiseDivide(v1, v2)) AS div_27_29
</query>
<query>
WITH
(SELECT groupNumericIndexedVectorStateIf(uin, value, ds = '2023-12-28') FROM uin_value_details) AS v1,
(SELECT groupNumericIndexedVectorStateIf(uin, value, ds = '2023-12-29') FROM uin_value_details) AS v2
SELECT
numericIndexedVectorAllValueSum(numericIndexedVectorPointwiseMultiply(v1, v2)) AS mul_28_29,
numericIndexedVectorAllValueSum(numericIndexedVectorPointwiseDivide(v1, v2)) AS div_28_29
</query>
<drop_query>DROP TABLE IF EXISTS uin_value_details</drop_query>
</test>