Pular para o conteúdo principal
Coleções nomeadas oferecem uma forma de armazenar coleções de pares chave-valor para serem usadas na configuração de integrações com fontes externas. Você pode usar coleções nomeadas com dicionários, tabelas, funções de tabela e armazenamento de objetos. Coleções nomeadas podem ser configuradas com DDL ou em arquivos de configuração e são aplicadas quando o ClickHouse é iniciado. Elas simplificam a criação de objetos e o ocultamento de credenciais de usuários sem acesso administrativo. As chaves em uma coleção nomeada devem corresponder aos nomes dos parâmetros da função, mecanismo de tabela, banco de dados etc. correspondentes. Nos exemplos abaixo, há um link para a lista de parâmetros de cada tipo. Os parâmetros definidos em uma coleção nomeada podem ser substituídos em SQL, como mostrado nos exemplos abaixo. Essa capacidade pode ser limitada usando as palavras-chave [NOT] OVERRIDABLE, atributos XML e/ou a opção de configuração allow_named_collection_override_by_default.
Se a substituição for permitida, pode ser possível que usuários sem acesso administrativo descubram as credenciais que você está tentando ocultar. Se você estiver usando coleções nomeadas com esse propósito, deverá desabilitar allow_named_collection_override_by_default (que vem habilitada por padrão).

Armazenar coleções nomeadas no banco de dados do sistema

Exemplo de DDL

No exemplo acima:
  • key_1 sempre pode ser sobrescrita.
  • key_2 nunca pode ser sobrescrita.
  • url pode ou não ser sobrescrita, dependendo do valor de allow_named_collection_override_by_default.

Permissões para criar coleções nomeadas com DDL

Para gerenciar coleções nomeadas com DDL, um usuário deve ter o privilégio named_collection_control. Esse privilégio pode ser atribuído adicionando um arquivo a /etc/clickhouse-server/users.d/. O exemplo concede ao usuário default os privilégios access_management e named_collection_control:
/etc/clickhouse-server/users.d/user_default.xml
No exemplo acima, o valor password_sha256_hex é a representação hexadecimal do hash SHA256 da senha. Esta configuração do usuário default tem o atributo replace=true, pois a configuração padrão já define uma password em texto simples, e não é possível ter, ao mesmo tempo, uma password em texto simples e uma password_sha256_hex definidas para um usuário.

Armazenamento de coleções nomeadas

As coleções nomeadas podem ser armazenadas no disco local ou no ZooKeeper/Keeper. Por padrão, o armazenamento local é usado. Elas também podem ser armazenadas com criptografia usando os mesmos algoritmos usados na criptografia de disco, em que aes_128_ctr é usado por padrão. Para configurar o armazenamento de coleções nomeadas, você precisa especificar um type. Ele pode ser local ou keeper/zookeeper. Para armazenamento criptografado, você pode usar local_encrypted ou keeper_encrypted/zookeeper_encrypted. Para usar ZooKeeper/Keeper, também é necessário configurar um path (caminho no ZooKeeper/Keeper onde as coleções nomeadas serão armazenadas) na seção named_collections_storage do arquivo de configuração. O exemplo a seguir usa criptografia e ZooKeeper/Keeper:
O parâmetro de configuração opcional update_timeout_ms é, por padrão, 5000.

Armazenar coleções nomeadas em arquivos de configuração

Exemplo de XML

/etc/clickhouse-server/config.d/named_collections.xml
No exemplo acima:
  • key_1 sempre pode ser sobrescrito.
  • key_2 nunca pode ser sobrescrito.
  • url pode ou não ser sobrescrito, dependendo do valor de allow_named_collection_override_by_default.

Modificando coleções nomeadas

Coleções nomeadas criadas com instruções DDL podem ser alteradas ou removidas com DDL. Coleções nomeadas criadas com arquivos XML podem ser gerenciadas editando ou excluindo o arquivo XML correspondente.

Alterar uma coleção nomeada DDL

Altere ou adicione as chaves key1 e key3 da coleção nomeada collection2 (isso não alterará o valor da flag overridable para essas chaves):
Altere ou adicione a chave key1 e permita que ela seja sempre sobrescrita:
Remova a chave key2 de collection2:
Altere ou adicione a chave key1 e exclua a chave key3 da coleção collection2:
Para forçar uma chave a usar as configurações padrão da flag overridable, é necessário remover a chave e adicioná-la novamente.

Exclua a coleção nomeada collection2:

Coleções nomeadas para acessar o S3

Para ver a descrição dos parâmetros, consulte a função de tabela S3.

Exemplo de DDL

Exemplo em XML

Exemplos de coleção nomeada para a função s3() e a tabela S3

Ambos os exemplos a seguir usam a mesma coleção nomeada s3_mydata:

função s3()

O primeiro argumento da função s3() acima é o nome da coleção, s3_mydata. Sem coleções nomeadas, o ID da chave de acesso, a chave secreta, o formato e a URL teriam de ser informados em cada chamada à função s3().

Tabela S3

Coleções nomeadas para acessar um banco de dados MySQL

Consulte a descrição dos parâmetros em mysql.

Exemplo de DDL

Exemplo de XML

Exemplos de coleção nomeada para a função mysql(), tabela MySQL, banco de dados MySQL e Dicionário

Os quatro exemplos a seguir usam a mesma coleção nomeada mymysql:

função mysql()

A coleção nomeada não define o parâmetro table, então ele é informado na chamada da função como table = 'test'.

Tabela MySQL

A DDL substitui a configuração connection_pool_size da coleção nomeada.

Banco de dados MySQL

Dicionário do MySQL

Coleções nomeadas para acessar o banco de dados PostgreSQL

Para ver a descrição dos parâmetros, consulte postgresql. Além disso, há os seguintes aliases:
  • username para user
  • db para database.
O parâmetro addresses_expr é usado em uma coleção no lugar de host:port. Esse parâmetro é opcional, porque há outros parâmetros opcionais: host, hostname, port. O pseudocódigo a seguir explica a prioridade:
Exemplo de criação:
Exemplo de configuração:

Exemplo de uso de coleções nomeadas com a função postgresql

Exemplo de uso de coleções nomeadas com banco de dados com mecanismo PostgreSQL

O PostgreSQL copia os dados da coleção nomeada quando a tabela é criada. Alterações na coleção não afetam as tabelas existentes.

Exemplo de uso de coleções nomeadas com um banco de dados com engine PostgreSQL

Exemplo de uso de coleção nomeada com um Dicionário de fonte POSTGRESQL

Coleções nomeadas para acessar um banco de dados remoto do ClickHouse

Consulte a descrição dos parâmetros em remote. Exemplo de configuração:
secure não é necessário na conexão por causa de remoteSecure, mas pode ser usado para dicionários.

Exemplo de uso de coleções nomeadas com as funções remote/remoteSecure

Exemplo de uso de coleções nomeadas com um dicionário com origem no ClickHouse

Coleções nomeadas para acessar o Kafka

Veja a descrição dos parâmetros em Kafka.

Exemplo de DDL

Exemplo em XML

Exemplo de uso de coleções nomeadas com uma tabela do Kafka

Ambos os exemplos a seguir usam a mesma coleção nomeada my_kafka_cluster:

Coleções nomeadas para backups

Para a descrição dos parâmetros, consulte Backup e restauração.

Exemplo de DDL

Exemplo de XML

Coleções nomeadas para acessar Tabela e Dicionário do MongoDB

Para obter a descrição dos parâmetros, consulte mongodb.

Exemplo de DDL

Exemplo em XML

tabela do MongoDB

O DDL substitui a configuração de opções da coleção nomeada.

Dicionário MongoDB

A coleção nomeada define my_collection como nome da coleção. Na chamada da função, esse valor é substituído por collection = 'my_dict' para selecionar outra coleção.
Última modificação em 12 de junho de 2026