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
Enriquecimiento de datos: que permite mejorar los datos por medio
de 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 una
gran cantidad de automatización para que sea fiable y escalable. Asimis-
mo, el enriquecimiento automatizado de datos implica preparar las reglas
y scripts para transformar datos, pero requiere que una persona revise esas
reglas y scripts para asegurar que los datos de salida son los esperados.
Entrega de datos: que permite crear un nuevo conjunto de datos después
de aplicar tareas de data wrangling.
En nuestro caso nos vamos a centrar principalmente en dos funciones: la
limpieza 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 conjunto
de 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 la
limpieza y transformación de los datos y llegar a la etapa fundamental para
la generación de valor: el análisis de los datos. Trifacta es una plataforma que
combina la preparación y limpieza de datos para su análisis. Se compone de seis
pasos: 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 de
datos para que el analista de datos se pueda centrar en el proceso de obtener
conocimiento del dato (insights) aplicando, por ejemplo, técnicas de machine
learning clustering, clasificación y/o regresión.
Pero antes de pasar a la explotación de los datos, necesitamos unos datos
de calidad y es aquí donde entran en juego herramientas como Trifacta. Esta
herramienta no solo proporciona transformaciones para aumentar la calidad del
dato, sino que incluye un sistema de recomendación. Cuando un analista se-
lecciona campos (o variables) en un conjunto de datos, la herramienta sugiere
transformaciones. Es decir, a partir de las características de los datos, Trifacta
propone posibles soluciones para limpiar y mejorar los datos.
2
Trifacta combina una interficie grafica – GUI (Graphical User Interface) con
un 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 recetas
de transformación en Trifacta Wrangler.
Receta: es una secuencia de transformaciones que se aplican a un conjunto
de datos con el fin de producir generar un nuevo conjunto de datos con
mayor 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 la
transformación.
Función: Dentro de algunos parámetros de una transformación es posible
especificar una función (o varias funciones concatenadas). Una función es
una acción computacional realizada en uno o más columnas de datos. Por
ejemplo, romper el nombre completo en nombre y apellidos, creando dos
columnas 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 en
Trifacta
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
1 [Link]
3
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 estas
funciones y transformaciones a través de algunos ejemplos. Esta documentación
tiene 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 mejor
manera es probar uno mismo como usar y combinar las funciones ofrecidas por
Trifacta.
4. Primeros pasos con Trifacta
En esta sección explicaremos los primeros pasos que podemos hacer con
Trifacta.
4.1. Creación de un proyecto
El 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 pulsar
Create flow y completar dos parámetros del proyecto: nombre y descripción.
Podemos entender un proyecto como el contenedor del flujo de transformaciones
y los datos del proyecto. Tras la creación, el proyecto está vacío.
4
Figura 1: Crear un nuevo proyecto
4.2. Inclusión de datos en un proyecto
Tras 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 disponible
para su tratamiento). Tenemos dos formas de hacer este proceso:
A través del menú superior Data Sets que nos permite añadir datos que
podemos, a posteriori, asociar a un proyecto. Esto se realiza pulsando en
Import Data como se ilustra en la figura 2.
A través del proyecto, una vez hemos entrado dentro de él. Esto se realiza
a través de la opción Add Datasets que nos lleva a los conjuntos de datos
disponibles. 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 que
ilustra 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 se
necesita la versión Enterprise. El resto de la funcionalidad no está limitada por
lo que podemos trabajar en un contexto completamente real (y no limitado) de
funcionalidad.
5
Figura 2: Añadir un conjunto de datos
5. Inicio del proyecto de data wrangling
Imaginemos que somos un analista del prestigioso TechCrunch2 y tenemos
la tarea de mejorar la calidad de un conjunto de datos que nos ha enviado el
departamento 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. El
conjunto de datos que usaremos se puede descargar desde el campus (el nombre
del fichero [Link]).
5.1. Edición receta
Tras 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 posible
imaginar, podemos editar la receta tantas veces como sea necesario a partir de
esta sección.
5.2. Perfilado del dato
Ahora 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 nivel
de 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 vemos
todas las columnas (variables) del conjunto de datos así como información para
2 [Link]
6
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 con
un conjunto de datos muy grande y nuestro ordenador tenga memoria
limitada, 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 de
coincidencia) y categoría por columna. A partir de estos datos, podemos
empezar a conocer el estado de cada una de las variables.
Cuando se carga un conjunto de datos, la receta incluye las transformaciones
para columnas y el encabezado, parte derecha de la figura 7. Es decir, lo que
se ha hecho es la carga de cada una de las columnas, y la identificación de la
etiqueta de la columna.
Por cada columna podemos obtener un mayor detalle, seleccionando Column
Details en cada uno de los menús desplegables por columna y los detalles son
como los que se ilustran en la figura 8.
6. Tratamiento de datos con Trifacta
En 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
Figura 4: Analizar datos de TechCrunch
6.1. Cómo reemplazar un valor incorrecto
Un 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 un
valor 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 sobre
los 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 to
recipe.
Estas opciones ofrecidas como solución son genéricas y pueden no ser las
que necesitamos. Para cada campo, la herramienta propondrá qué hacer, pero
es 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. La
transformación final debe estar vinculada a nuestra comprensión del contexto
empresarial 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 de
raisedCurrency. Si la función no es la que se nos ofrece podemos editar y utilizar
la función o funciones que nos interesen aplicar como ilustra la figura 9.
6.2. Cómo crear un nuevo valor
A 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ón
privada o pública. Si es privado, entonces la cantidad de dinero en la ronda no
está disponible. En este caso, primero validamos si el valor es nulo, y dependien-
8
Figura 5: Modificación receta
do del valor, asignamos un valor. Accedemos al campo raisedAmt, lo ordenamos
y vamos a añadir en la función derive, que todo lo que sea un outlier o valor
fuera 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 nuevas
columnas como por ejemplo: Si el valor de una columna es más grande que un
determinado número poner un 1 y en caso contrario poner un cero. Hacer lo
mismo pero con dos columnas como origen, etc.
6.3. Cómo eliminar información duplicada
En 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 nuestro
caso, permalink tiene información similar a company. Podemos eliminar esta
columna.
6.4. Cómo combinar dos o más columnas
A 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
Figura 6: Datos
6.5. Cómo reordenar las columnas en nuestro conjunto de
datos
Tenemos la opción de reordenar las columnas del conjunto de datos con la
transformación move. En nuestro caso podemos mover numEmps tras funded-
Date como ilustra la figura 12.
6.6. Qué hacer con los valores vacíos
Cuando 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 podemos
aplicar ninguna transformación.
Reemplazar: reemplazar los valores nulos por un nuevo valor que ayuda
a una empresa Usuario a tomar decisiones. Esto se puede hacer con la
transformación.
Windows (fill, prev, session): similar a la función lookup en Excel para
usar información en otras columnas o filas para completar un valor vacío.
6.7. Exportar su receta
Una vez que hayamos terminado nuestro proceso de wrangle de datos, se
puede almacenar la receta para reutilizarla o compartirla con su equipo en el
futuro. Abra el panel izquierdo con la información de la receta y haga clic en
guardar. Trifacta permite exportar la receta como un objeto wrangle o csv como
ilustra la figura 13.
10
Figura 7: Receta
Es necesario remarcar que al trabajar con Trifacta Wrangler no es posible
compartir recetas entre alumnos.
6.8. Generar resultados con Trifacta
Una vez que hemos completado nuestro proceso de wrangle de datos, es hora
de generar el resultado final. En el contexto de Trifacta esto significa aplicar
la receta y generar un nuevo conjunto de datos (en un formato específico) y el
resumen de nuestras acciones. Clickamos sobre Generate Results. Trifacta va a
generar un resumen y varios archivos. Podemos elegir entre csv (valor separado
por 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 del
proceso, se generará un resumen como ilustra la figura 15.
Y también es posible revisar el resumen del proceso de discusión de datos
ilustra la figura 16.
Como es posible imaginar este proceso es iterativo y es posible identificar
nuevos errores o nuevas reglas de negocio a aplicar.
7. Data Governance
Trifacta 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
Figura 8: Detalle columna
dos críticos para las operaciones empresariales y los informes de gestión
asociados. Evaluando qué dimensiones de calidad de datos utilizar y su
ponderació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 los
elementos de datos. Y cuando proceda, tomar medidas correctivas, por
ejemplo limpiar y mejorar los datos así como la mejora de los procesos de
manejo de datos para prevenir errores futuros.
Monitorizar: Revisar los resultados y determinar si la calidad de los datos
es aceptable o no. Las circunstancias evolucionan y el negocio se adapta
dinámica mente a los cambios, lo que implica la posible aparición de nuevos
problemas de calidad de datos. Un buen plan de calidad de datos ha de
tener prevista esta circunstancia y prever la necesidad de monitorización.
Repetir lo anterior periódicamente para supervisar las tendencias en la
calidad 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 para
seguir de manera correcta un programa de calidad de datos.
12
Figura 9: Eliminación de monedas que no son USD
8. Conclusiones
El 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ómo
se utilizan. Pero sólo es el punto de partida, nuestro consejo es que a partir de
este documento practiques con Trifaca para sacar todo el potencial que ofrece
la herramienta.
13
Figura 10: Añadir columna
Figura 11: Combinar columnas
14
Figura 12: Reordenar columnas
Figura 13: Almacenar la receta
15
Figura 14: Exportar la receta
Figura 15: Resumen
16
Figura 16: Revisión del resumen
17