Observação
Esta página se aplica tanto ao Atlas Infinite quanto ao Atlas Core.
As seguintes limitações se aplicam ao Atlas Stream Processing:
Em geral
O Atlas Stream Processing suporta apenas o processamento pelo menos uma vez.
O Atlas Stream Processing não oferece suporte ao dimensionamento horizontal.
O Atlas Stream Processing usa um único núcleo para estágios de pipeline de transformação, exceto para estágios que podem especificar um valor
parallelism.Ao habilitar vertical autoscaling, você deve definir um
maxTierde tier no processador ou como o tamanho máximo de tier do workspace de Stream Processing. Se nenhum dos dois for definido, o processador retornará um erro e não iniciará.Não é possível configurar os limites de CPU e memória que trigger o escalonamento automático vertical. O Atlas Stream Processing gerencia esses limites internamente.
O
state.stateSizede um processador de stream não pode exceder 80% da RAM disponível para seu pod. Por exemplo, o tamanho máximo de um processador de stream no nívelSP30, que tem 8GB de RAM, é 6.4GB. Se ostate.stateSizede qualquer um dos seus processadores de stream estiver se aproximando de 80% da RAM disponível, considere parar o processador e reiniciá-lo em um nível superior. Se o processador de stream processing já for executado no nível máximo habilitado para o espaço de trabalho de stream processing, considere ajustar a configuração do espaço de trabalho de stream processing para habilitar processadores de stream processing de nível superior.Quando um processador de fluxo ultrapassa o limite de 80% de RAM, ele falha com um erro
Worker out of memory. Você pode ver o valorstate.stateSizede cada processador de fluxo com o comandosp.processor.stats(). Veja Veja estatísticas de um processador de fluxo para saber mais.Uma definição de pipeline do Atlas Stream Processing não pode exceder 16 MB.
Only users with the
Organization Stream Processing Admin,Project Owner,Project Stream Processing OwnerorAtlas adminroles can use Atlas Stream Processing.You must use
mongoshversion 2.3.4 or later to override an option on an existing stream processor using amongoshmethod. For example, usingsp.processor.start()to specify a tier for the processor you are starting.Veja Desenvolver processadores de fluxo para saber mais sobre como gerenciar um processador de fluxo usando
mongosh.
Pipeline de agregação
O Atlas Stream Processing é compatível com um subconjunto dos Estágios de Pipeline de agregação disponíveis no Atlas, permitindo que você execute muitas das mesmas operações em dados de streaming que você pode realizar em dados em repouso. Para obter uma lista completa dos estágios do pipeline de agregação compatíveis, consulte a documentação do Stream Aggregation.
O Atlas Stream Processing não aceita as variáveis de agregação
$$NOW,$$CLUSTER_TIME,$$USER_ROLESe$SEARCH_META.O Atlas Stream Processing não permite a gravação de documentos BSON maiores que
125 MBusando o estágio $emit em um bucket AWS S3.O estágio $iceberg suporta um máximo de três transformações de partição no campo
partitionedBy.
Conexões Kafka
Para estágios Apache Kafka $source, se o tópico Apache Kafka que atua como $source para o processador em execução adicionar uma partição, o deslocamento inicial será determinado pela propriedade auto_offset_reset.
Para Apache Kafka $source os estágios estão sujeitos aos limites de partição do tier do workspace de Stream Processing. Se você exceder o limite de partição do seu tier de workspace de Stream Processing, o processador de fluxo afetado falhará. Você deve atualizar seu workspace de Stream Processing para oferecer suporte a partições adicionais.
O Atlas Stream Processing não oferece suporte à conexão a um consumidor Apache Kafka no mesmo grupo de consumidores que outros consumidores. Certifique-se de que qualquer consumidor Kafka usado com o Atlas Stream Processing seja executado em um grupo de consumidores dedicado.
Para conexões Apache Kafka, o Atlas Stream Processing atualmente aceita apenas os seguintes protocolos de segurança:
SASL_PLAINTEXTSASL_SSLSSL
Para
SASL, o Atlas Stream Processing suporta os seguintes mecanismos:PLAINSCRAM-SHA-256SCRAM-SHA-512OAUTHBEARER
SSLPara, você deve fornecer os seguintes ativos para a autenticação TLS mútua do seu sistema Apache Kafka com o Atlas Stream Processing:uma Autoridade de certificação (se você estiver usando uma autoridade de certificação diferente da Apache Kafka CA padrão)
um certificado TLS do cliente
um arquivo de chave TLS, usado para assinar seu certificado TLS
Sincronização inicial
initialSync doesn't support collections whose _id values are arrays, regular expressions, or undefined, which MongoDB doesn't support as
_idvalues.If your collection's
_idvalues are default generated ObjectId values or orderedintorlongvalues,initialSyncachieves optimal performance. For other_idtypes,initialSyncmight take longer to complete because the values aren't stored in a predictable order. If the resume token is no longer on the oplog wheninitialSynccompletes, the processor enters a failed state to prevent data loss. To recover, restart the processor withresumeFromCheckpoint=false, which causesinitialSyncto run again. To learn more, see Checkpoints.O Atlas Stream Processing pode inserir novos documentos em uma partição enquanto
initialSynco copia. Uma falha de rede que interrompe uma query em uma partição crescente pode prolongar a fase de cópia da coleção.initialSyncpode inserir documentos duplicados se ler um evento de alteração durante a fase de cópia da coleção ou de sincronização. A garantia em processamento de pelo menos uma vez do Atlas Stream Processing cobre esse comportamento. Duplicatas são mais prováveis quando os valores_idda sua coleção não são valoresObjectIdou valoresintoulongordenados, porque a fase de cópia da coleção é executada por mais tempo e abrange mais eventos de alteração.
Processadores de failover
O Atlas Stream Processing oferece suporte a processadores de failover apenas para processadores com as seguintes configurações:
Atlas source and sink
Fonte do Atlas e Apache Kafka sink
O Atlas Stream Processing oferece suporte a processadores de failover apenas para processadores de tier
SP10ou superior.Um workspace de Stream Processing pode ter até duas regiões de failover. As regiões de failover devem usar o mesmo provedor de nuvem que a região padrão do workspace do Stream Processing. O Atlas Stream Processing não oferece suporte a failover entre nuvens.
Para processadores configurados com processadores de failover, apenas um processador pode estar ativo a qualquer momento. Você pode editar apenas o processador ativo.