introducción a trifacta

17
Introducción a Trifacta Josep Curto David Cabanillas 28 de septiembre de 2017 Resumen En este documento se presenta el concepto de data wrangling. Tam- bién es una introducción técnica sobre Trifacta, una de las principales herramientas de data wrangling. 1. ¿Qué es el data wrangling ? Se define data wrangling como el proceso de convertir (o mapear) datos de una formato original (lo que se conoce como raw data ) a otro formato que per- mita un consumo más fácil, adecuado y eficiente de los datos. En definitiva, data wrangling es el proceso de limpieza, preparación y unificación de conjuntos de datos complejos para facilitar su acceso y análisis. Una de las tareas principales dentro de data wrangling es la calidad del dato, objeto de aprendizaje de este módulo. Data wrangling incluye diferentes funciones: Acceso a datos: que permite automatizar la extracción de datos de cual- quier tipo de fuentes (desde bases de datos relacionales y NoSQL hasta archivos). Extracción de datos: que permite extraer partes de un corpus de datos de forma automatizada. Perfilado de los datos: que permite examinar los datos disponibles de una fuente de información existente (por ejemplo, una base de datos o un archivo) y recopilar estadísticas o resúmenes sobre esos datos. Limpieza de datos: que permite corregir errores en un corpus de datos. Integración de datos: que permite combinar datos de fuentes diferentes y convertirlos en información significativa y valiosa. 1

Upload: others

Post on 01-Oct-2021

11 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Introducción a Trifacta

Introducción a Trifacta

Josep Curto David Cabanillas

28 de septiembre de 2017

Resumen

En este documento se presenta el concepto de data wrangling. Tam-bién es una introducción técnica sobre Trifacta, una de las principalesherramientas de data wrangling.

1. ¿Qué es el data wrangling?Se define data wrangling como el proceso de convertir (o mapear) datos de

una formato original (lo que se conoce como raw data) a otro formato que per-mita un consumo más fácil, adecuado y eficiente de los datos. En definitiva, datawrangling es el proceso de limpieza, preparación y unificación de conjuntos dedatos complejos para facilitar su acceso y análisis.

Una de las tareas principales dentro de data wrangling es la calidad del dato,objeto de aprendizaje de este módulo.

Data wrangling incluye diferentes funciones:

Acceso a datos: que permite automatizar la extracción de datos de cual-quier tipo de fuentes (desde bases de datos relacionales y NoSQL hastaarchivos).

Extracción de datos: que permite extraer partes de un corpus de datosde forma automatizada.

Perfilado de los datos: que permite examinar los datos disponibles deuna fuente de información existente (por ejemplo, una base de datos o unarchivo) y recopilar estadísticas o resúmenes sobre esos datos.

Limpieza de datos: que permite corregir errores en un corpus de datos.

Integración de datos: que permite combinar datos de fuentes diferentesy convertirlos en información significativa y valiosa.

1

Page 2: Introducción a Trifacta

Enriquecimiento de datos: que permite mejorar los datos por mediode personas (manual) o un sistema informático (automático). El enrique-cimiento de los datos mediante personas significa que una persona trans-forma los datos fila a fila usando su conocimiento, pero esto requiere unagran cantidad de automatización para que sea fiable y escalable. Asimis-mo, el enriquecimiento automatizado de datos implica preparar las reglasy scripts para transformar datos, pero requiere que una persona revise esasreglas y scripts para asegurar que los datos de salida son los esperados.

Entrega de datos: que permite crear un nuevo conjunto de datos despuésde aplicar tareas de data wrangling.

En nuestro caso nos vamos a centrar principalmente en dos funciones: lalimpieza de datos y el enriquecimiento de datos

Es necesario recordar que data wrangling no es sólo un problema técnico,sino un problema de negocio. Las secuencia de transformaciones en un conjuntode datos debe tener sentido desde el punto de vista de negocio.

2. ¿Qué es Trifacta?Según Thomas Davenport, Data Scientist es el trabajo más sexy del siglo

XX. Sin embargo, realmente necesitamos mejores herramientas para que poda-mos pasar menos tiempo en la realización del data wrangling, es decir, en lalimpieza y transformación de los datos y llegar a la etapa fundamental parala generación de valor: el análisis de los datos. Trifacta es una plataforma quecombina la preparación y limpieza de datos para su análisis. Se compone de seispasos: descubrimiento, estructuración, limpieza, enriquecimiento, vali-dación y publicación.

Este tipo de herramientas ayudan al Data Scientist (así como a otros roles)a ser más productivos y poder centrarse en el análisis (descriptivo y predictivo).El objetivo de estas herramientas es reducir el tiempo dedicado a la limpieza dedatos para que el analista de datos se pueda centrar en el proceso de obtenerconocimiento del dato (insights) aplicando, por ejemplo, técnicas de machinelearning clustering, clasificación y/o regresión.

Pero antes de pasar a la explotación de los datos, necesitamos unos datosde calidad y es aquí donde entran en juego herramientas como Trifacta. Estaherramienta no solo proporciona transformaciones para aumentar la calidad deldato, sino que incluye un sistema de recomendación. Cuando un analista se-lecciona campos (o variables) en un conjunto de datos, la herramienta sugieretransformaciones. Es decir, a partir de las características de los datos, Trifactapropone posibles soluciones para limpiar y mejorar los datos.

2

Page 3: Introducción a Trifacta

Trifacta combina una interficie grafica – GUI (Graphical User Interface) conun lenguaje de scripting para realizar la fase de data wrangling.

Un proyecto en Trifacta se llama flujo. Un flujo requiere al menos un con-junto de datos. Fluir se refiere a una secuencia de transformaciones de datos(receta). Una vez que se aplican a un conjunto de datos, obtenemos los resulta-dos: un resumen, un nuevo conjunto de datos (limpio) y una receta.

Wrangle es el lenguaje específico del dominio usado para construir recetasde transformación en Trifacta Wrangler.

Receta: es una secuencia de transformaciones que se aplican a un conjuntode datos con el fin de producir generar un nuevo conjunto de datos conmayor calidad o enriquecido.

Transformación: es una acción única aplicada a un conjunto de datos.La mayoría de transformaciones pueden usar uno o más parámetros pa-ra definir el contexto (columnas, filas o condiciones) donde se aplica latransformación.

Función: Dentro de algunos parámetros de una transformación es posibleespecificar una función (o varias funciones concatenadas). Una función esuna acción computacional realizada en uno o más columnas de datos. Porejemplo, romper el nombre completo en nombre y apellidos, creando doscolumnas a partir de una columna inicial.

Se puede acceder a la sintaxis más actualizada de recetas wrangle aquí1.

3. Funciones y transformaciones disponibles enTrifacta

Las siguientes funciones y transformaciones están disponibles en Trifacta:

Transformaciones:Aggregate Transform, Countpattern Transform De-duplicate Transform, Delete Transform, Derive Transform,Drop Trans-form, Extract Transform,Extractkv Transform,Extractlist Transform, Flat-ten Transform,Header Transform, Keep Transform,Merge Transform, Mo-ve Transform,Multisplit Transform, Nest Transform,Pivot Transform, Re-name Transform, Replace Transform, Set Transform, Settype Transform,Sort Transform, Split Transform, Splitrows Transform, Unnest Transform,Unpivot Transform, Valuestocols Transform, Window Transform.

Funciones de agregación:ANY,COUNT,KTHLARGEST,LIST,MAX,AVERAGE,MIN, STDEV, SUM, VAR, Logical Operators, Comparisons, Comparison

1https://www.trifacta.com/support/language

3

Page 4: Introducción a Trifacta

Operators, IN,MATCHES, EQUAL,NOTEQUAL,GREATERTHAN,GREA-TERTHANEQUAL, LESSTHAN, LESSTHANEQUAL,Maths,NUMFOR-MAT, ABS, EXP, LOG, POW, CEILING, LN, SQRT, FLOOR, ROUND.

Operadores numéricos:ADD, SUBTRACT,MULTIPLY,DIVIDE,MOD,NEGATE.

Funciones de fecha: DATE, TIME, DATEDIF, DATEFORMAT, UNIX-TIMEFORMAT, MONTH, MONTHNAME, YEAR, DAY, WEEKDAY,HOUR, MINUTE, SECOND, UNIXTIME.

Funciones de cadenas de caracteres: CHAR, UNICODE, UPPER,LOWER, PROPER, LEN, TRIM, SUBSTRING, LEFT, RIGHT, FIND,REMOVEWHITESPACE, REMOVESYMBOLS,MERGE,Nesteds,ARRAY-LEN, ARRAYSTOMAP, ARRAYCONCAT, ARRAYCROSS, ARRAYIN-TERSECT.

Funciones de clave: ARRAYUNIQUE, ARRAYZIP.

Funciones de tipos: NULL, ISNULL, ISMISSING, ISMISMATCHED,VALID, Windows, PREV, NEXT, FILL, ROLLINGAVG, SESSION.

Otras funciones: COALESCE, RAND, SOURCEROWNUMBER, IF.

Funciones ternarias (es una forma de hacer operaciones condi-cionales con 3 parámetros): IPTOINT, IPFROMINT, RANGE, DO-MAIN.

La lista de funciones y transformaciones aumenta en cada versión del pro-ducto y se recomienda comprobar su sitio web. Vamos a ilustrar el uso de estasfunciones y transformaciones a través de algunos ejemplos. Esta documentacióntiene por objeto introducir algunos de los usos más comunes pero no esta desti-nado a cubrir todos los casos reales para cada función y transformación, la mejormanera es probar uno mismo como usar y combinar las funciones ofrecidas porTrifacta.

4. Primeros pasos con TrifactaEn esta sección explicaremos los primeros pasos que podemos hacer con

Trifacta.

4.1. Creación de un proyectoEl paso inicial a realizar con Trifacta es la creación de un nuevo proyecto (o

flujo) como ilustra la figura 1. Para crear un nuevo proyecto es necesario pulsarCreate flow y completar dos parámetros del proyecto: nombre y descripción.Podemos entender un proyecto como el contenedor del flujo de transformacionesy los datos del proyecto. Tras la creación, el proyecto está vacío.

4

Page 5: Introducción a Trifacta

Figura 1: Crear un nuevo proyecto

4.2. Inclusión de datos en un proyectoTras crear un proyecto (que ya sabemos es simplemente un contenedor), de-

bemos añadir un conjunto de datos al mismo (con el objetivo de estar disponiblepara su tratamiento). Tenemos dos formas de hacer este proceso:

A través del menú superior Data Sets que nos permite añadir datos quepodemos, a posteriori, asociar a un proyecto. Esto se realiza pulsando enImport Data como se ilustra en la figura 2.

A través del proyecto, una vez hemos entrado dentro de él. Esto se realizaa través de la opción Add Datasets que nos lleva a los conjuntos de datosdisponibles. Si no ha sido añadido, será necesario importarlo.

Sea cual sea la forma en la que iniciemos el proceso de importar el dato,cuando pulsemos en Import Data se abrirá una nueva ventana como la queilustra la figura 3 en la que añadimos el fichero a analizar.

Es necesario remarcar que esta versión del programa solamente permite ex-portar conjuntos de datos cuyo origen es un ficheros de texto (como, por ejemplo,formato CSV) pero no de bases de datos (relacionales o NoSQL), para la que senecesita la versión Enterprise. El resto de la funcionalidad no está limitada porlo que podemos trabajar en un contexto completamente real (y no limitado) defuncionalidad.

5

Page 6: Introducción a Trifacta

Figura 2: Añadir un conjunto de datos

5. Inicio del proyecto de data wrangling

Imaginemos que somos un analista del prestigioso TechCrunch2 y tenemosla tarea de mejorar la calidad de un conjunto de datos que nos ha enviado eldepartamento TI. Ya hemos hecho los pasos anteriores de crear el proyecto,cargar los datos y asociar los datos al proyecto como ilustra la figura 4. Elconjunto de datos que usaremos se puede descargar desde el campus (el nombredel fichero TechCrunchcontinentalUSA.csv).

5.1. Edición recetaTras añadir el conjunto de datos, es el momento de trabajar en el flujo de

transformaciones (la receta, según la terminología de Trifacta) y, por lo tanto,es necesario editar la receta tal y como se ilustra en la figura 5.

Cuando trabajamos en el proyecto de calidad de datos, como es posibleimaginar, podemos editar la receta tantas veces como sea necesario a partir deesta sección.

5.2. Perfilado del datoAhora es el momento de empezar a trabajar con este conjunto de datos

y crear un flujo de transformaciones para aumentar la calidad. Sin embargo,desconocemos qué atributos/variables continue el conjunto de datos ni el nivelde calidad tiene cada una de ellas. Es necesario conocer el perfil del dato.

Cuando editamos la receta entremos en una área de trabajo en la que vemostodas las columnas (variables) del conjunto de datos así como información para

2http://techcrunch.com/TechCrunchcontinentalUSA.csv

6

Page 7: Introducción a Trifacta

Figura 3: Añadir un conjunto de datos

cada uno de ellos. La información disponible es:

Tamaño del conjunto de datos (en bytes). En el caso de trabajar conun conjunto de datos muy grande y nuestro ordenador tenga memorialimitada, Trifacta trabajará con una muestra significativa del conjunto.

Número de filas y archivos en el conjunto de datos

Tipos de datos en el conjunto de datos

Distribución de datos, clasificación de datos (válida, ausencia, falta decoincidencia) y categoría por columna. A partir de estos datos, podemosempezar a conocer el estado de cada una de las variables.

Cuando se carga un conjunto de datos, la receta incluye las transformacionespara columnas y el encabezado, parte derecha de la figura 7. Es decir, lo quese ha hecho es la carga de cada una de las columnas, y la identificación de laetiqueta de la columna.

Por cada columna podemos obtener un mayor detalle, seleccionando ColumnDetails en cada uno de los menús desplegables por columna y los detalles soncomo los que se ilustran en la figura 8.

6. Tratamiento de datos con TrifactaEn esta sección se van a mostrar una serie de usos de las funciones de Trifacta.

En todo momento se va a trabajar sobre el conjunto de datos de TechCrunch,como ejemplo ilustrativo.

7

Page 8: Introducción a Trifacta

Figura 4: Analizar datos de TechCrunch

6.1. Cómo reemplazar un valor incorrectoUn conjunto de datos puede tener valores incorrectos. El uso de las capa-

cidades de exploración de Trifacta permite observar estos valores incorrectos.Seleccionamos la columna raisedCurrency. En este caso, es fácil descubrir unvalor incorrecto y resolverlo. Estamos trabajando sobre datos de USA y apare-cen 1 valor con la moneda del Canada y otra con el Euro. Si clickamos sobrelos valores de Canada y Euro podemos clickar sobre Delete rows where raised-Currency==’EUR’ y lo mismo para ’CAD’. Y pulsamos sobre el botón Add torecipe.

Estas opciones ofrecidas como solución son genéricas y pueden no ser lasque necesitamos. Para cada campo, la herramienta propondrá qué hacer, peroes nuestra responsabilidad seleccionar cual es la correcta o añadir desde ce-ro la función que creemos que va a resolver el problema sobre los datos. Latransformación final debe estar vinculada a nuestra comprensión del contextoempresarial y de lo que debe ser hecho. Después de aplicar la transformación,podemos observar que ahora se incluye en la receta y ya no tenemos valor deraisedCurrency. Si la función no es la que se nos ofrece podemos editar y utilizarla función o funciones que nos interesen aplicar como ilustra la figura 9.

6.2. Cómo crear un nuevo valorA veces necesitamos crear nuevos valores en nuestro conjunto de datos basa-

dos en otras columnas. Esto se hace con la transformación “derivar”. Por ejemplo,queremos crear una nueva columna para resaltar si la ronda es una operaciónprivada o pública. Si es privado, entonces la cantidad de dinero en la ronda noestá disponible. En este caso, primero validamos si el valor es nulo, y dependien-

8

Page 9: Introducción a Trifacta

Figura 5: Modificación receta

do del valor, asignamos un valor. Accedemos al campo raisedAmt, lo ordenamosy vamos a añadir en la función derive, que todo lo que sea un outlier o valorfuera de rango se considere privado y lo que no público. Este valor se añadiráen una nueva columna roundStatus como ilustra la figura 10. Si ves esta ope-ración muy complicada, puedes probar otros muchos ejemplos de añadir nuevascolumnas como por ejemplo: Si el valor de una columna es más grande que undeterminado número poner un 1 y en caso contrario poner un cero. Hacer lomismo pero con dos columnas como origen, etc.

6.3. Cómo eliminar información duplicadaEn caso de que un conjunto de datos tenga datos duplicados, significa que una

o varias columnas contienen la misma información o información muy parecida,podemos eliminar una columna utilizando la transformación de drop. En nuestrocaso, permalink tiene información similar a company. Podemos eliminar estacolumna.

6.4. Cómo combinar dos o más columnasA veces necesitamos crear una nueva columna que combine dos o más co-

lumnas. Esto se puede hacer con la transformación de merge. En nuestro caso,podemos considerar crear una nueva columna city_state como resultado de com-binar ciudad y estado como ilustra la figura 11.

9

Page 10: Introducción a Trifacta

Figura 6: Datos

6.5. Cómo reordenar las columnas en nuestro conjunto dedatos

Tenemos la opción de reordenar las columnas del conjunto de datos con latransformación move. En nuestro caso podemos mover numEmps tras funded-Date como ilustra la figura 12.

6.6. Qué hacer con los valores vacíosCuando tenemos valores vacíos en una columna, tenemos varias opciones

(vinculadas al caso de negocio que estamos analizando):

No hacer nada: después de analizar el campo, decidimos que no podemosaplicar ninguna transformación.

Reemplazar: reemplazar los valores nulos por un nuevo valor que ayudaa una empresa Usuario a tomar decisiones. Esto se puede hacer con latransformación.

Windows (fill, prev, session): similar a la función lookup en Excel parausar información en otras columnas o filas para completar un valor vacío.

6.7. Exportar su recetaUna vez que hayamos terminado nuestro proceso de wrangle de datos, se

puede almacenar la receta para reutilizarla o compartirla con su equipo en elfuturo. Abra el panel izquierdo con la información de la receta y haga clic enguardar. Trifacta permite exportar la receta como un objeto wrangle o csv comoilustra la figura 13.

10

Page 11: Introducción a Trifacta

Figura 7: Receta

Es necesario remarcar que al trabajar con Trifacta Wrangler no es posiblecompartir recetas entre alumnos.

6.8. Generar resultados con TrifactaUna vez que hemos completado nuestro proceso de wrangle de datos, es hora

de generar el resultado final. En el contexto de Trifacta esto significa aplicarla receta y generar un nuevo conjunto de datos (en un formato específico) y elresumen de nuestras acciones. Clickamos sobre Generate Results. Trifacta va agenerar un resumen y varios archivos. Podemos elegir entre csv (valor separadopor coma), json (objeto javascript) y tde (archivo de extracto de datos Tableau)como ilustra la figura 14.

Después de unos segundos o minutos, dependiendo de la complejidad delproceso, se generará un resumen como ilustra la figura 15.

Y también es posible revisar el resumen del proceso de discusión de datosilustra la figura 16.

Como es posible imaginar este proceso es iterativo y es posible identificarnuevos errores o nuevas reglas de negocio a aplicar.

7. Data GovernanceTrifacta es una herramienta de data wrangling, que es uno de los pasos que

hay que realizar en un programa de calidad de datos. A continuación se recuer-dan cada uno de estos pasos:

Valoración: Identificar los elementos que deben evaluarse para la cali-dad de los datos, normalmente estos serán elementos de datos considera-

11

Page 12: Introducción a Trifacta

Figura 8: Detalle columna

dos críticos para las operaciones empresariales y los informes de gestiónasociados. Evaluando qué dimensiones de calidad de datos utilizar y suponderación asociada.

Estrategia de limpieza: Para cada dimensión de calidad de datos, de-finir los valores o rangos que representen datos de calidad buena y mala.Segmentar los datos y determinar las acciones a realizar.

Limpieza y enriquecimiento: Aplicar los criterios de evaluación a loselementos de datos. Y cuando proceda, tomar medidas correctivas, porejemplo limpiar y mejorar los datos así como la mejora de los procesos demanejo de datos para prevenir errores futuros.

Monitorizar: Revisar los resultados y determinar si la calidad de los datoses aceptable o no. Las circunstancias evolucionan y el negocio se adaptadinámica mente a los cambios, lo que implica la posible aparición de nuevosproblemas de calidad de datos. Un buen plan de calidad de datos ha detener prevista esta circunstancia y prever la necesidad de monitorización.

Repetir lo anterior periódicamente para supervisar las tendencias en lacalidad de los datos.

Trifacta es una herramienta dentro del tercer paso Limpieza y enriqueci-miento, pero es necesario realizar todos los pasos anteriores y posteriores paraseguir de manera correcta un programa de calidad de datos.

12

Page 13: Introducción a Trifacta

Figura 9: Eliminación de monedas que no son USD

8. ConclusionesEl presente documento presenta Trifacta, lista las funciones que nos ofrece y

muestra una serie de ejemplos del tipo de operaciones que ofrece Trifacta y cómose utilizan. Pero sólo es el punto de partida, nuestro consejo es que a partir deeste documento practiques con Trifaca para sacar todo el potencial que ofrecela herramienta.

13

Page 14: Introducción a Trifacta

Figura 10: Añadir columna

Figura 11: Combinar columnas

14

Page 15: Introducción a Trifacta

Figura 12: Reordenar columnas

Figura 13: Almacenar la receta

15

Page 16: Introducción a Trifacta

Figura 14: Exportar la receta

Figura 15: Resumen

16

Page 17: Introducción a Trifacta

Figura 16: Revisión del resumen

17