O Atlas Stream Processing permite que você leia, grave e transforme fluxos de dados complexos usando as mesmas operações de agregação usadas nos bancos de dados Atlas. O Atlas Stream Processing permite que você:
Crie agregação pipelines para operar continuamente com dados de streaming.
Realize a validação contínua para verificar se as mensagens estão formadas corretamente, detecte a corrupção da mensagem e detecte a chegada atrasada de dados.
Transforme campos à medida que os documentos fluem por seus pipelines e roteie esses documentos para bancos de dados distintos, tópicos do Kafka ou outros coletores externos usando campos ou expressões em cada documento como chaves.
Publicar continuamente resultados em coleções do Atlas ou clusters do Apache Kafka, garantindo visualizações e análise atualizadas dos dados.
Os componentes do Atlas Stream Processing pertencem diretamente ao projeto Atlas e operam independentemente do cluster do Atlas.
Observação
O Atlas Stream Processing oferece funcionalidade estendida além dos fluxos de alterações do MongoDB, incluindo o gerenciamento de vários tipos de evento de dados e processamento de fluxos de dados complexos de várias fontes, como Kafka, APIs externas e armazenamento em nuvem. Diferente dos fluxos de alterações, que são restritos a eventos do banco de dados, o Atlas Stream Processing permite fluxos de trabalho abrangentes do processamento de fluxos com a mesma API de query usada nos bancos de dados Atlas.
Configure um espaço de trabalho do Stream Processing
Para começar a usar o Atlas Stream Processing, você deve primeiro configurar um Workspace de Stream Processing. Isso envolve aprender como criar, modificar e excluir um Atlas Stream Processing Workspace para começar a processar seus dados de streaming.
Dados de streaming
Um stream é um fluxo contínuo de dados imutáveis originados de uma ou mais fontes. Exemplos de fluxos de dados incluem leituras de temperatura ou pressão de sensores, registros de transações financeiros ou alteração de eventos de captura de dados.
Os fluxos de dados são originados de fontes como Apache Kafka Topics ou change streams do MongoDB. Em seguida, você pode gravar dados processados em coletores, incluindo Apache Kafka Topics, Atlas collections, funções externas ou armazenamentos de dados na nuvem.
O Atlas Stream Processing fornece recursos nativos de processamento de stream para operar em dados contínuos sem as restrições de tempo e computacionais de um banco de dados em repouso.
Estrutura de um processador de fluxo
Processadores de fluxo assumem a forma de um pipeline que pode ser dividido conceitualmente em três fases. Depois de entender essa estrutura, você pode criar e gerenciar processadores de fluxo para processar continuamente seus dados de streaming.
Fontes
Os processadores de stream começam ingerindo documentos de fontes de dados de streaming às quais o Atlas Stream Processing está conectado. Eles podem ser sistemas de corretagem, como Apache Kafka, ou fluxos de alteração de banco de dados, como os gerados pelas operações de leitura/gravação do Atlas. Essas entradas devem ser documentos json ou ejson válidos. Depois que o estágio $source ingere um documento, você pode aplicar a agregação do MongoDB a esse documento para transformá-lo conforme necessário.
Além da ingestão de dados de uma fonte de streaming, o Atlas Stream Processing também oferece suporte ao enriquecimento de seus documentos com dados de solicitações HTTPS e operações $lookup para unir dados de Atlas clusters conectados.
Pipelines
Um processador de fluxo utiliza fases do pipeline de agregação e operadores de agregação, além do conjunto padrão de operadores e estágios de agregação do MongoDB, para transformar os dados ingeridos e extrair insights valiosos. Para aprender a definir pipelines de agregação do Atlas Stream Processing, consulte a documentação do pipeline de agregação. O Atlas Stream Processing pode gravar documentos que ele não consegue processar em uma fila de mensagens não entregues (DLQ).
Você pode enriquecer documentos reestruturando-os, adicionando ou removendo campos, procurando informações em suas collections e muito mais. O Atlas Stream Processing também permite coletar eventos usando o Windows e executar funções arbitrárias .
Windows
As janelas são estágios de pipeline que agregam dados de streaming dentro de um período de tempo definido. Isso permite agrupar os dados, obter médias, encontrar mínimo e máximo e executar várias outras operações que, de outra forma, são inaplicáveis ao streaming de dados. Cada processador de fluxo só pode ter um estágio de janela.
Funções
O Atlas Stream Processing oferece suporte a chamadas para funções JavaScript personalizadas ou funções do Amazon Web Services Lambda que são executadas em cada documento que o fluxo processa passa para elas.
Acumuladores
Após processar os dados ingeridos, o processador de fluxo persiste gravando-os em um coletor. O Atlas Stream Processing oferece os estágios $emit e $merge para gravar em diferentes tipos de sinks. Esses estágios são mutuamente exclusivos entre si e cada processador de fluxo pode ter apenas um estágio de coletor. Seu pipeline pode incluir lógica para escrever documentos processados em diferentes tópicos do Kafka ou collections do Atlas dentro das mesmas conexões de sink.
Regiões do Atlas Stream Processing
O Atlas Stream Processing aceita criação de espaços de trabalho de no AWS, Azure e Google Cloud. Para uma lista das regiões disponíveis, consulte as seções de espaços de trabalho do Stream Processing do:
Referência de funcionalidade do Microsoft Azure.
Referência de recursos do Google Cloud Platform.
Os processadores de stream podem ler e escrever em clusters hospedados em diferentes provedores de nuvem ou em diferentes regiões.
Cobrança
Para obter informações sobre cobrança, consulte a página de cobrança do Atlas Stream Processing.
Próximos passos
Para começar a trabalhar de forma prática com o Atlas Stream Processing, consulte Introdução ao Atlas Stream Processing.
Para obter informações mais detalhadas sobre os principais conceitos de Atlas Stream Processing , consulte o seguinte:
Saiba mais sobre as limitações específicas do Atlas Stream Processing.