https://clickhouse.com/docs/en/sql-reference/statements/create/dictionary/

```
CREATE DICTIONARY [IF NOT EXISTS] [db.]dictionary_name [ON CLUSTER cluster]
(
    key1 type1  [DEFAULT|EXPRESSION expr1] [HIERARCHICAL|INJECTIVE|IS_OBJECT_ID],
    key2 type2  [DEFAULT|EXPRESSION expr2] [HIERARCHICAL|INJECTIVE|IS_OBJECT_ID],
    attr1 type2 [DEFAULT|EXPRESSION expr3],
    attr2 type2 [DEFAULT|EXPRESSION expr4]

```

`[HIERARCHICAL|INJECTIVE|IS_OBJECT_ID]` -- about attr1 not key1. 
And what is `IS_OBJECT_ID` ?
{
    if (id)
        return "UInt64";
    WriteBufferFromOwnString out;
    out << '(';
    auto first = true;
    for (const auto & key_i : *key)
    {
        if (!first)
            out << ", ";
        first = false;
        out << key_i.type->getName();
    }
    out << ')';
    return out.str();
}
bool DictionaryStructure::isKeySizeFixed() const
{
    if (!key)
        return true;
    for (const auto & key_i : *key)
        if (key_i.underlying_type == AttributeUnderlyingType::String)
            return false;
    return true;
}
Strings DictionaryStructure::getKeysNames() const