stringtranslate.com

Transformación de datos (informática)

En informática , la transformación de datos es el proceso de convertir datos de un formato o estructura a otro formato o estructura. Es un aspecto fundamental de la mayoría de las tareas de integración de datos [1] y gestión de datos , como la manipulación de datos , el almacenamiento de datos , la integración de datos y la integración de aplicaciones.

La transformación de datos puede ser simple o compleja según los cambios requeridos en los datos entre los datos de origen (iniciales) y los datos de destino (finales). La transformación de datos normalmente se realiza mediante una combinación de pasos manuales y automatizados. [2] Las herramientas y tecnologías utilizadas para la transformación de datos pueden variar ampliamente según el formato, la estructura, la complejidad y el volumen de los datos que se transforman.

Una refundición de datos maestros es otra forma de transformación de datos en la que toda la base de datos de valores de datos se transforma o refunde sin extraer los datos de la base de datos. Todos los datos de una base de datos bien diseñada están relacionados directa o indirectamente con un conjunto limitado de tablas de bases de datos maestras mediante una red de restricciones de claves externas . Cada restricción de clave externa depende de un índice de base de datos único de la tabla de la base de datos principal. Por lo tanto, cuando la tabla de base de datos maestra adecuada se refunde con un índice único diferente, los datos relacionados directa e indirectamente también se refunden o reexpresan. Los datos relacionados directa e indirectamente también se pueden ver en el formato original, ya que el índice único original todavía existe con los datos maestros. Además, la refundición de la base de datos debe realizarse de tal manera que no afecte el software de arquitectura de las aplicaciones .

Cuando el mapeo de datos es indirecto a través de un modelo de datos mediador , el proceso también se denomina mediación de datos .

Proceso de transformación de datos

La transformación de datos se puede dividir en los siguientes pasos, cada uno de los cuales es aplicable según sea necesario en función de la complejidad de la transformación requerida.

Estos pasos suelen ser el foco de los desarrolladores o analistas de datos técnicos que pueden utilizar múltiples herramientas especializadas para realizar sus tareas.

Los pasos se pueden describir de la siguiente manera:

El descubrimiento de datos es el primer paso en el proceso de transformación de datos. Por lo general, los datos se crean perfiles utilizando herramientas de creación de perfiles o, a veces, utilizando scripts de creación de perfiles escritos manualmente para comprender mejor la estructura y las características de los datos y decidir cómo deben transformarse.

El mapeo de datos es el proceso de definir cómo se mapean, modifican, unen, filtran, agregan, etc., los campos individuales para producir el resultado final deseado. Los desarrolladores o analistas de datos técnicos tradicionalmente realizan mapeo de datos, ya que trabajan en tecnologías específicas para definir las reglas de transformación (por ejemplo, herramientas visuales ETL , [3] lenguajes de transformación).

La generación de código es el proceso de generar código ejecutable (por ejemplo, SQL, Python, R u otras instrucciones ejecutables) que transformará los datos en función de las reglas de mapeo de datos definidas y deseadas. [4] Normalmente, las tecnologías de transformación de datos generan este código [5] en función de las definiciones o metadatos definidos por los desarrolladores.

La ejecución de código es el paso mediante el cual el código generado se ejecuta contra los datos para crear el resultado deseado. El código ejecutado puede estar estrechamente integrado en la herramienta de transformación o puede requerir pasos separados por parte del desarrollador para ejecutar manualmente el código generado.

La revisión de datos es el paso final del proceso, que se centra en garantizar que los datos de salida cumplan con los requisitos de transformación. Normalmente es el usuario empresarial o el usuario final de los datos el que realiza este paso. Cualquier anomalía o error en los datos que se encuentre y se comunique al desarrollador o analista de datos como nuevos requisitos a implementar en el proceso de transformación. [1]

Tipos de transformación de datos

Transformación de datos por lotes

Tradicionalmente, la transformación de datos ha sido un proceso masivo o por lotes, [6] mediante el cual los desarrolladores escriben código o implementan reglas de transformación en una herramienta de integración de datos y luego ejecutan ese código o esas reglas en grandes volúmenes de datos. [7] Este proceso puede seguir el conjunto lineal de pasos descritos en el proceso de transformación de datos anterior.

La transformación de datos por lotes es la piedra angular de prácticamente todas las tecnologías de integración de datos, como el almacenamiento de datos, la migración de datos y la integración de aplicaciones. [1]

Cuando los datos deben transformarse y entregarse con baja latencia, se suele utilizar el término "microbatch". [6] Esto se refiere a pequeños lotes de datos (por ejemplo, un pequeño número de filas o un pequeño conjunto de objetos de datos) que pueden procesarse muy rápidamente y entregarse al sistema de destino cuando sea necesario.

Beneficios de la transformación de datos por lotes

Los procesos tradicionales de transformación de datos han sido de gran utilidad para las empresas durante décadas. Las diversas herramientas y tecnologías (elaboración de perfiles de datos, visualización de datos, limpieza de datos, integración de datos, etc.) han madurado y la mayoría (si no todas) las empresas transforman enormes volúmenes de datos que alimentan aplicaciones internas y externas, almacenes de datos y otros almacenes de datos. [8]

Limitaciones de la transformación de datos tradicional

Este proceso tradicional también tiene limitaciones que obstaculizan su eficiencia y eficacia generales. [1] [2] [7]

Las personas que necesitan utilizar los datos (por ejemplo, los usuarios empresariales) no desempeñan un papel directo en el proceso de transformación de los datos. [9] Normalmente, los usuarios entregan la tarea de transformación de datos a desarrolladores que tienen las habilidades técnicas o de codificación necesarias para definir las transformaciones y ejecutarlas en los datos. [8]

Este proceso deja la mayor parte del trabajo de definir las transformaciones requeridas al desarrollador, que a menudo a su vez no tiene el mismo conocimiento del dominio que el usuario empresarial. El desarrollador interpreta los requisitos del usuario empresarial e implementa el código/lógica relacionado. Esto tiene el potencial de introducir errores en el proceso (a través de requisitos mal interpretados) y también aumenta el tiempo para llegar a una solución. [9] [10]

Este problema ha dado lugar a la necesidad de agilidad y autoservicio en la integración de datos (es decir, empoderar al usuario de los datos y permitirle transformarlos ellos mismos de forma interactiva). [7] [10]

Hay empresas que ofrecen herramientas de autoservicio de transformación de datos. Su objetivo es analizar, mapear y transformar de manera eficiente grandes volúmenes de datos sin el conocimiento técnico y la complejidad del proceso que existe actualmente. Si bien estas empresas utilizan la transformación por lotes tradicional, sus herramientas permiten una mayor interactividad para los usuarios a través de plataformas visuales y scripts fáciles de repetir. [11]

Aún así, puede haber algunos problemas de compatibilidad (por ejemplo, las nuevas fuentes de datos como IoT pueden no funcionar correctamente con herramientas más antiguas) y limitaciones de cumplimiento debido a la diferencia en las prácticas de gobernanza , preparación y auditoría de datos. [12]

Transformación de datos interactiva

La transformación de datos interactiva (IDT) [13] es una capacidad emergente que permite a los analistas de negocios y a los usuarios de negocios interactuar directamente con grandes conjuntos de datos a través de una interfaz visual, [9] comprender las características de los datos (mediante visualización o elaboración de perfiles de datos automatizados). y cambiar o corregir los datos mediante interacciones simples como hacer clic o seleccionar ciertos elementos de los datos. [2]

Aunque la transformación de datos interactiva sigue los mismos pasos del proceso de integración de datos que la integración de datos por lotes, la diferencia clave es que los pasos no necesariamente se siguen de manera lineal y, por lo general, no requieren habilidades técnicas significativas para su finalización. [14]

Hay varias empresas que ofrecen herramientas interactivas de transformación de datos, incluidas Trifacta, Alteryx y Paxata. Su objetivo es analizar, mapear y transformar de manera eficiente grandes volúmenes de datos y, al mismo tiempo, abstraer parte de la complejidad técnica y los procesos que tienen lugar bajo el capó.

Las soluciones interactivas de transformación de datos proporcionan una interfaz visual integrada que combina los pasos previamente dispares de análisis de datos, mapeo de datos y generación/ejecución de código e inspección de datos. [8] Es decir, si se realizan cambios en un paso (como, por ejemplo, cambiar el nombre), el software actualiza automáticamente los pasos anteriores o siguientes en consecuencia. Las interfaces para la transformación de datos interactiva incorporan visualizaciones para mostrar al usuario patrones y anomalías en los datos para que pueda identificar valores erróneos o atípicos. [9]

Una vez que hayan terminado de transformar los datos, el sistema puede generar código/lógica ejecutable, que puede ejecutarse o aplicarse a conjuntos de datos similares posteriores.

Al eliminar al desarrollador del proceso, los sistemas interactivos de transformación de datos acortan el tiempo necesario para preparar y transformar los datos, eliminan errores costosos en la interpretación de los requisitos del usuario y permiten a los usuarios y analistas comerciales controlar sus datos e interactuar con ellos según sea necesario. [10]

Lenguajes transformacionales

Hay numerosos idiomas disponibles para realizar la transformación de datos. Muchos lenguajes de transformación requieren que se proporcione una gramática . En muchos casos, la gramática se estructura utilizando algo muy parecido a la forma Backus-Naur (BNF). Hay numerosos idiomas disponibles para tales fines que varían en su accesibilidad (costo) y utilidad general. [15] Ejemplos de tales lenguajes incluyen:

Además, empresas como Trifacta y Paxata han desarrollado lenguajes transformacionales (DSL) de dominio específico para dar servicio y transformar conjuntos de datos. El desarrollo de lenguajes de dominios específicos se ha relacionado con una mayor productividad y accesibilidad para usuarios no técnicos. [16] “Wrangle” de Trifacta es un ejemplo de un lenguaje de dominio específico. [17]

Otra ventaja de la reciente tendencia de los lenguajes transformacionales de dominio específico es que un lenguaje transformacional de dominio específico puede abstraer la ejecución subyacente de la lógica definida en el lenguaje transformacional de dominio específico. También pueden utilizar esa misma lógica en varios motores de procesamiento, como Spark , MapReduce y Dataflow . En otras palabras, con un lenguaje transformacional de dominio específico, el lenguaje de transformación no está vinculado al motor subyacente. [17]

Aunque los lenguajes transformacionales suelen ser los más adecuados para la transformación, se puede utilizar algo tan simple como expresiones regulares para lograr una transformación útil. Un editor de texto como vim , emacs o TextPad admite el uso de expresiones regulares con argumentos. Esto permitiría reemplazar todas las instancias de un patrón particular con otro patrón usando partes del patrón original. Por ejemplo:

foo ("alguna cadena", 42, gCommon);bar (algúnObj, otroObj);foo ("otra cadena", 24, gCommon);barra (miObj, miOtroObj);

Ambos podrían transformarse en una forma más compacta como:

foobar("alguna cadena", 42, algúnObj, otroObj);foobar("otra cadena", 24, myObj, myOtherObj);

En otras palabras, todas las instancias de una invocación de función de foo con tres argumentos, seguidas de una invocación de función con dos argumentos, se reemplazarían con una única invocación de función utilizando parte o todo el conjunto de argumentos original.

Otra ventaja de utilizar expresiones regulares es que no fallarán la prueba de transformación nula. Es decir, utilizando el lenguaje transformacional de su elección, ejecute un programa de muestra a través de una transformación que no realice ninguna transformación. Muchos lenguajes transformacionales no pasarán esta prueba.

Ver también

Referencias

  1. ^ abcd CIO.com. Agile llega a la integración de datos. Obtenido de: https://www.cio.com/article/2378615/data-management/agile-comes-to-data-integration.html Archivado el 29 de agosto de 2017 en Wayback Machine.
  2. ^ abc DataXFormer. Morcos, Abedjan, Ilyas, Ouzzani, Papotti, Stonebraker. Una herramienta interactiva de transformación de datos. Obtenido de: http://livinglab.mit.edu/wp-content/uploads/2015/12/DataXFormer-An-Interactive-Data-Transformation-Tool.pdf Archivado el 5 de agosto de 2019 en Wayback Machine.
  3. ^ DWBIMASTER. Las 10 mejores herramientas ETL. Obtenido de: http://dwbimaster.com/top-10-etl-tools/ Archivado el 29 de agosto de 2017 en Wayback Machine.
  4. ^ Petr Aubrecht, Zdenek Kouba. Transformación de datos impulsada por metadatos. Obtenido de: http://labe.felk.cvut.cz/~aubrech/bin/Sumatra.pdf Archivado el 16 de abril de 2021 en Wayback Machine.
  5. ^ LearnDataModeling.com. Generadores de código. Obtenido de: http://www.learndatamodeling.com/tm_code_generator.php Archivado el 2 de agosto de 2017 en Wayback Machine.
  6. ^ ab TDWI. Diez reglas para la integración de datos en tiempo real. Obtenido de: https://tdwi.org/Articles/2012/12/11/10-Rules-Real-Time-Data-Integration.aspx?Page=1 Archivado el 29 de agosto de 2017 en Wayback Machine.
  7. ^ a b C Tope Omitola, Andr´e Freitas, Edward Curry, Sean O'Riain, Nicholas Gibbins y Nigel Shadbolt. Captura de operaciones interactivas de transformación de datos utilizando flujos de trabajo de procedencia. Obtenido de: http://andrefreitas.org/papers/preprint_capturing%20interactive_data_transformation_eswc_highlights.pdf Archivado el 31 de enero de 2016 en Wayback Machine.
  8. ^ abc El valor de la transformación de datos
  9. ^ abcd Morton, Kristi - Integración de datos interactivos y resolución de entidades para análisis de datos visuales exploratorios. Obtenido de: https://digital.lib.washington.edu/researchworks/handle/1773/35165 Archivado el 7 de septiembre de 2017 en Wayback Machine.
  10. ^ abc McKinsey.com. Uso ágil para acelerar la transformación de datos
  11. ^ "Por qué Self-Service Prep es una aplicación excelente para Big Data". Datanami . 2016-05-31. Archivado desde el original el 21 de septiembre de 2017 . Consultado el 20 de septiembre de 2017 .
  12. ^ Sergio, Pablo (27 de mayo de 2022). "Su guía práctica para la transformación de datos". Blog de Coupler.io . Archivado desde el original el 17 de mayo de 2022 . Consultado el 8 de julio de 2022 .
  13. ^ Tope Omitola, Andr´e Freitas, Edward Curry, Sean O'Riain, Nicholas Gibbins y Nigel Shadbolt. Captura de operaciones interactivas de transformación de datos utilizando flujos de trabajo de procedencia. Obtenido de: http://andrefreitas.org/papers/preprint_capturing%20interactive_data_transformation_eswc_highlights.pdf Archivado el 31 de enero de 2016 en Wayback Machine.
  14. ^ Peng Cong, Zhang Xiaoyi. Investigación y Diseño de Sistema Interactivo de Transformación y Migración de Datos para Fuentes de Datos Heterogéneas. Obtenido de: https://ieeexplore.ieee.org/document/5211525/ Archivado el 7 de junio de 2018 en Wayback Machine.
  15. ^ DMOZ. Extracción y Transformación. Obtenido de: https://dmoztools.net/Computers/Software/Databases/Data_Warehousing/Extraction_and_Transformation/ Archivado el 29 de agosto de 2017 en Wayback Machine.
  16. ^ "Lenguaje de disputa - Trifacta Wrangler - Documentación de Trifacta". docs.trifacta.com . Archivado desde el original el 21 de septiembre de 2017 . Consultado el 20 de septiembre de 2017 .
  17. ^ ab Kandel, Joe Hellerstein, Sean. "Ventajas de un enfoque de lenguaje de dominio específico para la transformación de datos - Strata + Hadoop World en Nueva York 2014". conferencias.oreilly.com . Archivado desde el original el 21 de septiembre de 2017 . Consultado el 20 de septiembre de 2017 .{{cite web}}: CS1 maint: multiple names: authors list (link)

enlaces externos