CREATE TABLE simple_key_flat_dictionary_source_table
(
id UInt64,
value_int UInt64,
value_string String,
value_decimal Decimal64(8),
value_string_nullable Nullable(String)
) ENGINE = Memory;
CREATE DICTIONARY simple_key_flat_dictionary
(
id UInt64,
value_int UInt64,
value_string String,
value_decimal Decimal64(8),
value_string_nullable Nullable(String)
)
PRIMARY KEY id
SOURCE(CLICKHOUSE(DB 'default' TABLE 'simple_key_flat_dictionary_source_table'))
LAYOUT(FLAT(INITIAL_ARRAY_SIZE 50000 MAX_ARRAY_SIZE 5000000))
LIFETIME(MIN 0 MAX 1000)
INSERT INTO simple_key_flat_dictionary_source_table
SELECT number, number, toString(number), toDecimal64(number, 8), toString(number)
FROM system.numbers
LIMIT 5000000;
column_name
'value_int'
'value_string'
'value_decimal'
'value_string_nullable'
elements_count
5000000
7500000
WITH rand64() % toUInt64({elements_count}) as key
SELECT dictGet('default.simple_key_flat_dictionary', {column_name}, key)
FROM system.numbers
LIMIT {elements_count}
FORMAT Null;
SELECT * FROM simple_key_flat_dictionary
FORMAT Null;
WITH rand64() % toUInt64(75000000) as key
SELECT dictHas('default.simple_key_flat_dictionary', key)
FROM system.numbers
LIMIT 75000000
FORMAT Null;
DROP TABLE IF EXISTS simple_key_flat_dictionary_source_table
DROP DICTIONARY IF EXISTS simple_key_flat_dictionary