Derived Data se refiere a cualquier conjunto de datos que no es la fuente original de verdad, sino que se produce mediante una transformación, agregación, cálculo o combinación de datos primarios. No se captura directamente, sino que se infiere o se construye a partir de otros datos. Su principal característica es que puede ser reconstruido si los datos fuente están disponibles, aunque el proceso de reconstrucción puede ser costoso computacionalmente. La creación de Derived Data a menudo implica procesos ETL (Extract, Transform, Load) o ELT, donde los datos se procesan y almacenan en un formato diferente o en una ubicación distinta para un propósito específico.
En el mundo real, Derived Data se manifiesta de diversas formas. Por ejemplo, en bases de datos relacionales, las vistas materializadas (Materialized Views) son Derived Data que precalculan y almacenan los resultados de consultas complejas para acelerar su ejecución. En sistemas de Big Data, los Data Warehouses y Data Marts están compuestos predominantemente por Derived Data, agregados y transformados para análisis de negocio. Apache Kafka Streams o Apache Flink pueden generar Derived Data en tiempo real, como agregaciones de eventos para dashboards de monitoreo. Los índices de búsqueda en sistemas como Elasticsearch son también una forma de Derived Data, optimizados para la recuperación rápida de información. Finalmente, los cachés (Caches) son un ejemplo común de Derived Data, almacenando copias de datos primarios para reducir la latencia de acceso.
Para un arquitecto, la gestión de Derived Data es crucial debido a los trade-offs que presenta. Su uso puede mejorar drásticamente el rendimiento de lectura y la escalabilidad, al permitir que las aplicaciones accedan a datos preprocesados sin incurrir en el costo de cómputo en cada solicitud. Sin embargo, introduce desafíos significativos en cuanto a la consistencia y la frescura de los datos (data freshness). Mantener el Derived Data sincronizado con los datos fuente requiere estrategias de invalidación, actualización o reconstrucción, lo que añade complejidad al sistema y puede introducir latencia. La elección entre consistencia fuerte y eventual, así como el diseño de pipelines de datos eficientes para la generación y actualización de Derived Data, son decisiones arquitectónicas fundamentales que impactan directamente la fiabilidad, el rendimiento y el costo operativo del sistema.