GOOGLE ADS

martes, 26 de abril de 2022

¿Cuál es la diferencia de rendimiento entre stream.filter en lugar de CQL ALLOW FILTERING?

Los datos en mi tabla Cassandra DB no tienen muchos datos en este momento.

Sin embargo, dado que es una tabla donde los datos se acumulan continuamente, me interesan los problemas de rendimiento.

En primer lugar, no piense en la parte en la que necesita rediseñar la mesa.

Piense en ello como una búsqueda general basada en fechas de RDBS. (fecha de inicio ~ fecha de finalización)

  • Desde Cassandra DB Apply permite filtrar y forzar la consulta. Esto le dará exactamente los datos que desea.


  • Consulta "todos los datos" en Cassandra DB. Esta consulta solo debe realizarse una vez. (no donde) Después de eso, solo los datos dentro de la fecha deseada se extraen a través de la función stream().filter().


  • ¿Qué método elegirías?

    En general, ¿cuál tiene más problemas de rendimiento?

    Resumen: necesitas hacer unos 6 métodos.

  • Ejecutar consulta de permiso de filtrado 6 veces / No realizar filtro de transmisión


  • Ejecute la consulta findAll una vez / Ejecute el filtro de flujo 6 veces



  • Solución del problema

    El desafío con ambas opciones es que ninguna escalará. Puede funcionar con conjuntos de datos muy pequeños, digamos menos de 1000 particiones, pero rápidamente encontrará que ninguno funcionará una vez que crezcan sus tablas.

    Cassandra está diseñado para cargas de trabajo OLTP en tiempo real en las que recupera una sola partición para aplicaciones en tiempo real.

    Para las cargas de trabajo de análisis, debe usar Spark con el conector spark-cassandra porque optimiza las consultas de análisis. ¡Salud!

    No hay comentarios.:

    Publicar un comentario

    Flutter: error de rango al acceder a la respuesta JSON

    Estoy accediendo a una respuesta JSON con la siguiente estructura. { "fullName": "FirstName LastName", "listings...