O Atlas Stream Processing permite a você ler, escrever e transformar streams de dados complexos utilizando as mesmas operações de agregação do utilizadas nos bancos de dados do Atlas . O Atlas Stream Processing permite:
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 change streams do MongoDB , incluindo o gerenciamento de vários tipos de evento de dados e o processamento de fluxos de dados complexos de várias fontes, como o Kafka, APIs externas e armazenamento na nuvem. Ao contrário dos change streams que são restritos a eventos do banco de dados , o Atlas Stream Processing permite fluxos de trabalho abrangentes de processamento de streams com a mesma API de query usada nos bancos de dados do Atlas .
Configurar um espaço de trabalho de processamento de fluxo
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
Os processadores de stream assumem a forma de um pipeline que pode ser conceitualmente dividido em três fases. Depois de entender essa estrutura, você pode criar e gerenciar processadores de stream para processar continuamente seus dados de stream.
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 stream aproveita os estágios de pipeline de agregação e os operadores de agregação, além do conjunto padrão de operadores de agregação e estágios do MongoDB para transformar dados ingeridos e extrair insights valiosos. Para saber como definir os agregação pipelines do Atlas Stream Processing , consulte a documentação do agregação pipeline. O Atlas Stream Processing pode escrever documentos que não pode processar em uma dead letter queue (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 oferece suporte à criação de espaços de trabalho de processamento de stream no AWS, noAzure e no Google Cloud. Para obter uma lista de regiões disponíveis, consulte as seções Stream Processing worspaces 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 limitações específicas do Atlas Stream Processing.