2021-05-26 13:30:43 +00:00
|
|
|
<test>
|
2021-03-27 14:00:00 +00:00
|
|
|
<create_query>
|
2022-08-16 12:32:50 +00:00
|
|
|
CREATE TABLE simple_key_hashed_dictionary_source_table
|
2021-03-27 14:00:00 +00:00
|
|
|
(
|
|
|
|
id UInt64,
|
|
|
|
value_int UInt64,
|
|
|
|
value_string String,
|
|
|
|
value_decimal Decimal64(8),
|
|
|
|
value_string_nullable Nullable(String)
|
2022-08-16 12:32:50 +00:00
|
|
|
) ENGINE = Memory;
|
2021-03-27 14:00:00 +00:00
|
|
|
</create_query>
|
|
|
|
|
|
|
|
<create_query>
|
2022-08-16 12:32:50 +00:00
|
|
|
CREATE TABLE complex_key_hashed_dictionary_source_table
|
2021-03-27 14:00:00 +00:00
|
|
|
(
|
|
|
|
id UInt64,
|
|
|
|
id_key String,
|
|
|
|
value_int UInt64,
|
|
|
|
value_string String,
|
|
|
|
value_decimal Decimal64(8),
|
|
|
|
value_string_nullable Nullable(String)
|
2022-08-16 12:32:50 +00:00
|
|
|
) ENGINE = Memory;
|
2021-03-27 14:00:00 +00:00
|
|
|
</create_query>
|
|
|
|
|
|
|
|
<create_query>
|
2022-08-16 12:32:50 +00:00
|
|
|
CREATE DICTIONARY simple_key_hashed_dictionary
|
2021-03-27 14:00:00 +00:00
|
|
|
(
|
|
|
|
id UInt64,
|
|
|
|
value_int UInt64,
|
|
|
|
value_string String,
|
|
|
|
value_decimal Decimal64(8),
|
|
|
|
value_string_nullable Nullable(String)
|
|
|
|
)
|
|
|
|
PRIMARY KEY id
|
2022-08-16 12:32:50 +00:00
|
|
|
SOURCE(CLICKHOUSE(DB 'default' TABLE 'simple_key_hashed_dictionary_source_table'))
|
|
|
|
LAYOUT(HASHED())
|
|
|
|
LIFETIME(MIN 0 MAX 1000);
|
2021-03-27 14:00:00 +00:00
|
|
|
</create_query>
|
|
|
|
|
|
|
|
<create_query>
|
2022-08-16 12:32:50 +00:00
|
|
|
CREATE DICTIONARY complex_key_hashed_dictionary
|
2021-03-27 14:00:00 +00:00
|
|
|
(
|
|
|
|
id UInt64,
|
|
|
|
id_key String,
|
|
|
|
value_int UInt64,
|
|
|
|
value_string String,
|
|
|
|
value_decimal Decimal64(8),
|
|
|
|
value_string_nullable Nullable(String)
|
|
|
|
)
|
|
|
|
PRIMARY KEY id, id_key
|
2022-08-16 12:32:50 +00:00
|
|
|
SOURCE(CLICKHOUSE(DB 'default' TABLE 'complex_key_hashed_dictionary_source_table'))
|
|
|
|
LAYOUT(COMPLEX_KEY_HASHED())
|
|
|
|
LIFETIME(MIN 0 MAX 1000);
|
2021-03-27 14:00:00 +00:00
|
|
|
</create_query>
|
|
|
|
|
|
|
|
<fill_query>
|
2022-08-16 12:32:50 +00:00
|
|
|
INSERT INTO simple_key_hashed_dictionary_source_table
|
2021-03-27 14:00:00 +00:00
|
|
|
SELECT number, number, toString(number), toDecimal64(number, 8), toString(number)
|
|
|
|
FROM system.numbers
|
2022-08-16 12:32:50 +00:00
|
|
|
LIMIT 5000000;
|
2021-03-27 14:00:00 +00:00
|
|
|
</fill_query>
|
|
|
|
|
|
|
|
<fill_query>
|
2022-08-16 12:32:50 +00:00
|
|
|
INSERT INTO complex_key_hashed_dictionary_source_table
|
2021-03-27 14:00:00 +00:00
|
|
|
SELECT number, toString(number), number, toString(number), toDecimal64(number, 8), toString(number)
|
|
|
|
FROM system.numbers
|
2022-08-16 12:32:50 +00:00
|
|
|
LIMIT 5000000;
|
2021-03-28 10:35:26 +00:00
|
|
|
</fill_query>
|
2021-03-27 14:00:00 +00:00
|
|
|
|
2022-08-16 12:32:50 +00:00
|
|
|
<substitutions>
|
|
|
|
<substitution>
|
|
|
|
<name>column_name</name>
|
|
|
|
<values>
|
|
|
|
<value>'value_int'</value>
|
|
|
|
<value>'value_string'</value>
|
|
|
|
<value>'value_decimal'</value>
|
|
|
|
<value>'value_string_nullable'</value>
|
|
|
|
</values>
|
|
|
|
</substitution>
|
2021-03-27 14:00:00 +00:00
|
|
|
|
2022-08-16 12:32:50 +00:00
|
|
|
<substitution>
|
|
|
|
<name>elements_count</name>
|
|
|
|
<values>
|
|
|
|
<value>5000000</value>
|
|
|
|
<value>7500000</value>
|
|
|
|
</values>
|
|
|
|
</substitution>
|
|
|
|
</substitutions>
|
2021-03-27 14:00:00 +00:00
|
|
|
|
2021-03-29 13:41:03 +00:00
|
|
|
<query>
|
2021-04-13 12:57:11 +00:00
|
|
|
WITH rand64() % toUInt64({elements_count}) as key
|
2022-08-16 12:32:50 +00:00
|
|
|
SELECT dictGet('default.simple_key_hashed_dictionary', {column_name}, key)
|
2021-03-29 13:41:03 +00:00
|
|
|
FROM system.numbers
|
|
|
|
LIMIT {elements_count}
|
2022-08-16 12:32:50 +00:00
|
|
|
FORMAT Null;
|
2021-03-29 13:41:03 +00:00
|
|
|
</query>
|
2021-10-23 12:01:30 +00:00
|
|
|
|
2021-04-13 12:57:11 +00:00
|
|
|
<query>
|
|
|
|
WITH rand64() % toUInt64({elements_count}) as key
|
2022-08-16 12:32:50 +00:00
|
|
|
SELECT dictHas('default.simple_key_hashed_dictionary', key)
|
2021-03-29 13:41:03 +00:00
|
|
|
FROM system.numbers
|
|
|
|
LIMIT {elements_count}
|
2022-08-16 12:32:50 +00:00
|
|
|
FORMAT Null;
|
2021-03-29 13:41:03 +00:00
|
|
|
</query>
|
2021-03-27 14:00:00 +00:00
|
|
|
|
2022-08-16 12:32:50 +00:00
|
|
|
<query>
|
|
|
|
SELECT * FROM simple_key_hashed_dictionary
|
|
|
|
FORMAT Null;
|
|
|
|
</query>
|
2021-10-25 17:12:29 +00:00
|
|
|
|
2021-03-29 13:41:03 +00:00
|
|
|
<query>
|
2021-04-13 12:57:11 +00:00
|
|
|
WITH (rand64() % toUInt64({elements_count}), toString(rand64() % toUInt64({elements_count}))) as key
|
2022-08-16 12:32:50 +00:00
|
|
|
SELECT dictGet('default.complex_key_hashed_dictionary', {column_name}, key)
|
2021-03-29 13:41:03 +00:00
|
|
|
FROM system.numbers
|
|
|
|
LIMIT {elements_count}
|
2022-08-16 12:32:50 +00:00
|
|
|
FORMAT Null;
|
2021-03-29 13:41:03 +00:00
|
|
|
</query>
|
2021-10-23 12:01:30 +00:00
|
|
|
|
2021-04-13 12:57:11 +00:00
|
|
|
<query>
|
|
|
|
WITH (rand64() % toUInt64({elements_count}), toString(rand64() % toUInt64({elements_count}))) as key
|
2022-08-16 12:32:50 +00:00
|
|
|
SELECT dictHas('default.complex_key_hashed_dictionary', key)
|
2021-03-31 21:12:21 +00:00
|
|
|
FROM system.numbers
|
|
|
|
LIMIT {elements_count}
|
2022-08-16 12:32:50 +00:00
|
|
|
FORMAT Null;
|
|
|
|
</query>
|
|
|
|
|
|
|
|
<query>
|
|
|
|
SELECT * FROM complex_key_hashed_dictionary
|
|
|
|
FORMAT Null;
|
2021-10-25 17:12:29 +00:00
|
|
|
</query>
|
|
|
|
|
2022-08-16 12:32:50 +00:00
|
|
|
<drop_query>DROP DICTIONARY IF EXISTS simple_key_hashed_dictionary;</drop_query>
|
|
|
|
<drop_query>DROP DICTIONARY IF EXISTS complex_key_hashed_dictionary;</drop_query>
|
2021-03-28 10:35:26 +00:00
|
|
|
|
2022-12-16 14:12:52 +00:00
|
|
|
<drop_query>DROP TABLE IF EXISTS simple_key_hashed_dictionary_source_table;</drop_query>
|
|
|
|
<drop_query>DROP TABLE IF EXISTS complex_key_hashed_dictionary_source_table;</drop_query>
|
2021-03-27 14:00:00 +00:00
|
|
|
</test>
|