Se aplican las siguientes limitaciones a Atlas Stream Processing:
General
Atlas Stream Processing solo admite el procesamiento al menos una vez.
La plataforma Atlas Stream Processing no admite el escalado horizontal.
Atlas Stream Processing utiliza un solo núcleo para las etapas de pipeline de transformación, excepto para las etapas que pueden especificar un valor de
parallelism.El
state.stateSizede un procesador de flujo no puede exceder el 80% de la RAM disponible para su pod. Por ejemplo, el tamaño máximo de un procesador de flujo en el nivelSP30, que tiene 8GB de RAM, es 6.4GB. Si elstate.stateSizede cualquier gestor de flujo se acerca al 80% de la RAM disponible, considera detener el gestor y reiniciarlo en un nivel superior. Si tu Stream Processing processor ya se ejecuta en el nivel máximo habilitado para tu espacio de trabajo de Stream Processing, considera ajustar la configuración de tu espacio de trabajo para habilitar Stream Processing processors de nivel superior.Cuando un procesador de flujo supera el umbral de 80% RAM, se produce un error
Worker out of memory. Puede ver elstate.stateSizevalor de cada procesador de flujo con el comandosp.processor.stats(). Consulta Ver estadísticas de un Procesador de flujos para obtener más información.Una definición de pipeline de Atlas Stream Processing no puede superar los 16 MB.
Solo los usuarios con los roles
Organization Stream Processing Admin,Project Owner,Project Stream Processing OwneroAtlas adminpueden usar Atlas Stream Processing.Debe usar la
mongoshversión 2.3.4 o posterior para anular una opción en un procesador de flujo existente usando un método. Por ejemplo,mongoshusesp.processor.start()para especificar un nivel para el procesador que está iniciando.Consulta Desarrolla procesadores de flujo para aprender más sobre la gestión de un procesador de flujo mediante
mongosh.
Pipeline de agregación
Atlas Stream Processing admite un subconjunto de las etapas del pipeline de agregación disponibles en Atlas, lo que le permite realizar muchas de las mismas operaciones en datos en transmisión que puede realizar en datos en reposo. Para obtener una lista completa de las etapas del pipeline de agregacióncompatibles, consulta la documentación de agregación de Streams.
Atlas Stream Processing no admite las variables de agregación
$$NOW,$$CLUSTER_TIME,$$USER_ROLESy$SEARCH_META.Atlas Stream Processing no admite la escritura de documentos BSON de más de
125 MBusando la etapa $emit en un AWS S3 bucket.
Conexiones Kafka
Para las etapas Apache Kafka $source, si el tema de Apache Kafka que actúa como $source del procesador en ejecución añade una partición, el desplazamiento inicial se determina mediante la propiedad auto_offset_reset.
Para Apache Kafka las etapas $source están sujetas a los límites de partición del nivel de espacio de trabajo de Stream Processing. Si superas el límite de partición de tu nivel de espacio de trabajo de Stream Processing, el procesador de Stream Processing afectado fallará. Debes actualizar tu espacio de trabajo de Stream Processing para admitir particiones adicionales.
Atlas Stream Processing no admite la conexión a un consumidor de Apache Kafka en el mismo grupo de consumidores que otros consumidores. Asegúrese de que cualquier consumidor de Kafka utilizado con Atlas Stream Processing se ejecute en un grupo de consumidores dedicado.
Para las conexiones de Apache Kafka, Atlas Stream Processing actualmente solo admite los siguientes protocolos de seguridad:
SASL_PLAINTEXTSASL_SSLSSL
Para
SASL, Atlas Stream Processing es compatible con los siguientes mecanismos:PLAINSCRAM-SHA-256SCRAM-SHA-512OAUTHBEARER
Para
SSL, debes proporcionar los siguientes activos para la Apache Kafka autenticación mutua TLS del sistema con Atlas Stream Processing:una Autoridad Certificadora (si se utiliza una diferente de la por defecto Apache Kafka CA)
un certificado TLS de cliente
un archivo clave TLS, que se usa para firmar el certificado TLS
Sincronización inicial
initialSync admite colecciones cuyos
_idvalores son de cualquier tipo excepto array, expresión regular o código JavaScript, que MongoDB no admite como_idvalores. Todos los_idvalores de una colección deben ser del mismo tipo. Atlas Stream Processing no admiteinitialSyncen colecciones que contienen_idtipos mixtos.Si los
_idvalores de su colección son valores ObjectId generados por defectointolongvalores o ordenados,initialSynclogra un rendimiento óptimo. Para otros_idtipos,initialSyncpodría tardar más en completarse porque los valores no se almacenan en un orden predecible. Aumente el tamaño de su oplog antes de comenzar una operación más largainitialSyncpara que el token de reanudación del procesador permanezca en el oplog. Si el token de reanudación ya no está en el oplog cuando seinitialSynccompleta, el procesador entra en un estado de error para evitar la pérdida de datos yinitialSyncse ejecuta de nuevo.Atlas Stream Processing puede insertar nuevos documentos en una partición mientras
initialSynclos copia. Un fallo de red que interrumpa una consulta en una partición en crecimiento puede prolongar la fase de copia de la colección.initialSyncPodría insertar documentos duplicados si detecta un cambio durante la fase de copia o actualización de la colección. La garantía de procesamiento al menos una vez de Atlas Stream Processing cubre este comportamiento.
Procesadores de conmutación por error
Atlas Stream Processing admite procesadores de conmutación por error solo para procesadores con las siguientes configuraciones:
Origen y destino de Atlas
Atlas source y Apache Kafka sink
Atlas Stream Processing admite procesadores de conmutación por error solo para procesadores de nivel
SP10o superior.Para los procesadores configurados con procesadores de conmutación por error, solo un procesador puede estar activo en un momento dado. Solo puede editar el procesador activo.