I have a table with one million rows of data. And It's schema is like:
```
create table redis_dictionary_test
(
	date String,
	id String,
	value Int64
)
engine = MergeTree()
partition by date
order by id
settings index_granularity = 8192;
```

I also inserted one million key-value pairs into Redis.
The dictionary is like:
```
create dictionary redis_dict
(
	date String,
	id String,
	value Int64
)
PRIMARY KEY date, id
SOURCE(REDIS(
	host '127.0.0.1'
	port 6379
	storage_type 'hash_map'
	db_index 0
))
LAYOUT(COMPLEX_KEY_DIRECT())
```
When I execute this query: `SELECT COUNT(DISTINCT dictGet('redis_dict', 'value', tuple(date, id))) FROM redis_dictionary_test;`, ClickHouse seems stuck. Progress was in this state: 122.88 thousand rows, 5.84 MB (1.20 million rows/s., 56.83 MB/s.)  12% about five minutes. Finally, I canceled query.

I am sure Redis is fine. Because I monitored Redis and it could accept read and write commands.

I also executed this query on 1000, 10000 and 100000 rows of data. They can return data normally.

What happened to ClickHouse? Where can I find out the reason?
case ValueType::vtFloat32:
                    insert<Float32>(column, string_value);
                    break;
                case ValueType::vtFloat64:
                    insert<Float64>(column, string_value);
                    break;
                case ValueType::vtEnum8:
                case ValueType::vtEnum16:
                case ValueType::vtString:
                    assert_cast<ColumnString &>(column).insert(parse<String>(string_value));
                    break;
                case ValueType::vtDate:
                    assert_cast<ColumnUInt16 &>(column).insertValue(parse<LocalDate>(string_value).getDayNum());
                    break;
                case ValueType::vtDateTime:
                {
                    ReadBufferFromString in(string_value);
                    time_t time = 0;
                    readDateTimeText(time, in);
                    if (time < 0)
                        time = 0;
                    assert_cast<ColumnUInt32 &>(column).insertValue(time);
                    break;
                }
                case ValueType::vtUUID:
                    assert_cast<ColumnUUID &>(column).insertValue(parse<UUID>(string_value));
                    break;
                default:
                    throw Exception(ErrorCodes::UNKNOWN_TYPE,
                        "Value of unsupported type: {}",