El linaje de datos se refiere al proceso de rastrear cómo se generan, transforman, transmiten y utilizan los datos en diferentes sistemas a lo largo del tiempo. [ 1 ] Documenta los orígenes, transformaciones y movimientos de los datos, proporcionando una visibilidad detallada de su ciclo de vida. Este proceso simplifica la identificación de errores en los flujos de trabajo de análisis de datos , al permitir a los usuarios rastrear los problemas hasta sus causas raíz. [ 2 ]
El linaje de datos facilita la reproducción de segmentos o entradas específicas del flujo de datos . Esto puede utilizarse para depurar o regenerar salidas perdidas. En los sistemas de bases de datos , este concepto está estrechamente relacionado con la procedencia de los datos , que implica el mantenimiento de registros de las entradas, entidades, sistemas y procesos que influyen en los datos.
La procedencia de los datos proporciona un registro histórico de los orígenes y transformaciones de los datos. Apoya actividades forenses como el análisis de dependencia de datos, la detección de errores/vulneraciones, la recuperación, la auditoría y el análisis de cumplimiento: " El linaje es un tipo simple de procedencia ". [ 3 ]
La gobernanza de datos desempeña un papel fundamental en la gestión de metadatos mediante el establecimiento de directrices, estrategias y políticas. La mejora del linaje de datos conmedidas de calidad de datos y la gestión de datos maestros aporta valor empresarial. Si bien el linaje de datos se suele representar mediante una interfaz gráfica de usuario (GUI), los métodos para recopilar y mostrar metadatos en esta interfaz pueden variar. Según el enfoque de recopilación de metadatos, el linaje de datos se puede clasificar en tres tipos: aquellos que involucran paquetes de software para datos estructurados, lenguajes de programación ysistemas de Big Data .
La información de linaje de datos incluye metadatos técnicos sobre las transformaciones de datos. El linaje de datos enriquecido puede incluir elementos adicionales como resultados de pruebas de calidad de datos, datos de referencia, modelos de datos , terminología empresarial, información sobre la administración de datos , detalles de la gestión de programas y sistemas empresariales asociados a los puntos de datos y las transformaciones. Las herramientas de visualización de linaje de datos suelen incluir funciones de enmascaramiento que permiten a los usuarios centrarse en la información relevante para casos de uso específicos. Para unificar las representaciones en sistemas dispares, puede ser necesaria la normalización o estandarización de los metadatos .
Representación del linaje de datos
La representación depende en gran medida del alcance de la gestión de metadatos y del punto de referencia de interés. El linaje de datos proporciona las fuentes de los datos y los saltos del flujo de datos intermedios desde el punto de referencia con un linaje de datos hacia atrás , que conduce a los puntos de datos del destino final y sus flujos de datos intermedios con un linaje de datos hacia adelante . Estas vistas se pueden combinar con un linaje de extremo a extremo para un punto de referencia que proporciona un registro de auditoría completo de ese punto de datos de interés desde las fuentes hasta sus destinos finales. A medida que aumentan los puntos de datos o los saltos, la complejidad de dicha representación se vuelve incomprensible. Por lo tanto, la mejor característica de la vista de linaje de datos es la capacidad de simplificar la vista enmascarando temporalmente los puntos de datos periféricos no deseados. Las herramientas con la función de enmascaramiento permiten la escalabilidad de la vista y mejoran el análisis con la mejor experiencia de usuario tanto para usuarios técnicos como de negocios. El linaje de datos también permite a las empresas rastrear las fuentes de datos comerciales específicos para detectar errores, implementar cambios en los procesos e implementar migraciones de sistemas para ahorrar cantidades significativas de tiempo y recursos. El linaje de datos puede mejorar la eficiencia en los procesos de inteligencia empresarial (BI). [ 4 ]
El linaje de datos se puede representar visualmente para descubrir el flujo y el movimiento de los datos desde su origen hasta su destino, a través de diversos cambios y saltos en el entorno empresarial. Esto incluye cómo se transforman los datos durante el proceso, cómo cambian su representación y parámetros, y cómo se dividen o convergen después de cada salto. Una representación sencilla del linaje de datos se puede mostrar con puntos y líneas, donde los puntos representan contenedores de datos y las líneas que los conectan representan las transformaciones que sufren los datos entre los contenedores.
El linaje de datos se puede visualizar en distintos niveles según la granularidad de la vista. En un nivel general, el linaje de datos se visualiza como los sistemas con los que interactúan los datos antes de llegar a su destino. En su nivel más granular, las visualizaciones a nivel de punto de datos pueden proporcionar detalles sobre dicho punto y su comportamiento histórico, las propiedades y tendencias de sus atributos, así como la calidad de los datos que pasan por ese punto específico en el linaje.
El alcance del linaje de datos determina el volumen de metadatos necesarios para representarlo. Generalmente, la gobernanza y la gestión de datos de una organización definen el alcance del linaje de datos en función de sus normativas , la estrategia de gestión de datos empresariales, el impacto de los datos, los atributos de los informes y los elementos de datos críticos de la organización.
Razón fundamental
Los sistemas distribuidos como Google Map Reduce , [ 5 ] Microsoft Dryad, [ 6 ] Apache Hadoop [ 7 ] (un proyecto de código abierto) y Google Pregel [ 8 ] proporcionan dichas plataformas para empresas y usuarios. Sin embargo, incluso con estos sistemas, el análisis de Big Data puede tardar varias horas, días o semanas en ejecutarse, simplemente debido a los volúmenes de datos involucrados. Por ejemplo, un algoritmo de predicción de calificaciones para el desafío Netflix Prize tardó casi 20 horas en ejecutarse en 50 núcleos, y una tarea de procesamiento de imágenes a gran escala para estimar información geográfica tardó 3 días en completarse utilizando 400 núcleos. [ 9 ] "Se espera que el Telescopio de Sondeo Sinóptico Grande genere terabytes de datos cada noche y eventualmente almacene más de 50 petabytes , mientras que en el sector de la bioinformática , las 12 casas de secuenciación de genomas más grandes del mundo ahora almacenan petabytes de datos cada una. [ 10 ] Es muy difícil para un científico de datos rastrear un resultado desconocido o no anticipado.
Depuración de big data
El análisis de macrodatos consiste en examinar grandes conjuntos de datos para descubrir patrones ocultos, correlaciones desconocidas , tendencias de mercado , preferencias de los clientes y otra información empresarial útil. El aprendizaje automático , entre otros algoritmos, se utiliza para transformar y analizar los datos. Debido al gran volumen de datos, es posible que existan características desconocidas en ellos.
La enorme escala y la naturaleza no estructurada de los datos, la complejidad de estos flujos de análisis y los largos tiempos de ejecución plantean importantes desafíos de gestión y depuración. Incluso un solo error en estos análisis puede ser extremadamente difícil de identificar y corregir. Si bien se pueden depurar ejecutando nuevamente todo el análisis paso a paso con un depurador, esto puede resultar costoso debido al tiempo y los recursos necesarios.
La auditoría y la validación de datos son otros problemas importantes debido a la creciente facilidad de acceso a fuentes de datos relevantes para su uso en experimentos, el intercambio de datos entre comunidades científicas y el uso de datos de terceros en empresas comerciales. [ 11 ] [ 12 ] [ 13 ] [ 14 ] Por lo tanto, es crucial encontrar formas más rentables de analizar la computación escalable intensiva en datos (DISC) para su uso efectivo y continuo.
Desafíos en la depuración de Big Data
Escala masiva
Según un estudio de EMC/IDC, [ 15 ] se crearon y replicaron 2,8 ZB de datos en 2012. Además, el mismo estudio afirma que el universo digital se duplicará cada dos años hasta 2020, y que habrá aproximadamente 5,2 TB de datos por persona en 2020. Con la tecnología actual, el almacenamiento de tal cantidad de datos implicará un mayor consumo de energía por parte de los centros de datos. [ 16 ]
Datos no estructurados
Los datos no estructurados generalmente se refieren a información que no reside en una base de datos tradicional de filas y columnas. Los archivos de datos no estructurados suelen incluir contenido de texto y multimedia , como mensajes de correo electrónico , documentos de procesamiento de texto, videos , fotos , archivos de audio , presentaciones, páginas web y muchos otros tipos de documentos comerciales. Si bien estos tipos de archivos pueden tener una estructura interna, todavía se consideran "no estructurados" porque los datos que contienen no se ajustan perfectamente a una base de datos. La cantidad de datos no estructurados en las empresas está creciendo mucho más rápido que las bases de datos estructuradas. El Big Data puede incluir tanto datos estructurados como no estructurados, pero IDC estima que el 90 por ciento del Big Data son datos no estructurados. [ 17 ]
El principal desafío de las fuentes de datos no estructuradas radica en la dificultad que suponen para los usuarios empresariales no técnicos y los analistas de datos descomprimirlas, comprenderlas y prepararlas para su uso analítico. Más allá de los problemas de estructura, el enorme volumen de este tipo de datos contribuye a dicha dificultad. Por ello, las técnicas actuales de minería de datos suelen omitir información valiosa y hacen que el análisis de datos no estructurados sea laborioso y costoso. [ 18 ]
En el entorno empresarial competitivo actual, las empresas deben encontrar y analizar los datos relevantes que necesitan rápidamente. El desafío radica en recorrer los volúmenes de datos y acceder al nivel de detalle requerido, todo a alta velocidad. El desafío se incrementa a medida que aumenta el grado de granularidad. Una posible solución es el hardware . Algunos proveedores utilizan mayor memoria y procesamiento paralelo para procesar grandes volúmenes de datos rápidamente. Otro método consiste en almacenar los datos en memoria , pero utilizando un enfoque de computación en malla , donde se utilizan muchas máquinas para resolver un problema. Ambos enfoques permiten a las organizaciones explorar enormes volúmenes de datos. Incluso con este nivel de hardware y software sofisticados, algunas tareas de procesamiento de imágenes a gran escala tardan desde unos pocos días hasta varias semanas. [ 19 ] La depuración del procesamiento de datos es extremadamente difícil debido a los largos tiempos de ejecución.
Un tercer enfoque de soluciones avanzadas de descubrimiento de datos combina la preparación de datos de autoservicio con el descubrimiento visual de datos, lo que permite a los analistas preparar y visualizar datos simultáneamente en paralelo en un entorno de análisis interactivo ofrecido por empresas más recientes, como Trifacta , Alteryx y otras. [ 20 ]
Otro método para rastrear el linaje de datos son los programas de hojas de cálculo como Excel que ofrecen a los usuarios linaje a nivel de celda, o la capacidad de ver qué celdas dependen de otra. Sin embargo, se pierde la estructura de la transformación. De manera similar, el software ETL o de mapeo proporciona linaje a nivel de transformación, pero esta vista generalmente no muestra datos y es demasiado gruesa para distinguir entre transformaciones que son lógicamente independientes (por ejemplo, transformaciones que operan en columnas distintas) o dependientes. [ 21 ] Las plataformas de Big Data tienen una estructura muy compleja, donde los datos se distribuyen en un amplio rango. Por lo general, los trabajos se asignan a varias máquinas y los resultados se combinan posteriormente mediante operaciones de reducción. Depurar una canalización de Big Data se vuelve muy desafiante debido a la propia naturaleza del sistema. No será una tarea fácil para el científico de datos determinar qué datos de la máquina tienen valores atípicos y características desconocidas que hacen que un algoritmo en particular dé resultados inesperados.
Solución propuesta
La procedencia o el linaje de los datos pueden facilitar la depuración de las canalizaciones de Big Data . Esto requiere la recopilación de datos sobre las transformaciones de datos. La siguiente sección explicará la procedencia de los datos con mayor detalle.
Procedencia de los datos
En los sistemas de información, la procedencia de los datos es información sobre las entidades, actividades y agentes involucrados en la producción de un dato; registra cómo se obtuvieron los datos y puede utilizarse para evaluar la calidad, la fiabilidad y la confianza. [ 22 ] La investigación clásica sobre bases de datos distingue el por qué , el dónde y el cómo de la procedencia y muestra cómo estas formas respaldan tareas como la depuración de consultas, el mantenimiento de vistas, la estimación de la confianza y la propagación de anotaciones. [ 23 ] En los flujos de trabajo científicos, la procedencia documenta el historial de derivación desde las fuentes originales a través de los pasos del flujo de trabajo, lo que respalda la reproducibilidad y la reutilización de los resultados. [ 24 ]
En el uso industrial, el linaje de datos está estrechamente relacionado: el linaje generalmente denota el flujo de extremo a extremo de conjuntos de datos y transformaciones a través de sistemas (desde las fuentes hasta el procesamiento y las salidas), mientras que la procedencia enfatiza las derivaciones y la atribución de elementos de datos específicos; ambos son complementarios. [ 25 ] Las especificaciones abiertas y orientadas a la implementación, como OpenLineage, modelan el linaje en términos de trabajos, ejecuciones y conjuntos de datos para permitir la captura automatizada desde las modernas canalizaciones de datos. [ 26 ]
Usos. La información de procedencia/linaje sustenta el análisis de impacto y la depuración de flujos de datos, y respalda la presentación de informes regulatorios y la auditoría (por ejemplo, los principios del Comité de Basilea para la agregación eficaz de datos de riesgo y la presentación de informes de riesgo). [ 23 ] [ 24 ] [ 27 ]
Modelo de datos PROV
PROV es una recomendación del W3C de 2013,
- La procedencia es información sobre las entidades, actividades y personas involucradas en la producción de un dato o un objeto, que puede utilizarse para evaluar su calidad, fiabilidad o confiabilidad. La familia de documentos PROV define un modelo, serializaciones correspondientes y otras definiciones de apoyo para permitir el intercambio interoperable de información de procedencia en entornos heterogéneos como la web . «PROV-Overview, una descripción general de la familia de documentos PROV» [ 28 ]

- La procedencia se define como un registro que describe a las personas, instituciones, entidades y actividades involucradas en la producción, influencia o entrega de un dato o algo. En particular, la procedencia de la información es crucial para decidir si se debe confiar en ella, cómo debe integrarse con otras fuentes de información diversas y cómo reconocer a sus creadores al reutilizarla. En un entorno abierto e inclusivo como la web, donde los usuarios encuentran información que a menudo es contradictoria o cuestionable, la procedencia puede ayudarlos a emitir juicios de confianza. "PROV-DM: El modelo de datos PROV" [ 29 ]
Captura de linaje
Intuitivamente, para un operadorproduciendo resultados, el linaje consta de tripletes de forma, dóndees el conjunto de entradas autilizado para derivar. [ 3 ] Una consulta que encuentra las entradas que derivan una salida se llama consulta de rastreo hacia atrás , mientras que una que encuentra las salidas producidas por una entrada se llama consulta de rastreo hacia adelante . [ 30 ] El rastreo hacia atrás es útil para la depuración, mientras que el rastreo hacia adelante es útil para rastrear la propagación de errores. [ 30 ] Las consultas de rastreo también forman la base para reproducir un flujo de datos original. [ 12 ] [ 31 ] [ 30 ] Sin embargo, para usar eficientemente el linaje en un sistema DISC , necesitamos poder capturar el linaje en múltiples niveles (o granularidades) de operadores y datos, capturar un linaje preciso para las construcciones de procesamiento DISC y poder rastrear a través de múltiples etapas de flujo de datos de manera eficiente.
Un sistema DISC consta de varios niveles de operadores y datos , y los diferentes casos de uso del linaje pueden determinar el nivel en el que se debe capturar dicho linaje. El linaje se puede capturar a nivel del trabajo, utilizando archivos y proporcionando tuplas de linaje de la forma {SI i, M RJob, DE i}; también se puede capturar a nivel de cada tarea, utilizando registros y proporcionando, por ejemplo, tuplas de linaje de la forma {(k rr, v rr), mapa, (km, vm)}. La primera forma de linaje se denomina linaje de grano grueso, mientras que la segunda se denomina linaje de grano fino. La integración del linaje en diferentes granularidades permite a los usuarios formular preguntas como "¿Qué archivo leído por un trabajo MapReduce produjo este registro de salida en particular?" y puede ser útil para la depuración en diferentes operadores y granularidades de datos dentro de un flujo de datos. [ 3 ]

Para capturar el linaje de extremo a extremo en un sistema DISC, utilizamos el modelo Ibis, [ 32 ] que introduce la noción de jerarquías de contención para operadores y datos. Específicamente, Ibis propone que un operador puede estar contenido dentro de otro y dicha relación entre dos operadores se denomina contención de operadores . La contención de operadores implica que el operador contenido (o hijo) realiza parte de la operación lógica del operador que lo contiene (o padre). [ 3 ] Por ejemplo, una tarea MapReduce está contenida en un trabajo. Existen relaciones de contención similares para los datos, conocidas como contención de datos. La contención de datos implica que los datos contenidos son un subconjunto de los datos que los contienen (superconjunto).

Linaje entusiasta versus linaje perezoso
Los sistemas de linaje de datos se pueden clasificar como ansiosos o perezosos. [ 30 ]
Los sistemas de recolección de datos capturan el linaje completo del flujo de datos en tiempo de ejecución. El tipo de linaje que capturan puede ser de grano grueso o de grano fino, pero no requieren ningún cálculo adicional sobre el flujo de datos después de su ejecución.
La recopilación diferida de linaje generalmente solo captura información general durante la ejecución. Estos sistemas generan una baja sobrecarga de captura debido a la pequeña cantidad de información que recopilan. Sin embargo, para responder a consultas de rastreo detalladas, deben reproducir el flujo de datos en toda (o gran parte de) su entrada y recopilar información detallada durante la reproducción. Este enfoque es adecuado para sistemas forenses, donde un usuario desea depurar una salida errónea observada.
Los sistemas de recopilación de linaje de grano fino y en espera generan mayores gastos generales de captura que los sistemas de recopilación diferida. Sin embargo, permiten una reproducción y depuración sofisticadas. [ 3 ]
Actores
Un actor es una entidad que transforma datos; puede ser un vértice Dryad, operadores individuales de mapeo y reducción, un trabajo MapReduce o una canalización de flujo de datos completa. Los actores actúan como cajas negras y las entradas y salidas de un actor se utilizan para capturar el linaje en forma de asociaciones, donde una asociación es una tripleta.que relaciona una entrada con una salidapara un actorLa instrumentación captura así el linaje en un flujo de datos actor por actor, organizándolo en un conjunto de asociaciones para cada actor. El desarrollador del sistema necesita capturar los datos que un actor lee (de otros actores) y los datos que un actor escribe (a otros actores). Por ejemplo, un desarrollador puede tratar el Hadoop Job Tracker como un actor registrando el conjunto de archivos leídos y escritos por cada trabajo. [ 33 ]
Asociaciones
Una asociación es una combinación de las entradas, las salidas y la operación en sí. La operación se representa mediante una caja negra, también conocida como actor. Las asociaciones describen las transformaciones que se aplican a los datos. Estas asociaciones se almacenan en las tablas de asociación. Cada actor único está representado por su tabla de asociación. Una asociación tiene la forma {i, T, o}, donde i es el conjunto de entradas del actor T y o es el conjunto de salidas producidas por el actor. Las asociaciones son las unidades básicas del linaje de datos. Posteriormente, las asociaciones individuales se agrupan para construir el historial completo de las transformaciones aplicadas a los datos. [ 3 ]
Arquitectura
Los sistemas de big data aumentan su capacidad mediante la incorporación de nuevo hardware o software al sistema distribuido. Este proceso se denomina escalado horizontal . A nivel lógico, el sistema distribuido actúa como una única entidad, aunque esté compuesto por múltiples componentes de hardware y software. El sistema debe mantener esta propiedad tras el escalado horizontal. Una ventaja importante del escalado horizontal es que permite aumentar la capacidad sobre la marcha. Su mayor ventaja reside en que el escalado horizontal puede realizarse con hardware estándar.
La escalabilidad horizontal de los sistemas de Big Data debe tenerse en cuenta al crear la arquitectura del almacén de linaje. Esto es fundamental, ya que el propio almacén de linaje debe poder escalar en paralelo con el sistema de Big Data . El número de asociaciones y la cantidad de almacenamiento necesaria para guardar el linaje aumentarán con el tamaño y la capacidad del sistema. La arquitectura de los sistemas de Big Data no permite el uso de un único almacén de linaje, lo cual resulta inapropiado e imposible de escalar. La solución inmediata a este problema consiste en distribuir el propio almacén de linaje. [ 3 ]
El escenario ideal consiste en utilizar un almacén de linaje local para cada máquina en la red del sistema distribuido. Esto permite que el almacén de linaje también escale horizontalmente. En este diseño, el linaje de las transformaciones de datos aplicadas a los datos en una máquina en particular se almacena en el almacén de linaje local de esa máquina específica. El almacén de linaje normalmente almacena tablas de asociación. Cada actor está representado por su propia tabla de asociación. Las filas son las asociaciones en sí mismas, y las columnas representan las entradas y salidas. Este diseño resuelve dos problemas. Permite el escalado horizontal del almacén de linaje. Si se utilizara un único almacén de linaje centralizado, esta información tendría que transmitirse a través de la red, lo que causaría latencia adicional. La latencia de red también se evita mediante el uso de un almacén de linaje distribuido. [ 33 ]

Reconstrucción del flujo de datos
La información almacenada en términos de asociaciones debe combinarse de alguna manera para obtener el flujo de datos de un trabajo en particular. En un sistema distribuido, un trabajo se divide en múltiples tareas. Una o más instancias ejecutan una tarea en particular. Los resultados producidos en estas máquinas individuales se combinan posteriormente para finalizar el trabajo. Las tareas que se ejecutan en diferentes máquinas realizan múltiples transformaciones en los datos de la máquina. Todas las transformaciones aplicadas a los datos en una máquina se almacenan en el almacén de linaje local de esa máquina. Esta información debe combinarse para obtener el linaje de todo el trabajo. El linaje de todo el trabajo debería ayudar al científico de datos a comprender el flujo de datos del trabajo y puede utilizar el flujo de datos para depurar la canalización de Big Data . El flujo de datos se reconstruye en 3 etapas.
Tablas de asociación
La primera etapa de la reconstrucción del flujo de datos es el cálculo de las tablas de asociación. Estas tablas existen para cada actor en cada almacén de linaje local. La tabla de asociación completa para un actor se puede calcular combinando estas tablas individuales. Esto generalmente se realiza mediante una serie de uniones de igualdad basadas en los propios actores. En algunos casos, las tablas también se pueden unir utilizando las entradas como clave. Los índices también se pueden usar para mejorar la eficiencia de una unión. Las tablas unidas deben almacenarse en una única instancia o máquina para continuar el procesamiento. Existen varios métodos para seleccionar la máquina donde se calculará la unión. El más sencillo es aquel con la menor carga de CPU. También se deben tener en cuenta las limitaciones de espacio al seleccionar la instancia donde se realizará la unión.
Gráfico de asociación
El segundo paso en la reconstrucción del flujo de datos es calcular un grafo de asociación a partir de la información de linaje. El grafo representa los pasos en el flujo de datos. Los actores actúan como vértices y las asociaciones como aristas. Cada actor T está vinculado a sus actores ascendentes y descendentes en el flujo de datos. Un actor ascendente de T es aquel que produjo la entrada de T, mientras que un actor descendente es aquel que consume la salida de T. Las relaciones de contención siempre se consideran al crear los enlaces. El grafo consta de tres tipos de enlaces o aristas.
Enlaces especificados explícitamente
El vínculo más simple es un vínculo especificado explícitamente entre dos actores. Estos vínculos se especifican explícitamente en el código de un algoritmo de aprendizaje automático. Cuando un actor conoce a su actor anterior o posterior exacto, puede comunicar esta información a la API de linaje. Esta información se utiliza posteriormente para vincular estos actores durante la consulta de rastreo. Por ejemplo, en la arquitectura MapReduce , cada instancia de mapeo conoce la instancia exacta del lector de registros cuya salida consume. [ 3 ]
Enlaces inferidos lógicamente
Los desarrolladores pueden adjuntar arquetipos de flujo de datos a cada actor lógico. Un arquetipo de flujo de datos explica cómo se organizan los tipos secundarios de un tipo de actor en un flujo de datos. Con esta información, se puede inferir un vínculo entre cada actor de un tipo de origen y un tipo de destino. Por ejemplo, en la arquitectura MapReduce , el tipo de actor map es el origen para reduce, y viceversa. El sistema infiere esto a partir de los arquetipos de flujo de datos y vincula debidamente las instancias map con las instancias reduce. Sin embargo, puede haber varios trabajos MapReduce en el flujo de datos, y vincular todas las instancias map con todas las instancias reduce puede crear vínculos falsos. Para evitar esto, dichos vínculos se restringen a las instancias de actor contenidas dentro de una instancia de actor común de un tipo de actor contenedor (o padre). Por lo tanto, las instancias map y reduce solo se vinculan entre sí si pertenecen al mismo trabajo. [ 3 ]
Vínculos implícitos a través del intercambio de conjuntos de datos
En los sistemas distribuidos, a veces existen enlaces implícitos que no se especifican durante la ejecución. Por ejemplo, existe un enlace implícito entre un actor que escribió en un archivo y otro que lo leyó. Dichos enlaces conectan actores que utilizan un conjunto de datos común para su ejecución. El conjunto de datos es la salida del primer actor y la entrada del siguiente. [ 3 ]
Ordenación topológica
El paso final en la reconstrucción del flujo de datos es la ordenación topológica del grafo de asociación. El grafo dirigido creado en el paso anterior se ordena topológicamente para obtener el orden en que los actores han modificado los datos. Este registro de modificaciones realizadas por los diferentes actores involucrados se utiliza para rastrear el flujo de datos de la canalización o tarea de Big Data .
Rastreo y reproducción
Este es el paso más crucial en la depuración de Big Data . El linaje capturado se combina y procesa para obtener el flujo de datos de la canalización. El flujo de datos ayuda al científico de datos o al desarrollador a analizar en profundidad los actores y sus transformaciones. Este paso permite al científico de datos determinar la parte del algoritmo que genera el resultado inesperado. Una canalización de Big Data puede fallar de dos maneras principales. La primera es la presencia de un actor sospechoso en el flujo de datos. La segunda es la existencia de valores atípicos en los datos.
El primer caso se puede depurar rastreando el flujo de datos. Al usar información de linaje y flujo de datos en conjunto, un científico de datos puede determinar cómo las entradas se convierten en salidas. Durante el proceso, se pueden detectar actores que se comportan de manera inesperada. Estos actores se pueden eliminar del flujo de datos o se pueden agregar nuevos actores para modificarlo. El flujo de datos mejorado se puede reproducir para probar su validez. La depuración de actores defectuosos incluye realizar una reproducción recursiva de grano grueso en los actores del flujo de datos, [ 34 ] lo que puede ser costoso en recursos para flujos de datos largos. Otro enfoque es inspeccionar manualmente los registros de linaje para encontrar anomalías, [ 13 ] [ 35 ] lo que puede ser tedioso y consumir mucho tiempo en varias etapas de un flujo de datos. Además, estos enfoques solo funcionan cuando el científico de datos puede descubrir salidas incorrectas. Para depurar análisis sin salidas incorrectas conocidas, el científico de datos necesita analizar el flujo de datos en busca de comportamientos sospechosos en general. Sin embargo, a menudo, un usuario puede desconocer el comportamiento normal esperado y no puede especificar predicados. Esta sección describe una metodología de depuración para analizar retrospectivamente el linaje e identificar actores defectuosos en un flujo de datos multietapa. Creemos que los cambios repentinos en el comportamiento de un actor, como su selectividad promedio, tasa de procesamiento o tamaño de salida, son característicos de una anomalía. El linaje puede reflejar dichos cambios en el comportamiento del actor a lo largo del tiempo y entre diferentes instancias del mismo. Por lo tanto, analizar el linaje para identificar estos cambios puede ser útil para depurar actores defectuosos en un flujo de datos.

El segundo problema, es decir, la existencia de valores atípicos, también puede identificarse ejecutando el flujo de datos paso a paso y analizando las salidas transformadas. El científico de datos encuentra un subconjunto de salidas que no concuerdan con el resto. Las entradas que causan estas salidas erróneas son valores atípicos en los datos. Este problema puede resolverse eliminando el conjunto de valores atípicos y reproduciendo todo el flujo de datos. También puede resolverse modificando el algoritmo de aprendizaje automático mediante la adición, eliminación o reubicación de actores en el flujo de datos. Los cambios en el flujo de datos se consideran exitosos si el flujo de datos reproducido no produce salidas erróneas.

Desafíos
Si bien la utilización de metodologías de linaje de datos representa un enfoque novedoso para la depuración de flujos de datos masivos (Big Data) , el proceso no es sencillo. Es necesario abordar diversos desafíos, como la escalabilidad y la tolerancia a fallos del repositorio de linaje, la captura precisa del linaje para operadores de sistemas de caja negra y muchas otras consideraciones. Estos desafíos deben evaluarse cuidadosamente para desarrollar un diseño realista de captura de linaje de datos, teniendo en cuenta las ventajas e inconvenientes inherentes a cada uno.
Escalabilidad
Los sistemas DISC son principalmente sistemas de procesamiento por lotes diseñados para un alto rendimiento. Ejecutan varios trabajos por análisis, con varias tareas por trabajo. El número total de operadores que se ejecutan simultáneamente en un clúster puede variar desde cientos hasta miles, dependiendo del tamaño del clúster. La captura de linaje para estos sistemas debe ser escalable tanto para grandes volúmenes de datos como para numerosos operadores, a fin de evitar convertirse en un cuello de botella para el análisis DISC.
Tolerancia a fallos
Los sistemas de captura de linaje también deben ser tolerantes a fallos para evitar la repetición de flujos de datos para capturar el linaje. Al mismo tiempo, deben gestionar los fallos del sistema DISC. Para ello, deben ser capaces de identificar una tarea DISC fallida y evitar almacenar copias duplicadas del linaje entre el linaje parcial generado por la tarea fallida y el linaje duplicado producido por la tarea reiniciada. Un sistema de linaje también debe ser capaz de gestionar de forma eficiente la caída de múltiples instancias de sistemas de linaje locales. Esto se puede lograr almacenando réplicas de las asociaciones de linaje en varias máquinas. La réplica puede actuar como copia de seguridad en caso de que se pierda la copia original.
Operadores de caja negra
Los sistemas de linaje para flujos de datos DISC deben ser capaces de capturar un linaje preciso a través de operadores de caja negra para permitir una depuración de grano fino. Los enfoques actuales para esto incluyen Prober, que busca encontrar el conjunto mínimo de entradas que pueden producir una salida específica para un operador de caja negra reproduciendo el flujo de datos varias veces para deducir el conjunto mínimo, [ 36 ] y el seccionamiento dinámico [ 37 ] para capturar el linaje para operadores NoSQL a través de la reescritura binaria para calcular segmentos dinámicos. Aunque producen un linaje muy preciso, tales técnicas pueden generar sobrecargas de tiempo significativas para la captura o el rastreo, y puede ser preferible en su lugar sacrificar algo de precisión por un mejor rendimiento. Por lo tanto, existe la necesidad de un sistema de recopilación de linaje para flujos de datos DISC que pueda capturar el linaje de operadores arbitrarios con una precisión razonable y sin sobrecargas significativas en la captura o el rastreo.
Rastreo eficiente
El rastreo es esencial para la depuración, durante la cual un usuario puede realizar múltiples consultas de rastreo. Por lo tanto, es importante que el rastreo tenga tiempos de respuesta rápidos. Ikeda et al. [ 30 ] pueden realizar consultas de rastreo hacia atrás eficientes para flujos de datos MapReduce, pero no son genéricos para diferentes sistemas DISC y no realizan consultas hacia adelante eficientes. Lipstick, [ 38 ] un sistema de linaje para Pig, [ 39 ] si bien puede realizar rastreo hacia atrás y hacia adelante, es específico para Pig y operadores SQL y solo puede realizar rastreo de grano grueso para operadores de caja negra. Por lo tanto, existe la necesidad de un sistema de linaje que permita un rastreo hacia adelante y hacia atrás eficiente para sistemas DISC genéricos y flujos de datos con operadores de caja negra.
Reproducción sofisticada
Reproducir solo entradas específicas o porciones del flujo de datos es crucial para una depuración eficiente y la simulación de escenarios hipotéticos. Ikeda et al. presentan una metodología para una actualización basada en linaje, que reproduce selectivamente las entradas actualizadas para recalcular las salidas afectadas. [ 40 ] Esto es útil durante la depuración para recalcular las salidas cuando se ha corregido una entrada defectuosa. Sin embargo, a veces un usuario puede querer eliminar la entrada defectuosa y reproducir el linaje de salidas previamente afectadas por el error para producir salidas sin errores. A esto lo llamamos reproducción exclusiva. Otro uso de la reproducción en la depuración implica reproducir entradas defectuosas para la depuración paso a paso (llamada reproducción selectiva). Los enfoques actuales para usar el linaje en sistemas DISC no abordan estos casos. Por lo tanto, existe la necesidad de un sistema de linaje que pueda realizar tanto reproducciones exclusivas como selectivas para abordar diferentes necesidades de depuración.
Detección de anomalías
Una de las principales preocupaciones en la depuración de sistemas DISC es la identificación de operadores defectuosos. En flujos de datos extensos con cientos de operadores o tareas, la inspección manual puede resultar tediosa e inviable. Incluso utilizando el linaje para reducir el subconjunto de operadores a examinar, el linaje de una sola salida puede abarcar varios operadores. Se necesita un sistema de depuración automatizado y económico que pueda reducir considerablemente el conjunto de operadores potencialmente defectuosos, con una precisión razonable, para minimizar la cantidad de inspección manual necesaria.
Véase también
- Grafo acíclico dirigido
- Área de preparación persistente , un área de preparación que registra todo el historial de cambios de una tabla o consulta de origen.
Referencias
- ↑ "¿Qué es el linaje de datos? - Definición de Techopedia" . 7 de agosto de 2012.
- ↑ Hoang, Natalie (16 de marzo de 2017). "El linaje de datos ayuda a impulsar el valor empresarial - Trifacta" . Trifacta . Consultado el 20 de septiembre de 2017 .
- 1 2 3 4 5 6 7 8 9 10 De, Soumyarupa. (2012). Newt : una arquitectura para la reproducción y depuración basadas en el linaje en sistemas DISC. UC San Diego: b7355202. Recuperado de: https://escholarship.org/uc/item/3170p7zn
- ↑ Drori, Amanon (18 de mayo de 2020). "¿Qué es el linaje de datos? - Octopai" . Octopai . Archivado del original el 29 de septiembre de 2020. Recuperado el 25 de agosto de 2020 .
- ↑ Jeffrey Dean y Sanjay Ghemawat. MapReduce: procesamiento de datos simplificado en grandes clústeres. Commun. ACM, 51(1):107–113, enero de 2008.
- ↑ Michael Isard, Mihai Budiu, Yuan Yu, Andrew Birrell y Dennis Fetterly. Dryad: programas distribuidos de datos en paralelo a partir de bloques de construcción secuenciales. En Actas de la 2.ª Conferencia Europea ACM SIGOPS/EuroSys sobre Sistemas Informáticos 2007, EuroSys '07, páginas 59-72, Nueva York, NY, EE. UU., 2007. ACM.
- ↑ Apache Hadoop. http://hadoop.apache.org .
- ↑ Grzegorz Malewicz, Matthew H. Austern, Aart JC Bik, James C. Dehnert, Ilan Horn, Naty Leiser y Grzegorz Czajkowski. Pregel: un sistema para el procesamiento de grafos a gran escala. En Actas de la conferencia internacional de 2010 sobre Gestión de datos, SIGMOD '10, páginas 135–146, Nueva York, NY, EE. UU., 2010. ACM.
- ↑ Shimin Chen y Steven W. Schlosser. MapReduce se adapta a una mayor variedad de aplicaciones. Informe técnico, Intel Research, 2008.
- ↑ El diluvio de datos en genómica. https://www-304.ibm.com/connections/blogs/ibmhealthcare/entry/data overload in genomics3?lang=de, 2010.
- ↑ Yogesh L. Simmhan, Beth Plale y Dennis Gannon. Un estudio sobre la procedencia de los datos en la ciencia electrónica. SIGMOD Rec., 34(3):31–36, septiembre de 2005.
- 1 2 Ian Foster, Jens Vockler, Michael Wilde y Yong Zhao. Chimera: Un sistema de datos virtual para representar, consultar y automatizar la derivación de datos. En la 14.ª Conferencia Internacional sobre Gestión de Bases de Datos Científicas y Estadísticas, julio de 2002.
- 1 2 Benjamin H. Sigelman, Luiz André Barroso, Mike Burrows, Pat Stephenson, Manoj Plakal, Donald Beaver, Saul Jaspan y Chandan Shanbhag. Dapper, una infraestructura de rastreo de sistemas distribuidos a gran escala. Informe técnico, Google Inc, 2010.
- ↑ Peter Buneman , Sanjeev Khanna y Wang-Chiew Tan . Procedencia de datos: algunas cuestiones básicas. En Actas de la 20.ª Conferencia sobre Fundamentos de la Tecnología del Software y la Informática Teórica, FST TCS 2000, páginas 87-93, Londres, Reino Unido, 2000. Springer-Verlag
- ↑ "Nuevo estudio del universo digital revela una gran brecha en los datos: menos del 1% de los datos mundiales se analizan y menos del 20% están protegidos" .
- ↑ Andre, Louie (15 de junio de 2021). "53 estadísticas importantes sobre la cantidad de datos que se crean cada día en 2024" . Financesonline.com . Consultado el 7 de diciembre de 2024 .
- ↑ Webopedia
- ↑ Schaefer, Paige (24 de agosto de 2016). "Diferencias entre datos estructurados y no estructurados" . Trifacta . Recuperado el 20 de septiembre de 2017 .
- ↑ SAS. http://www.sas.com/resources/asset/five-big-data-challenges-article.pdf Archivado el 20/12/2014 en Wayback Machine
- ↑ "5 Requisitos para una preparación de datos de autoservicio eficaz" . www.itbusinessedge.com . 18 de febrero de 2016. Consultado el 20 de septiembre de 2017 .
- ↑ Kandel, Sean (2016-11-04). "Seguimiento del linaje de datos en servicios financieros - Trifacta" . Trifacta . Recuperado el 2017-09-20 .
- ↑ "PROV-Overview" . W3C . 30 de abril de 2013. Consultado el 15 de agosto de 2025 .
- 1 2 Cheney, James; Chiticariu, Laura; Tan, Wang-Chiew (2009). "Procedencia en bases de datos: por qué, cómo y dónde" (PDF) . Fundamentos y tendencias en bases de datos . 1 (4): 379– 474. doi : 10.1561/1900000006 .
- 1 2 Simmhan, Yogesh L.; Plale, Beth; Gannon, Dennis (2005). "Un estudio sobre la procedencia de los datos en la ciencia electrónica" (PDF) . SIGMOD Record . 34 (3): 31– 36.
- ↑ "Linaje" . Glosario del Centro de Recursos de Seguridad Informática del NIST . Consultado el 15 de agosto de 2025 .
- ↑ «Acerca de OpenLineage» . OpenLineage . Consultado el 15 de agosto de 2025 .
- ↑ Principios para la agregación eficaz de datos de riesgo y la presentación de informes de riesgo (PDF) (Informe). Comité de Supervisión Bancaria de Basilea. 2013. Consultado el 15 de agosto de 2025 .
- ↑ "PROV-Descripción general" .
- ↑ "PROV-DM: El modelo de datos PROV" .
- 1 2 3 4 5 Robert Ikeda, Hyunjung Park y Jennifer Widom. Procedencia para flujos de trabajo generalizados de mapeo y reducción. En Actas de CIDR, enero de 2011.
- ↑ Y. Cui y J. Widom. Rastreo de linaje para transformaciones generales de almacenes de datos. VLDB Journal, 12(1), 2003.
- ↑ C. Olston y A. Das Sarma. Ibis: Un gestor de procedencia para sistemas multicapa. En Actas de CIDR, enero de 2011.
- 1 2 Dionysios Logothetis, Soumyarupa De y Kenneth Yocum. 2013. Captura de linaje escalable para la depuración de análisis DISC. En Actas del 4.º Simposio anual sobre computación en la nube (SOCC '13). ACM, Nueva York, NY, EE. UU., Artículo 17, 15 páginas.
- ↑ Zhou, Wenchao; Fei, Qiong; Narayan, Arjun; Haeberlen, Andreas; Thau Loo, Boon ; Sherr, Micah (diciembre de 2011). Procedencia segura de la red . Actas del 23.er Simposio ACM sobre Principios de Sistemas Operativos (SOSP).
- ↑ Fonseca, Rodrigo; Porter, George; Katz, Randy H.; Shenker, Scott; Stoica, Ion (2007). X-trace: Un marco de rastreo de red omnipresente . Actas de NSDI'07.
- ↑ Anish Das Sarma, Alpa Jain y Philip Bohannon. PROBER: Depuración ad hoc de pipelines de extracción e integración. Informe técnico, Yahoo, abril de 2010.
- ↑ Mingwu Zhang, Xiangyu Zhang, Xiang Zhang y Sunil Prabhakar. Rastreo de linaje más allá de los operadores relacionales. En Actas de la Conferencia sobre Bases de Datos Muy Grandes (VLDB), septiembre de 2007.
- ↑ Yael Amsterdamer, Susan B. Davidson, Daniel Deutch, Tova Milo, Julia Stoyanovich y Val Tannen. Poniendo pintalabios a un cerdo: Habilitando la procedencia del flujo de trabajo al estilo de las bases de datos. En Actas de VLDB, agosto de 2011.
- ↑ Christopher Olston, Benjamin Reed, Utkarsh Srivastava, Ravi Kumar y Andrew Tomkins. Pig latin: Un lenguaje no tan extranjero para el procesamiento de datos. En Actas de ACM SIGMOD, Vancouver, Canadá, junio de 2008.
- ↑ Robert Ikeda, Semih Salihoglu y Jennifer Widom. Actualización basada en la procedencia en flujos de trabajo orientados a datos. En Actas de la 20.ª conferencia internacional ACM sobre gestión de información y conocimiento, CIKM '11, páginas 1659–1668, Nueva York, NY, EE. UU., 2011. ACM.
Lecturas adicionales
- Freche, Jens; den Heijer, Milán; Wormuth, Bastián (2021). "Linaje de datos". En Wöhle, Thomas (ed.). El viaje digital de la banca y los seguros, volumen III . Saltador. págs. 5 a 19. doi : 10.1007/978-3-030-78821-6_1 .
- Miloslavskaya, Natalia; Tolstoy, Alexander (2020). Gobernanza de datos y gestión de metadatos . Springer. ISBN 978-3-030-35645-3.
- Gestión de datos
- Problemas de computación distribuida
- Big data