Menu Docs
Página inicial do Docs
/
MongoDB Kafka Connector
/ /

Nomenclatura de tópicos

Os exemplos nesta página mostram como configurar o connector de origem do MongoDB Kafka para personalizar o nome do tópico para o qual ele publica registros.

Por padrão, o conector de origem MongoDB Kafka publica dados de evento de alteração em um tópico do Kafka com o mesmo nome que o namespace MongoDB do qual os eventos de alteração se originaram. Um namespace é uma string composta do nome do banco de dados de dados e da collection concatenada por um ponto "." personagem.

Os exemplos a seguir mostram maneiras diferentes de personalizar os tópicos do Kafka nos quais o conector publica os dados de evento de alteração:

  • Prefixo de tópico

  • Sufixo de tópico

  • Mapa de namespace de tópicos

  • Mapa de namespace de tópicos com curinga

Você pode configurar o seu connector de origem para preceder uma string ao namespace dos dados do evento de alteração e publicar registros nesse tópico do Kafka. Essa configuração concatena automaticamente seu prefixo com seu namespace com o "." personagem.

Para especificar o prefixo do tópico, utilize a configuração do topic.prefix como mostrado no seguinte exemplo:

topic.prefix=myPrefix
database=test
collection=data

Depois de definido, o conector publica quaisquer alterações na coleção data no banco de dados test no tópico Kafka chamado myPrefix.test.data.

Você pode configurar o seu connector de origem para acrescentar uma string ao namespace dos dados do evento de alteração e publicar registros nesse tópico do Kafka. Essa configuração concatena automaticamente seu namespace com seu sufixo com o "." personagem.

Para especificar o sufixo do tópico, utilize a configuração do topic.suffix como mostrado no seguinte exemplo:

topic.suffix=mySuffix
database=test
collection=data

Depois de definido, o conector publica quaisquer alterações na coleção data no banco de dados test no tópico Kafka chamado test.data.mySuffix.

Você pode configurar seu connector de origem para mapear valores de namespace para nomes de tópico Kafka para dados de eventos de alteração recebidos.

Se o nome do banco de dados de dados ou namespace do evento de alteração corresponder a um dos campos no mapa, o conector publicará o registro para o valor que corresponde a esse mapeamento.

Se o nome do banco de dados de dados ou o namespace do evento de alteração não corresponderem a nenhum mapeamento, o conector publicará o registro usando o esquema de nomenclatura de tópico padrão, a menos que especificado de outra forma por uma configuração de nomenclatura de tópico diferente.

Qualquer mapeamento que inclua banco de dados e coleção tem precedência sobre mapeamentos que especificam apenas o nome do banco de dados de origem.

Importante

A correspondência do namespace map ocorre antes que o connector aplique qualquer outra configuração de nomenclatura de tópico. Se definido, o connector aplicará as configurações topic.prefix e topic.suffix ao nome do tópico após o mapeamento.

O exemplo a seguir mostra como especificar a configuração topic.namespace.map para definir um mapeamento de namespace de tópico do banco de banco de dados carDb para o tópico automobiles e do namespace carDb.ev para o tópico electricVehicles :

topic.namespace.map={"carDb": "automobiles", "carDb.ev": "electricVehicles"}

Como o mapeamento do namespace carDb.ev tem precedência sobre o mapeamento carDb, o connector executa a seguinte ação:

  • Se o evento de alteração vier do reconhecimento de data center carDb e da collection ev, o connector definirá o destino para o tópico electricVehicles .

  • Se o evento de alteração vier do reconhecimento de data center carDb e de uma collection diferente de ev, o connector definirá o destino para o tópico automobiles.<collectionName> .

  • Se o documento de alteração vier de qualquer reconhecimento de data center diferente de carDb, o connector definirá o tópico de destino para o esquema de nomenclatura de namespace padrão.

  • Se definido, o conector aplicará as configurações topic.prefix e topic.suffix ao nome do tópico de destino após executar o mapeamento de namespace .

Além de especificar o nome do banco de dados e o namespace em seu mapa de namespace de tópico, conforme mostrado em Exemplo de mapa de namespace de tópico, você pode usar um curinga * para corresponder a eventos de alteração de todos os bancos de dados e namespaces sem mapeamentos.

topic.namespace.map={"carDb": "automobiles", "carDb.ev": "electricVehicles", "*": "otherVehicles"}

No exemplo de curinga anterior, o connector publica documento de alteração originados de todos os reconhecimento de data center diferentes de carDb no tópico otherVehicles .

Voltar

Múltiplas origens