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 ativar o dimensionamento automático vertical, você deve definir um
maxTierno processador ou como o tamanho máximo da camada do espaço de trabalho de processamento de fluxo. Se nenhum dos dois estiver definido, o processador retornará um erro e não iniciará.Não é possível configurar os limites de CPU e memória que acionam o dimensionamento 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.
Somente usuários com as
Organization Stream Processing AdminProject Ownerfunções,,Project Stream Processing OwnerouAtlas adminpodem usar o Atlas Stream Processing.Você deve usar
mongosh234 a versão.. ou posterior para substituir uma opção em um processador de stream existente usando um método. Por exemplo,mongoshusandosp.processor.start()para especificar um nível para o processador que você está iniciando.Consulte Desenvolver processadores de fluxo para saber mais sobre como gerenciar um processador de fluxo
mongoshusando.
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 é compatível com a gravação de documentos BSON maiores que
125 MBusando o estágio $emit em um bucket do AWS S3.
Conexões Kafka
Para estágios Apache Kafka $source, se o tópico do Apache Kafka agindo como $source para o processador em execução adicionar uma partição, o deslocamento inicial será determinado pela propriedade auto_offset_reset .
Para o Apache Kafka, os estágios $source estão sujeitos aos limites de partição do nível do espaço de trabalho de processamento de fluxo. Se você exceder o limite de partição da camada do espaço de trabalho de processamento de fluxo, o processador de fluxo afetado falhará. Você deve atualizar seu espaço de trabalho de processamento de fluxo para suportar partições adicionais.
O Atlas Stream Processing não oferece suporte à conexão com 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 não suporta coleções cujos valores _id são arrays, expressões regulares ou indefinidos, que o MongoDB não suporta como valores
_id.Se os valores de
_idda sua coleção forem valores de ObjectId gerados por padrão ou valores deintoulongordenados,initialSyncalcançará o desempenho ideal. Para outros tipos de_id,initialSyncpode levar mais tempo para ser concluído porque os valores não são armazenados em uma ordem previsível. Se o token de retomada não estiver mais no oplog quandoinitialSyncfor concluído, o processador entrará em um estado de falha para evitar a perda de dados. Para recuperar, reinicie o processador comresumeFromCheckpoint=false, que faz com queinitialSyncseja executado novamente. Para saber mais, consulte 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 ou recuperação da coleção. A garantia de processamento pelo menos uma vez do Atlas Stream Processing cobre esse comportamento. As duplicatas são mais prováveis quando os valores_idda sua collection não são valoresObjectIdou valoresintoulongordenados, porque a fase de cópia da collection é mais longa e abrange mais eventos de mudança.
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
Origem Atlas e coletor Apache Kafka
O Atlas Stream Processing oferece suporte a processadores de failover apenas para processadores de tier
SP10ou superior.Para processadores configurados com processadores de failover, apenas um processador pode estar ativo a qualquer momento. Você pode editar apenas o processador ativo.