<keeper_map_path_prefix>.
Por exemplo:
Criando uma tabela
root_path- caminho no ZooKeeper ondetable_nameserá armazenado. Esse caminho não deve conter o prefixo definido na config<keeper_map_path_prefix>, porque o prefixo será anexado automaticamente aroot_path. Além disso, o formatoauxiliary_zookeeper_cluster_name:/some/pathtambém é compatível, em queauxiliary_zookeeper_clusteré um cluster ZooKeeper definido na config<auxiliary_zookeepers>. Por padrão, é usado o cluster ZooKeeper definido na config<zookeeper>.keys_limit- número de chaves permitidas na tabela. Esse é um limite não rígido, e em alguns casos excepcionais pode acontecer de mais chaves acabarem na tabela.primary_key_name– qualquer nome de coluna na lista de colunas.- a
primary keydeve ser especificada; ela aceita apenas uma coluna. A chave primária será serializada em binário como umnode nameno ZooKeeper. - colunas diferentes da chave primária serão serializadas em binário na ordem correspondente e armazenadas como o valor do nó resultante definido pela chave serializada.
- consultas com filtragem por chave
equalsouinserão otimizadas para busca de múltiplas chaves noKeeper; caso contrário, todos os valores serão obtidos.
(v1, v2, v3), será armazenado em /keeper_map_tables/keeper_map_table/data/serialized_key no Keeper.
Além disso, o número de chaves terá um limite soft de 4.
Se várias tabelas forem criadas no mesmo caminho do ZooKeeper, os valores serão persistidos enquanto houver pelo menos 1 tabela usando esse caminho.
Como resultado, é possível usar a cláusula ON CLUSTER ao criar a tabela e compartilhar os dados entre várias instâncias do ClickHouse.
É claro que também é possível executar manualmente CREATE TABLE com o mesmo caminho em instâncias não relacionadas do ClickHouse para obter o mesmo efeito de compartilhamento de dados.
Operações suportadas
Inserções
KeeperMap, se a chave não existir, uma nova entrada é criada para ela.
Se a chave existir e a configuração keeper_map_strict_mode estiver definida como true, uma exceção será lançada; caso contrário, o valor associado à chave será sobrescrito.
Exemplo:
Exclusões
DELETE ou TRUNCATE.
Se a chave existir e a configuração keeper_map_strict_mode estiver definida como true, a recuperação e a exclusão dos dados só serão bem-sucedidas se puderem ser executadas atomicamente.
Atualizações
ALTER TABLE. A chave primária não pode ser atualizada.
Se a configuração keeper_map_strict_mode estiver definida como true, a recuperação e a atualização de dados só serão bem-sucedidas se forem executadas atomicamente.