Talend Big Data Integration y Ecosistema de Talend
language: ES
WEBVTT la forma en que hay trabajo. Vamos a lo siguiente. Esta campaña hay que configurarla. La configuración te aparece del lado derecho. ¿La ves? Cuando aparece esa acción, hay solamente dos acciones que puede hacer con el talent pipeline. O yo inserto registros que al final son tareas o yo borro registros. En este caso deseo insertar. Me preguntan el estado. El estado va a coincidir con el workflow. Entonces, aquí van a aparecer todos los estados que están establecidos en el workflow. Pero ya a nivel de producción, si tú nada más tienes acceso a un solo estado de workflow, solamente te va a aparecer ese estado. No te aparecen los demás. ¿Por qué no hicimos ese ejemplo? Porque me tocó entrar el TMC, crear un usuario, dar unos permisos ahí especiales y me demoraba más. Pues tienes que tener en cuenta que aquí aparecen todos los datos. Todos tres paso del workflow sencillamente porque están asignados al mismo usuario. Pero solamente a cada usuario le va a aparecer el estado en el cual fue asignado. No le va a aparecer más nada. En este caso coloca el estado en revisión. Y en asignado, por favor, dale click y debería aparecerte el nombre del usuario. En este caso el tuyo, porque nada más es un nombre de usuario. Si el nombre de usuario no te aparece, eso indica en que quizás creaste el rol y no le adicionaste el usuario. Entonces, escuade por favor tu usuario. Aquí hay un tab que normalmente haces para agregarle más información al proceso. No lo vamos a trabajar. Y aquí hay algo que se nos puede olvidar. El olvidar es que necesariamente que dales safe. Si no, eso no guarda automático. Entonces, dale safe aquí. Verifica, dale click nuevamente aquí en cliente y verifica para ver la salida que debe estar configurada con lo que hiciste. Inser en revisión. Perfecto. Si éste es, vamos a darle ahora en run. Un momento, ya ejecutó. No, pero cuando yo ya lo run ya. Vamos a darle run un momento, que pronto el guardia no se sigue el mismo que salió acá. Bien, sí, dígame. Ah, sí, sí, el preview no aparece porque no hay datos, porque esa campaña está vacía. Por eso intenta hacer un preview y no encuentra datos. Dele click en run, por favor. Bueno, sí, no, no, un momento, explicar aquí algo. Aquí hay lo que llaman profiles. Esto lo agrego. Quizás te toque. Rátimosamente no tenemos ese curso, que es el Talent MC, el Manus Consoles, pero te lo adiciono aquí. Tú puedes decidir la infraestructura en la cual vas a ejecutar estos pipeline. Entonces, esta infraestructura puede ser en el cloud de Talent o puedes configurar una infraestructura propia en tu empresa para ejecutarlo internamente en tu empresa, si es lo que tú quieres. Pero note lo siguiente. Aquí dele click en estándar, que es que estar aquí y aquí aparece Spark, que es una tecnología a nivel de Big Data. Entonces hay un cluster de estar Spark, Spark, donde se esto porque va a demorar, demora como 20 segundos, porque ya vuelvo, repito, son millones de usuarios en un flotenan. Hay que esperar a que se desbloquee. Dele aquí, entonces, en run, por favor. Y es yo que empieza a ejecutarse. Puede demorar alrededor de 30 segundos. Por ahí, quizás. Esa parte de Spark, tú la configuras en realidad en la misma forma. Imagínate que tú hagas un proceso en un job. Para convertir esto a Big Data, nada más escoger y darle click ahí a un Spark y ya te lo convierte automáticamente el código Spark. Y eso pues en realidad te ayuda mucho. Pero bueno, debes que analizar cuál es el costo de la herramienta versus al costo a nivel de tiempo que estás ganando usando la herramienta. Bueno, aquí al parecer ya terminó. Perfecto. Me marco error. Creo que si le doy click aquí, él intenta consultar, él hace un preview. Hay veces que demora un poco. Creo que aquí puede demorar un ratico. Hay veces que demora y veces que no. Bueno, para evitar esto, hagámoslo de otra forma. Vamos a consultar otra forma diferente. Váyase, por favor, al menú de la parte de arriba y cambie de herramienta y dígale data teamwork. Ops, hay un error aquí de 500, el F5. Esos errores pues asumo que a nivel de producción no deben salir. Es decir, en el día de... Si quieres dale click en campañas y escoge la campaña. Si no te aparecen tareas, verifica el mi que está de este lado y verifica si está en mayor a cero. Dale click. En este caso yo tengo 20, doy click aquí en este 20 y me aparecen las tareas de esta campaña. Recuerde, estoy en campaña. Me voy a mostrar las tareas y aquí está asignado. Aquí no puedo cambiar las tareas. No puedo hacer proceso de revisión. No puedo hacer nada aquí. Simplemente es para visualización. Ahora vamos a cambiar que se parece mucho al menú. Vamos ahora, damos aquí en la flechita hacia atrás y vamos al menú de tareas y escoja la campaña curación de datos clientes. Y en este caso sí podías hacer cambios. Bueno, veamos entonces, perito Marco, el caso tuyo, Elizabeth, en la parte... Brenda, Elizabeth, en la parte... Ahí está el mouse, permítame ampliarlo. Notarás que en la parte izquierda hay un mi y te aparece un 20. Del lado izquierdo te aparece mi de yo y tienes un 20. Dale click en el 20 por favor. Ese mi 20 indica que tú o el usuario que está conectado tiene 20 tareas. Como estás en el menú de campaña, ese menú de campaña no te va a permitir modificar las tareas. Entonces devuélvete con la flecha negra que está del lado izquierdo ahí, devuélvete y escoge la opción de Bueno, ya hicimos el perfil que es propietario de campaña. Crea el modelo de datos, crea la campaña y define y asigna los pasos a los diferentes Datastores. Hicimos el poco del perfil que es un usuario técnico que es el que... Ah, perdón, hicimos el del perfil que es operador de campaña que es el que puede crear tareas. Hicimos una tarea de forma manual. Y hicimos un perfil un poco más técnico en el cual se pobló la campaña a través de un archivo. Es el más común. Aclaro que yo lo hice con un data sec. Espero que me de un ejemplo para hacerlo con bases de datos. Tú puedes tener bases de datos. Actualmente hay 600 conexiones que te puedes conectar a muchos componentes de Azure. Te puedes conectar a AWS, te puede conectar a BigQuery. Bueno, hay una cantidad de componentes de conexión, no solamente a nivel de bases de datos y archivos SV, sino hay una gran cantidad de elementos. Espero que me de tiempo para hacer otro ejemplito diferente con un tipo de conexión diferente. Pero bueno, estoy ahora mismo en el perfil, vamos en el perfil, en el perfil Datastores. Es decir, ahora se le asignaron unas tareas a alguien para que las pueda revisar. Ok. Este señor normalmente, pues su conocimiento técnico no es tan alto, pero aquí hay unas pequeñas funciones que le deben ayudar a resolver algunos problemas de calidad de datos que requiere esta parte de aquí. Ok. Este menú que está aquí, para aprovecharlo, lo que voy a hacer es lo siguiente. Este menú es prácticamente el mismo de una sección de Talent Data Preparation. Entonces, lo que yo de en Talent Data Preparation se aplica en el Talent Data Server, porque son prácticamente el Talent Data Preparation tiene otro menú, pero incluye esto que está acá. Ok. Listo. Entonces, le llegó una campaña. Para llegar a campañas, vamos a hacer lo siguiente, por favor, váyase aquí a donde dice, en su avatar, la parte superior derecha, dele clic ahí en ese avatar. Váyase al menú que dice Profiles Preferences. Profiles Preferences. Bueno, aquí hay muchas cosas. Esto es más del TMC, pero bueno, hay algo que le incluye a usted, que ahí en About Me le define los roles a los cuales tiene permiso. En este caso, como usted es el dueño de la cuenta, tiene permiso, pues a todo. Pero me interesa, pues, la parte de notificación esta que está aquí. Notificación, notificación. Y si quiere, usted chulee ese que dice Data Stewards. No me meto con el otro, porque me tocaría incluir unos temas ahí. ¿Qué significa que esté chuleado ese Data Stewards? Bueno, pasa lo siguiente. Imagínate que tú eres un Data Stewards y a ti te pueden asignar campañas en un momento determinado. Entonces, ¿qué hace? Que tú, como usuario, entras y habilitas esta opción. Esa opción te habilita y lo que va a hacer es que cada vez que te manden unas tareas para solucionar, te llega un mensaje de correo, te notifica el mensaje de correo que te llegaron algunas cuentas ahí que tendrías que revisar. Para eso es que sirve la notificación. Para esta parte del lenguaje es sencillo, es que lo que vas a escoger el lenguaje nada más son cualquier tipo de lenguaje, es inglés, francés, japonés y alemán. ¿Español? No hay. No creo que por el momento se cree algo en español. No lo veo dentro de lo que quiera ser talento. Está en inglés. Bueno, esto sí, ya es muy particular del TMS, entonces no me meto con eso. Aquí lo que quería llegar es que deberías habilitar esta notificación. Aquí le toca a cada usuario entrar a su cuenta y habilitar para que le notifique por correo cada vez que tenga unas nuevas tareas. Por favor, déle click aquí en la rechita. Listo, perfecto. Entonces, note que me aparecen las columnas. Los nombres de columnas van a coincidir con el nombre más no con el identificador. Entonces, tengo nombre, espacio completo, para eso que es el label, para que se vea mucho mejor. Y en cada columna me aparece un tipo de datos, ¿cierto? Aquí aparece mira que aquí están los tipos de datos que definí en el modelo. Texto, texto, texto, texto, marcas de vehículo, integer, date, que son los que tiene. Yo puedo modificar esos datos en el modelo si yo quiero, pero en este caso pues no lo vamos a hacer. Debajo de cada uno de estos atributos aparece una línea. La línea indica, verde significa que en esa columna no hay ningún error de validación de datos. Si aparece un robo significa que hay un error de validación de datos. Entonces, si tú quieres, por ejemplo, en la columna email, date cuenta que aparecen tres en rojo. Si tú quieres aquí en la columna que está en las líneas, dale click nada más en rojo y te hace un filtro para que aparezca nada más lo que no cumple con la condición. Le das click ahí en el rojito, en la línea roja. Y si quieres quitarle el filtro, en la parte de arriba te aparece y lo cierras acá. Le das click nuevamente aquí en rojo y te agrega el filtro acá arriba. Si deseas saber por qué no está cumpliendo la condición, te puedes ir a la línea roja que aparece en cada columna, colocas el mouse en esa línea roja y te dice qué es lo que no está cumpliendo esa columna. Ahí te está diciendo, mira, el valor que está digitado en esa columna no corresponde o no hace match con el patrón de validación que habíamos definido con el GPT, que era determinada en MX. Perfecto, listo. Ahora, aquí viene el proceso, ve que esto es un proceso netamente visual. Aquí viene un proceso netamente visual. Me doy cuenta que el correo de señor está mal porque ese correo de señor no termina en .com si no termina, por ejemplo, en MX. Entonces tú accedes, accede por favor, dale doble click a la celda y haces el cambio que tú requieras. Este cambio se registra y después tú lo puedes ver en el salario, te digo cómo. Dale aquí MX.MX y ya ese señor no aparece, aquí me faltó un punto y ya date cuenta que no aparece como revisado. Ahora, tú puedes agregar comentarios, por ejemplo, en esta columna que tengo aquí se llama Juan Martínez, dale click derecho aquí y te aparece click derecho sobre la columna y te sale la noción que dice at coming. Dale click en este at coming y tú puedes darle un comentario para que la siguiente paso pueda revisar porque lo hiciste. Entonces vamos a colocar aquí en mi libreta el correo del señor Juan termina en MX y no en .com. Bueno, aquí puedes colocar lo que tú quieras, aquí le das entonces un chulito, le das a adicionar aquí, perdón, listo, el chulito y te aparece. Aquí automáticamente va a aparecer en la parte de arriba con una especie de angulito diciéndole que esa columna tiene comentarios y procede por favor a cambiar el punto el .com, el .com ese a MX para que va a seguir la misma idea, MX, listo, voy a quitar el filtro que está aquí. Sí tenemos cual es la idea, verdad, entonces es muy manual. Ahora, aquí hay unas funciones que me pueden ayudar, por ejemplo, vamos a suponer que tú detectaste que hay un problema, que los .com debían ser .mx, entonces para no hacer eso tan manual puedes aprovecharte de algunas funciones que están. Pues brevito, estas funciones las voy a ver más en detalle cuando vea el Talent Appropriation porque son las mismas, pero veamos algunas y podamos entonces avanzar. Escoge la columna esta que está aquí que es email y te vas acá a las funciones del lado derecho. Dentro de estas funciones busca y coloca la palabra search, pero una función de búsqueda, search y te vas a encontrar con una función que dice search and replace. En el search and replace aparece con un pequeño botón que tiene como una irea al revés, aquí este botón de aquí que es como si fuese una ola y aquí hay varios criterios de búsquedas. No vamos a escoger por defecto entonces, aquí nada más, me va a buscar por expresión, voy a decirle búscame todo lo que termina en .com y reemplázalo por .mx. Si le coloco override en tera celda me va a reemplazar toda la celda por mx, entonces ahí lo que voy a hacer es que nada más reemplace ese pedazo de su cadena y aquí le voy a dar su mi, creo que eso es su mi nada más aquí y solamente me quedó uno ese que es el que tiene error porque está vacío, no cumple con la condición, porque yo valide y especificé en el modelo de datos que eso tenía que tener algún elemento ahí. Perfecto, continuo, vamos a tratar de solucionar la mayor cantidad de problemas para poder continuar, listo entonces y entender un poco la herramienta. Aquí voy a filtrar los en números de polisa, aquí los en números de polisa tengo aquí un problema que esta polisa es claro que no está cumpliendo el formato, porque parece ser que está completo y lo que no tiene son los guiones, entonces voy a aprovechar y soluciono los guiones aquí pol le doy guión 2024 guión y debería corregirlo ahí está y solamente tengo dos columnas que no he podido solucionar el problema porque si no sabía que es, una está vacía y una aparece como error, quite este filtro por favor y veamos a nivel de teléfono cuáles no cumplen, bueno en este caso hay muchos que no cumplen específicamente si te quiere ya recordará para ver que no cumple voy aquí a una de las columnas esa y le doy clic en eso colocó el mouse sobre el punto rojo la línea roja y me dice qué es lo que no está cumpliendo ahí no está cumpliendo un reyes básicamente ahí tengo un más 57 y tengo en realidad debería empezar como más 52 aquí si es un poco más complejo porque había que revisar cada uno de los teléfonos y hacer la corrección pero de forma sencilla solamente para probar se cambie todo lo que empieza por 52 en Serran Replay selecciona la columna teléfono y cámbielo por perdón 52 momento que porque no la cumple un momento no la cumple porque si hay unos espacios en blanco si vamos a ver cuáles cumple momento a ver quito el filtro a ver cuál es la cumple porque son tres dígitos separados por espacio después tres dígitos y termina con cuatro dígitos ese reyes que tengo entonces la mayoría pues no lo está cumpliendo voy a corregir nada más uno solo voy a corregir este primerito que me dice primero empieza con más 52 espacio tres dígitos después siguen tres dígitos y termina con cuatro dígitos aquí estoy inventando aquí ahí está si ese es el reyes sería más 52 espacio tres dígitos espacio tres dígitos espacio cuatro dígitos ahí sería interesante hacer una función en la cual me reemplace los espacios que requiero y lleva el formato pero es un poco más interesante la única forma que se me ocurre de hacerla es hacer un reyes es decir yo puedo hacer un replays con un reyes y que reyes borre esos espacios en blanco pero sinceramente una función que haga eso que es una buena pregunta que haga eso en específico no me tocaría formarla con varias funciones pero no hay una que ese formato lo haga por eso decía cuando lo ve cuando lo vi ahora es un poquito complejo pero así directamente no me sale bueno vamos a ver entonces ya casi para arlar algunos porque no vamos a ponernos uno por uno porque demoramos más esto lo aprendemos mejor con el talent operation vamos aquí en el estado me aparece suspendida y voy a ver por qué me aparece rora a ver porque los tipos de datos es el tipo de tipo list y debería el valor no está definido al estado porque es el activa pendiente se me escapó la otra que es cancelada entonces está suspendida debe ser cancelada entonces voy a cambiar esta suspendida por cancelada y ahí está si en la parte de arriba notará que aquí hay un botoncito que se llama y aquí están dos flechas hacia adelante y hacia atrás si digo hacia atrás debería colocarme la suspendida y aquí estaría nuevamente buena pregunta y ahí estaría sería el condo sete y el control y el segundo sete sería la flecha hacia atrás el control y sería la fecha serán listo bueno aquí noto que hay unos errores porque seguramente en la lista de valores no están esto de marca no estarían estos vehículos este error de modelo es mucho más sencillo porque aquí lo que tendría que hacer es reemplazar los espacios en blanco entonces voy aquí a coger modelo y voy a hacer un replays replays bueno aquí hay unas funciones específicas pero va a hacerla con replays un momento y eso lo voy allá lo veo allá en mi talent aquí de un espacio en blanco y lo reemplazo por vacío no lo hizo espere un momento no perdón creo que tienes un número pero no alcanzó a ver el número ese espacio blanco lo que tiene ahí o un separador si si si es como un pequeño separador de miles si si entonces no por eso no lo no lo valido aquí hay un error con el 79 porque seguramente no cumple aquí dice que debe estar entre 1980 y 2025 recuerdan que esa regla la colocamos y entonces por eso es que no lo valido dice que no cumple con la condición bueno terminemos ya de solucionar y ver para qué se hace en este caso fecha inicio voy a filtrar las fechas que están erradas al parecer hay un error primero de separador porque está esperando el guión ya le había dicho que la fecha por defecto es año mes día y tengo otro pequeño error que sería con el formato el formato que tengo está en día mes año entonces el primero es fácil de solucionar porque es un service play le digo reemplaza de slash por guión aquí perfecto y este voy a intentar solucionarlo voy a buscar una función aquí de tipo date a ver si me aparece debe ser convertir date no este convertir de ahí no me funciona modificar me lo convierte años mes días no ese formato en esta herramienta no lo podría lo podía hacer con el talent data preparation ese formato me va a quedar complicado hacerlo a menos que lo haga con una expresión regular pero no aquí lo va a cambiar de forma manual entonces sería 20 25 guión 0 1 0 1 perfecto listo aquí me sale todavía error vamos a ver qué pasa aquí tengo que se no lo cambió a poco estoy en fecha de vencimiento pero en fecha de vencimiento también a un ser replace para cambiar el carácter es las por guión serán replace bueno esto ya es un poco más tedioso y corrigiendo las funciones pues repito las explicó mejor en el talent data preparation bueno sigamos
on 2025-01-27
language: ES
WEBVTT ¿Verdad? Ah, sí, sí, sí, sí. Sí, sí. Yo también me perdí la comunicación. Repito, esto es un poquito más tedioso, eh, porque hay que visualizar, digamos, revisar de forma visual cada una de las columnas. Dígame Alejandro, a ver. Sí, a las, sí. Sí, sí, a las tres puntos. No, no, sí, sí, en quince minutos, no. Sí, en quince minutos salimos, no. O sea, acá, allá sería a las dos, ¿Verdad? Acá en Colombia, las tres. O sea, en quince minutos salimos. A lunch. Perfecto, ¿No? Sí, sí, listo. Bueno, aquí viene lo siguiente. Supongamos en que a ti te entregan las tareas, estás en el perfil de otras keywords, eh, te toca hacer algunas correcciones de los datos y ya hiciste las respectivas colecciones de los datos. ¿Qué tienes que hacer? Tienes que pasar las tareas revisadas a un nuevo estado. Entonces, ¿Qué tienen que hacer? Vamos a suponerle que ya hiciste una tarea que si se dan cuenta todavía tienen errores. Entonces, por favor, ya cuando hay unas tareas, tú puedes decidirlo de varias formas. Una, a medida que voy revisando, voy pasando tareas a la siguiente paso, al siguiente paso de workflow, al step. O yo corrido todo y mando todas las tareas corregidas al siguiente paso. Eso es de edición de data keywords y de la forma en cómo trabajas internamente. En este caso, déte cuenta que tengo muchas tareas que tengo todavía errores. Entonces, puedo decidir pasar las tareas que ya tengo lista al siguiente paso. Entonces, para hacer esa parte, vete a la sección que dice Validate. En la parte superior derecha, dice Validate. Y no te aparece cuanto todo le aparece la sección cero Sí, ya sé por qué, pero esta debió pasar. Voy nuevamente, espera para ver. Ah, perdón, perdón. Ese me escapó, ya ahora muestro, ya como que me está dando hambre, ya. Primero, que pena. Voy a, el mismo paso, voy a pasar las tareas al siguiente paso. He decidido la forma en que las que tenga listas la voy pasando al siguiente paso. Primero me toca marcar las tareas como listas. Entonces, para esa parte hay varias formas de hacerlo. Una forma y la más sencilla es la siguiente. En el menú, en el menú del lado derecho, está el, digamos, el, la opción Taxi Column. Vete a la sección, te dice Tax y hay una opción que dice marcar tareas como listas. Le das clic aquí, le das ahora en seleccionar todas las tareas que estén listas y le das Submit, Enviar y él te va a marcar aquellas tareas, las que están en verde, están indicando que están listas. ¿Cuál es el pequeño inconveniente con esta parte? Que una tarea no pasa de estado si no has corregido el elemento de la actualidad. No hay eh tendrías que dar una observación ahí y pasarle a un estado adicional para que se revise pero no pasa el siguiente estado. Entonces ya te cuenta que aquí te marcó en el caso particular mío me marcó la uno, la siete, la que están en verde, las que están en rojo indica que hay un error. Nada más tengo tres tareas que están listas. ¿Por qué están listas? Porque no hay ningún error. Ahora sí, dale en Validate y el Validate lo que hace es que ahora te pasa esas tareas al siguiente estado, las que has seleccionado. Esas tareas ya no deben aparecer acá. Entonces, vamos a hacer lo siguiente. Ya las tareas pasan al siguiente estado. En la parte de arriba te aparece un menú que te dice State. Si le das clic te aparece en los tres estados que definimos en el workflow. ¿Por qué te aparecen? Porque tú eres el usuario al cual se le asignaron esos diferentes estados. Entonces, en este caso en particular, como es el mismo usuario, yo puedo acceder a todos los estados en a nivel de producción, vas a tener un data teamwork por estado, por ejemplo, y no va a haber los diferentes estados que pueda tener workflow. Pásate y cámbiate aquí a revisado y date cuenta que acá te aparecen las tareas que pasaste al siguiente estado. Bien, ¿Quién me habló? Brenda. Sí. Me verifico para ver entonces. A ver, creo que váyase a la parte superior de ese State allá en la superior ahí, más arriba, State, está en revisión, dice allá arriba, en revisión. Eso, dele click ahí, por favor, y vaya revisado, y vaya a ser revisado. Efectivamente, no hay ninguna tarea. Váyase entonces nuevamente y devuélvase al estado anterior. Y a ver, entonces, vamos a marcarlas como listas para ver entonces. Váyase al menú Mark task as ready, por favor. Escoja seleccionar tareas y all todas las tareas. Clica ahí, all tasks, y dele Subbi, por favor. Note que en la parte de arriba, al lado del botón Validay, le dice, ¿Cuántas, cuál es el porcentaje de tareas que pasaron? El diez por ciento, creo que son dos, nada más que tiene. Creo que es la seis y la quince, ¿Vas en un momento, por favor? Las que están en verde serían las seis y las quince, nada más dos van a pasar. Ahora, cuando ya se asegura esa parte, dele click en Validay. Ahora, váyase al estado, váyase, por favor, al estado. Dese cuenta que acá le aparecen dieciocho tareas. Te llamamos veinte, la pasé en dieciocho, doce fueron para allá. Cambia el estado, por favor. Arrevisado. Y deberían estar las tareas acá. Perfecto. Listo. Entonces, veamos la idea. Entonces, cada estado va revisando, de manera manual, corrige los elementos y pasa al siguiente. Entre más estados de verificación tenga, pues es claro que van a tener un mayor control de seguridad de que esos datos son veraces, pero vas a demorar más tiempo. Es claro que esa parte. Ahora, mira lo siguiente. Estoy en el menú. Perdón, sí, estoy. Estamos en el menú de el stay revisado. Entonces, este stay revisado mira lo que estamos viendo. Tareas por tarea y la va a revisar nuevamente de manera manual. Estoy en el registro número uno que de pronto hay algunos que este registro no no no coincida en datos puede ser un registro diferente. Pero vamos a suponer que tú revisa el registro número uno y dice EPA. Este registro ya lo revisé y está bien. Nota que en la parte de arriba te aparece un botón. Que dice aceptado y rechazado. Si damos clic en aceptado ya hemos revisado la tarea que dice EPA. Esa tarea ya la revisé y está bien. Dale por favor clic en reyek al segundo. Y dale aceptado en el tercero. Bueno, si tienes dos, dale un acec y un reyet. ¿Qué va a pasar ahí? Las tareas aceptadas pasarán al siguiente estado. Y las tareas rechazadas se devolverán al estado anterior. Aquí es recomendable que le especifice por qué rechazaste la tarea. Entonces, ¿Para esto qué puedes hacer? Dos cosas. Primero puedes seleccionar aquí reyets, perdón, aquí en comente y derecho. En alguna columna que no que dice mira, aquí voy a coger el e-mail o así, y le voy a decir, creo que ese no es el correo de Laura. Revísalo nuevamente. Y dejo el comentario. Ese comentario se hace a nivel de la columna de un registro. La otra es que la hagas a nivel general. Es decir, por la campaña. ¿Cómo lo haces? Al ladito del botón acept, notarás que hay un pequeño icono ahí, como de comentario, le da clic aquí, y esto lo que hace es un comentario de la campaña como tal. Vamos a colocar un comentario de la campaña. Le vamos a decir, me parece, ah, perdón, coloquemos aquí, solo recibí tres tareas de veinte cuando terminas las demás y puedo colocar aquí un comentario para la campaña. Eso. Le doy aquí clic aquí en el comentario del chulito y le digo ahora que va a pasar con el la aceptada pasarán al siguiente paso y la rechazada se devolverán a un paso anterior. Entonces, la que estoy rellentando es la que se llama Laura Sánchez, ¿OK? Le voy a aquí, validate, listo, voy a revisar el estado, el último que he completado, y estas tareas están completadas, vea que pasaron dos, y voy al estado inicial y debería estar Laura allá. Va a buscar aquí, va a hacer aquí un filtro, va a buscar aquí a Laura. Le coloqué Laura, Laura. Laura en email, aquí está Laura Sánchez, y aquí está el comentario que me envió. El comentario es, creo que ese no es el correo de Laura, revísalo nuevamente. Claro que esto que es la esencia de la herramienta. Tengo unos datos, los mando para alguien que los revise, alguien que los confirma, si no pasa, devuelve, si pasa, sigue. Ese es el core y el núcleo de la herramienta. Esa es la filosofía de la herramienta, no hay más. Vamos a ver unas cosas adicionales después del del del break del almuerzo. Ya un poco más avanzaditas, algunas cosas cosas del y algunas cosas de de reglas de de calidad. Entonces, eso lo hacemos ahora después del pero esta es la esencia de la herramienta. Entonces, imagínense que esta herramienta usted la vaya a usar por issues. Tendría que adaptar muchas cosas, pero es la esencia. Tengo un conjunto de pasos, los envíos, reviso, si no reviso, devuelvo, si está todo bien, sigo hacia adelante. Bueno, esa es. Bueno, eh, no sé si hacemos entonces el break, nos devolvemos entonces en una en una hora. Sería hora México a las cuatro horas PM, continuamos, en Colombia cinco PM, ¿OK? Bueno, listo. Volvemos entonces en una hora. Buen provecho, sígame. Sí. Ah, OK, sí, sí, claro. Vete, sí, sí, ya entendí. Vamos con el, vamos con el nombre, claro, sí. Vete a la a la a la flechita en negrita que está en la parte de arriba, devuélvete al laíso de campaña, eso. Vete al modelo, por favor, data modelo. Vete al al modelo de a tus clientes. Vete a nombre completo que es el primero que está ahí, lo expandes. Y quita la longitud que esa, por favor, quítala. Y el seis. Dale salvar el modelo, listo, continuar con cambios. Ahora, vete a las noticias. Y vete a la campaña presión, si eres tan amable. Y ya ahí lo tienes listo. Y claro, puede ser para ver. No, ese nuevo teléfono creo que para todos porque la vez de data model, vete a ver. Vete al modelo de datos, vete a teléfono de cliente, listo. Quítale el ocho y el diez, por favor. Y hay algunos, la mayoría no pasan porque no cumplen con el estado, pero dale salvar el modelo, si eres tan amable. Continuar con cambios. Campaña de curación, listo. Y listo, hay algunos que no aparecen porque el el realidad que el reyes debe cumplir que empiece con más cincuenta y dos, tres dígitos seguido, espacio, tres dígitos, espacio, cuatro dígitos. Por ejemplo, el segundo no lo cumple porque tengo más cincuenta y dos, espacio, y todo, y entonces eran tres. Listo, pero así era, listo. Perfecto, ahí lo tienes bien. Listo, dale, seleccionar, listo, sale, no,18. Submit, enviásele Submit, ahí tienes quince por ciento, o sea, que son tres registros, dale, para pasarlo al siguiente estado, Validate, cámbiate de estado Oda por favor que está en la parte de arriba, estado, revisado, siguiente, revisado, sí, porque pasa el siguiente que he revisado, y ahí están las tres. Ahora, acepta el primero, dale allá en el botón, en el botón, no, si quieres, como lo, el mismo botón de allá arriba, le das aze y reyek, al laíto, dale a Aze y le va bajando automáticamente, reyecta la segunda y acepta la tercera. comentario, ¿No? Colócalo un comentario al e-mail de por ejemplo de Laura, que fue el que hicimos. Te bajas en Laura, clic derecho, adicional comentario. Ese clic ahí, comentario, perfecto. Coloca ahí, me parece que ese no es el correo. Dale, aceptar, por favor. O un chulito que está más abajo. No se ve, pero ahí está el chulito. Agrégale un comentario a Laura. Dice, ¿Cuándo termina los demás registros? Solo tengo tres, OK. Registro. Chuléalo, por favor. Dale, ahora sí, en y me mandaría dos para completado y uno rellentado. Vete, cámiate de estado, por favor. Y vete al estado completado. Y ahí está. Y Laura la devolvió porque tú la rechazaste, porque no cumplió con la regla de seguridad. Ah, por ahí vamos, entonces. Listo. Bueno, nos, buen provecho, nos vemos entonces en una hora, pues. Listo, gracias a ustedes, ya nos vemos. Muy buenas tardes, nuevamente. Espero que ya haya sido entonces de buen provecho su almuerzo y continuamos entonces para terminar algunos elementos del Talent Data Stewards. Haciendo pues un repaso, básicamente vimos diferentes roles, aunque no creamos usuarios con esos roles específicos. Crear tuvimos en cuenta role para crear campañas cuya función principal es primero definir entonces el modelo de datos, definir la campaña, definir los roles y definir las personas asociadas a esos roles, de igual forma definir los pasos o los steps que van en el workflow. Y de esa forma entonces poder configurar. E hicimos un poco el perfil de operador de campaña, que ese operador de campaña se dedica a leer campañas y agregar tareas en las campañas. Aclaro que el creador de la campaña también puede crear tareas. El operador lo que puede, lo que no puede hacer es crear campañas, pero puede listar las campañas y crear tareas de forma manual o ya sea automatizada con el pipeline o en su defecto con el Talent Studio. El Talent Studio pues ese no va a dar tiempo de hacer un ejemplo, pero es un poco parecido al, al pipeline. De todos modos este, el pipeline es sumamente sencillo, si me da tiempo hacer otro ejercicio con el pipeline. Y el último que estamos actualmente, el otro perfil sería el de Data Stewards, que es el encargado de recibir las tareas prácticamente los registros que deben ser revisados y él debe pues revisar y corregir cada uno de esos elementos. Como dato particular para poder pasar de un estado, digamos este word puede pasar a un estado, avanzar a un estado, es necesario que todas las tareas y todas las columnas no tengan ningún tipo de error a nivel de calidad de datos. Bien, con esa parte entonces estamos en el proceso de que pasamos a un estado, hay unas tareas que fueron ya completadas y una tarea que fue rechazada por uno de los elementos o la persona que están en los pasos de workflow. Vayamos si son tan amables para revisar un poco algunas cosas a nivel de lo que es auditoría de esta herramienta. Nos pasamos al estado revisado por favor. Revisado si es tan amable. Y en este estado, bueno, vamos a lo guiarlos nuevamente porque tuvimos mucho tiempo. Perfecto, voy aquí a tareas y me ubico en el estado revisado. ¿Qué tareas escogí? Que no me aparecen. Qué extraño que aquí tengo algo extrañamente raro que no me aparecen las tareas a mí de ah porque está perdón aquí tengo listo ya perfecto sí era que tenía un filtro que no me había dado cuenta bien recordará que en el ejemplo que hicimos hemos rellentado el trabajo de Laura el la tarea de Laura eh recuerde para ver cuál fue el que rellentó usted pero ahora en el en la etapa anterior que fue donde mandamos la tarea rellentada por favor busque el registro rellectado en este caso va a colocar Laura aquí. Aquí me dice Laura ¿Dónde lo quiero buscar? Busca Laura en email y aquí tengo a Laura acá en el filtro coloca Laura y le dice por favor que filtre Laura y consulte Laura en la columna de tipo nombre perdón eh si Laura eh nombre o email cualquiera de dos es válido coloque Laura acá arribito la coloca y le puede filtrar ya sea que la busque en la columna nombre o en la columna de email le debe dar entonces el registro en particular listo ahora note lo siguiente de ese lado cuando usted se ubica en la posición del número de la fila en que está que aquí aparece un uno automáticamente le aparece cuando tengo el mouse por encima de este número le aparece un relojito ya lo vio que está ahí aquí aparece un relojito que está aquí entonces al darle clic en ese relojito van a tener la auditoría y el conjunto de elementos de cambio que ha tenido esa columna ahí le está diciendo entonces aquí están las los comentarios lo que se ha hecho durante la tarea qué valor se cambió y por qué se cambió ese sería el objetivo de esta parte de la auditoría y aquí hay algo que es que aquí si tuvo un problema que le dije que el comentario que hicimos a nivel de la campaña no es a nivel de campaña es a nivel de registro cuando especificamos que solamente hemos recibido tres tareas ese es un comentario que se hace a nivel de registro no a nivel de la campaña qué pena y ese comentario tú lo puedes ver aquí donde dice transición common ese es un comentario que se está haciendo de forma general a la fila no tanto a la columna pero aquí están todos los cambios que se han hecho a esa parte de la columna como tal ese sería la parte de de auditoría de igual forma devuélvase un poco aquí con la flechita y en la parte de la fila donde están los nombres de columna le aparece como una especie de tabla esta que está aquí si le da clic a este señor que está aquí entonces los que están eh en negrilla que va desde nombre hasta fecha de de vencimiento son por defecto los nombres que tienes a nivel del modelo de datos aquí tú podías filtrar qué elementos quisieran ver y qué elementos quisiera ocultar pero los que están en eh comentados como si fuesen desactivados que es transición common que son columnas propias que maneja internamente el talent data entonces si tú quieres por favor nada más transición common nada más de aquí transición common los demás los dejas de seleccionar y listo y aquí tengo y ese transición common fue el comentario que se hizo a nivel de registro que yo me cometí error y dije que era nivel de campaña ese comentario es a nivel del registro no a nivel de la columna de igual forma la idea de todo esto es que haya un proceso también de discusión entre dos partes por ejemplo en el caso la fila de Laura fue rellectada porque al parecer el correo no correspondía tú puedes digamos que corre mandar otro comentario si tú quieres te vas aquí al a la columna que está comentada que está en la parte superior como si fuera un triangulito y aquí tú le puedes adicionar un comentario de respuesta y le puedes decir ya revisé y el correo es correcto ya revisé y el correo es correcto entonces tú le puedes responder a los comentarios que se tengan le das clic en el chulito y por favor manda esa tarea a al siguiente paso cómo sería primero la tarea de marco creo que aquí me dejaría marcando no me deja marcar listo voy aquí a tareas y voy a buscar marcar como red voy a decir todas las tareas que pueda enviar aquí el cinco por ciento indicando que solamente una tarea está apta para ser enviada al próximo paso le das valide y la tarea automáticamente debería pasar al siguiente paso entonces si cambio aquí de paso debería tener aquí ya la tarea aquí puede leer el comentario que le respondió la persona anterior acepte la tarea y por favor mándela a completado si es tan amable le da aquí en acept y valide entonces y la tarea se ha completado como les venía comentando esto es el cor de la herramienta pues no hay más es la tarea fundamental vamos a agregar una nueva cositas de las herramientas más a nivel muy particular y muy específico que tiene la herramienta pero este es el cor de la herramienta tengo un conjunto de datos que pueden ser revisados arbitrados fusionados o unidos fusionados o en su defecto unidos que sería el otro perdón agrupados y puede hacer la misma idea ahora voy a mostrar algunos ejemplos de esas tareas diferentes ya casi para finalizar esta parte entonces vamos a lo siguiente devuélvase aquí al menú y se van a las campañas en las campañas vamos a ver las métricas que tengo de esa campaña como hago para ver las métricas selecciona la campaña de métricas y está aquí como una especie de gráfica o de icono que representa una gráfica y ahí le vamos a dar entonces cuál es el resultado de las tareas te te muestra gráficamente y al final te está diciendo más o menos cuál cuál porcentaje ehh digamos de de de de de esa campaña desde cuenta que por ejemplo el promedio del número de tareas ehh que faltan para progresar fueron diecisiete prácticamente las tareas resueltan fueron el diez por ciento y te parece una carita feliz y feliz perdón diciendo que es malo ese porcentaje entonces no has cumplido las tareas porque el tiempo límite de cumplir esas distintas actividades fueron ehh una hora no se cumplió en una hora y eso te da una estadística negativa aquí tendrías que analizar por qué pasó eso quizás el tiempo no fue el correcto quizá las personas no le dedicaron el tiempo suficiente a corregirlo quizá la cantidad de tareas que le asigné fueron muy grandes entonces ehh ahí sería pues analizar cómo te va ahí y hacer un análisis más más profundo de por qué llegaste a esos números de forma aquí puedes adicionar unos willes los willes normalmente te dan unas estadísticas aquí donde dice ad willes aquí hay unos willes que puedes pues adicionar listo no es mucho pero por ejemplo aquí se haga una crítica porque aquí hay cosas que no podía sacar imagínate lo siguiente imagínate que tú vas eres creador de campañas y tú quisieras uno ver en tiempo real cuánta de esas diez campañas en qué estado estamos tú quisieras por lo menos ver ehh cuál es el porcentaje de todas las campañas que han hecho que ha terminado el cien por ciento de las tareas quieres ver el tiempo promedio en que se demora de paso en paso es decir cuánto demora en pasar de la estado de revisión ha revisado porque ahí podía detectar dónde puede estar los cuellos de botellas entonces con esto que estás dando la herramienta no llegas es decir la herramienta no te va a permitir con este dashboard que tiene aquí es muy muy sencilla no te va a permitir solucionar ese problema como solucionamos y cómo podías hacer estadísticas ya mucho más específicas en función a lo que tú quieres más estadísticas hechos a las medidas entonces la herramienta lo que te ofrece es lo siguiente por favor eh haga lo siguiente cierra aquí cáncel y voy a mandar aquí parece y mando una URL aquí permítame y esta URL la voy a mandar tanto por el chat como espérame un momento ya mando la URL completa entonces perfecto momento me equivoqué eso perfecto eh la mando aquí por el chat entonces si la copio también en la carpeta expresiones se voy a copiarla aquí en expresiones si desea va la carpeta compartida o toma el enlace que le mande aquí si la carpeta compartida se va a expresiones y aquí hay una URL que es esa tome esa URL y la coloca en el en el browser donde tiene la conexión a talent está lo guiado, autenticado, la coloca ahí, y le va a aparecer un suager, espere, ¿Por qué no me dio? Un momento, a ver, ¿Qué pasó? La primera vez, no sé por qué no la cogió, me tocó hacerlo dos veces, pero aquí le presenta un suager de un de un conjunto de api res, espero que se vea bien, para que todos puedan acceder. Bien, esa parte si te toca, yo analizado, he visto algunas compañías que el talent está watching. Entonces, eh, lo que están haciendo ellos están creando dashboard muy particulares para sacar algunas estadísticas muy propias de ellos. Entonces, este es un suager que puede ser consumido, pues, es un api res que tienes ahí. Y este api res te va a permitir solucionar cada uno de los problemas que te mencioné. Es decir, yo puedo crear, por ejemplo, un aplicativo, ya sea, eh, puedo consumirlo con el talent studio, si yo quiero, o creo un aplicativo con java, con python, con el que tú quieres, con pasapi, que consuma cada uno de estos elementos, y podría sacar estadística de ¿Cuántas tareas, cuántas campañas se han realizado? ¿Cuántas campañas se han completado en cien por ciento? ¿En qué estado cada esta cada campaña? ¿Cuánto es el tiempo promedio que se demora de pasar de paso a paso? En este caso de revisado, por ejemplo, de revisión a revisado, y podías analizar, podías analizar qué tipo, cuáles son los usuarios que más se están demorando en cada uno de los pasos, y ahí podías tomar y sacar algunas estadísticas específicas. Eh, ahí están pues los verbos propios de HTTP, get, put, push, eh, patch, y aquí tienes, bueno, ya esto sería mucho más específico, si no creo que nos dé tiempo a hacer un ejemplo, pero si alguna vez quisieses consumir alguna de estas apis, eh, me avisas, me escribes, me podemos reunir un ejemplo en el artículo, yo te enseño cómo se hace para consumir, y lo podemos hacer directamente con el talent estudio, las consumimos, y puedes sacar algunas estadísticas, y las mandas a una base de datos, y ahí las puedes graficar con lo que tú quieras. Esa es la forma en que talent, eh, más específicamente, el data segue, se alivia del problema y de las quejas que tenía de por qué hay algunas estadísticas que hay alguna empresa que las quisiera, y no las podían tener, y esta es la forma en que, pues, se les ocurrió solucionarlo. ¿Verdad? Listo, eso es el API. Perfecto, bueno, eh, esto es simplemente conocimiento, si quieres más detalles y profundización, por favor, me avisa, me escribe, y nos reunimos algún día a eso, y yo les explico con más detalle cómo se hace esta parte. Terminamos, eh, con algo adicional del talent data staywars, que es lo siguiente, ya lo último que nos faltaría, sé que voy un poquito muy rápido, pero es que no me da tiempo de que las vea todas. Entonces, devuélvase, por favor, aquí, y hay una sección que dice reglas de calidad, data quality rules, aquí está data quality rules. Perfecto, aquí en el caso particular, porque yo importé algunos demos que estaban ahí, entonces, eh, hay una regla que está por defecto, que es esta regla que se llama, eh, packing, o demo de packing. Aquí voy a ampliar un poquito esta parte, aquí la regla la puede hacer de dos formas, una a nivel gráfico, que es muy sencillo, y la otra, si de pronto ya tienes unos niveles básicos de programación, la puedes hacer directamente con Java, con el lenguaje, como les decía, todo talent está basado en Java, y todas las herramientas que vas a tener, si hay que programar algo, al final terminas con Java, si hay que programar algo utilizando Java. Aquí es un sí muy sencillo que valida que la columna material sea igual a cotton o material igual a polister, debe darme a mí que una columna packing debería estar con el nombre original packing. Si eso no se cumple, entonces la regla no se cumple y te marca como en rojo. Vamos a crearlo para que veas que es muy sencillo. Y para crear esta regla vamos a hacer lo siguiente, ¿OK? Vamos a ver. Vayamos al data model. Data model. Vayamos al modelo que hicimos. Vamos a agregar una nueva columna. Entonces, agregamos un nuevo atributo. Que, por cierto, te aclaro que una de las características de la campaña es que yo no pueda cambiar el modelo. Lo que sí puedo es actualizar el modelo, agregando atributos o quitando atributos, pero cambiarle una campaña no podría. Listo, vamos a llamar a este señor verificado, vamos a en minúscula como estándar, verificador fechas, lo voy a llamar así. Perdón, verificador fecha, verificador underscore fecha. Y acto seguido aquí en el name, lo voy a colocar como quiero que se visualicen. Aquí voy a colocar verificador fecha y este campo lo voy a definir de tipo boolean. Perfecto. Voy aquí a salvar el modelo y explico para qué agregué ese campo. Quiero verificar que la fecha de expedición sea sea mayor a la fecha de inicio. Eso es lo que quiero hacer. Voy a repetir, perdón, la fecha de vencimiento. Quiero que la fecha de vencimiento sea mayor o que una regla a a la fecha de inicio. Esto puede hacer la complejidad que usted desea, dependiendo mucho de su modelo. Entonces, lo que quiero nuevamente validar es que la fecha de vencimiento sea mayor a la fecha de inicio. Eso lo puedo hacer entonces con una regla. Vayamos nuevamente aquí a la plataforma de patacoalities y vamos a adicionar una regla. La regla la voy a llamar de esta forma. Verificar fecha vencimiento. Vencimiento mayor fecha inicio. Descripción, la regla validará que la fecha de vencimiento sea mayor a la fecha de inicio. La descripción que tiene. Hay dos formas de programarla, ya te había dicho que si tú quieres colocas el código directamente en Java, pero no vas a tener una idea que te compide, que te verifique que está correcta, porque a parte de eso, como estamos trabajando con Java, se aplica todas las reglas de Java y el Java que estés usando en ese momento. En el caso particular del tal enclavo está basado en Java 17. No sé si han pensado en migrar a Java 22, pero digamos que todo lo que tenga Java 17 se aplicaría en la codificación que tú vayas a salir. Entonces, Java es un lenguaje que es sensitivo, pues validación, la yúscula y minúscula no son exactamente iguales. Entonces, hay que tener en cuenta muchas cosas. Entonces, yo creo que te sale más más fácil hacerlo de manera gráfica. Entonces, ¿Cómo vamos a hacer lo siguiente? Aquí lo que vamos a es a definir la estructura de la regla de validación. Y después, lo que se hace es que esa estructura se va, se aplica a un modelo de datos. Entonces, vamos a definir la estructura de la regla de validación de manera gráfica. Aquí, por ejemplo, en este efecto tengo un sí y aquí en este sí voy a colocar entonces lo siguiente voy a agregar aquí una fila a este sí y voy a definir una variable. Es aconsejable que la variable la nombres en relación a lo que vas a hacer entonces. ¿Qué quiero validar yo? Que la fecha de vencimiento sea mayor a la fecha de inicio. Entonces, voy a definir aquí en esta regla una variable con el vencimiento, si tú quieres, pero vamos a darle aquí fecha fecha, en este caso la voy a llamar fecha vencimiento. Aquí estoy aplicando a porque al final estoy trabajando con Java y ya es más costumbre. Si quieres, usa o como tú quieras. El nombre variable pues la concre de fecha vencimiento. En esta fecha de vencimiento, entonces, aquí voy por acá y voy a colocar una función que quiero aplicar con esa variable. Aquí estoy definiendo la estructura de la de la regla de calidad. Entonces, voy a verificar que esa vez el vencimiento sea mayor. Entonces, voy a buscar una función aquí que sea mayor. Esto aplica texto. Aquí no puedo usar is greater than porque esta aplica número y la idea es que fecha vencimiento ya sabemos que es tipo text. Entonces, tengo que buscar funciones de tipo de aquí están. Day al final, day and time. Y entonces, voy a colocar la función is after y aquí tú la puedes comparar con un valor fijo, pero yo lo quiero comparar con otra variable. Entonces, cambio este value que me dice aquí, escojo variable y la quiero comparar con una variable que la voy a llamar fecha inicio. Ok. Aquí tú puedes armar el si. Recuerdarás que si puedo colocar y or y lo que tú quieras. No lo voy a hacer. No la gusta allá. Es para que mire. Yo podía entonces agregar aquí una nueva fila, ¿Ven? Y esta nueva fila que está aquí, yo la puedo concatenar con un amor o con un or. Y ahí puedo armar el si que yo quiera. O sea, para borrar esto, creo que selecciono aquí y le doy acá. Listo. Y ahí borro. Ah, perdón, pero tengo que borrar el grupo porque me queda el or abierto ahí. Entonces, ah, me borró todo, pues. Ah, ahí me equivoqué. Bueno, fecha vencimiento. El selector era una función de tipo date, sería isAzure. Y aquí coloco la variable que había definido como fecha inicio. Bueno, pero ahí tú puedes formar el si que tú quieras. Ahora, entonces, ¿Qué debe pasar? Entonces, ¿Debe pasar? Que una variable llamada verificador, fecha, verificador, fecha, buscamos el operador como ese es boolean, voy a colocar instruct, instruct indica en que cumplió la regla de calidad. Aquí tengo un si no, si no agrego una nueva fila y le digo que el campo verificador, fecha, voy a copiar la misma variable de fecha, lo voy a copiar, lo voy a pegar aquí, verificador, fecha, hago lo mismo, pero aquí la evaluó falso. Si esto es falso, el falso indica en que no cumplió la condición. Esta es la estructura que he definido para la regla como tal. Los que ya la terminaron, si desean, denle salvar, por favor. Y algunos todavía que voy a esperar a que termine. Listo, le voy a dar aquí salvar. Perfecto, ya tengo la regla. Ahora, esa regla que es la estructura, se la voy a adicionar a un modelo. Vete ahora, por favor, si eres tan amable a data models. Bueno, voy aquí entonces a modelo de datos clientes, accedo y defino la regla. Aquí en la opción hay, aquí está unas pestañas, atributos y reglas aquí. Váyase a rules y aquí puedes aplicar pues todas las reglas que tú desees al modelo. Entonces, voy a darle aquí a aplicar regla y me aparecen, bueno, en algunos le aparece a uno, a mí me aparece en dos porque como importé los ejemplos de las de las campañas. Entonces, cojo verificar, aplicar y aquí voy a mapear entonces. Fecha de vencimiento con qué columna del modelo la voy a mapear. Ah, listo, entonces, la voy a mapear con la que se llama fecha vencimiento. Fecha de inicio con qué la mapeo. La voy a mapear con la columna que se llama fecha inicio. Y verificador fecha con qué lo mapeo. Lo mapeo con verificador fecha de este lado. Y ahí entonces hago el mapeo del modelo con respecto a la regla de calidad. Aquí voy a salvar el modelo, continuar con cambios. Perfecto. Puesto seguido, entonces, voy aquí a donde está en task nuevamente. Voy a las tareas de campaña. Voy a quitar aquí el filtro que tenía. Y debería aparecer una nueva columna y dese cuenta que la nueva columna que está ahí aparece vacía porque esa columna se agregó y en el momento de hacer el poblado de la campaña esa no está porque agregamos la columna fue ahora. Aparece en rojo porque para que aparezca en verde ahí debe estar un true necesariamente. Listo. Ahora vamos a lo siguiente ahora. Vamos a filtrar, vamos a llenar este señor. Vamos a elegirlo y por aquí me voy a las funciones de columna y voy a buscar una columna. Aquí hay una función si quiere búsquela como fill de llenar fill. Y hay una opción que dice fill anti cell with y por favor eh colóquelas todos en true por ejemplo en true y le da enviar Listo aquí me da curiosidad mira lo siguiente entonces verifiquemos lo siguiente es para el forma particular. Dese cuenta ahora que la columna que tengo lo siguiente los que están en rojo indica que cumple la condición y los que están en verde no la cumple vamos a escoger los que no la cumplen es filtrar los de rojo y note entonces que aquí hay un problema porque aquí veinte veintiuno no es mayor a veinte veinticuatro por ende aquí hay un error que no pasa la regla de calidad para que pase esto que no pasaría me tocaría cambiar esta fecha de vencimiento si es tan amable coloque esta fecha de vencimiento en veinte veinticinco se debería nuevamente aplicar la regla y debería convertirla a true porque la regla debería validar que ese sea mayor siempre que el otro. Dase cuenta que automáticamente ya la quita. Aquí hay un pequeño problema porque los formatos son diferentes en el fecha inicio y fecha fin pero es la forma en que la herramienta te ayuda con la parte de definir reglas de calidad muy muy propias dependiendo del modelo eso es lo que hace y puedes hacer la complejidad que tú quieras pues evidentemente esto se aplica por cada fila al aplicarse por cada fila que está no te va a permitir a hacer una programación con un poquito compleja colocar la cosa específica ahí si te puede complicar más. Normalmente lo que busca es una expresión de condicionales de sí y si no y ahí puede cumplir el conjunto de reglas que tú defines. De esa forma es que se trabaja entonces las reglas. Bien. Bueno esa es la regla si me da un poquito de tiempo hago una regla un poco más compleja pero esa es la forma en que trabaja las reglas. Vamos a hacer otro ejemplito para ver si nos da tiempo de hacer algo con el y hacer otro tipo de reglas un poco más compleja y hacer un digamos unos datos de tipo semánticos un poco más complejos. Entonces para esto vamos a tomar datos que no están a nivel local sino vamos a conectarnos con una fuente que está en la nube. En este caso me voy a conectar con una conexión s3 voy a conectarme un s3 y voy a sacar unos pequeños archivos que están ahí. OK. Listo. Para esto entonces vamos a hacer lo siguiente. Vamos aquí nos devolvemos acá. Y vamos a cambiar al Data Inventory porque el Data Inventory es el que gestiona los data sets que vas a tener del Data Steward Sheet y el Talent Data Preparation. Aquí hago una pequeña observación. Si tú estás en el Data Preparation y el Talent Data Steward a nivel local no necesita subir esto al talent porque automáticamente lo puedes tomar directamente de tu red. Vamos a crear un data set de forma un poco diferente. Vayamos a la sección de data set. Perdón. Primero vamos a la sección de connection que ven a vamos aquí a la sección de connections por favor. Y noten que por defecto existe una conexión de tipo local. Hay que entender que esa conexión de tipo local que uno la puede entender mal e interpretar mal. Uno entendería que ese local se está refiriendo a la a la máquina en que estoy. Y en realidad que ese local está refiriendo al local donde está instalado el software. En pocas palabras, ese local está siendo referencia a la nube de talent cloud que puede estar en AWS o en Azure dependiendo del tenant que hayas escogido. Entonces ese local está apuntando ahora mismo. Esa es la ubicación del talent cloud en Azure o en AWS que tengas. Si está instalado de forma local, ese local se está apuntando a tu máquina. Así no hay ningún problema. Entonces vamos a crear una pequeña conexión. Vamos aquí donde dice app connection. Y date cuenta entonces que aquí existe una gran gama de conectores. Hacia diferentes proveedores. En la teoría, ya no lo he contado. Eso es lo que le dice el tutorial. Dice que tiene algunos seiscientos conectores que te puedes conectar a AWS, a Azure, a Oracle. Bueno, muchos elementos que tiene a nivel de lo que es la nube. Bueno, en este caso quiero conectarme a un S3. Por ende, aquí, bueno, por defecto ya aparece en la primera fila, cuarta columna, una conexión al S3. Dele click por favor y voy a conectarme aquí a S3 y dele next Bien, entonces, para conectarme a ese S3, me está pidiendo un access key y un secret key. Espere un momento y confirmo para ver si lo agregué. Creo que sí. A ver, un momento, por favor, le confirmo. Donde va a encontrar las credenciales. Ah, escritorio dice, un momento. Listo, perfecto. En la carpeta, el escritorio que se llama recursos, acceda a la subcarpeta que se llama TBD, TBD, y ahí va a encontrar credenciales S3. TBD. Va a encontrar credenciales de S3. Listo, entonces, accede al archivo, por favor, y aquí tengo el access key. Voy a llegar en el access key que me está solicitando para las credenciales de acceso. Y copio la otra que es el secret key que es esta que está aquí le voy a copiar y aquí sí. Ah, en la parte de abajo notará que hay dos botones que dice cáncer y next, dale clic y next, por favor. Listo, y ahora sí, copiemos cada una, chequeé la conexión. Listo, perfecto. Next, por favor, dale como nombre a la conexión S3 donde record access. Sin ningún tipo de de descripción. Espero que algunos terminen de hacer la conexión. Brenda, si quieres, vete mejor. Bueno, por ahí pueden acceder, pero también está en el equipo. Bueno, por ahí pueden acceder. Ya te, ya me ubico, me voy a tu máquina, un momento. Y deberías acceder ahí. No, sube a a la carpeta TBD, sube atrás, TBD, TBD, la primera exactamente. Vete a credenciales S3. Abre el archivo credenciales, por favor. Y ahí copia primero el access key. No se te colocas en el access key que te está solicitando. Ahí está access key. Y ahora copia el secret key. Creo que se te fue un espacio exactamente. Listo. Chequeé la conexión, por favor, dale check connection. Dale next, por favor, en el botón de abajo. Dale S3, como nombre S3 donde record access. Y por último le da validate. Perfecto, listo. Aquí no había dado a validate para que guarde. Perfecto. Listo. Ahora vamos a traer unos archivos de este señor que está aquí. Aclaro que lo que va a hacer es que va a copiar del S3 y lo va a traer acá. Eso es lo que hace. Tiene que tener en cuenta que hay un movimiento de archivos a nivel de redes. Deberías pensar en cómo encriptar esta parte. Vamos aquí entonces en dataset. Estoy aquí. Y vamos a agregar a decirle aquí a dataset. Perfecto. Vamos entonces a darle el nombre de acá para el nombre de archivo lo vamos a llamar pasajeros. Pasajeros. El nombre del data, data, pasajeros. Y en la conexión, por favor, escoge S3. Exacto. Exacto. Exacto. Acto seguido, en el dale clic por favor para que te liste los boquets, boquets, carpeta, pero bueno, hay que refinarse, boquet. Escoge el que se llama noble pro. Y en el por favor coloca el siguiente nombre que vamos a buscar en este boquet. Se llama pasajeros punto CSV. Punto CSV. Dale auto de T para ver parece que sí lo leyó, no hubo problemas en el nombre. Perfecto. Dale aquí validate y él intentará entonces traer los datos y aplicarle el data inventory a este señor que está aquí. Para aprovechar que esto a veces demora, por favor créate en una nueva pestaña, una conexión nueva del data inventory. O sea, si tienes una pestaña, volvete a logear nuevamente. Y aquí entras nuevamente a data C que en una pestaña nueva, bueno, ya terminó, ve, no sé, alguno le terminó, a mí no me ha terminado y bueno, que sí. En una pestaña nueva, logeate nuevamente si no tienes, deja que este señor vaya ejecutando aquí su proceso. Y vamos a agregar aquí un nuevo data set. Y este lo vamos a llamar vuelos. La conexión es también S3. Entonces, el bokeh que vamos a escoger es noble pro y el object name que vamos a traer es vuelos. .csv. Perfecto, aquí le doy auto detect. Parece que lo detectó, listo, le doy validate. Perfecto, ahí está marcando, acá de un lado ya me terminó. Perfecto, y algunos que todavía está terminando aquí esta parte. Bueno, déjelo ahí que vaya trabajando, búsquese una pestaña en que haya terminado algún proceso para continuar y no perder mucho ahí el tiempo en la espera. Si no tienes, si las dos pestañas que tienes abiertas están progresando, créate una nueva conexión. En este caso, como en este lado terminó, voy a abrir ahora el menú del data este. Voy a crear aquí una nueva campaña y esta nueva campaña tiene un modelo de datos netamente diferente. Entonces, al tener un modelo de datos netamente diferente, me toca agregar un nuevo modelo de datos, pero este voy a crear solamente unos pequeños cambios, pequeños campos para no demorar mucho. Entonces, voy aquí donde dice data models y voy a adicionar un nuevo modelo. Perfecto. Voy a llamar entonces, lo voy a llamar este modelo modelo datos en tipo título aerolínea ACME. Voy a agregar nada más cuatro columnas, no voy a hacer el ejercicio completo porque en realidad no nos va a dar tiempo. Entonces, voy a agregar solamente las siguientes columnas. Nombre, número de vuelo, pero ahora no voy a hacer, voy a hacerlo camel case, usé un momento número vuelo, número vuelo en camel case y acabo de colocar número ya con tilde y todo, número vuelo para que se vea un poco formalizado. Voy a adicionar, ese va a ser tipo texto. Voy a colocar otro atributo que lo voy a llamar fecha, underscore, vuelo y va a ser de tipo date. De ahí aquí. Agregó dos campitos más, uno que es nombre, underscore, cliente, y este va a ser nombre, cliente. Agregó otro atributo que lo voy a llamar estado, estado y voy a crear aquí una lista. Recuerden, esta lista es muy parecida a los diccionarios que tengo allá. La única diferencia es que esta lista no la puedo reutilizar. La ventaja que tengo hacerlo de tipo diccionario a nivel arosemántico es que puedo re-usar esa lista. Entonces, voy aquí a agregar los siguientes tres, por favor, aquí te lo voy a colocar aquí en, te lo voy a mandar aquí en el chat y te lo voy a mostrar por este lado. Los tres posibles estados que va a tener ese señor. Aquí te los mandé y te los voy a colocar aquí en un texto, si de pronto no lo quieres ver allá, lo quieres mostrar, ver aquí. Son los tres tipos de estado. On time, cancel it, y delete. Delay it. En la lista, por favor, que tengas aquí. Entonces, empiezo con este on time. Yo creo que me permite copiar y pegar on time. Sí. Me permite. Sigo. Cancel it. Lo agrego aquí. Y aliso y agrego el último, que sería Delay it, que aquí está aquí. ¿Qué pasó? Que aquí está, no me dejó, no me dejó. Delay, listo. Aquí lo tengo. Perfecto. Salvo, nada más son esos cuatro campitos y les dejo acá, entonces, ¿cuál es sería? On time. Perfecto, listo. Ya casi están terminando la mayoría. Listo. Revisé, por favor, si ya a los que terminaron ya, si le subió, en el caso mío no ha subido todavía el que pasó con el de viajes, de vuelos, está todavía. Voy a intentar hacerlo nuevamente, mientras algunos terminan, para poder hacer el ejemplo completo. Entonces, data sets, data sets, aquí va a colocar vuelos nuevamente. El nuevo me lo trajo no sé por qué. Noble Pro. Vuelos punto C C V. Tanto de T. Bueno, alguno de los dos debe terminar. Eso espero pues. Bien, mientras intento hacer esto ahora, ya definí el modelo, ahora voy a definir la campaña. Entonces, voy a colocar aquí, voy a hacer una nueva conexión aquí, para que me queden las tres elementos, tal, aquí está, lo vi. Bueno, ahora voy a hacer una nueva campaña. Un momento, a ver, salió un error de aquí. Bueno, voy a hacer una nueva campaña. Si le está cargando, por favor, déjelo cargando. Sigamos entonces. Ya estamos en el perfil nuevamente de propietario de campaña, definimos el modelo, ahora vamos a definir la campaña. Entonces, voy aquí donde hice la campaña, adicionar campaña, y la voy a llamar campaña, validación, datos, aerolínea, acme. El tipo de campaña, por favor, es de tipo resolución. Propietario de campaña, no podemos agregar uno nuevo, porque no teníamos más usuarios, solamente tenemos uno por defecto, aunque se entra en otra área, que es el TMC, netamente administrativo. Dentro de los roles, voy a colocar entonces, voy a colocar aquí, administrador de datos. Estos roles van a depender mucho de lo que tenga esta empresa, administrador, datos, y adiciono un nuevo rol, y este nuevo rol puede ser, entonces, verificador de Y recuerden que cada uno de tus roles tiene que estar asociado hacia un usuario. Si el rol que definiste no tiene un usuario predefinido, cuando hagas una campaña y crees tareas, esas tareas se crean sin un usuario asociado para que las revise, se crean en blanco, se crean vacías. Listo, entonces, aquí en el workflow vamos a adicionar un nuevo paso, vamos a colocar aquí en revisión, como ya hemos definido, este revisado, y el que viene terminado o completo, como tú quieras llamar. Ahí se me escapó agregarle el modelo de datos terminado. Y aquí llegaría a modelos de Aerolínea ACME, este que está aquí. Perfecto, revise para ver que los roles tengan asociado un usuario y que cada paso tenga asociado un rol. Entonces, voy a adicionar aquí administrador, voy a colocar aquí verificador y aquí coloco administrador. En la vida real puedes tener diferentes roles, tantos roles como tú quieras. Adicionamos aquí la campaña, listo, no me ha subido el... Bueno, me alcanzó a subir uno, aquí tengo vuelos, voy a hacer menú data sec, confirme entonces que pasajeros y vuelos tengan un color a nivel de quality. Aquí, claro, lo que está demorando aquí no es el proceso de agregar los datos al Talent Cloud, es el proceso de revisión con el talent data inventory. Entonces, sencillamente es porque es una versión Trial y bueno, y aquí entonces en esa versión Trial, pues hay muchos usuarios conectados. Listo, hay alguno que si... hay alguno que todavía no le ha subido, por favor, inténtelo hacer en otra conexión diferente. El de aerolínea, que te muestro, en el modelo de datos sería el de la aerolínea, ya voy, te voy a mostrar la campaña que sería esta, perdón, estoy en tareas, en campaña, campañas, aquí está, y el modelo fue el modelo de datos aerolínea ACME, que fue el que hicimos hace un poquito. Vamos a ver, será que no lo ha hecho, ¿quién me habló? Disculpe. Alejandro, listo, perfecto. No, créate, la pestaña que tienes anteriormente que dice add data model, la pestaña del browser que tienes, tienes un add data model antes, dale salvar ahí por favor, perfecto, ahora intenta buscarlo, a ver si me aparece, me toca refrescar, me toca colocar nuevamente los campos, nuevamente porque en el riloates se perdieron los datos, sería campaña, ¿cómo fue que le llamé? Ya te digo, campaña, campaña validación de datos aerolínea ACME. Listo, solución, ahí coloqué dos roles, uno que se llama meditador de datos y el otro se llama verificador datos, cada uno se lo asignea al único usuario que tenemos, que sería en este caso Alejandro, sería nada más, adiciona un nuevo, listo, dentro de eso que está ahí tendrás, listo, agrega un nuevo paso y ahí en el nuevo paso sería el primero en revisión, agrega un nuevo paso, ahí dale, ahí coge administrador de datos, listo, ahí perfecto, ahí colo, listo, cógelo ahí, dale ahora, agrega un nuevo paso, add a validation, ese sería terminado, listo, dale, es el administrador, no, es el administrador, terminado el administrador, en el que vas a agregar si es el verificador, ese, listo, dale a adicionar un nuevo paso ahí en el botón verde y se lo llamas revisado y se lo colocas al por favor al verificador de datos, eso perfecto, dale a adicionar campaña. Bueno señores, seguimos el día de mañana, terminamos este ejemplito de forma sencilla el día de mañana y seguimos con el talent data preparation para el día miércoles continuar con el talent big data. Entonces ha sido un placer con el día de hoy, nos fue muy bien, seguimos el día de mañana entonces, feliz resto del día, soy Juan Manuel, igualmente, estamos allá, gracias a ustedes, que va a ser muy bien. No puedo entrar en la maquillaje a tu misma, yo decaí en la maquillaje a una niña que la hacía en 2016. Pero ¿cuál era el cual que la convenció, bien? No puedo entrar en la maquillaje a una niña que la hacía en 2016. No puedo entrar en la maquillaje a una niña que la hacía en 2016. ¿Es Chloe? ¿Sí, es Chloe? Sí. ¿Pero no puede entrar en la maquillaje a una niña que la hacía en 2016? ¿Para qué te va? ¿Para qué te va? ... ... ... ¿Cómo vas a ir? ¿Y cómo vas a ir? ¿Y cómo vas a ir? Puntas por encima de por ciento Puntas por encima de por ciento Puntas por encima de por ciento Alguien hay como... Yo voy a viajar para todos, pero te digo que aquí siempre hay que ir. Que no se te aplastó. Y me vas arrastrando como alguien que te puede entrar. ¿Qué será? ¿Tienes sol? Me de guapunta. Hay que agarrar el punto. Bueno, bueno, la cine no le gusta bien decir, pero me canse para decirlo. Algo me cuesta decir. ¿Tanto puede ser algo que orillara? Pues mira, se pone ahí. Aquí está mi mente. No quiero que pude ver para que no me haces falta. Y ya está. Pero bueno, vamos a alejar que pade. Porque bueno, porque bueno. Podemos irte un poquito más y tanto te molesta, ¿eh? Jorge, tienes una sola cita con Paula. ¿Tienes una sola cita conmigo? Correcte. ¿Cómo, Paula? Tienes una sola cita con Jorge. ¿Tienes una sola cita con Paula? No. para ser un mago y también para ser un mago y también para ser un mago. ¿Qué hiciste entonces? Yo también lo he hecho. Esto no quise llorar, solo vamos a hacer esto. Exacto. Bueno, robemos cada dos semanas, un par de son jueves porque ya son de extrema escuela de esos días. Encontré la sala para hacer las demás cosas. ¿Debemos hacer algo más? Sí, vamos cerca en una oficina. Llevaré al almuerzo para tener toda la hora. También voy a encargarme del efectivo y de la limpieza. Solo un selectivo. Claro, pero creo que es importante que dividamos los gastos, después la mitad, para que sintamos... ¿sabes? Ah, y más importante, el nada. Y si uno de los dos se empieza a llorar, ¿sentimientos con el otro? Zero. Al instante, así es como te tratan. Ah, y nunca en nuestra casa ni siquiera se usaba este tema con Instagram. ¿Qué hiciste? Yo voy a hacer mis cosas. Sí, no joderas. Sí, empezamos. No más tenemos nada más que esperar. En el sexo. Sí. ¿Al almuerzo? Estoy llenando las cuerdas. ¿Estás llorando? ¿Hablas? Sí. ¿Estás llorando? ¿Qué te dice? ¿Qué te dice? No sé. ¿De qué estoy hablando? ¿De qué estoy hablando? ¿De qué te dice? ¿Qué te dice? No sé. No sé. Gracias. Gracias. Gracias. Gracias. Sí. La verdad, estaba muy preocupada del sexo. Yo creo que dice, Dios mío. Yo, claro, no voy a quitarle por tantos problemas. Aquí puedo tener eso, ¿no? Sí. Y si voy a desgastar de mi vida, pues quiero disfrutarlo. ¿Y? ¿Y? ¿Y? ¿Y? ¿Y? ¿Y? Mami, mami, me gusta también. ¡!! ¡Hola! no me gusta. Enfríame. Me encantaötelo. Yo lo sé. Me encanta tener una amiga. La recibiremos cuando quiera para una... Me encanta estas cosas. Sí, sí, me encanta. ¿Qué pasa? ¡Qué linda! Hola. ¿Pasó? ¡Qué linda! ¡Qué linda! ¡Qué linda! ¡Qué ilusión! Me pregunto... ...si este ingeniero... ...es el complejo de 21% del mundo... ...el ingeniero hace que sea imposible para olvidarte con una... ...con una criatura sexual. Eso es muy común. Lo leí yo. ¡Qué linda! ¡Qué linda! ¡Qué linda! ¡Qué linda! ¡Qué linda! ¡Qué linda! ¡Qué linda! ¡Qué linda! No podés creer que Dios es más maléfico que el mismo que el sueldo público. Los pobres lo tienen, a lo que no están de falta. Los muertos lo piensan y lo comes por casa. Y luego me mueras y luego los bolso. Y luego los bolso. ¿Vemos que no saldía? ¡No, no! ¡La humildad! ¡La muerte! ¡No, no! ¡No! ¡No, no! ¡No, no! ¡No, no! ¡No, no! ¡No! ¡No! ¡No! ¡NO! ¡No! ¡No! ¡No hay excusas! ¡Eso es lighter! ¡No! y el que se va pa barranquilla creo que es un reto, no es un mal pero esta es la línea de los bangones pongámonos improvisaciones, pongámonos en las situaciones de la feo cintilla, o el que escúchame el pote no, no, no, no, no, no, no, no no, no, no, no, no, no, no no, no, no, no, no y el que se va pa barranquilla creo que es un reto, no, no, no, no pongámonos improvisaciones, pongámonos en las situaciones de la feo cintilla, a ver que escúchame el pote no, no, no, no, no, no y el que se va pa barranquilla creo que es un reto, no, no, no, no pongámonos improvisaciones, pongámonos en las situaciones de la feo cintilla, a ver que escúchame el pote no, no, no, no, no, no y el que se va pa barranquilla ... ... ... ... ... ... ... No, es una comunidad de amor y amor. ¿No? Es una cosa... sexual. No, no, no. Es una cosa... No. Es una cosa... No, no. Es una cosa... No, no, no. Es una cosa... No, no, no. No, no, no. No. No, no, no. Sí. Me sorprendí viendo en el ensayo ahí. No te preocupes, nadie lo notó. Esto será lo único que hagas. Ve la sombra aquí. No te preocupes. ¿Hay que hacerlo? Va divertido. Ah, no te preocupes. Ya te escuché. ¿Qué pasa? No te preocupes. No te preocupes. No te preocupes. No te preocupes. No te preocupes. No te preocupes. No te preocupes. No te preocupes. Si quieres, no te preocupes. Dijeron la palabra verdad. ¿Y son de las dos madres las dos? Sí, es. No te preocupes. No te preocupes. Cuidado. Cuidado. No te preocupes. No te preocupes. ¿Cuánto cuatro veces? ¿Cuánto cuatro veces? ¿Cuánto cuatro veces? ¿Cuánto cuatro veces? ¿Cuánto cuatro veces? Se supone que vamos a esto. A la primera no sé qué tienes que estar escuchando de... todo el... ¿Verdad? ¿Verdad? No sé si es eso. ¿Qué es eso? No sé. Bueno, en serio. En serio, sí. Ah, sí. No, no, es pericioso. Me ha sido herido. Sí, me ha sido herido. Ya me he convertido en un herido. Ah, sí. Es el de la vida. Pues, para mí, yo no me he convertido en un herido. No me he convertido en un herido. Pero... ¿Es por ustedes? Bueno, denme su opinión. Eso es. Lo sabes. Lo sabes. De tu hijo. Eso se me ha encontrado primero. Compártelo. Por eso paro. No me he convertido en un herido. Esto pasa si supieras que te acuestas con su esposo. Me ha gustado. Ya te aceleré. Solo tienes en cuenta. Entonces, ¿qué me sentís? No estoy sento tan riesgo. Por eso no se pide una lesión. Pues, como hace, pues, tienes inventar. Muchas inventar. Sí. Sí. Y me cante el coro del bien. No me puede. No sé qué me va a sacar. No sé. Se me atreve a hacer una lesión. Sí, lo sé. ¿Cómo te arrastra tu bolso antes de salir? ¿Qué? No sé. No sé. Te lo agradezco. Porque voy a necesitarlo en algún año. Rami, Rami, ¿me puedes decir qué es? ¿qué haces? ¿Qué? Por favor. Rami, Rami, Rami, Rami, Rami, Rami, Rami, que estoy oyendo. Lo sé. ¿Puedo hablar con esa wagoonita de rhythm? Es todo el stewards de Roca. Así es. Pasa el nuevo masaje. O sea. No sé. ¿Puedo enseñar a aprender? ¿Compasión? ¡Arcista! ¿Te compraste con alguien nuevo? ¿Te compraste? ¿Quién la estás viendo? A él No le dije nada Porque no necesito que te use tu tinta como chisme para hacer amor No, no quiero hacer amor, eso es lo mismo ¿A ti? Sí Sí Lo que estamos haciendo Parece funcionar En verdad es mucho trabajo De que yo me concentre en mi atención en todo lo que estoy pensando Y eso será lo mejor Yo creo que me voy a perder el destino Gracias Por ser soñino Me siento tan linda Ajá Me estoy perdiendo ¿Te pensabas? Siempre he pensado No, no Por eso no me ha pasado tanto tiempo A mí me parece que si vamos a hacer el tiyamo La sección que no sea Por eso se ha usado después de cuatro No sé, no de incluso Pero, no es el mismo esto Si se ha usado tampoco le va a dejar Ya, ya Pero no se ha usado más Sexy, sexy Y ya que lo siento No, no, no, ahora ¿Qué es lo que pasó? Dice que antes estábamos muy homilados, y ahora no lo sé porque es el rey. Ah, no, tú eres homilado. ¿Te gustan las aguas? Lo siento de ventar. Los juegos de mesa son serios. Sí, sí. Ok, bueno, te gustan los huevos. No, te amo. Adiós. ¡Bien, tia! ¡Bien, tia! Entonces, está su porco en la mano, silencio, normal está muy bien, necesitaré que vaya bien, ¿sí? Buenas noches. Buenas noches. Buenas noches. Buenas noches. Buenas noches. Yo amo a mi esposa y a mi abuelo. No es una persona. Soy Richard. Vivo cursando la calle. Siempre, desde el final de la calle, le estoy, vivo así, nosotros. Hola. Había un bebé. Sí, se llamó Valery. Ella lloró tanto que... está racioso. ¿Dónde se encuentra el esposo? Pero sí, con un negocio, usted. Muy bien. Pues, gracias por su atención a este asunto. ¿Tienes el bato? Sí. Lo mejor será que ustedes vayan a casa. No se cargarán. Sí, señor. Es un lujo posible para proteger a los pueblos. Esto es... Ok. Mira eso. ¿Ves esa huella? Es diferente. Así es. Esa huella, es del compás. A terminar, vas a cortar este cuadro con la huella del linoleo. Lo llevaremos. Sí. Ok. ¿Puedes ir a tomar aire? Hey, escucha, mira esto. Unos lentes de sol. ¿Los encontré? ¡Mierda! ¡Dede! ¡Escucha! Sé que tienes las mejores intenciones, pero no puedes ir tomando cosas en la escena del clima. ¿O no es otra vez donde los encontré? ¿Estaba en el coche del hielo? Bueno... Estaba por aquí. Ok. Hay más sangre en el baño. Hicieron la limpieza en medias. Dejaron el armo incidio. Y se tomaron en un chás. Por un minuto de vello. Por los hilos. ¡Eso es chila! Oye, la oficina de este enemigo. La oficina de la oficina fundada. Mucho más. Sería luna. Sé que su vecino me dijeron que le dispararon a su esposa. Pero... Hace mucho más. ¿Dónde se desgustarse por la mañana? ¿Verdad? Y ella parecía estar bien. Puede decirme... ¿Cómo fue esto? ¿Quiere su esposa? Pues hizo mucho. Y le llamó a mi jefe. Le llamó a su jefe. ¿Por qué? Porque ella quería, convenciendo de que no me enviaría jefes en nada. Me gustaba que me solí. ¿Qué pasa en esos viajes de trabajo? No. No mucho. Solo trabajo. Normalmente, tengo que decirte que una vez... Ustedes... Tenía alguna... Fue alguna noche. Una vez. Los dos años. Lo resolvimos. Y usted... ¿Alguna amante? Yo... Señor, por alguien... ¿Quién será? Pudo visitar a su esposa. Alguien que sea amigo, familia, vecino. Sí. Cami vino por la mañana. Dijo que todo estaba bien. ¿Alguien? No, no. Es... Es una mujer. ¿Quién? Yo no lo sé. Sí. No lo sé. Sí. Es más que no hay... Entraba por sábanos en mí. Pero no es por parte de ese que... Sea alguien que no sea... Alguien de quien... Alguien así. Estaba de viaje. Desde su papá. Pero... Como un hijo. Sí. Gracias. Sabías que somos más que sí. Toda la familia lo es. No. ¿Es en serio? Mira, lo probaré. ¿Es una mujer real? No lo sabes, okey, así lo dejas. Pólenla. Eso es, hable un poco raro. Sí. Entonces es real. Muy bien, saca. Ponla en tu frente. ¿Qué te dije? ¿Qué? Sí. ¡No puede ser! Sí. Sí. Es increíble, ¿verdad? Se relaciona con el lugar de la casa en la tierra. Sí. Sí, se queda detrás, pero... ¿Residencia Mondomé? ¡Ay, Dios mío! ¿Lo supiste? ¡Ay, Dios mío! ¿Sabes cómo cambian? No sé. Pero soy ingeniero. Bueno, no sé. A la pasión me sentí asustada. ¿Se me acuerdan más? ¿Se me acuerdan más? No sé. Me sentí asustada. ¿Se me acuerdan más? Me sentí asustada. No sé. ¿Se me acuerdan más? Sí, ni se me acuerden más. OhAtter System ¿Qué te dicen los estados de cuenta? Yo sentí un interés con la gente que salía aquí. ¿Por qué dicen que es un tipo de cintura? ¿Por qué dicen que es un tipo de cintura? No sé, por cierto, si quieren darme... Bueno, ¿qué dicen los estados de cuenta? Yo sentí que era un tipo de cintura. Yo sentí que era un tipo de cintura. Yo sentí que era un tipo de cintura. Yo sentí que era un tipo de cintura. Si, si es un tipo, yo creo que serían un tipo de cintura. ¿De dónde se da? ¿De si? Para mí ¿Pero? No, lo primero que tengo es lo que tengo es lo que tengo es un kit ¿Tenemos eso? Sí ¿Tenemos lo mismo? ¿Para algo? ¿Para algo? ¿Entonces lo tiene? ¿Siente bien? ¿Algo algún tipo de GG? No No, la机 la机 la机 la机 la机 la机 la机 la机 la机 la机 Yo puedo tomar una foto Muchas gracias Los burritos no se parecen No se me ocurren los burritos de mis hijos No se me ocurren ¿Te gustan? Sí Se llaman burritos ¿Y este es por qué llamado? Esto es un material que voy a poner Muy bien Así te conseguimos a ti y te sacamos un correo ¿Qué es esto? Quiero que toque de ahí Tú estabas en una roca en Tennessee Tennessee Mi favorito, es mi día ¡Adiós hoy! Mi dulce Feliciano, el padre de parte de Flameja ¿Lo eres, Karen? Sí, lo eres Yo también lo eres Me gustan los burritos ¡Feliciano! Me gustan los burritos ¿Lo fuiste? Sí ¿Qué hacemos, mami? ¿Estás por la tibia? Sí, para la tibia ¿Y la de ti? Por la tibia Por la tibia ¿Cómo lo haces? ¿Y tu? ¿Y tú? ¿Y tú? ¿Qué pasa? ¡Jugación! ¿Me contrataste, oficial? ¿Cómo haces esto? Todo lo que digas será bajo el privilegio de... Estamos en plena investigación de un asesinato. Todos están agitados y creen que van a llamar a una mujer para hacer una prueba. ¿Y que sus nervios los se van a disparar? ¡Por favor! Si un día se está llamando a quitar cosas en un solo minuto, una sensación no vas a hacer. ¿En serio? Sí. Sí. Homicida del hacha. ¿Y ya? Sí. ¿No le hiciste un baby shower sobre esta mierda? Papito. ¿Eh, papito? No, no, no, no. ¿No le hiciste a la iglesia cubierta de ese? No, no, va a ser una embajada, ¿sí? ¿Dónde va? ¿Dónde va? ¿Dónde va? ¡Di no me maquita! Acá va. O sea, ¿por qué hace eso? Eso se está descansando. Eso no puede ser una coincidencia. o igual, a ver, todo el mundo sabe que tú no eres ti y no tienes nada si no tuvieras, tú también, ¿no? porque están fuera de su enemigo bueno, es lo que vamos a llamar es así es así así es si una vez conlos vamos Eso es todo, es cuestión de tiempo y el tiempo está escuchando mis ventanzas. Hay una mujer, a la que la policía interrumpió y... La cosa... Ella fue la última que vio a Betty. Y eso no es todo, porque... Hubo una aventura... Con ella. ¿Oye, le dijiste a los niños que me interrogaron? Cuando lo dices así, parece algo siniestro. Solo fuiste a mitad, ¿verdad? Bueno, por supuesto. Y eso les dije. Que no deben estar refusados los que los protejeremos. ¿Todo está bien? Ok. ¿Qué? Sí.
on 2025-01-27
language: ES
WEBVTT si pudiste acceder, si, bueno los restantes por favor vean accediendo al a la interfaz del Talent Data Fabric y se ubican en el Talent Data Stewards para terminar el ejercicio del día de ayer, simplemente es una algo que una temática que deseo adicionar nada más, es más del Talent File Line que del Talent Data Stewards, listo algunos ya están accediendo, Fernan en el caso tuyo accedes y efectivamente será el browser de preferencia, el de Chrome o el de Edge el que tú quieras, listo perfecto, ahí entra a la página talent.com, toca talent.com, esa que está ahí perfecto, en la parte superior derecha está un que dice Free Tial, entra ahí por favor, dale click listo, perfecto y ahora te vas a registrar en el formulario que va a aparecer ahora dale entonces, lo importante de ahí de toda la información es que coloques el nombre, el correo empresarial, en este caso te registra con el correo DAXA por favor, si le están amable, si copiaste de tu máquina a la máquina virtual quizás fue que no habilitaste, eso depende directamente del browser, si habilitaste es el portapapeles, entonces bueno, registra ahí con tu correo, entonces el browser entonces, listo, lo demás si puede ser cualquier información, lo importante que sea el correo empresarial listo, cuando actives el trial te va a llegar un correo y ese correo te va a habilitar para que escojas un tenan, escoja el que tú quieras, ya sea de Azure o de AWS, no sé si lo hace directamente y no sé si puedes acceder directamente aquí a tu correo en la máquina virtual o si quieres accedes allá desde tu máquina, como tú desees, los restantes por favor verifiquen en el Data Inventory que tenga los dos dataset que tomamos el día de ayer, que fue el de pasajeros y el de vuelos, ese dataset estaba inicialmente en un S3 y lo que hicimos fue entonces traernos ese dataset al Talent Cloud, esos son los que vamos a trabajar, es un ejemplo muy pequeño ya para terminar el tema del Data Stagworth y seguir con el tema del Talent Data Preparation Sí, te llegó el correo, Fernanda, perdón, perdón, no te escuché, qué pena, sí, te tuvo que llegar y algo así como iniciar un Lex y te va a pedir escoger el tenan, más que todo la ubicación donde van a quedar los datos, ahí puedes escoger AWS o Azure, el que tú prefieras y al final no te llega todavía No sé si me muestras, por favor, comparte ahora tu pantalla donde estás abriendo directamente de tu máquina, no sé si tú compartes la pantalla, a ver sí, muéstrame el correo que llegó el correo que te llegó a AXA, a la cuenta de AXA, sí, dale click ahí en Lex dale click ahí ahora intenta lo guiarte para ver, tú tenías, tú habías creado alguna cuenta anteriormente con Talent porque si la creaste ya los 14 días de trial se nos acabaron tú lo habías creado, sí Ah, el Data Catalog, pero no recuerdo, a ver, el problema es que los 14 días esos deja decirle a Jimena para ver si nos colabora con algún correo de la empresa de ella y podamos crear para que funcione, un momento, por favor a ver ¿Verdad? Por favor Listo, ¿Eh? Hagamos algo, Fernanda, eh, vamos a terminar un ejemplito del día de ayer mientras conseguimos una cuenta y ya con esa cuenta eh que me va a conseguir ahora Jimena, podamos iniciar entonces el curso del que es el que vamos a iniciar el día de hoy, ¿OK? Entonces terminemos el el lo del día de ayer. Entonces, vamos a lo siguiente. Bueno, el día de ayer eh iniciamos con el talent data keywords. Básicamente analizamos los tres perfiles. El primer perfil era el del creador de la campaña, ese creador de la campaña tiene como función, crear el modelo de datos, crear la campaña, en la campaña tiene que definir roles, los roles que tiene la campaña, y el workflow que va a manejar y los diferentes pasos de ese workflow. Ese workflow tiene que ser asignado a unos roles específicos. Después vimos el operador de campaña que el perfil de él es principalmente listar las campañas que le fueron asignadas y más que todo poblar la campaña de tareas. Recordemos que las tareas corresponden a registros que deben ser revisados para algún proceso de calidad. Entonces, las tareas del día de ayer la hicimos tanto de forma manual como de forma automática. De forma manual creamos una tarea y de forma automática tomamos un data set y subimos y poblamo los datos de ese data set con la campaña. Y por último vimos el perfil que es el de Data Stewards, que es la persona encargada de corregir los diferentes tareas que le fueron asignadas. Esos son los perfiles básicos que tiene y es el core de la herramienta. La herramienta está más pensada, como dije el día de ayer, para la parte de curación y arbitraje de datos. Si tú la quieres adaptar para algunos elementos muy específico de tu empresa, pues hay que ver la forma en que eso se podía adaptar. Vamos entonces a terminar un ejemplo del día de ayer. Sí, dígame. Perdió, sí, sí, sí, claro, porque sí, sí, sí, claro que sí, claro que sí. Ahora sí. Perfecto. Por darme entonces. Listo, para ahora entonces, para lo siguiente, vamos al Talent Pile Line, Pile Line Designer, vamos al Pile Line Designer y vamos a agregar un Pile Line. Listo, este Pile Line, vamos a cambiar el nombre, recuerde que para cambiar el nombre, nos colocamos justamente en el nombre, el mouse, automáticamente nos aparece un lapicito, damos clic en el lápiz y cambiamos el nombre. Entonces, voy a colocar aquí como nombre, Poblar, Datos, Campaña, Aerolínea. Listo, perfecto, hacemos esto aquí. Listo, algunos todavía están accediendo al Pile Line, está cargando en algunos casos. El caso de Brenda todavía está cargando, perfecto, espero un momento. Voy un momento a tu pantalla, Brenda, que se me hace extraño que haya demorado tanto para cargar. Espera un momento. No, no quería eso. Espérate un momento, por favor. Sí, termino a veces. Listo. Bueno, listo, Brenda. Acceda para ver si le puede adicionar el Pile Line. Sí, ahí, perfecto. Cambie el nombre, por favor, a Poblar, Datos, Campaña, Aerolínea. Y vamos por ese punto que está ahí. Perfecto, continuamos entonces. Listo, perfecto. Listo, sigamos entonces. Ahora, vamos a hacer un porque resulta que los datos están repartidos en dos data sets. Entonces, para eso, para agregar los datos de entrada, vamos a darle clic aquí en add source. Y vamos a escoger en este caso, pues, el data set que le hemos llamado pasajeros. Y le damos aquí select. Y para hacer un join, vamos a darle clic aquí en el más que aparece después del de la entrada del S3 de pasajeros. Y vamos a escoger como procesamiento eh la condición que dice join. Dele aquí clic en join. Y le debería aparecer un recuadro para definir otra fuente de entrada. Entonces, dele nuevamente clic en add source y va a escoger la el otro data set con el cual vamos a hacer el join, que en este caso sería vuelos. Eh, Luis, dale clic en el más, por favor, el que está al ladito del ese ahí. Perfecto, dale clic en ese. Y coge join, la funcionalidad que se llama join. Y listo, te tuvo que haber agregado. Entonces, en la nueva fuente de entrada, escoge vuelos. Perfecto, listo, select. Perfecto, ahora vamos a hacer el proceso de join. Dele clic aquí donde dice join, por favor. Y definimos las claves de enlace para los dos data set. En este caso, entonces, me pide la left sería lo el data set que está en la parte de arriba y el ray sería el data set que está en la parte de abajo. Entonces, los data set se unen a través de una llave llamada número de vuelo. Entonces, aquí aparece el número de vuelo. Y aquí está, entonces, número de vuelo. En caso que los data set se unan a través de diferentes llaves o diferentes columnas, simplemente se agrega aquí cada una de las columnas aquí en el más que está aquí que toman la condición. Recuerde algo, esa herramienta no guarda automáticamente los cambios, sino cada vez que haya un cambio, hay que darle safe. Aquí hay una opción que dice que mantenga las dos columnas, pues, si usted desea, si no está habilitada, significa que aunque haya número de vuelo aparecido dos veces, uno en pasajeros y uno en vuelo, nada más va a salir, va a salir, va a tener como salida, solamente un número de vuelo. Y le por aquí safe. Y listo. Perfecto, listo. Perfecto, démonos para guardar ahí, ¿qué raro? Listo. Ahora vamos a escoger como destino la campaña a la cual yo quiero poblar. Entonces, para este caso en particular, dele click acá en el destino y le va a entonces unas pestañas en la parte de arriba que dice dataset y campañas, escoja campañas y selecciona la campaña. Recuerde que esta herramienta solamente permite popular campañas de tipo resolución y de tipo merging. Ahora, si desea popular los otros tipos de campañas, lo hace con una herramienta que se llama el talent studio, que ya está instalada en su empresa. Entonces vamos a escoger aquí que sería campaña, variación, aerolíneas, selecciona. Aquí tengo un problema por la forma en que trabaja. Recuerde que para poder polar los datos hacia una campaña, lo que hace la herramienta es que hace un match por nombre de columna y en este caso me parece un poco tedioso esta parte y además de eso es caso sensitivo, es decir, si la columna en alguno de los casos está mixto y en la otra está en minúscula, no va a cargar los datos. Tengo un problema que se me va a formar aquí que va a ser muy común con este tipo de herramienta, es que los nombres de columna que están en el modelo de datos quizás no coinciden con los nombres de columna del dataset. Eso es común ¿Por qué? Porque el que crea la campaña, que asimismo crea el modelo, no sabe exactamente cómo están guardadas las columnas dentro de los dataset, que pueden ser tablas o cualquier elemento que tenga. Entonces, si tú eres operador de campaña, tienes que tener la capacidad de poder mapear a los nombres correctos. Más específicamente el problema que tengo es que el nombre del cliente que está en pasajeros aparece solamente como nombre y en el modelo de datos aparece como nombre cliente. Si intentamos ejecutar actualmente el JOK así como está, vamos a tener un problema en que en el caso particular del nombre cliente que aparece en campaña y nombre dataset, ese columna no va a tener datos, se va a llenar de forma vacía, o sea va a tener datos vacíos, perdón. Para esto entonces la herramienta plantea lo siguiente, agregue aquí un nuevo elemento, un nuevo componente, dele click aquí en el más. Y ahora en este más escoja una opción que se llama field selector, este el de campo, sector de campo, esta que está aquí. Sí, dígame. Y quién me lo que pena. Alejandro, un momento, listo, vamos a ver. Listo, ¿qué no te despliega? El fiel, ah no, no te despliega ahí porque él intenta buscar datos en esa campaña y todavía no ha ejecutado, entonces está vacía y ahí se queda bloqueado. Entonces como todavía no hemos ejecutado, primero dale click ahí en el más, perfecto, field selector, el de abajo, ese, listo. Bueno, aquí tengo el field selector, este que está aquí, este componente lo que va a hacer es que va a permitirle mapear, primero, filtrar las columnas que deseas de salida y segundo, en algunos casos si tú lo deseas, cambiar los nombres de las columnas. Listo, aquí tiene dos modos, un modo simple y un modo avanzado. Vamos entonces a esta parte simple que es más sencilla. Listo, entonces dele click aquí en el modo simple que es el que está por defecto, dele click aquí en el, como para abrir una ventana y editar. Y aquí usted puede mapear los datos que desea de salida, esto es como un filter column, pero para el caso particular que va hacia una campaña, aunque la campaña tenga menos columnas que los datos de entrada, pues él solamente va a tomar los datos que mapea a nivel de nombre. Quiere decir que si entran 15 columnas y la campaña tiene cuatro, él solamente va a intentar mapear esas cuatro columnas y cómo las mapea por nombre. Entonces aquí tengo un problema que es con esta columna que se llama nombre, ¿por qué? Porque esta columna nombre se llama nombre cliente en el modelo datos que definimos. Para cambiarle el nombre, seleccione, se ubica el mouse, le da click sobre, un momentito que voy a cogerle el truco aquí, aquí le aparece cuando selecciona. Aquí, ah, listo. Coloque el mouse un poquito a la derecha al final del nombre de la columna y le va a aparecer un lápizito ahí. Dele click en ese lápiz y va a especificar cómo desea mapear el nombre de la columna. En este caso la hemos llamado por estándar nombre underscore cliente y dele click por favor en el chulito para que acepte. Dele editar por favor en el click y debería parecerle que hay un campo que está renombrado. Perfecto, listo. Ahora se nos olvidó configurar la salida de la campaña, dele click por favor en la salida de la campaña que se nos olvidó configurar. Y recordará que esta herramienta permite hacer dos funciones sobre las tareas que tiene una campaña que son o insertar más tareas o borrar tareas existentes. Para este caso en particular vamos a insertar, vamos a coger el primer estado que se llama en revisión, se la vamos a asignar al dueño de la tarea que es Luis Martínez. De pronto se preguntará por qué sale por defecto no asignada, por qué quizás en el momento de poblar todavía no sabe a quién le puede asignar, porque la herramienta le permite tener un paso en el workflow asignado a varias personas, pero tú podías dividir las tareas entre esas personas que digamos están para ese paso. Esta prioridad aquí tú puedes manejarla, pues ya es algo más interno de cómo la vas a manejar, si es alta, media, baja y cómo internamente se maneja cada una de esas prioridades. Listo y aquí recuerde darle aquí safe. Y listo, ahora lo que deberíamos hacer es ejecutar entonces el job. Listo, aquí escoge la infraestructura. Bien, el tiempo de ejecución demora porque los recursos están compartidos con millones de usuarios que han creado alguna cuenta teal. Asumo que cuando usted pues adquiere una licencia de talent cloud, pues el tena en el cual reserva los recursos es privado para usted, entonces los tiempos de respuesta pues tendrían que bajar dramáticamente. Sí, dígame. Ok, vamos a ver. Sí, eso es porque, bueno, ese warning que está ahí es porque intenta buscar datos en la campaña y no hay. Dele a F5, por favor, a su ventana, de F5 recargar un momento. Váyase nuevamente a la campaña cuando termine de recargar, dele clic en la campaña y sí, sí tomo los campos. Listo, dele run ahora. Escoja, por favor, el engine tipo Spark Local y dele run, por favor. Si ya terminó, revise en su data staywars, si las tareas, por favor, si son tan amables, las tareas de la campaña de la aerolínea y deberían estar ahí. Aquí está, TAS, aerolínea. Y aquí está. Y el caso del nombre cliente, aquí me salió un error. Vea, dese cuenta que este nombre cliente no me lo tomó. Voy a revisar el modelo para ver qué pasó, cómo lo llamé. En el modelo lo llamé. El campo lo llamé. Perdón, es el modelo de la aerolínea. El nombre cliente lo llamé. Nombre underscore cliente. Voy a ver cómo salió de este lado. Qué raro. Reviso para ver el pipeline. No sé si ha salido el mismo error. Algo particular, no me tomó la configuración. No sé por qué. Dese cuenta que esta configuración no sé si fue que no la salvé. Nombre underscore cliente. Editar. Un momento, un momento. Aquí nuevamente, nombre underscore cliente. Doy el chulito. Doy editar. Y creo que no le di safe. Ahora sí. Confirmo para ver. Listo. Intento ejecutar nuevamente. El caso suyo, Brenda, seleccione todo. Listo. Ahí cambia el nombre. Y a mí fue que no le di safe. Dele ahí clic, por favor. Nombre cliente. Y tiene que darle el chulito al final porque si no, no tiene el cambio. Dele safe ahí si está mal Brenda para que tenga el cambio porque si no, no lo, no lo mantiene. Listo. Reviso ahora sí. Nuevamente, debería tener el doble de tareas, pero las tareas que agregué ahora deberían tener ahora sí el nombre cliente. Efectivamente, aquí están las tareas nuevas que agregué, pero ahora con el nombre de cliente. Mientras alguno termina para que hiciste ejemplo, porque es muy común que los nombres de los modelos no cuadren exactamente con los nombres de columna del darsteco original y eso entonces va a impedir que se complete. Jimena, ibas a comentar algo. Coloca en AWS, no hay problema. Manda, por favor, el correo y la contraseña. Ok, perfecto. Bien, ese es el ejemplo. Entonces, el caso Brenda, revisemos para ver el caso suyo. Tiene los datos, tiene todas las tareas vacías. Muestren si es tan amable el pail line. Listo, revisemos que tampoco Brenda le aquí estoy compartido su pantalla y revise para ver si quizás tiene el mismo problema. Vaya al fiel selector si es tan amable. Muestren por favor la configuración de ese fiel selector a nivel de nombres de por favor. Dele clic ahí. Ok, nombre del cliente listo del editar a editar al del cáncer ahí por favor. Si no hicimos ningún cambio, cáncel y dele clic nuevamente en campaña. Ejecute por favor nuevamente ese ese yo para ver si fue que cuando se ejecutó quizás el había un problema de configuración de la ruta nuevamente para ver. Ok, perfecto. Brenda, voy a compartir por aquí por el chat las credenciales de acceso a la cuenta. Ese sería el correo. Y este sería la clave un poquito complicada, pero no la fácil. Perfecto, me decía alguien más. Beatriz, vamos un momento a ver qué pasó. Mientras esperamos a ver. Muéstreme listo el fiel selector. Muéstreme la campaña, la campaña de clic en la campaña, por favor. Eso perfecto ahí. Ah, ok. Creo que el estado a donde usted lo envió es revisado, no en revisión. Entonces hagamos lo siguiente. Váyase al Data Stewards. Listo, momento listo, Data Stewards. Entre a las tareas de la campaña de la Euro línea, que sería la segunda, perfecto. Y en el estado, cámbielo a revisado. Y ahí está. Aclaro que este error no es tan común hacerlo porque normalmente los pasos están especificados para un grupo de usuarios. Lo que pasa es que como nada más tenemos un solo usuario, ese usuario tiene derecho a mandar los datos a cualquier estado. Entonces, pero sí, ahí están. Perfecto. Perfecto, están ahí. El caso suyo. Vamos a ver, Brenda, si están a Maldes. Vamos al Data Stewards, vamos a las campañas para ver a las tareas de la campaña. Baje para ver, por favor. Sí, ¿qué creo yo que cuando la ejecutó la primera vez me pareció que seleccionó todas las columnas del fiel selector, o sea, no salía nada para la salida? Y ahora que las habilitamos y tienen los datos. Perfecto. El ejemplo lo que buscaba era solucionar el inconveniente cuando que es demasiado común, cuando el modelo de datos no coincide con los nombres de columna y por defecto, la herramienta lo que hace es un match por nombre de columna. Entonces, con el fiel selector es posible que usted pueda solucionar ese tipo de problemas. Eso es lo que busca. Listo. Ahora terminamos, por ejemplo, de ver algunas tipo de otras campañas que están aquí, por ejemplo. Digamos, esta campaña de merging o de fusión, lo que busca este merging o fusión es tratar de encontrar registros que tengan duplicados. Y la idea es que usted pueda encontrar cuál de esos registros se encuentran duplicados. ¿Este sí es merging? Sí. Entonces, por ejemplo, aquí encontró una posible, digamos, duplicidad tanto a nivel de nombre, last name y muchos elementos. Entonces, lo veo desde este punto de vista. Usted tiene varias sucursales, tiene un dataset que va a unirlos. Entonces, la herramienta lo que hace es que usted hace una campaña de tipo merging y podía encontrar qué columnas tienen datos similares o iguales y usted decidir cuál de esos datos es el que va a quedar. Entonces, eso es lo que hace un merging. Este ejemplo, no lo voy a hacer, ya no me da tiempo. Vamos con una de arbitraje, esta que está aquí. Esta de arbitraje, note que aquí hay una pregunta. El arbitraje le había colocado el ejemplo de la siguiente forma. Usted va a acoger un candidato de unos candidatos y quiere tomar unos candidatos potenciales para que hagan una entrevista. Usted lee de manera que es visual nuevamente la característica si cumple o no cumple ese candidato y aquí resuelve la pregunta. En este caso, la pregunta es sí o no. Pero usted puede hacer cualquier tipo de preguntas con opciones múltiples de respuestas. Sí, no, quizás. Bueno, ahí lo podía hacer. Entonces, cada uno usted lee y puede decir yes, este sí, este no, este yes. Y usted entonces, cuando pase la siguiente etapa, pasarán las preguntas a la cual es usted decida. En este caso se configura para lo que sean sí, pasen a la siguiente etapa. Los no se quedan entonces en la etapa inicial. Esto es lo que haría una de tipo de arbitraje. Y la otra que es de agrupamiento. Esta que está aquí. Note entonces que lo que hace este señor es que a partir de un data sec toma características similares de los registros. Eso para qué es bueno? Es bueno cuando usted quiere segmentar, por ejemplo, los datos que puede segmentar los datos a nivel de ubicación, de estrato social y tomar decisiones con respecto a esos datos. Eso es. Al final, la herramienta no es más nada. Quizás se me escapó algo por ahí, pero eso es el total de la herramienta. No es más nada. Hay que se me haya pasado. Ya es. Eso es toda la herramienta completamente perfecto. Entonces aquí dejamos el tema del talent data staywars. Vamos a seguir con el tema del talent data preparation. Y eso terminamos el día de hoy. Debería terminar hasta donde terminemos el día de hoy y mañana sí seguimos con el tema del talent big data. Con ese talent big data me va a quedar un poco corto porque anteriormente eran cuatro días. Esto solamente son tres días. Entonces voy a tratar de colapsar la mayor cantidad de conocimiento de los ejemplos que vaya a ser, porque cuando empezamos este tema ya se había dado un curso que se llama el talent data integration que ya tenía una idea de cómo funcionaba el talent. Pero bueno, ahí vemos cómo hacemos para poder transmitir la mayor cantidad de conocimiento. Vamos a pasar de al talent data preparation. Fernanda, no sé si ya pudiste acceder. Te mandé las claves por ahí. No sé si se ve al cuerpo de listo. Voy para la pantalla un momento listo. Entonces voy aquí a lo siguiente que me cargue. No sé, salió aquí un error extraño. Espérate para ver si se fue directamente listo momento. Vamos a intentar lo guiarnos nuevamente a ver. Listo, está un poco lento al parecer. Dejé intento al F5 aquí porque ya está cargando. Listo, esperemos 30 segundos para que habilite este botón y podamos acceder a toda la herramienta de talent data fabric. Me esperan por favor los demás. Bien, si desea, vamos accediendo a la herramienta que se llama talent data preparation para poder subir algunos data sets. Ya sabemos que tenemos algunos problemas a nivel de tiempo de respuesta cuando intentamos subir a la cuna de la set. Por el problemita que tengo es que estoy compartiendo el tenen con muchos usuarios. Bueno, aquí está. Continuar listo, self explorer. No, por favor, Fernanda, no vamos a ubicar aquí en el talent data preparation. Por favor, este de aquí, listo. Listo, ya tomo el control con respecto a tu máquina virtual. Bueno, vamos a continuar. Antes de ver esta parte teórica, vamos a adelantarnos un poquito con este talent data preparation. Para esto vamos a hacer lo siguiente. Todos nos ubicamos en el talent data preparation. Y note que aquí tengo, en el menú vertical, tengo entonces un par de cosas que voy a explicar, pero aquí tengo nuevamente data set. Tome este data set y abra varias páginas en pestañas diferentes para poder ir cargando los diferentes ejemplos que vayamos a hacer. Entonces, en este caso he abierto tres pestañas sobre el data set. Abra tres, por favor. Y ahora se ubica en la primera pestaña y vamos a ir subiendo un par de data set que vamos a tomar como ejemplo. Primero que vamos a hacer entonces es lo siguiente. Váyase al escritorio de su máquina. Tengo el escritorio, escritorio. Váyase a la carpeta que se llama recursos. Accede a la carpeta que se llama TDP de talent data preparation. Accede a casos de estudios y va a donde dice ejercicios. Va al ejercicio número uno que es una carpeta y por cuestión de tiempo nada más suba el primer archivo que se llama data set limpieza datos clientes versión uno punto c s v. Tome este señor y lo suelta en la pestaña que dejó abierta del data set. Abre la siguiente pestaña y va a subir ahora el archivo que se llama ejercicio dos. Los demás no lo suba porque tiene que subir de nivel la pestaña en que estábamos, estábamos en ejercicio uno en la carpeta, suba de nivel la carpeta y ahora vamos a subir ejercicio dos. Y en la siguiente pestaña sube ejercicio tres. Le voy a pedir el favor que mientras de pronto haya algún tipo de sororidad muy particular de pronto con un problema con alguien que no le funcione algo, vaya subiendo usted estos archivos, el cuatro, el cinco y el seis de tal forma en que no perdamos mucho tiempo en esperar a que no suba para hacer el ejemplo. Deje esas ventanas ahí mientras va subiendo. Y mientras usted hace eso, no sé si alguno me voy a comentar algo. Ok, ¿Quién va a lo Fernando así? Sí, ah Brenda, perdón, que peta. Brenda, listo, entonces hagamos lo siguiente. Data set, listo, sí, ya creo que abrió ya la siguiente pestaña que tiene, la siguiente pestaña del browser. Dele click ahí, ah no, pero cierra, cierra esas pestañas que están hacia adelante, entonces es mejor para evitar que tenga tantas. Dele nada más abierta una, listo, listo, cierre también esa. Váyase al menú vertical que está al lado izquierdo y se ubica en data set y le da clic derecho. Dele open new tab, ese que está ahí. Haga eso dos veces más y listo, perfecto. Váyase a la segunda pestaña, la primera pestaña que abrió, nueva. Y ahora sí se va al explorador de archivos de Windows, a las carpetas, perfecto, y ahí entra la carpeta ejercicio uno y sube el primer archivo, el que es .csv, suéltelo acá, listo. Deja eso ahí, quietecito, váyase a la siguiente pestaña y sube ahora ejercicio dos, suba de nivel, la suba de nivel si es tan amable en el programa de archivo, se ubica en la carpeta ejercicios, dele atrás, no, ese no, dele atrás un momento, exactamente. Ahí coge ejercicio dos y lo suelta de este lado. Abre ahora por favor la última pestaña y ahí va subiendo ejercicio tres, a medida que vayamos, haya un break o algo particular, tenga presente en que vaya subiendo los temas. Si hay alguno que está demorando mucho tiempo, entonces por favor lo vuelve a subir nuevamente porque los errores que presentan es específicamente porque no te veo poco recursos, porque esto es compartido y limitado la cantidad de procesamiento que tenemos. Listo, perfecto, entonces ahora, perfecto, gracias a usted, listo. Sigamos entonces, vayamos ahora a la parte teórica de cuál es la función principal de este Talent Data Preparation, mientras usted va subiendo esos archivitos y después nos vamos a la parte práctica. Lo hice de esta manera porque ya tengo experiencia en que perdemos mucho tiempo subiendo y en realidad no se aprovecha el tiempo en su totalidad. Entonces, voy a, listo, ya estoy compartiendo la pantalla, confirmo, sí, perfecto, estoy compartiendo aquí la pantalla. Y vamos a iniciar entonces con este Talent Data Preparation, listo. ¿Cuál es el objetivo principal de esta herramienta? Bueno, resulta en que usted puede tener los datos estructurados. Y aclaro que el día de mañana voy a hacer una introducción y para hacer una discusión interesante sobre las diferencias de datos estructurados, no estructurados y semiestructurados. Eso lo hacemos mañana con el Big Data. Es una característica fundamental en que para mí no lo veo tan fundamental, pero, bueno, es una característica que se especifica en el Big Data y que mañana la vamos a ver en su totalidad. Entonces, como le decía, sus datos ya se encuentran estructurados, pero quizás esos datos te necesitan ser formateados o quizás los datos que tienes necesitas hacer unos cálculos específicos. ¿Para qué debes hacer esos cálculos o para qué hacer ese formateo? Para adaptar los datos a cierto tipo de herramientas, herramientas que pueden ser Power BI, herramientas que pueden ser de Tableau, herramientas que pueden ser para la parte de Machine Learning o herramientas que pueden ser para la parte de elementos de visualización que tiene Quilk. Entonces, al final hay que formatear los datos o hay que hacer algunos procesos de fórmulas matemáticas para llegar y tener, digamos, ese formato específico a donde lo quiero llevar. Listo, esto es muy común para los analistas de datos y para los científicos de datos, que normalmente, aunque tú le das los datos para que ellos trabajen, quizás hay que hacer un formateo a esos datos. Ahora, ¿cuál es la idea fundamental de la herramienta? Partiendo del hecho en que quizás ese analista o ese señor o ese científico de datos no tiene el tiempo para esperar a que un profesional del área y cuando hablo profesional puede ser un desarrollador de T.L. o un developer de database que te pueda formatear los datos así como tú quieres. Como no se puede dar lujo de esperar y perder el tiempo a que este señor le haga eso porque puede estar seguramente muy ocupado. Entonces, se crea esta herramienta de preparación de datos que cualquier persona, abro comillas doble, con conocimientos básicos en tecnología, podía preparar los datos según a él más le convence. Entonces, en esta nueva ola que mencioné el día de ayer, que son los ciudadanos de datos y que se habla mucho del autoservicio que tú mismo puedas configurar los datos o que tú me ayudes a corregir los datos por un problema de calidad que tengo, se crea en ese tipo de herramienta. Aclaro que estas herramientas, pues las vas a poder encontrar en otras plataformas, sea WS o Azure. El caso de Talent la llama Talent Data Preparation, que es una herramienta netamente de autoservicio. Dentro de las ventajas que plantea la herramienta, porque estoy tomando directamente toda esta teoría del tutorial que tienen ellos, te ayuda a agilizar esos flujos de trabajo. ¿Por qué? Porque ya no hay dependencia sobre algunos elementos que tú puedes hacer. Entonces, ya no dependes del developer, ya no dependes, por ejemplo, de estar de tele para que te los formatee como tú desees. Ahora tú mismo lo puedes formatear y eso te agiliza, te quita algunos cuellos de botella para esos tipos profesionales que se pueden dedicar a hacer otras cosas. Como su nombre lo dice, habilita el autoservicio, porque evidentemente tú lo puedes hacer. Y aquí hay algo un poco más de publicidad. Dice que da conectividad a cualquier fuente de datos. En realidad, pues eso es más de publicidad. La teoría, o sea, el tutorial dice que tiene conexión a 600 fuentes. Yo en realidad no he contado si en realidad son 600 fuentes, pero si te permite conectar a Azure, a Bigtable, a Databricks, a muchos tipos de plataformas que son muy comunes, en realidad lo que he hecho sí me permite la conexión. No he hecho, digamos, conexiones sobre algunos sistemas que no son muy conocidos, porque no trabajo con ellos. Pero bueno, la teoría dice que te ofrece 600 conectores a diferentes fuentes de datos como tal. Ahora, esto es lo que plantea, digamos, el tutorial de los beneficios principales, lo estoy tomando literal, esta parte del tutorial. Una es que te ofrece la integración y catálogo de datos. Hay que entender ese catálogo, porque quizás ya hemos visto que hay unas herramientas que te permiten catalogar. La primera en el ecosistema de talent se llama Talent Data Catalog, pero yo puedo hacer catálogo de datos con Talent Data Inventory. Y esta herramienta lo dice, bueno, pero yo entonces esta herramienta también me permite catalogar. Bueno, en realidad ese catálogo de datos que llama él es que ahora cuando tú subas un data sec al Talent Data Preparation, él te va a catalogar las columnas según unos datos semánticos que tenga. ¿Qué son datos semánticos? Son datos que puede ser una expresión regular o quizás un diccionario, que eso fue lo que vimos ayer. Entonces, ya por defecto, ayer les mostré, por ejemplo, que él tiene una cantidad de datos semánticos y buscamos, por ejemplo, animales. ¿Qué era un diccionario? Un diccionario que es para talent, simplemente un listado de nombre de animales. Entonces, hace lo mismo que el Talent Data Inventory, que en pocas palabras, cuando tú subes el data sec, él intenta verificar a qué grupo pertenecen las columnas que están ahí en cada uno de los elementos. Entonces, te la puedes clasificar como email, como código postal, como animal, dependiendo de los datos que estén ahí. A eso es lo que él llama el catálogo de datos, en realidad, o la catalogación que se hace. No es nada el otro mundo, simplemente es eso que se cataloga en las columnas según los datos semánticos que estén establecidos. Aquí se hace, sí, un descubrimiento y perfilamiento de datos. Si recordarás el día de ayer cuando hablé de curación y le dije que cuando se hace análisis de datos a nivel de calidad, hay dos procesos fundamentales. Uno que se llama limpieza, que es sinónimo de curación, y el otro que es la parte de perfilamiento. El perfilamiento es encontrar anomalías. Entonces, la herramienta te va a permitir hacer tanto la parte de perfilamiento de encontrar anomalías en los datos, así mismo te va a permitir hacer limpieza de esos datos según lo que tú requieras. Te da, entonces, enriquecimiento de conexión porque ahora también te va a permitir hacer joins las herramientas. Entonces, tú puedes tener diferentes cuentas de datos y hacer los joins y te hace, entonces, que tú puedas automatizar las tareas. Ya les voy a decir cómo es ese cuento de automatización como tal. Eso es lo que plantea, en realidad, y lo que tiene el Training Data Preparation. Y aquí simplemente unos conceptos clave que vamos a ver y que vamos a trabajar durante el día de hoy. En primer concepto, el concepto pues de data sec, que básicamente data sec que son datos en crudos, que puede ser tabla o puede ser un archivo en formato estructurado. Hay una parte conceptualización que hay algunos autores que no definen un data sec para datos no estructurados. Por ejemplo, una imagen. Hay algunos autores que sí, pero eso es netamente a nivel conceptual. Pero normalmente los data sec que tú manejas tienen una estructura y al final todos estos data lay, data lay house, que lo voy a discutir el día de mañana. Al final, aunque los datos estén no estructurados o semi estructurados, siempre, siempre se busca estructurar los datos. Entonces, un data sec puede estar en diferentes formatos. Aquí te voy a aclarar algo, hay algo en el tutorial que no cuadra, en el sentido de que el tutorial plantea en que los data sec pueden estar en formatos estructurados de tipo CSV, pueden ser tablas, pueden ser archivos XML y pueden ser archivos JSON. Las pruebas que he hecho con archivos JSON no me ha funcionado. Es decir, no está leyendo de forma correcta los archivos en formato JSON. Entonces, ahí hay algo que no está, digamos, que no es tan real con respecto a lo que dice el tutorial. Por otro lado, entonces, ese es el concepto data sec, que seguramente tengo el concepto data sec y data source. Data sec es el dato, como tal, el conjunto de datos. Y data source sería la fuente donde obtengo ese datos. Ahora viene un concepto que se llama preparación. La preparación lo que hace es que vincula una receta con un data sec con el objetivo de hacer algún cambio en el formato o calcular algún algo matemático que quieras, algún tipo de operación matemática que tú requieras. Entonces, cuando hablamos del concepto de preparación es que yo incluyo una receta para un conjunto de datos o un conjunto de funciones que tú haces. Digo conjunto porque yo puedo tener data sec y ya puedo hacer join sobre data sec en la herramienta como tal. Ahora preguntarán ¿qué es una receta? Bueno, una receta son un conjunto de funciones que tú haces. ¿Qué tipo de funciones? Funciones que ya están preestablecidas en la herramienta. Esas funciones te vas a dar cuenta que son prácticamente las mismas que te mostré ayer en el data stack worksheet, que no entramos en detalles porque te dije, no tiene sentido que te explique dos veces lo mismo. Entonces, las funciones que están establecidas allá en el data stack work son las mismas que vas a encontrar en el data preparation con una pequeña diferencia que el data preparation tiene más, mientras que el data stack work tiene una pequeña parte que tiene el data preparation. Listo. Entonces, esa receta define un conjunto de pasos de esas funciones que están establecidas y al final ¿qué es una función? Pues una función es una acción que vas a aplicar sobre una fila, sobre una columna o si tú quieres sobre el data sec completo. Ahí te coloco un ejemplo que es remover filas vacías, cambiar tipos de datos, etcétera. Listo. Entonces, eso es simplemente el talent data preparation. No sé de forma cómo lo vas a incluir dentro de tu diario de vivir, si es que te gusta hacer esta parte, pero es una herramienta que pues está dirigida más para un usuario final en el cual no tiene unos conceptos tan técnicos, no tiene conceptos a nivel pues que son requeridos para otras herramientas más especializadas, conceptos a nivel de programación y conceptos a nivel por ejemplo de SQL. Entonces, es más para un usuario final con ese tipo de características. Te voy a mostrar la herramienta y tú analizarás en qué caso pues tú la podrías usar en tu diario de vivir. Listo, aquí no hay más nada. Ah, bueno, aquí se me escapaba, aquí agrego el concepto de tipo semántico que es el mismo que vimos en el talent data stewards. Son exactamente lo mismo y lo que tú hagas, los tipos semánticos que tú hagas en el data stewards se comparten con lo del data preparation y al revés, los que hagan el data preparation también se comparten con el data stewards. Listo, entonces ahora sí vamos, voy a acceder aquí a la herramienta, por favor. Verifiquemos antes de empezar si el primer data sec se subió de forma correcta. En el caso mío no se subió. Todavía está procesando. Por experiencia he visto que cuando ya demora más de minutos creo que el data inventory va a fallar y no lo va a procesar. Entonces voy a hacer lo siguiente, voy a abrir otra pestaña aquí y lo voy a intentar abrir nuevamente. Voy por acá y voy a intentar entonces, perdón, era en el dataset. Voy a intentar subirlo nuevamente porque tuve un error. El tipo de errores no salen a nivel ya de una licencia que adquieras y que hayas cancelado, esto no suele. Esta herramienta al igual que la data stewardship te permite utilizarla en formato híbrido. Híbrido quiere decir que puedes instalar a nivel on-premise esta herramienta como tal. Bueno, a ver a quién le subió. Alejandro veo que le subió. Fernanda parece que le subió y veo que Beatriz tiene un error, no sé, salieron como 50 errores. Revisa Beatriz por favor si te subió el primero que se llama data del limpieza. No sé si se te subió ese señor. Ok. Permíteme e intento acceder para ver. No te reacciono, permíteme e intento acceder a tu máquina un momento. Reviso para ver. Listo, entonces. Bueno, vamos a ver. Listo, hay que volverse a lo guiar entonces. Bueno, subió. Si sube correctamente, normalmente como máximo dos minutos. Si pasa de dos minutos por experiencia en esta versión estrial, creería que no va a subir de forma correcta en el talent data inventory. Listo, esperemos que está demorando para cargar. Creo que sí, está demorando para cargar. Un momentito por favor que, Listo, no sé por qué está demorando tanto para cargar. Listo, voy aquí al preparation data set. Sí, te subió Beatriz, lo que es que como que si te subió, subiste todo. Excelente. Estaba bien como que había un error ahí, no sé, extraño. Bueno, vamos entonces. Vamos entonces y continuemos por favor. Bien, entonces aquí tenemos el concepto de preparación que fue el que te mostré a nivel teórico. Una preparación relaciona un data set con una receta. Vamos aquí a la parte de preparaciones y te aconsejaría, por buena práctica, que crees un folder y ese folder puedas organizar las diferentes preparaciones. En este caso, por cuestión de tiempo, vamos directamente a crear las preparaciones aquí, directamente. ¿Por qué el folder? Porque quizás puedas compartir tu tenant, esté compartido con diferentes usuarios y puedas ver las preparaciones de los demás. Entonces, sería muy interesante que puedas crear un folder que analice tus preparaciones o de los proyectos que tengas formados para que de pronto no haya, digamos, algún error ahí o que te puedas confundir en un par de cosas. Sería, en este caso, como cada, digamos, estamos en todos o que estamos en el mismo tenant físicamente, estamos en espacios separados a nivel de almacenamiento de lo que vayamos a hacer. Listo. Entonces, vamos a agregar aquí una preparación. Y, como te decía, primero vamos a colocar entonces el nombre de la preparación. Entonces, vamos a llamarla Dataset Curación. Sería, como buena práctica, que le agregues al Dataset la fecha en el cual hiciste la preparación, perdón, la fecha en la cual hiciste. Entonces, voy a colocar aquí 2025. Sería 0128. Y, si deseas, vamos a colocarle Underexcord y vamos a colocarle aquí Preparación. Ya tú el estándar, si colocas un sufijo o un prefijo, entonces ya tú decides. Preparación. A colocar así. Preparación. Lo llamé Dataset Curación. Todos separados por tipo Snake Case. Y le coloqué la fecha actual. Como la preparación tiene que estar ligada a un Dataset, entonces vamos a buscar el Dataset que se llama Dataset Limpieza Datos Clientes. Nota que te pueden aparecer en el caso mío deshabilitados. ¿Por qué deshabilitados? Porque el Data Inventory no lo progresó de forma correcta. Entonces, voy a escoger este señor que se llama Dataset Limpieza y le digo Submit. Perfecto. Aquí. Y entramos entonces a la pestaña y a la interfaz, perdón, a la interfaz del Talent Data Preparation. Listo, creo que todos estamos aquí. Bien, entonces, aquí tenemos primero el nombre. El nombre lo puedes cambiar exactamente como he cambiado el pipeline. Cada vez que colocas sobre el nombre, aquí le puedes cambiar en el lápizito. Permíteme y compruebo un pequeño bot que tenía esto. El bot que tenía hasta el año pasado era que cuando intentaba cambiar el lápizito, la primera vez no me funcionaba. Me tocaba hacerlo dos veces. Voy a intentar hacerlo aquí y probarlo para ver si se corrigió ese bot. Entonces, voy aquí. No lo hago usted acá, es simplemente para probar. Voy a cambiarlo aquí. Underscore 1, voy acá y fíjese que no lo cambió la primera vez. Hago la segunda vez. Listo, al parecer ese bot no ha sido corregido. Entonces, tenga en cuenta que hay un pequeño bot ahí cuando se cambia el nombre porque la primera vez tú lo cambia directamente aquí. Hay que hacerlo dos veces para cambiar el nombre. Listo, entonces de este lado izquierdo recordará que una preparación asocia un dataset con un conjunto de recetas. En este lado izquierdo va a colocar las recetas que hagamos sobre este dataset. Aparece vacío porque no hemos agregado ninguna. Del lado en la parte del medio te hace entonces, te toma lo siguiente, te toma un row con, perdón, un número de fila y te aparece las columnas que hayan sido especificadas dentro del dataset como tal. Recuerde que este dataset está copiado en el Talent Cloud. Significa que si tú tienes, por ejemplo, un S3, tienes un archivo un S3 o lo tienes, por ejemplo, en Azure y lo quieres preparar, primero tienes que pasarlo en realidad. Primero se pasa al Talent Cloud y el Talent Cloud se procesa. Ojo con la parte de seguridad que en ese paso de pasarlo del Azure o S3, pasarlo acá al Talent Cloud. Bien, pero esto está aquí a nivel del Talent Cloud, está en el, digamos, en el tenan, a nivel de almacenamiento que tengo aquí. Y aquí aparecen los nombres de columnas. Note entonces que cuando hablamos de catálogo de datos pasa lo siguiente. Aquello dataset que no tiene los tipos de datos, ya sea una de ese tipo, XML, un JSON, un CCV, pero te aclaro que el JSON y el XML no me han funcionado aquí en esta herramienta. O sea que en realidad no le he preguntado soporte, voy a preguntarle, ahora que no se me olvide. Pero el del CCV recordará que los nombres de columnas no está, los datos no están tipeados. Es decir, no tienen un tipo de datos. Entonces lo que hace la herramienta es lo siguiente. Toma un preview y ese preview puede ser inicial, es decir, por defecto toma un preview de 10.000 filas e intenta con los datos que están ahí definir a qué tipo de datos pertenece. Aclaro que ese preview tú lo puedes cambiar. Tú te preguntarás para qué cambiaría un preview. Lo que hace es que la herramienta se puede equivocar en definir el tipo de datos. Imagínese la siguiente forma. Imagínese que SID hasta la fila 10.000 son puros números, pero en la fila 10.001 aparecen letras y números. Por ende, como él solamente toma un preview hasta el 10.000, él catalogará el dato como integer. Pero en realidad tu dato debe ser textual. ¿Por qué? Porque tiene caracteres alfanuméricos. Entonces hay que tener en cuenta que aunque aquí se haga una clasificación, ten presente que esa clasificación puede haber un error, dependiendo de la cantidad de datos que tenga tu dataset. El caso si tú deseas cambiar como tal el tipo de datos, sencillo, tú te vas aquí, por ejemplo, aquí donde está el menú hamburguesa, de cada una de las columnas, le das click aquí y tú fácilmente, aquí está column, aquí te dice el tipo de datos, integer, le das click aquí y tú puedes cambiar el dato. Lo puedes cambiar ya sea a un tipo de datos, digamos que llama java básico que es boolean decimal o lo puedes cambiar a un tipo autosemántico. Nota ahora que nombre te aparece como texto, pero está clasificado como first name. Esto aplica exactamente como trabaja el data inventory, que es tomó esos datos que aparecen en esa columna y da la casualidad que tiene un tipo autosemántico en el cual, por lo menos, el 60% del preview coincide con esos datos que están en el dado semático llamado first name y entonces lo clasifica como first name. De igual forma tú puedes cambiar esa clasificación si tú quieres. Entonces da de cuenta lo siguiente, ahí tenemos cuatro columnas, la primera clasificada como integer, la segunda textual pero clasificada como first name, la tercera columna apellido textual pero clasificada como last name y la última clasificada como day y entonces eso es lo que llama la teoría al catálogo de datos. Perfecto, eso no hay nada de otro mundo, listo. Vamos a ver, vamos a analizar cómo funciona en realidad la herramienta y después nos vamos a este menú que es un poco extenso. Este menú de que estoy mostrando aquí que está del lado derecho, en realidad va a tener las mismas funciones de talent data stewards pero aquí se agregan unas nuevas. Vamos a hacer algo sencillo entonces, vamos a concatenar el nombre con el apellido porque quizás el analista o el señor el científico de datos necesita que esos datos estén concatenados. Entonces qué es lo que tú haces, primero vamos a aplicar una función, cuando aplicas una función tienes que decidir si la función vas a aplicarla a la columna, a la fila o al dataset. Nota que del lado derecho te aparece entonces columnas row y table indicando que funciones aplican a columna, a fila o a tabla. Listo, ahora cuando seleccionas una columna automáticamente la herramienta te dice, bueno mira ve, que fue lo que te mostré teóricamente, tú puedes hacer perfilado de datos. Entonces en ese perfilado de datos recuerden que lo que buscar son anomalías que pueden estar en los datos. Por defecto cada vez que yo selecciono una columna se habilita del lado derecho un menú con varias pestañas en que te va a mostrar ciertos datos que te pueden ayudar a ti a encontrar ciertos errores de calidad que pueda tener. Cuando el dato es numérico lo que hace es que te da un diagrama de barra de cuántas veces aparece ese datos. Por ejemplo te está diciendo aquí que el valor 1 aparece una vez, entonces ahí te da un diagrama de frecuencia mostrándote para ver cuántas veces repite ese dato. Si vas en ese menú sobre la columna ID y vas aquí donde dice VALUE te va a sacar unos datos que son sumamente importantes para cualquier herramienta de calidad de datos, que es contarte cuántos registros hay, cuántos distintos hay, cuántos duplicados hay, cuántos válidos, cuántos vacíos, cuántos inválidos hay y si es numérico te da algunos elementos de mínimo, máximo, media y desviación estándar. Lastimosamente no alcanzamos a ver el talent data quality pero con cuando el dato es numérico tú puedes encontrar con la desviación estándar que puede haber un error en los datos. Eso se aplica más que todo a valores numéricos y eso para que sería viable. De pronto tú tienes una tabla de precios y con esos datos tú puedes encontrar algunos errores que puedan tener presente esos datos, que puede ser porque se calculó mal o porque simplemente un error de digitación. Si vamos aquí donde dice PATRONES, lo que te hace esto técnicamente es un análisis de patrones, entonces te está diciendo cómo se están presentando los datos en la columna. Aclaro que los que está presentando aquí son del preview, es decir si tú tienes un millón de datos y tu preview es de 10.000 te está mostrando lo que está lo que consiguió en los primeros 10.000 datos. Quizás se equivoque porque porque tienes más datos en el preview. Entonces aquí el patrón está mostrando, mira aquí tengo el 9 y 9 indica dos números, estoy diciendo es para ver acá. En esa columna encontré los siguientes patrones, hay columna que tienen dos dígitos y hay columna que tiene un dígito. Y al final aquí donde dice ADVANCEDS aquí te va a mostrar una gráfica cuando es numérico que te va diciendo entonces algunos medios máxima de división estándar y que la pueda ver de manera gráfica. Si cambias de columna y te vas al mismo menú te va a cambiar un poco las estadísticas, las gráficas. Por ejemplo, esta sería un poco la misma gráfica, siendo que en la muestra diferente aquí me está diciendo ISABEL cuántas veces aparece. Si vas aquí a un devalue te aparece entonces las mismos datos, si vas a patrones está diciendo mira lo que ahí está son pura palabra, es decir no hay espacio en blanco. Entonces él mide las palabras por espacio en blanco. Cada espacio en blanco le indica una palabra. Entonces ahí notas entonces que ahí no hay valores numéricos, hay pura letra lo que está ahí. Y al final te muestra un poco el ADVANCED no se muestra cuando es texto. Eso es lo que se hace y de ahí viene ese concepto de perfilamiento porque te da algunas opciones que son características, algunas herramientas de calidad para encontrar algunos errores. Lástima no vimos ese curso para poder ver con estos datos cómo se pudieran encontrar errores. Bueno, pero entonces vayamos a lo siguiente. Vamos a ubicarnos entonces en la columna en la cual yo quiero hacer una función. Para este caso en particular por favor ubíquese en la columna nombre y yo deseo concatenar esa columna nombre con la columna que se llama apellido. Voy a hacer una tarea básica. Váyase por favor aquí al filtro que es este que está aquí, a este filtro de aquí y coloque la palabra concatenate concatenar en inglés concatenate y debería aparecerle conca conca concatenate aquí está en inglés y debería aparecer una función que dice concatenate with. Escojamos esa función por favor y esta función cómo trabaja. Bueno, en primer lugar vas a encontrar algunas funciones específicas que te van a permitir crear el resultado en una nueva columna. Entonces si tú habilitas aquí habilítelo por favor este chulito que está ahí para que sea nueva columna. Significa que lo que voy a hacer va a crear y no va a afectar la columna original. Ahora, la función cómo trabaja. En este caso si tú quieres le puedes colocar un prefijo antes de la concatenación. Si quieres lo dejas en blanco y vas a encontrar muchas funciones que hacen lo siguiente. Las funciones las puedes aplicar con otra columna o con un valor fijo. En este caso si coloco otra columna tendríamos que elegir las columnas que están en el traseque con el cual quiero hacer la operación de concatenación. En este caso deseo otra columna y voy a elegir que la deseo concatenar con la columna de tipo apellido. Te pregunta ahora si vas a colocar un separador. En este caso deje un espacio en blanco por favor para que no se unan los dos columnas y te pregunta si el separador cómo lo vas a colocar. Entonces aquí te pregunta el separador lo colocó si las dos columnas tienen datos o lo colocó siempre. ¿Qué pasaría aquí? Deberías escoger la primera opción. ¿Por qué? Porque si no tengo nombres e intento concatenar me va a quedar un espacio en blanco y creo que entendemos lo que nos pasa con el espacio en blanco cuando hacemos un word. Entonces buscamos por una columna y si la columna tiene un espacio en blanco al inicio o al final intentamos buscar por ese criterio de búsqueda no lo encuentran. Entonces dejamos que solamente, estoy diciendo aquí si dejo bot values solamente me va a colocar el espacio en blanco solo si las dos columnas están no son vacías. Y aquí por último te coloco un sufijo. La herramienta en la mayor parte de funciones te permite hacer un preview. Ese preview te va a mostrar cómo quedaría los datos después que termine de ejecutar pero sin hacer el cambio permanente. Dale por favor en preview y nota que te agregó una nueva columna llamada nombre onderscore apellido. Si tú das clic fuera en cualquier parte ese preview se pierde no te queda como receta porque simplemente estabas probando para ver cómo te quedaban esos datos. Entonces para hacer este cambio permanente dale aquí en Submit por favor y ya esto hace permanente, bueno permanente no tanto porque lo puedo cambiar el cambio como tal. Nota ahora que la receta te agrega una nueva función. Si te equivocas después del Submit, del lado de la receta vas a encontrar en la parte del nombre de la receta vas a encontrar un bote de basura. Si ese bote de basura le doy click ahí automáticamente borro como tal esa receta o esa función más específicamente perdón de la receta. Listo hagamos entonces lo siguiente ahora. Este primer ejemplo lo que busco es que entienda en su completitud cómo es la herramienta cuál es la función específica. Ya vamos ahora sí a los especializados que son las funciones pero la idea es que entienda. La herramienta maneja algo que se llaman las versiones. Se te recomienda en que uses versiones. ¿Por qué usar versiones? Primero porque puedes ver el estado de cambios que ha tenido tu preparación. Segundo porque quizás tus preparaciones tengas algunos jobs en estudio que dependan de esa preparación y al cambiarla te pueda dañar lo que te funcionaba anteriormente. Una lamentable preparación es que tú puedas ver qué tantos cambios tengo y que si yo deseo puedo ejecutar las preparaciones en la versión que yo desee. Sería recomendable entonces que usaras versiones. Esas versiones tú las vas a encontrar en la parte superior derecha al ladito del room vas a tener ahí con una especie de un botón que botón circular que tiene una especie de libros ahí. Dale clic ahí a ese señor que está ahí y al darle clic te da un menú para agregar una nueva versión en la parte superior derecha al ladito del room al lado izquierdo del le das clic ahí y te agrega entonces dale adversion y solamente estas versiones no puedes simplemente lo que te permite es agregar una descripción y lo ideal es que en la descripción especifica los cambios que tiene esa receta. Entonces aquí podemos colocar se concatenó el nombre y el apellido y le digo adversion. Se coloqué en la descripción se concatenó el nombre y el apellido. Si quieres volver al menú le da nuevamente clic en el en el botón de la versión y te vuelve al menú de las funciones. Haga lo siguiente entonces borre por favor la columna nombre cómo borramos una columna se va aquí al menú hamburguesa de la columna y dígale delete column note que automáticamente se agrega eso en la receta borre aquí apellido y por favor cambie el nombre de la columna de nombres apellido cámbielo rename column cámbelo a nombres espacio completo y le da subtin. Para probar este concepto de versiones que solamente lo voy a hacer en este primer ejemplo ya en los demás me voy a dedicar exclusivamente a la parte de funciones. Quiero que con este ejemplo entienda por completo la herramienta. Vamos a agregar una nueva versión aquí especificando los cambios que hicieron. Voy a agregar aquí una nueva versión y voy a decir se eliminaron las columnas nombres y apellidos y se cambió el nombre de la columna a nombres completos y le digo adverso. Es importante en que cuando vaya a crear ese tipo de recetas sea lo más eficiente posible trate de no repetir funciones. Por ejemplo hay personas que hacen lo siguiente toman por ejemplo una columna la convierten a tipo título primero después la convierten a tipo mayúscula y después otra vez la convierten a tipo título. Ahí está repitiendo muchos pasos. Entonces tiene que buscar que estas recetas sean lo más eficiente posible. Aclaro que la herramienta no tiene ningún, bueno a nivel de tutorial no tiene un máximo de filas con las cuales va a trabajar. El máximo de filas solamente es para el preview con lo que va a hacer la parte de definir los tipos de datos. Eso es nada más el preview pero la herramienta no tiene ningún tipo de, digamos de límite para el tamaño que tengan estos de hacer. Esto que hemos hecho es muy sencillo entonces he creado, he tomado un dataset, he creado una preparación. La preparación se basó en un dataset, después creé una receta con un conjunto de funciones, después creé un conjunto de versiones que sería interesante que las manejara. Ahora aclaro en este punto en que está aquí esta receta no ha cambiado el dataset original. Lo que me está mostrando es cómo quedaría después de ejecutar esta receta. Entonces vayamos a lo siguiente ahora. Si tú quieres hacer los cambios necesitas ejecutar la preparación. ¿Cómo la ejecutas? La ejecutas acá en el run. Vete acá a este run, por favor. En el run, por favor. Sí, efectivamente es superior derecho, exactamente, es superior derecho. Este run que está aquí. Entonces, ¿qué hace con este run de acá? Con este run de acá puedes entonces definir el destino que va a obtener después de ejecutar con el dataset original la receta. Una es que tú puedes mandarlo al mismo dataset que no es tan buena práctica. No es tan buena práctica perder el original, porque si hay un error en la receta se me puede dañar y cómo recupero nuevamente. Entonces para cualquier, digamos, trabajo que tú vayas a hacer o proyecto no es buena opción modificar original, quizás sacar una copia, pero mantener siempre el original por si nos equivocamos en algún paso. Si quisiese, por ejemplo, cambiar original aquí le diría que me lo mandará un dataset existente, pero deseo hacer lo siguiente o puedo hacer lo siguiente, mandarlo a un nuevo dataset o si quiero puedo mandarlo a una tabla. Pero en este caso vamos a hacer lo siguiente. Váyase a esta opción que se llama descarga directa, que es la última, que aquí no lo mandaría directamente al talent cloud, sino que va a permitir descargarlo en tu máquina. Dale por favor next. Aquí te piden el formato de salida, en lo cual tú lo quieres. Aquí sí lo he probado y se ha funcionado. Note que aquí hay dos formularios, que dos tipos de datos que quizás ya los ha visto, que es Abro y Parquet. Ese Abro y Parquet lo vamos a discutir en el Talent Big Data que coge relevancia para algunos tipos de motores, como el caso de Hi, Redshift, pero bueno, en este caso mandalo a un CSV. Ese Abro y Parquet lo explico mañana y aquí tú puedes colocar las características del CSV, cuál va a ser el carácter de separación, si vas a usar algún carácter para aquellas columnas que tenga el mismo carácter de separación. Bueno, en este caso vamos a verlo. Aquí next. No vamos a cambiar nada. Y aquí hay algo que tiene lo siguiente. Note que aquí está un keep row order, mantener el orden que está deshabilitado por defecto. Bueno, ¿Qué es lo que hace? Ese keep row order lo que hace ese señor es que se mantenga el orden de los registros tal cual como vayan entrando. Dirás, ¿Pero y eso qué tiene que ver? Tiene que ver mucho. Si yo mantengo el orden de los registros, hay un problema en que le queda complicado a la herramienta hacer paralización. O sea, permíteme y hago acá lo siguiente. Voy a hacer acá un diagram, un diagram más que un diagramita aquí, para que me entienda la importancia de ese señor. Eso más que todo aplica cuando el data sec tiene una gran cantidad de datos. Entonces vamos a lo siguiente. Sí ve mi pantalla, ¿Verdad? Imagínese que este es el data sec original y este data sec tiene una gran cantidad de registro. La gran cantidad de registro es netamente subjetivo y depende netamente de la empresa. Mientras que para una empresa 10 millones de registros puede ser mucho, quizás para una empresa puede ser muy poco. Entonces esa gran cantidad termina siendo subjetivo. Pero véalo a este punto de vista. Voy a colocar aquí 10 millones de registros. Vamos a suponer entonces que tú lo que deseas hacer, la función que deseas hacer es sencilla para el caso en particular, que es tomar el nombre y ese nombre lo voy a concatenar con el apellido. Eso es algo netamente sencillo. Pero entonces pasa lo siguiente. Eso como es sencillo y si yo tengo una gran cantidad de datos yo podría pensar en lo siguiente. Dividir este registro por decirte algo en n partes. En este caso lo voy a dividir en tres partes, parte 1, parte 2 y me queda en tres partes. Ahora al dividirlo en tres partes puedo hacer lo siguiente, lo que uno llama programación concurrente, que lo hace internamente. ¿Qué haría? Tomo que un núcleo del procesador, un core, procese este señor que está aquí. Otro core a nivel de hardware procese este señor de acá y otro core a nivel de hardware procese esto acá. Partiendo del hecho entonces tú reducirías el tiempo de procesamiento a una tercera parte. ¿Por qué? Porque estás paralizando. Ahora, ¿Qué tiene que ver esto que te expliqué con esa columna? Entonces pasa lo siguiente. Si la columna mantiene, si yo mantengo el orden de las filas como está establecido, queda muy complicado hacer esta paralización. Significa que los registros le toca manejarlo uno por uno, un solo core. Tú dirás, ¿En qué casos eso es conveniente? Imagínate que tú tengas tengas ventas por ciudad y entonces tú quieres ventas por ciudad de cada país. Entonces tú quieres rankear por cada país cuál es la ciudad que más vende. Entonces ahí tiene que estar ordenado y en ese orden puedo hacer un rankeo. Ahí no sería buena opción pues ahí tendría que mantener el mismo orden. ¿Por qué? Porque para poder clasificar y si están ordenados de mayor a menor sé que el primer registro correspondería al primer elemento del listado de lo que más venden. Entonces ahí cambiar ese orden de fila te puede dañar los datos. Pero en este caso en que los órdenes de fila no tienen nada que ver la fila anterior con la fila que y mantélo desordenado. ¿Para qué? Para que sea más eficiente. Aclaro que cuando hay casos en que la herramienta se da cuenta en que el orden tiene que prevalecer, te coloca automáticamente y te habilita esto de manera automática. Pero para eso es que sirve el key row order fuera lejan. Si en realidad que el orden no afecta la función que tú vayas a hacer, procesa los datos sin los filas ordenadas. ¿Por qué? Porque va a ser más eficiente porque lo que hace es que el código que se genera para procesarlo paraleliza la función y eso va a hacer que reduzca el tiempo de respuesta de procesamiento. Para eso es que sirve eso entonces. Aquí te piden seleccionar el room profile. Básicamente lo que hace este señor es que él elige la infraestructura donde va a ejecutar. Por defensa tengo este par aquí que este par es el que vamos a ver el día mañana y cómo se usa este par que tiene mucha relación con el talent big data, este par que está aquí. Pero bueno solamente tengo una infraestructura donde lo puedo ejecutar solamente a modo informativo con el TMC, los que vayan a ver, los que vayan a administrar talent, hay una herramienta que se llama el TMC y en el TMC puedes agregar más infraestructura. Es más puedes agregar infraestructura a nivel local. Puedes agregar entonces a nivel de máquina tuya. Defines allá una infraestructura y hace que se ejecute contra tu máquina. En este caso pues nada más tengo una en una versión real, nada más tengo esto. Listo aquí no hay más nada aquí simplemente debe un room por favor. Listo aquí se empieza el proceso de ejecución. El tiempo aunque sea muy pequeño recuerden que como esa infraestructura está compartida con millones de usuarios, por eso es que el tiempo de respuesta tarda mucho. Si quizás solamente modo informativo tengas problemas con los tiempos de respuesta a nivel del SAS, o sea software como servicio que tenemos el talent data preparation, puedes instalar esto a nivel local y ejecutarías directamente con la infraestructura tuya. No habría ningún problema. De aquí ya terminó, demoró un segundo bastante para la cantidad de elementos que hay y aquí tú puedes descargar el archivo. Aquí se descarga, voy a ver y debería estar el archivo aplicando la receta. Y aquí está el archivo. Con la receta preparada y aquí ya puedes tomar estos datos y llevarlo a un PowerBeam, llevarlo a un tablú o algo que tú quieras. No veo que hay alguno que lo descargaron y están revisando a ver cómo les quedó. A verlo con el Notepad si deseas para ver algún Notepad ahí y debería mostrar los datos que está ahí. Es un registro muy pequeño, solamente son 20 registros. Bien, continuamos entonces. Esto es lo que llamaba preparación, recetas. Esas recetas pueden ser cambiadas en el tiempo, bueno tú puedes eliminar, quitar y había una parte de automatización que decía. Bueno, vamos a ver cómo es ese cuento de automatización. Vayamos entonces a lo siguiente, veamos nuevamente la herramienta, devolvamos a donde estábamos en la preparación, no en el Room, en esta preparación de aquí. Ah, perdón, no. Vayamos, espera un momento a ver que se me escapa de aquí. Solamente de aquí me hace falta ver cómo integro el dataset, o sea como yo, nada más. Lo demás pues son las funciones que están acá, pero ya esa es la esencia de la herramienta. Vayamos a donde dice dataset, vayas al data preparation, por favor, data preparation. Sección de dataset. Y ahora escoja, seleccione el mismo dataset que tuvimos ahora que es datos limpieza a los clientes, coloque el mouse sobre el nombre y automáticamente, Brenda por favor, donde dice dataset, ahí lo puede decir exactamente, ahí. Coloca el mouse sobre el nombre del dataset llamado dataset limpieza y note que le aparece un pequeño menú, entonces ese menú le aparece como un tubo de ensayo, ese tubo de ensayo lo que hace es ver los datos, o sea es una tablita y puede consultar los datos, si quieres da clic ahí y eso lo que te va a hacer es que te va a consultar los datos que tiene el señor. Recuerde que los datos que te va a mostrarles es un preview, máximo de 10 mil filas. Puede haber más datos, sí, pero nada te muestra un preview. Y para el dato informativo, el preview máximo puede ser 100 mil, listo, de ahí no puedes cambiarlo. Me devuelvo nuevamente donde estaba. El otro elemento que está ahí como si fueran unas olas, lo que te permite que con ese dataset puedas crear un pipeline, el pipeline fue el que hicimos a nivel de data steward y que fue el último ejemplo que hicimos al principio. Y te aparece esa parte de química que se escapa, no me acuerdo cómo se llama eso en química, escapó como se llama y te permite crear una preparación. Dale clic ahí un momentito en esa preparación. Dale clic ahí. Y ahora pasa algo en particular, es que tú puedas con un mismo dataset escoger una preparación ya que hayas hecho. Para este caso no subimos todos los ejemplos que tenía, pero la idea es la misma, es decir, si yo intentaría subir un dataset con alguna característica, la herramienta va a buscar para ver cuáles preparaciones digamos son compatibles con eso que ya tú tienes. Entonces, si yo quisiera subir un dataset y usar una receta, déjame irme por este lado. Me voy por el dataset y abro las preparaciones y él me va a permitir entonces abrir el dataset con una preparación. Dele por favor aquí open aunque sea el mismo registro que va a ser, va a aplicar todas las funciones que tenga la receta ese dataset. Y eso es lo que él habla de automatización. Tendrás preguntas, muchas preguntas que dirás, pero esta automatización termina siendo semiautomática. ¿Por qué semiautomática? Porque me toca entrar en la herramienta, tomar el dataset, escoger la preparación que más se acomoda y volverlo a ejecutar. Sí señor, si tuviste esa visión es así, es decir, si lo hago de esta forma no es tan automatizado el proceso, es semiautomático porque hay unos elementos manuales que me toca hacer. Entonces, si deseamos automatizar el proceso resulta que la herramienta que se llama Talent Studio, que las voy a mostrar el día de mañana un poco ahí para que vea, pero esa herramienta te permite conectarte a las preparaciones que tú tengas definidas. Entonces allá puedes crear un job, ese job lo que hace es que tiene unas entradas, define la preparación con la versión que tú quieras y haces lo que tú deseas con esa preparación. Entonces en realidad la forma automática es utilizar el Talent Studio con la preparación que definí con el Talent Data Preparation, porque si la hago de esta forma termina siendo un poco semiautomático. Listo y en realidad esto es la herramienta, aquí no hay más nada, es decir, esto es el core de la herramienta en el cual yo tenga unos dataset en el cual me toca formatearlo para adaptarlo a alguna salida, sea un tablú, sea un PowerBee, lo que tú quieras o quizás adaptarlo para entenderlo mejor en un formato diferente como tú desees. Tú tomas ese elemento, aplicas una serie de funciones y ejecutas esa preparación que tú hiciste. Las preparaciones que están en las recetas, perdón, las recetas están compuestas por las funciones que te define la herramienta. Esto no es más nada, esto es el core de la herramienta. Vamos entonces a ver las diferentes funciones en cómo las puedes aplicar en tu diario Vivid. He cambiado el orden de este curso porque empezaba con algunas funciones que son mucho más básicas y después me iba a unas funciones que él llama avanzadas. Hablaremos que quizás para los que estamos metidos mucho en este medio de tecnología o de pronto los que hayan utilizado y Excel que es una de las mejores herramientas que tiene Office quizás no sea tan avanzado pero es lo que él llama avanzada. Entonces, cambié el curso para empezar con las avanzadas y las básicas pues si da tiempo la vemos, si no pues por lo menos dimos la avanzada y como es básica pues asumo que debería ser más fácil de entender. Sí o sí el curso termina el día de hoy hasta donde les cansemos a hablar porque no puedo darme el lujo de tomar unas horas para las big data que es el curso digamos que es el fundamental y además que con el big data me va a quedar unas horas faltantes. Bueno perfecto entonces vayamos a lo siguiente, vayamos nuevamente al menú y vamos aquí desde el menú vamos al dataset, vamos a crear una una preparación desde el dataset, vamos a escoger por favor busque el dataset que se llama ejercicio número uno, selecciona, coloca el mouse por encima del nombre y abre por favor para que le dé una preparación aquí. Aquí te piden si deseas usar una, bueno en caso de pronto no te aparezca y de pronto porque he usado aquí, si no te aparece él aquí en add y te va a llevar al menú que estábamos anteriormente. Listo, ubiquemos en el data preparation, perfecto, vayamos a en el menú izquierdo vertical. Seleccionamos y buscamos el dataset llamado ejercicio uno y colocamos el mouse por encima, nada más por encima de ejercicio uno, no le damos clic no colocamos el mouse y ahora nos aparece un menú del lado derecho, escogemos la tercera opción que es como no acuerdo cómo se llama la botellita esa en química, le da clic aquí y me le da aquí adicionar y le va a crear una nueva preparación aquí. Ah perdón, sería entonces el sí, espérate para ver si fue que me equivoqué, vamos el ejercicio, no está el dos verdad? Permíteme y confirmo el ejercicio dos para ver si da si no me toca subir ejercicio un, ah sí, sí, sí, sí, sí, sí, espérate para ver si no me equivoqué, perfecto, gracias por la observación, sí, efectivamente, ejercicio dos. Entonces busque ejercicio dos en su dataset y aplica lo mismo que intentaba explicar ahora, le dice aquí add, perfecto, listo, gracias por la observación, cambia el nombre, recuerde que hay un pequeño bot, cómo cambia, vamos a cambiar acá en el lápizito, creo que ya por experiencia no hago nada aquí, le doy nuevamente aquí clic porque sé que no me lo cambia, entonces le doy nuevamente clic y ahora sí lo voy a cambiar, lo voy a llamar ejercicio dos y he adoptado snake case, sería entonces underscore y le termino con el prefijo preparación, esto lo voy a hacer nada más una vez porque para aprovechar el tiempo al máximo listo y aquí ahora tampoco me lo cambió porque no me lo cambió, no sé si es que raro, vamos a ver nuevamente preparación bueno ahí sí lo lo corrigí bueno vamos entonces creo que sí todos estamos ubicados, ahora por favor hagamos lo siguiente, el primer ejercicio lo vamos a aplicar sobre la columna que se llama nombres, entonces ubique aquí en nombres por favor y vamos a aplicar en este caso funciones de columnas, aquí cuando usted selecciona una columna por defecto en el menú derecho de las funciones, le aparece una sugerencia que podías aplicar o que son comunes de aplicar al tipo de dato en que está, este nombre hace el text te quieren algunos tipos de funciones como por ejemplo magic fit que vamos a ver ahora, etcétera, pero para no perdernos y seguir un orden baje por favor y se ubica en el menú que se llama en el menú de stream este que está aquí, creería que hay algunas funciones ya que con solamente el nombre podíamos ya inferir qué es lo que hace por ejemplo calcula y lay pues lo que te va a hacer es que te va a calcular el número de caracteres que tiene ese stream, change to lower te va a cambiar a todo en minúscula, change to title va a colocar la primera letra de cada palabra en mayúscula y el change to uppercase lo que va a hacer es que te va a cambiar a mayúscula, solamente para probar vamos a cambiar el nombre a tipo title entonces vamos a darle click a la función change to title case por favor note que ya empieza un menú muy parecido en que hay algunas funciones que te van a permitir crear una nueva columna el resultado de la función no deseo hacer eso entonces lo que voy a hacer es que tengo el menú preview que es para ver, para testear y tengo el menú submit por favor entonces dale submit directamente para que automáticamente aplique el cambio recuerda que ahora cada función que voy agregando acá se va agregando en la receta de este lado note que automáticamente ya cambia perfecto listo, vayamos ahora y nos ubicamos en la columna que se llama url recuerde que estoy concentrado más que todo en las funciones ya la parte esta de cómo funciona el preparation ya más o menos lo explique inicialmente vayamos nuevamente al menú de stream y aquí hay algo que es stream perdón sería es stream listo y busque la función que se llama contain text pasa lo siguiente entonces tienes que tener en cuenta en que esto es algo que te va a pasar mucho con las herramientas de talent en forma general que al estar basada en java son sensibles a mayúsculas y minúsculas donde quiero llegar es lo siguiente vamos a buscar aquí me pide si deseo hacer la búsqueda basado en un valor fijo o en otra columna ya te había explicado un poquito cuando cuando hicieron la parte de concatenación que algunas opciones que ofrecen esto en este caso vamos a coger un valor fijo y vamos a buscar entonces si contiene la palabra con pero hagamos algo colóquela en c mayúscula y lo demás en minúscula dele por favor aquí en preview para ver que da y de igual forma aunque haya funciones que no te tenga el menú crear columna ellos automáticamente te crean una columna este es el caso particular de esta función en que al darle al ejecutarla me va a crear una nueva columna y me va a volver un booleano para especificar si lo que estás buscando fue correcto se encuentra o no se encuentra como sub cadena dentro la cadena textual note entonces ahora en caso particular este que tiene aquí no la encontró y partiendo del hecho en que la primera fila si la contiene por qué no la encontró porque por defecto aquí hace edición de la herramienta por defecto él busca en caso sensitivo significa que tendría que buscarla con esta función exactamente como está si le aquí damos le damos entonces con y le damos aquí un preview debería tener un true en la primera y ahí está entonces esto lo agregué para que tenga presente en que cuando buscas valores por funciones de manera estática él te va a buscar en caso insensitivo seguramente te preguntarás cómo haría para buscarla en caso insensitivo es decir que me da lo mismo si está con c mayúsculo o c minúsculo bueno lo que sí es claro es que esta función no te ayuda en esa parte listo bueno deja entonces cuando busco de manera fija me va a buscar un texto de manera insensitiva de la que un sumi para que nos quede ahí ya la función hecha realizada ahí ahora resolvamos entonces inmediatamente cómo haría para resolver entonces el problema de buscarlo en caso insensitivo entonces para buscar en caso insensitivo ya esto lo hayamos hecho en el tal en data stay wars vamos a usar una función que es un entonces vamos a buscar un ser aquí pero esta función se ha hecho un momento no me va a dar lo que quiero espera ese momento no que venga esta función creo que no no eso lo hago después esa función se hace porque me tocaría reemplazar entonces no deseo reemplazar ahora le digo la función porque haría que hacerlo con una expresión regular entonces voy siguiendo con el otro ejemplo mejor ahí qué pena y pensé que me iba a funcionar esta vez no bien vamos entonces a lo siguiente vayamos nuevamente nos ubicamos en la columna ure l y vayamos entonces a espring vayamos entonces aquí hay una función que dice extraer el valor por índice en este caso el índice de iría es decir posición desde qué posición tú quieres sacar elementos entonces vayamos a lo siguiente vamos aquí vamos a suponer que te piden extraer el dominio de la ure l ok este lo podía hacer de diferente forma una función que te puede ayudar es esta estamos en ure l y vamos a escoger la función de string que se llama extraer el valor por índice y dele clic por favor aquí en el tú hay diferentes formas de sacar los elementos por defecto tenemos aquí un 5 por ejemplo si yo ejecuto esta función con tu índice lo que haría sería que va a sacar desde la posición 0 hasta la posición 5 es la que está por defecto si utilizo otra función que es su en esta que está aquí aquí me permite buscar de dónde yo quiero hasta el final por ejemplo si yo digo si es como tu en él me va a decir oye dónde quieres empezar voy a decirle quiero empezar desde la posición 2 y quiero terminar en la posición 5 tú puedes ahí sacar esto pocas palabras una sub cadena ahora quiero aplicar lo siguiente como quiero sacar los primeros tres elementos en este caso tomando como referencia en que las los dominios tienen tres elementos yo podía hacer lo siguiente ahora podía hacer lo siguiente voy a cambiar aquí la función y voy a decir que quién me habló de atriz vamos a ver ya voy a ver listo de atriz notarás que en la parte derecha hay como una especie de una flechita que es la punta la flecha que está al final en la barra no sé no sé si en pantalla de mi pantalla esta flecha que está aquí las bandes aquí perfecto entonces aquí tú puedes sacar desde una posición de la posición 0 hasta el final o puede sacar de la posición que tú quieras hasta la posición final que tú quieras entonces vamos a sacar simplemente al revés quiero con la opción from n before entonces aquí voy a colocar 3 y explico cómo funciona ese n before entonces tengo el dominio que es example punto con permítame y te lo hago acá tengo aquí example punto con de ello oye me favor posiciones de tres posiciones antes del final o sea 1 2 3 se coloca aquí y a partir de ahí saca de ahí hasta el final entonces lo que pasa es que hace el índice de derecha izquierda y después saca los elementos hasta el final entonces le voy a decir aquí 3 con la función from n before le digo toma tres elementos de derecha izquierda y de esa posición saca los elementos al final le voy a decir que cree una nueva columna y le voy a enviar aquí un submit y debería sacar el dominio bueno en este caso debió ser 4 al parecer entonces me parece bien voy a como es 4 podía hacer dos cosas una sería borrar acá la función o la otra cambiarla acá y decir que yo puse tres yo puse tres no en realidad fue que yo que me equivoqué de 13 tenía 2 le dio nuevamente sumi para que lo vuelva a ejecutar con el cambio y debería mostrarme ahora sí entonces cuando hay un error en alguna función o tú elimina la función o la puedes corregir en la receta y la vuelves a ejecutar nuevamente en caso de cualquier cambio lo cambia el lado de receta y le da nuevamente sumi para que tome el cambio que usted requiera si en realidad lo que desea es eliminar pues baja el bote basura y lo elimina vamos ahora a una función interesante esta sí es interesante porque puede hacer un formateo de los datos de una manera muy sencilla y esto es esta función le ayudaría a solucionar el problema de ayer cuando ayer teníamos unos teléfonos que tenían unos formatos y dije que era complicado quizá con esta función te sale para formatear esos teléfonos en la forma correcta vamos a escoger nuevamente nombres ok y vamos a buscar dentro de las funciones de string la que se llama magic fill o llenado mágico perfecto magic fill ahora mire lo que quiero hacer entonces colocó inicialmente lo que deseo hacer para que me entiendas el ejemplo nota que los nombres está primer nombre tengo a john john dole tengo a jane smith y deseo formatear los nombres de la siguiente forma quiero que los nombres ahora me aparezcan de esta manera primera letra del nombre punto espacio apellido por lo tanto así me quedaría john dole y j smith me quedaría de esta manera j es mi primera letra del nombre punto espacio apellido deseo formatear esto podía salir con un regex pero hay cosas que con el regex te pueden salir muy complicadas entonces el magic fill te ayuda a lo siguiente el magic fill te pide máximo tres entradas para entender qué es lo que tú vas a hacer pero en teoría con tres entradas mínimos que haga él debería entender qué es lo que va a hacer entonces primero en el input número uno qué va a hacer vas a colocar un registro que pertenezca a tus datos tal cual como está en este caso va a colocar john o tache dole que aparece en este listado de acá y voy a colocar en el output como quiero que salga eso quiero que salga ota punto dole me pide por lo menos tres entradas entonces escojo el siguiente que es jane es mi uno que esté ahí en el registro y acá aquí me equivoqué porque coloqué m j jota punto es mi listo y me pide bueno bueno en realidad me pide 2 voy a voy a colocarle el 3 por si acaso sería el 3 sería robert johnson en realidad perdón me pide son tres como dos perdón como mínimo acá me coloco r punto johnson eso que me pide los mínimos es para poder entender que desea hacer aquí por defecto está crear nueva columna dale aquí un preview y debería cambiar aquí está a brown mike wilson e davis entonces él aprende en función a los input que tú le colocas si quizás no todos los datos salieron de forma correcta lo que debe ser es agregar más input para que él pueda aprender como esto es lo que quiero del aquí su y si quieres verifica por favor que estén los nombres tal cual como quería la salida entonces esto lo podía aplicar para eso los teléfonos en que estaba en un formato y lo podía convertir en el formato con esa función específica magic film bueno continuó entonces ya creo que todos lo hicieron perfecto vamos ahora sí a lo siguiente vamos si desea hagámoslo con este vayamos a url por favor y vayamos nuevamente a la extreme que está aquí es serín para funciones extreme y aquí me da un match pattern decir de la función que viene después del magic field que es match pattern dele clic acá bueno este nuevamente viene con funciones con expresiones regulares y entonces aquí donde dice pattern es un patrón de consulta mira lo siguiente en primer lugar aquí tengo este patrón que dice a zeta bueno va a colocar lo mejor de este lado para lo que creo que hay algunos que ya entienden esta parte de presiones regulares pero de un momento por favor momento que me abrió aquí la lupa esta de aquí la lupa qué pena no me está saliendo momento aquí sale tengo lo siguiente ahora tengo esta expresión regular que dice a zeta zeta entonces este la de los corchetes lo que están haciendo es que buscan un patrón a nivel de aquí buscaría todo lo que tenga este patrón de dar a la zeta entonces aquí buscaría en pocas palabras todas aquellas columnas que tengan letras ya sea en minúscula o en mayúscula si tiene un número significa en que no sé en que no no no no pertenece al patrón aquí hay unos patrones establecidos y lo que te va a buscar es para ver qué columnas coinciden digamos con qué patrón ahora vamos aquí donde dice odors y haga lo siguiente vamos a buscar porque yo puedo hacer búsquedas con expresiones regulares vamos a buscar ahora si los que empiezan por con en minúscula y le da un preview por favor un preview y aquí este patrón no coincide porque como no tengo ninguna expresión aquí entonces aquí estaría buscando todos los que tengan exactamente a perdón todos los que exactamente sean igual a con pero de ese cuenta que ahí no son iguales a con se da cuenta entonces aquí voy a colocar expresión regular debería permitirme aquí punto asterisco aquí sería el momento y hago la expresión regular aquí asterisco punto y algo aquí por favor un momento y la expresión a perdón es que aquí tengo el valor igual y tenía que ser reyes qué pena aquí se me escapó qué pena qué pena ya como que vamos qué pena ahí fue listo aquí cuando cogí odors aquí hay varios operadores y aquí en realidad he estado buscando por que sean iguales que coincidan exactamente y por eso fue que nos dio aquí me interesa bueno aquí está nuevamente los que contengan está lo que inicien lo que finalicen pero me interesa los reyes expresión regular aquí busqué por con que debería funcionarme aquí nuevamente como voy a colocar aquí preview no sé si me toco ahora sí qué pena listo qué pena retomo nuevamente retomo nuevamente este match panel se parece mucho al contén siendo que el contén que vimos el contén vida que la contenga en cualquier parte la versatilidad que tiene el match father es que tú puedes buscar una una sub cadena ya sea que añadir que sea igual que inicie que finalice o que use un reyes esa es la diferencia con el contén porque este tiene más versatilidad cambia por favor este con hace mayúscula por favor y dale nuevamente preview si es tan amable nota que pasa lo siguiente pasa lo mismo que con el contén está en caso sensitivo entonces pero como es una expresión regular la expresión regular tiene algunos elementos que te van a permitir buscarlo en casos insensitivos en pocas palabras vas a colocar la expresión de la siguiente forma en una expresión regular cuando vayas en caso de tipo colocas paréntesis colocas signo en signo de esta ocasión le colocas y de insensitivo y si es con la expresión en pocas palabras vas a colocar este con con seis mayúsculas así te quedaría la expresión de esta manera y le das preview y debería ahora independiente que la c esté en mayúscula o esté en minúscula debería traerte voy a probar para ver voy a darle entonces a este señor voy a decirle signo de interrogación y le doy un preview y ahí está el true moral en pocas palabras si vas a hacer una búsqueda de algún carácter y lo vas a evaluar en caso insensitivo te recomiendo que uses esta función que es match pattern en la configuración de regex y le colocas al principio estos carácteres que indican en que la va a buscar en modo insensitivo esa es la moraleja con respecto cuando vayas a buscar en caso insensitivo te voy a mandar esto aquí por el chat para que lo tengas ahí lo guardes en alguna parte no sé que sería la expresión regular para buscar en caso insensitivo de te encontrar en la herramienta me parece bueno no yo voy a decir que es poco ético pero bueno este contén que está aquí contén text sería exactamente la misma función en el patrón contén de acá esta función match pattern en el order acá en el operador el contén es la misma contén ahí va a aparecer el caso de que hay funciones que la vas a encontrar dos veces dentro de la herramienta bueno continuamos entonces si no sé si todos van conmigo o de pronto voy un poco más a listo no le hizo mi verdad vamos a sumir muchas gracias después no me queda ahí para que me quede ahí como ejemplo bueno vamos entonces escojamos ahora nombre nuevamente y vamos a suponer que le piden hacer lo siguiente quieren obtener solamente el nombre porque ahí en nombre tengo nombre y apellido se asumiría en este caso en particular que la segunda le la segunda palabra se refiere al apellido entonces quiero sacar el nombre aquí ya vimos una forma en el cual puedo hacer esto que es con magic field yo podía decirle john do y la salida sería john hago jane smith y la salida sería jane y me debería funcionar con el magic field pero hagamos una forma diferente hagámoslo con un ser harry place y volvemos nuevamente con expresiones regulares listo vamos entonces aquí a nombres y va a la string a la función string es string y vamos a la que dice espere un momento que no sé si es este match similar no está no es separado otro coche vamos a la función ser replace que está al final ya ese ejemplo tengo con otra parte ese fuchs ser el replace por favor el problema que tengo con un ser el replace es cómo hago para eliminar todo lo que está con el primer espacio en blanco o sea veamos aquí los operadores que me permite aquí me permite igual que inicie que finalice y que haga un rey entonces ahí no sé si nos sale con estar wich entonces hacemos la prueba le digo estar wich que empiece con espacio en blanco no no lo saldría porque porque él buscaría la el string que empiece por ir por espacio en blanco y el espacio blanco está en el medio no funcionaría entonces aquí que deberías hacer una expresión regular y expresiones regulares pues de pronto no es lo tuyo recuerda que el día de ayer hicimos un ejemplo con con con chat gpt en el cual le pedí que me diera una expresión regular para lo que yo quisiera si redactas bien lo que tú quieres en un 99% de los casos te va a dar la represión regular que tú quieras que sea eficiente creo que puede ser más eficiente que la que tú haces de forma manual puede ser más eficiente pero entonces eso que quiero hacer ya dicho que ya lo pudo hacer con el magic y pero lo quiero hacerlo de forma diferente con una expresión regular entonces voy a decirle la siguiente expresión regular voy a apuntarla aquí la expresión regular listo entonces en expresiones regulares hay unos caracteres y unos símbolos que indican unos elementos en particulares entonces este símbolo con el separador el con el carácter especial slash ese indica espacio en blanco entonces yo le voy a decir mira dame un favor búscame el espacio en blanco el punto indica cualquier cantidad de caracteres perdón el punto indica cualquier carácter asterisco indica cero o más caracteres y le voy a decir este símbolo que es el símbolo peso que llegue hasta el final de la línea porque quizás la línea no llega por los caracteres que de pronto no te dan lo que tú quieres entonces para asegurarme le estoy diciendo con este señor que está aquí que empiece en el primer espacio en blanco después que sigan todos los caracteres que él quiera y que finalice con una línea esa línea la coloco porque sería conveniente es cuando tú tengas por ejemplo lo siguiente imagínate que tienes este John Doe acá y Jay Smith tiene este dato si yo no le coloco este señor que es el señor que no está viendo aquí si yo no le coloco este fin de línea que pasa que él cuando intente buscar y eliminar me elimina todo esto porque estoy diciendo elimina todo lo que hay después en blanco para evitar eso entonces yo le coloco elimina desde el primer espacio en blanco hasta que encuentre un separador de filas entonces significa que esto nada más eliminaría hasta aquí al final va a depender de lo que tú quieras hacer pero esto lo voy a hacer simplemente lo hizo esta manera para agregar esa temática a nivel de presiones regulares entonces voy a hacer lo siguiente aquí voy a decirles valor qué valor va a buscar voy a decir entonces este señor ese punto asterisco y el símbolo de peso te mando esta expresión regular si tú desee por acá por el chat eso es lo que va a buscar y te la mandé por el chat eso es lo que va a buscar ahora reemplazar va a reemplazar por espacio en blanco ok voy a crear aquí una nueva columna para que para que me muestre voy a hacer aquí un preview a ver si no tengo error en la expresión regular y si tengo un error en la expresión regular porque no funcionó para ver por qué no funcionó aquí tengo reyes valve reemplazar which a ver por qué no funcionó bueno excelente a ver qué fue que coloque mal aquí y le coloque un no a mí no me está dando con el símbolo pesos porque voy a copiarle directamente no sé si de pronto estoy colocando un carácter especial que es las expresiones son sumamente sensibles para ver lo copio directamente de acá sí no sé hay un símbolo que hay como que cuando en el teclado no sé lo estamos tomando mal pero bueno esto es aclaro que esto mismo que estoy haciendo aquí pues lo puedo hacer directamente con el magic field lo que quería aquí con esta parte de mostrar es que las expresiones regulares son es una herramienta que es muy poderosa tanto para búsquedas o para emplazar cosas que puede ser compleja anteriormente era más compleja hoy en día son menos complejas partiendo del hecho de que lo puedes hacer directamente con con una yala que tú quieras para que te de la expresión regular bueno vamos a hacer el break de los 20 minutos si volvemos entonces a las 11 y 50 a 2 y 30 tomemos algo frío algo caliente entonces y volvemos entonces en 20 minutos ok eso bueno regresamos nuevamente espero que haya tomado y he descansado un poco entonces continuamos estamos conectados estamos conectados no estamos conectados estamos señor si listo bien continuemos entonces bien vamos a ver una función que es muy común en herramientas de calidad que la encuentras en el ecosistema de talent también la encuentran el talent data quality aunque el talent data quality tiene un par entonces cuando tú entras a esas herramientas de calidad te publicitan de que ellos pueden encontrar errores tipográficos y en realidad si hay algunas funciones que te puede te pueden ayudar a encontrar algún error tipográfico que un poco semiautomática porque porque en automatizar un proceso a través de las herramientas que ofrece puede llevar un error y más cuando de pronto tú quieres de pronto haya errores y nombres sabes que los nombres tienen ortografía y cada uno puede llamarse como le dé la gana entonces ahí hay casos en que de pronto podía automatizar y otros casos que en realidad pues hay que vigilar para ver antes de hacer cualquier cambio explico los dos modelos que se utilizan para encontrar errores tipográficos el cual la herramienta talent data preparation te ofrece uno y el talent data quality te ofrece los dos entonces supongamos entonces que es lo que hacen listo esto que es acá no voy a listo mejor espera un momento y lo abro mejor desde acá desde aquí listo entonces en primer lugar la primera forma que usan es lógica fuzy en lo que hace es sencillo el algoritmo el algoritmo de fuzy es el siguiente supongamos que tú tienes el nombre john de esta forma y yo particularmente me escribo john de esta forma entonces aquí puede haber un error tipográfico en el caso particular pues de los nombres no mucho pero sí puedes encontrarlo con quizás nombres de productos el inconveniente de los nombres de productos es que hay algunos para hacer su producto digamos nombrarlo de manera muy particular y llamativa no siguen las reglas de la real academia lengua entonces le colocan como ellos quieren el nombre para hacerlo atractivo pero veamos cómo funciona esta lógica de fuzy la lógica de fuzy que está aquí funciona de la siguiente manera es cuántos cambios debería hacer para que esta palabra sea igual a esta palabra básicamente aquí me tocaría hacer dos cambios porque porque aquí para que este john sea igual a este john tendría entonces que cambiar la j por la o y la h por la la o por la h para que me quedase por ejemplo si yo tengo el nombre kelly de esta forma y yo tengo kelly con y latina por ejemplo cuántos cambios hay que hacer para que esta palabra sea igual a esta solamente uno que es cambiar la y esa por eso que saca por esa y esa es la forma en que trabaja para encontrar duplicidad o para poder encontrar errores tipográficos que pueden existir en palabras ahora esa es la otra forma es utilizan una técnica que se llama son dex y entonces hacen lo siguiente por ejemplo colocan que él y aquí está muy buena para encontrar duplicados y que él y así agraemos tomando el idioma español ahí esas palabras las dos se dividen en dos en dos partes en dos fonemas que sería que lee de se cuenta que en el español es aqueli con y latina y ese aqueli con y griega se pronuncian igual kelly y kelly aquí lo que voy a encontrar son duplicados en la forma en que se pronuncia en el idioma inglés quizás eso se cambia por ejemplo en el español esto sería igual yo yo pero en el idioma inglés eso más lo llaman ese show yo lo sé una rara show no es un yo así un show ahí entonces la pronunciación puede ser diferente estas son las dos técnicas que utilizan tanto para encontrar duplicados o para poder encontrar palabras que son similares o parecidas o que estén mal escritas para este ejemplo entonces vamos a hacerlo de la siguiente forma vayamos al nombre y vayamos entonces a los perdón a nombres al nombre que reemplazamos el que sacamos el al que reemplazamos y vamos a buscar lo siguiente a ver vayamos al menú de string al menú de string que está por aquí abajo y vamos a la acción match similar text dele clic por favor perfecto aquí lo que te van a pedir es comparar con valor con columna en caso que sea columna pues se comparan las columnas que tengan la misma fila pero vamos a compararlo con un valor fijo para entender lo siguiente vea aquí tengo emily que está escrito con y latina entonces yo voy a decir mira hazme favor busca todos los nombres que se parezcan a emily pero con y latina está con un y griega perdón y la voy a buscar con y latina y aquí me pisen el número de cambios que voy a hacer entonces aquí tengo un emily que está con y griega para que este milis igual a nada más necesito un solo cambio del entonces en preview para ver qué sale aquí y debería parecerme en en emily aquí está un true diciendo de que esas palabras son similares son parecidas que ya sea que puede estar mal escritas o que simplemente se producen exactamente igual dependiendo y ahí podías encontrar errores tipográficos con ese tipo de función match similar text que está en stream match similar text está en el stream se hizo un preview ayúdeme a este para ver supongamos que yo quisiera no no lo mande a submit terminamos con el sumi con este quiero tengo kelly de esta y yo quisiera buscar este que él y así o una sola cuántos cambios debería hacer para que ésta sea parecida o igual a éste tocaría hacer dos cambios verdad eliminar una l y cambiar ésta y por y latina entonces vamos a ver si funciona si yo coloco uno así por ejemplo kelly a colocar aquí kelly así como estaba pero con un cambio está que él y que está acá debería salir en forz voy a mandar aquí un preview aquí está en forz porque el número de cambio para que sea igual sea 2 si yo cambio aquí a 2 le doy aquí un preview y debería salir en true aquí está en true entonces aquí por favor este sí ejemplo envíelo a sumi para que le quede ahí esa es la forma en que trabaja para encontrar o ya sea duplicados o ya sea para encontrar posibles errores tipográficos que pueden existir en los datos esta opción esta herramienta no tiene la de son de que es interesante es que sean similares pero por pronunciación y ahí sí de pronto te equivocaste en algún nombre o algo específico perfecto sigamos entonces terminemos ya casi a esa función vayamos aquí a lo que damos aquí en nombre replace aquí en ese que estamos acá en la misma columna que estamos vayamos aquí donde dice es stream nuevamente es stream es stream y voy por bueno remover caracteres consecutivos esta es muy buena cuando tienes no tienes analizado el número de espacios en blanco entonces por ejemplo tienes una separación de algunos tienen 2 3 4 espacios en blanco y quisiera estandarizar para que todos tengan solamente un espacio en blanco ahí como todos tienen espacios en blanco entonces no sirve pero por ejemplo cambie aquí este por defecto el carácter de repetición que está espacio en blanco cambia sólo a odors esta función no lo veo mucho la la funcionalidad que le veo es más como tenga mucho espacio en blanco y quisiera de eliminar que queda uno es por ejemplo al colocar él ahí va a eliminar todas las ele que estén duplicadas me deja una sola es decir si yo tengo tres ele nada más me deja una al final independiente el número de ele que tenga repetidas consecutivamente él me deja una por ejemplo aquí vemos aquí kelly kelly está aquí con una sola con doble ele al decirle que elimine la ele aquí me dejaría kelly con una sola ele créalo una nueva columna por si acaso nueva columna y manda de aquí a sumir y aquí está aquí hay un error no sé qué pero aquí sí lo hizo aquí está eso no es nada del otro mundo vuelvo a repito esa función tendría mucho más sentido cuando vayas a eliminar de pronto los espacios en blanco pero quizás te toque bueno alguna vez algo por ahí no sé bueno vamos entonces lo siguiente ya que para finalizar ya este menú vayamos aquí al teléfono voy a darle aquí f5 aquí es como que hay algún error de algo no sé voy a darle aquí f5 para que desaparezca se ubica en número por favor en el teléfono nuevo teléfono y vayamos aquí a string a las funciones que son revuelve parte del texto aquí te aplica lo mismo exactamente la misma idea que tenía en el ser en el en el match pattern donde tienes que sean iguales que contengan que finalicen entonces voy a hacer lo siguiente voy a voy a eliminar voy a remover todos los elementos que empiezan a nivel de teléfono por paréntesis 555 cierro paréntesis enviarle aquí un preview para ver si no hay problemas si ahí está por favor así listo mandale un perfecto eso lo que hace es que remueve hace exactamente lo mismo que un ser en replay siendo que te crean una función simplemente para reemplazar algún elemento específico fernando así nada más dale f5 porque a veces te vas a ir saliendo ese error dale f5 ahí para que te recargue y terminamos ese menú con la última función note lo siguiente ahora note que aquí le quedó un espacio en blanco que se lo marque a la herramienta como si fuese una especie de cuadrado con líneas gris y blanca este que está aquí este blanquito que está acá en este blanquito que aparece acá cuando se arrumbe los espacios en blanco al inicio y al final el stream tiene una función que se llama trailing ahí está remover trailing and leading caracteres que inician y infidelizan te pregunta qué carácter quieres normalmente uno lo que elimina son espacios en blanco de pronto algún sufijo prefiero que tenga pero en este caso pues dejemos espacio en blanco para que pueda tener entonces una columna con esos caracteres que me forma muchos problemas cuando genera una consulta se puede y lo que hace eso es eliminar y ese es el menú completo para el señor spring no creo que reviso para ver si ahí vimos todas las funciones de lo que hace ese spring bueno vamos entonces al siguiente que sería el ejercicio 3 mientras voy subiendo el 4 y el 5 porque no lo es subir no sé pronto ya usted lo subió a listo aquí voy a decirle data set voy a subir el 4 es acá en escritorio recursos talent data preparation caso de estudio y pero ejercicios y voy aquí a subir el 4 en otras hubo el 5 y en otras hubo el 6 bueno continuamos pues me ubico nuevamente me tenía en preparation estaba trabajando voy a agregar una nueva preparación ya sabe que hay dos formas de hacerlo o se va al data sec o se va al menú de preparation entonces voy ahora por el menú de preparaciones va a decirle aquí a preparation aquí le voy a colocar ejercicio ejercicio 3 on record preparación y escojo el ejercicio 3 entonces le damos aquí su mi para enviar y me abre entonces la ventana del perfecto listo vamos a empezar nos ubicamos entonces aquí tengo identificador y se me escapaba mencionar algo también voy a aprovechar lo siguiente note que en las columnas aparecen un color una línea de colores que es muy parecida al talent data steward que aparece rojo significa en que hay unos datos de calidad que están errados por ejemplo ahí aparece errado 7a porque porque él identificó la columna como integer y ahora entonces tiene un 7a ahí entonces dice epa 7a no corresponde a un valor entero y tengo los líneas verdes que me van a indicar que los esos esos columnas tienen valores que han pasado los procesos de calidad aquí se agrega una nueva columna permítame hacerlo acá para que usted la vea nada más que es cuando está vacío cuando está vacío entonces te marca ahora un color negro aquí está este color negro que está aquí indicando que ahí vacío entonces esos colores que se van a reflear en todas las herramientas que denga talent verde todo correcto rojo error y negro significa que hay un error que está vacío hay algo que está vacío en esa columna voy a disminar eso que hice ahí entonces para que me quede tal cual ubiquemos perdón en la columna de análisis de animales perdón animales y vayamos al último menú que es string avanzado vayamos a la primera función que es adicionar a extra caracteres esa que está ahí listo eso lo que hace sencillamente es a partir de un tamaño máximo tú vas a agregar caracteres y la columna no contiene ese tamaño máximo me explico por defecto tengo un tamaño de 5 note que la primera fila de la columna animales dice ca si yo dejo ahí como 5 y ca tiene tres elementos le faltarían dos caracteres para llegar al máximo que yo quiero esos dos caracteres que hacen falta para llegar se rellena con el carácter que tú especifices por ejemplo coloquemos aquí x el carácter que deseo agregar y diga por favor que los va a agregar no a la izquierda sino a la derecha y le da un preview y mire lo que hace aquellos columnas que tengan menos de 5 caracteres se rellenan con x el caso por ejemplo de elefante que es la columna número 7 no se agrega en x porque la número de caracteres es superior a la cantidad máxima que estemos eso para qué puede servir quizás te puede servir en algunos casos para buscar algunas claves por ejemplo me explico a usted le ha pasado entonces que de pronto tú digitas una clave común que tiene cinco caracteres pero te los muestra con a veces con asterisco te muestra más de 5 te muestra como 10 eso lo que hace es que la persona que vaya a leer no sepa cuántas cantidades de caracteres tú tengas entonces quizás para buscar un poco ese tipo de claves tú puedes agregarle más carácter para que la persona no sepa cuántos caracteres en realidad tiene la clave que tú vayas a colocar eso es lo que hace nada más no le de sumi por favor y si le va a sumi creerle una nueva columna porque necesita esa columna acá ahora para un ejercicio dele aquí bueno aquí le agregue una nueva columna y lo voy a enviar una nueva columna entonces bueno esto sigamos en la misma columna animales por favor no la convertida sino la original aclaro yo no soy experto en este tema y tampoco lo investigado en profundidad pero aquí viene algo que se llama vaya a ser chain ah no perdón no no es el que yo quería no en el último perdón que convertir charácteres a convertir bueno esto yo le voy a decir lo que dice la teoría pero yo todavía no no me cuadra mucho la teoría dice lo siguiente en que cuando tú tienes un texto las letras pueden tener diferentes tamaños esos diferentes tamaños de las letras como tal entre vayúscula y minúscula genera un espaciado en el cual abro comillas doble al cerebro y quizás no puedas entender o no te puedas concentrar de forma correcta entonces esto lo que hace es que independiente de los tipos de letra que tú tengas te adapta el texto a un tamaño digamos que estándar eso es lo que dice todavía yo en esta parte no no la entiendo muy bien yo nunca la he usado pero bueno aquí lo que sí es seguro es que para que pueda haber un cambio escoja la conversión full ahí te pregunta que deseas convertir a los tamaños fijos ahí está dígito letra bueno ahí dice catacana otro carácter no sé qué será catacana dele por favor preview no mande los dos nuevas columnas para que vea el cambio que se hay de luz aquí y lo que intenta hacer es que le da el mismo tamaño a letras para que cuando tú tengas un reporte esa es la teoría que dice no haya ningún problema en la lectura que yo no sé por qué debe haber problemas en lectura cuando los tamaños están diferentes eso es lo que dice esta teoría no no la entiendo muy bien para que funcione eso pero eso lo bueno sigamos entonces este con ver la segunda que es con ver charácter wich y escoge la segunda que es con ver full full week la segunda opción que es con ver full week y lo mandas a una columna nueva por favor para que no nos dañe la columna que tenemos ahí sigamos entonces vamos ahora en la opción fine and group similar text encontrar grupos de textos similares esto funciona exactamente igual a lo que expliqué con fuzy pero vamos a ver la diferencia que hay entonces dele clic aquí en fine sobre la columna animal esto aplica fuzy pero no le especificar caracteres creo que busca con una distancia máxima de tres caracteres entonces vea lo siguiente dice es va va va si la distancia de máxima de tres caracteres yo encontré tres palabras que son parecidas por ejemplo doc y doc se parecen porque porque para el llevar de doc a doc bueno doctor es que me toque quitar la u por o me toque eliminar la k y cambiarlas por la g entonces tú dices epa si son parecidas puedo cambiar en este caso sabemos que eso está raro ahí verdad entonces usted de chulea por qué porque pato y perro no hay la herramienta pues no digamos que se equivocó sino que el fuzy ahí no me sirve date cuenta ahora que aquí tengo aquí si cosas parecidas tengo un ct tengo un cac y tengo un coto lo que sí es seguro que este guard que está aquí no puede ser de ese mismo grupo que esto esté go at y aquí me dice oye esas tres palabras que son parecidas a nivel de fuzy la quiere reemplazar por cual la que va a reemplazar por cat entonces aquí le da sumi y a donde encuentren esta columna estos elementos te los cambia y de esa forma puede corregir algunos errores de manera muy sencilla cuando hay una similitud a nivel de fuzy repito nuevamente voy a devolverme para que hay algunos que todavía no lo han hecho entonces voy a lo siguiente estoy en animal y voy aquí y con la función fine and group similar me doy cuenta en que doc son palabras diferentes la de pato y perro la de chuleo y en el grupo de los cuatro de chuleo go at para reemplazar todas las que tiene ct go at y cot por cat aquí por defecto está cat entonces le doy sumi y eso lo que hace es que aplica el cambio entonces para reemplazar esas palabras que similarmente por distancia fuzy las encontré seguimos entonces listo la función que viene ahora permíteme y la veo bien toma ahora selecciona este identificador por favor y pasa lo siguiente a nivel de seguridad bueno perdón a nivel de base de datos quizás algunos que hayan desarrollado quizás cuando tú creas una tabla y en esa tabla quieres colocar un identificador que es generado como por ejemplo una secuencia tú en base de datos usaba seriales cierto sea una serie una secuencia entonces 1 2 3 4 5 y con eso elemento identificada cada uno de los registros como tal eso a nivel de seguridad que hoy en día no se puede hacer o no se debería hacer perdón porque porque los hackers saben en que tú puedes usar secuencias entonces empieza a buscar por esos datos por el 1 por el 2 por el 3 a ver cuál le da entonces hoy en día esos datos que son generados deberías que en vez de usar una secuencia generar un ID un número identificador único eso ahora va a permitir ahora que esos hackers pues no pueden hacer esa técnica de ir a ser un para que vaya recorriendo los diferentes números y ver para de qué encuentro entonces muchas veces quisieras agregar eso a nivel de campos dentro del tracé eso cómo lo haces te vas entonces al menú y aquí está una opción que dice generar un ID y lo que hace señores que en una nueva columna te va a crear un identificador único ahí está este identificador que está eso es lo que se está haciendo actualmente para prevenir ese tipo de ataques entonces bueno aquí me hizo un cambio aquí voy a borrar ese cambio se llama generar un ID voy a ver qué es que alvien ahora bien si tú ese por favor en identificador y ese identificador note que el identificador es numérico pero hay algunas filas en que tienen una letra entonces en algunos casos tú quisieses tener una columna en la cual pues vas a tener algunos datos que no tienen la mejor calidad y ahora quisiese remover dejar solamente los números y remover todo lo que no sea número para hacer eso entonces situate en identificador y aquí vas a encontrar una opción que dice remover a caracteres no numéricos no alfanuméricos entonces dale clic aquí sobre la misma columna y debería quitar todos los caracteres y dejarme solamente los números perdón aquí me equivoqué es la otra es remover en realidad es remover los no numéricos que pena si tú es en identificador ahí me equivoqué es remover los no numéricos remove no number no nombre no numeric charácter ese que está aquí listo sumi y debería remover los barací fíjese que ahora ya todos pasan toda la parte de calidad vamos al caso contrario entonces qué es quiero dejar solamente las letras váyase por favor de ese cuenta que en frutas en la línea número 5 la fruta que es melón watermelon ese que está aquí tiene unos caracteres especiales entonces ahora tiene también caracteres por ello no que tiene el número nada más que dejar las letras para este caso selecciona frutas y ahora sí remueve los no alfanuméricos listo remuevo aquí envío a la misma columna perfecto ahí se removió los caracteres terminamos con la última función que es simplificar texto vamos aquí donde dice nombres vayamos a la última función que es simplify text y esto lo que está haciendo es que remueve cualquier acento que tenga y remueve por ejemplo el case en este caso remover el case va a colocar a un case lower o sea lo va a colocar en minúscula y cualquier carácter especial que tenga ese cuenta que jose maría andrés y sofía tienen tilde vamos entonces a darle simplify test a nombres clientes y listo aquí ese cuenta que removió el case y los acentos como tal para qué sirve pues quizás alguna vez algo lo use y ese es el menú completo de string y string avanzado perfecto sigamos entonces vayamos ahora al ejemplo 4 vamos a ver si ya me subió el ejercicio 4 tengo el 5 arriba 6 y creo que ni subir el 4 ya lo tengo arriba aquí bien desde aquí este ejercicio puedo hacer también una preparación váyase aquí en el menú derecho superior le va a aparecer el el tubo ensayo este que está aquí que se me escapa el nombre ahora en química y aquí puedo preparar directamente el tada inventor y aquí le puedo dar click aquí y me va a llevar al menú para adicionar un nuevo preparación le tomamos a ver está en ese momento está aquí en la parte superior derecha aquí está como el signo de aquí está como al ladito del descargar está un la pipetica esta quien me habló ah perdón ahora sí voy a su máquina si exactamente es la otra forma de agregarlo de leer hasta ahí y hacer lo mismo lo que es llegue por allá lo mismo eso bueno y por acá estaba aquí este son los datos como tal ya sabe los nombres no te encuentro lo siguiente ahora esto tiene cinco columnas y vea la que dice país código de ese cuenta que automáticamente lo que hace una categoría una catalogación de country por qué porque eso pertenecen a códigos de países vea que aquí no lo categorizó y aquí pues lo nombró vea que este que es numérico lo colocó como código postal de francia esto claro que lo puedes cambiar evidentemente no puedes cambiar cuando quieras bueno vamos entonces lo siguiente vamos al menú vamos a escoger país código y vamos al menú que bueno aquí un dato curioso yo en realidad no no le veo tanta funcionalidad pero cuando le uno el tutorial se nota uno que hacen énfasis en que muestra este mapa y no se muestra como si fuese alguna maravilla pues al final dicen ellos que la idea de esto es que tú puedas ubicar en caso de que sean unos clientes ubicación geográfica y una teoría sepa dónde están tus clientes a nivel mundial y puede hacer pero yo no le veo a otro mundo a esta gráfica que está aquí está que está acá bajito mire des cuenta que aquí aparece en un mapa mundo y le marca en función a estos códigos en que ubicación gráfica se encuentra eso es lo que hace y o si no cambias a al típico de barra que te puede decir cuántos registros está en cada uno de los códigos de países cuántos registros pertenecen o están agrupados digamos por el código que está en particular esto que está aquí pues no le veo en el otro mundo pero es lo que dicen ellos vayamos al menú que dice conversión por favor ubicado en país código conversión y aquí me quien me habló brenda no y eso no va a cargar haga lo siguiente por favor ábrese una nueva ventana por favor de en la última que tiene allá que se llama data preparation por ahora la pestaña es la última el click si dele ahí en la flechita en la parte izquierda ahí listo y mande ahí el 4 nuevamente mande lo para ver un momento no quedan iguales ahí la única diferencia es el time el tiempo en que subió quedarían con el mismo nombre pero la forma en que lo puedes diferenciar es el que subió intenté subir el 5 ya es un co subió que el ejercicio 5 ya lo subió de ese de ese ya la pestaña que está al lado vez subió el 4k de los hagamos ahora la preparación ahí inmediatamente al lado derecho el menú derecho antes ese que es ahí perfecto dele a si están amables perfecto ubíquese en la columna país código que es la que estamos actualmente listo bien entonces vamos a país código en el menú de conversión desacada del lado derecho vamos a escoger convertir country names a coach listo aquí dice from me dice en qué formato está el el nombre el código del país en este caso creo que es esa hizo que voy a tomar esa hizo que está acá y quiero que me lo convierta a nombre de países si el código corresponde a uno de hizo lo colocará el nombre del país dele por favor envíelo a una nueva columna a ver si lo hace de él es aquí y ahí está el problema que puede tener es que el nombre lo coloca en inglés es el único inconveniente será que lo convertimos acá en español lo puso en español si vamos a ver si y cómo se lo puso será que tiene la el el browser que le será que el browser le traduce inmediatamente porque este para ver quién me habló que de con la curiosidad alejandro un momento y a ver tu pantalla un momento para ver que de con la curiosidad ese no no pero que todavía no han enviado su mitad del único sumi para ver submit no lo que pasa es que eso que está en español son los que venían por defecto en la en la set en el no sé que estaban esos nombres estados unidos en español para intentar ahora convertirlos a códigos ahora era que faltaba ejecutarlo bueno ahora aclaro que él te traduce en el idioma en que tengas la herramienta nada más no la gusté para recordarle el día de ayer le dice cómo cambiar el idioma previamente no creo que tenga poco sentido es decir aquí cambió a inglés porque la herramienta no la gusta ya simplemente ver acá en el profile preference aquí me pide loguiarme nuevamente en este profile preference hay una opción que es el lenguaje es el lenguaje que está aquí entonces yo podía cambiar a diferentes idiomas aquí pero español no existe aquí está inglés francés japonés y alemán no sirve ahora vamos a hacer entonces con el siguiente que sería data preparation lo hago nuevamente sería la preparación número 4 y nos situamos ahora en el nombre del país vamos a intentar entonces convertir estos nombres a un código voy a ser nuevamente al menú de conversión donde dice convert con trinen sanco dile fron dígale que está el country name y páselo por favor a hizo 02 con tricot vamos a ver qué pasa en una nueva columna ahí no creo que haga mucho de ese cuenta que lo único que hice que se me hace raro fue que convertió código japon gp no sé por qué porque normalmente lo buscaría en español es a tilde grinejapón no sé por qué voy a hacer algo en particular voy a convertir esta francia en france voy a cambiar aquí como hacía ya en el tal nata severs va a cambiar francia a france su mi el problema es ahora quedó con la siguiente duda si intentaría ejecutar esto el cambio está acá abajo por lo tanto me daría lo mismo voy a intentar a ver un momento a ver si intento mandar un su mi en teoría debería si me da lo mismo por qué porque el cambio lo hice acá en tercero aquí me tocaría nuevamente voy a cambiar aquí el orden que también no lo he mostrado y a cambiar aquí el orden voy a subir este señor para que lo haga de segundo primero me reemplazaría y después me intentaría convertir y ahí está bueno ahí me sirvió para dar eso que podía cambiarle acá el orden de la receta hacia arriba o hacia abajo cambia lo primero y después sube el cambio como segundo elemento en la en la receta y después qué va a pasar que primero hacer en plaza y después va a intentar convertir esos nombres a código morales a este señor y también nos pasa mucho con el tal nata catalog pues se está muy ligado al idioma inglés no es posible hacer una a cambiarlo inglés a español perdón y creo que no está entre la corto plazo no está ese de la herramienta en español recuerda cambie a france y después sube y cambia el orden como segundo y debería ya parecerte el código de francia que espere por lo demás no funcionó porque están en español y los espera en inglés que todo no funcionó, a ver que uno que no haya funcionado vayase ah ok esa que está ubicado está convirtiendo alison el problema que tiene ahí es que está convirtiendo de código a nombre y la conversión es al revés de nombre a código entonces en el front dele clic en el front donde está ubicada en ese front que está en la parte de arriba del front ahí y va a decir que es country name y ahora páselo dele en el to dígale que lo pase a iso 02 code ese country code iso 02 dele nuevamente y ahora sí está era que el problema era la la configuración de la conversión bueno seguimos entonces quién me habló es una buena pregunta que no le sé la respuesta en realidad no sé por qué no debió porque esa tilde no está en el idioma ese sí está raro que lo haya convertido en el código correcto ahora me puse a pensar que es verdad que en inglés es japan ni siquiera es japon sino japan sería listo hagamos lo siguiente vamos a probar lo que tú dices para ver vamos a colocar aquí germany pero con la y latina germany germany aquí no no no lo convierte estamos ahí sí tenemos la duda voy a convertir este en japan debe ser gp verdad que este en japan para colocar un no en realidad no sé por qué japón lo no le sé decir voy a investigar por qué porque japón lo convierte el código no sé es que ni siquiera porque que la tilde esa bueno y tampoco no funcionó lo del el fusil bueno así queda con la duda de por qué vamos aquí ahora vamos a distancia metros en la columna y vamos al menú de conversión en conversión que me pasé en el menú de conversión listo y aquí hice convertir distancias entonces te pregunta la unidad que en que está y es a millas voy a coger kilo me en la unidad que está está en metros metros y quiero convertirlos a kilómetros aquí la precisión va a ser cuántos decimales vas a querer colocar ahí en la conversión entonces en que está está en metros la coloque en metros a que lo quiero convertir a kilómetros y con una precisión de uno significa con solamente con un número decimal delez súbmica aquí debería cambiar el 10.000 debería cambiarlo a 10 y así suecidamente efectivamente con la precisión de uno sólo un solo carácter decimal seleccionó ahora la de pero que algunos terminen vamos con duración horas vamos al mismo menú de convert de convertir y aquí está convertir duración entonces te pregunta así como el de el de distancias te convierte pregunta en qué está la unidad entonces voy a decir que esto está en horas en horas y las quiero pasar a días a cinco horas las quiero pasar a días con una precisión de uno entonces voy aquí a súbmica hace la conversión y me convierte las horas a días de ya era una fracción del día 0.2 días sería equivale a cuatro horas 0.3 días 0.2 día equivale a cuatro horas que pudiera convertir año a meses meses a días como tú quieras esa función si es interesante porque esas conversión de fechas y se ven mucho para tratar de estandarizar los diferentes de lo que tengas vamos ahora aquí ahora a temperatura para finalizar ya este menú de conversiones y aquí está convertir temperatura lo mismo te pregunten qué está y a dónde la quieres convertir dígale entonces que está en faren que y la quiere convertir a celsius esto viene porque no está centígrado porque este señor viene de europa normalmente el centígrado se usa más acá en américa asumo que por eso no está centígrado acá eso sí de temperatura nunca lo he usado pues algo comercial pero bueno te hace la conversión al a lo que tú quieras ahí bueno específicamente farenje y celsius y kelvin y ese es el menú completo a nivel de lo que es conversión bueno continuamos entonces con el siguiente menú que sería el menú de limpieza este menú de limpieza y unas cosas que las puede hacer con el ser replays o con el match match pattern que fue que hicimos ahora y muchas veces repite algunas cosas para esto entonces vamos a tomar ejercicio 5 que yo creo que si subió tengo el 6 y tengo el 5 ejercicio 5 si subió voy a crear aquí una nueva preparación la voy a llamar cambiarle el nombre aquí underscore efectivamente la primera vez no funciona en la segunda es la que funciona no sé qué pasa ahí me ubico para ver en ese menú bien vamos entonces se ubicamos en nombre en nombre y vamos con la primera función que se va a dar cuenta que es exactamente igual o parecida ser replays o el match pattern la única diferencia es que aquí por defecto el limpia la limpia como tal la expresión entonces aquí por ejemplo nos ubicamos en nombre y podemos cliar un matching value me pregunta si deseo ya sea por valor y aquí lo mismo funciona que tenemos igual igual contiene inicia finaliza o regex asume que vamos vamos a eliminar todas las columnas que tengan el nombre carlos cuando digo eliminar las columnas es que la voy a colocar en blanco eso es lo que hace un clear limpia la columna es igual a un ser replay recuerden que si yo hago con contén igual estar o en qué va a pasar en que va a ser caso sensitivo si quieres caso insensitivo lo mejor es que hagas con un regex para repasar regex vamos a decirle aquí regex y entonces como es caso insensitivo tenemos que hacer lo siguiente tendríamos que hacerlo de esta forma sería empezamos con paréntesis signo de interrogación y yo digo carlos aquí él reemplazaría a todas las columnas que contienen carlos ya sea minúscula mayúscula o mixto lo mando por el chat por si las dudas coloco aquí en valor primero que sea regex y después colocó la expresión como la mandé en el chat voy a hacer aquí un preview y debería eliminar de la segunda con la segunda fía y está este casualmente no tiene no tiene para que el resultado me lo envíe en una columna nueva de él aquí su mick inmediatamente entonces su mick perfecto este es esa función si usted analiza es exactamente un ser replays y el replay lo mando en blanco para que reemplace toda la columna no hay nada del otro mundo bernanda brenda vamos a ver darle f5 nuevamente para ver y hay un f5 para recargar la página para ver parece que hay una función con la expresión de espera un momento y me conecto a tu listo espera un momento a ver este es un regex parece que hubiese un error en esta expresión regular ese es un ahí lo que está ahí sí es un ahí verdad vamos a eliminarlo un momento aquí y vamos a volverla a crear para ver sería entonces estoy ubicado donde debo voy a hacer aquí un pillars voy aquí entonces regex y voy a pegar la expresión perdón sería paréntesis y si no se hicieron no sé porque la expresión la única diferencia que tenía la c mayúscula y daría lo mismo si es con c mayúsculas y minúsculas decir déjame para ver y pruebo porque aunque no colóquese a eso voy a cambiar aquí a c carlos con c mayúsculas no para mí que hubo un error antes en la ejecución que no tiene nada que ver contigo fue de pronto algún error de de memoria algo para estirlo que indicó que estaba mal pero no creo que haya sido error tuyo le hizo seguimos entonces si digo quién me habló fernández y ya voy por ahí momento momento por favor y veo para ver qué hay vamos a ver este clear como lo tienes aquí raro no es pan de aquí la voy a eliminar a la señora que está acá un momento no sé voy a la función clear voy aquí donde dice regex y sería paréntesis aquí lo tiene ya este de aquí pero me parece que ésta no es una y si eso parece un signo de admiración verdad y si me parece que era el signo de admiración esa que perfecto listo ahora sí no sé qué va a pasar que era la signo de admiración vayamos a la columna género esta que está aquí y aquí hay una función que dice clear clear significa colocarla en vacío clear cerda con invalid values recuerde que hay tres colores que se identifican el negro el rojo y el verde el rojo indica valores inválidos el negro indica vacío y el verde valores correcto limpie las columnas que tienen valores en la columna género nada más darle a clear aquí y él automáticamente envía un submit y lo que hace que esas columnas las coloca vacías perfecto aquí hay una función de línea la que viene que se llama delete the row that much esto lo que va a hacer es que va a eliminar las filas que contenga alguna columna lo que está buscando tú por ejemplo aquí sí la voy a buscar por no usar regex porque la usar entonces que contengan por ejemplo una m entonces si da cuenta la línea número 1 no contiene m la fila la la fila o línea número 2 contiene m en género debería borrar la base de aquí un preview si ahí está la que debería eliminar no hagamos el porque necesito esa columna para los ejercicios que vienen pero lo que hace eso es que elimina las filas sobre una coincidencia por ejemplo vamos a eliminar la que contengan una y y preview no porque es que contengan y pero debió marcar isabel raro raro porque no marco isabel a no que contengan no es que sean iguales voy a colocar aquí mejor que inicien con y a ver para ver ops aquí no sé tenía anteriormente contain pero es que debería aplicar así claro si si seleccionó aquí salió un pequeño rol le voy a decir a borrar las filas de partiendo de esta columna aquí para ese momentito si si tiene razón verdad que si ops voy a hacer aquí un tal en punto login entonces voy a volver a loguiar bueno errores que pasan aquí si si claro tiene razón es decir borrar las filas sería estamos en el 4 o el 5 en el 5 o el 4 el 5 si entonces voy aquí al delict delict row dat más de esta columna nombre borra las filas que contienen y vamos a ver si es sí sí efectivamente aquí no me pasa con la y en latina por qué porque recuerden que es sencilla si quisiera que fuera insensible meto quería hacerla con un reyes entonces es el delict row del match de las columnas en que esté si hace match lo que va a eliminar es la fila no hagamos el sumi porque necesitaría las siguientes columnas bueno aquí tendría el delict row de las anti cell de la columna en que esté ubicada por ejemplo en este caso como estoy ubicado por nombre si yo le digo delict row week anti cell debería mandar entonces a eliminar la fila número dos efectivamente elimina la fila número dos gracias por la observación ya cansancio ya que me corrigieron a un hombre y una mujer no sé quién pero muchas gracias listo sigamos entonces saber qué más hay en esa parte delict row bueno delict row con valor negativo entendemos aquí me aplicaría nada más para esta parte de la edad ok significa entonces que aquí si le digo delict row entre valores negativos eliminaría esta columna que sería la 5 nada más creo que el único tiene con valores negativos listo voy a ver qué más hay aquí a nivel de columnas estamos aquí a ver listo estamos aquí en el menú delict row listo bueno este sí llenar valores con celda con valor vayamos a género y escojamos fill cell with value esto lo que haría es que las filas que estén vacías espérate parece que existe aquí un no este lo que haría es que si le doy aquí por ejemplo m todas las celdas la reemplazaría por m confirmo sí efectivamente ese reemplaza todos los valores de la columna no lo hagamos porque me daña entonces el ejercicio que viene el fill cell with value lo que hace es que llena entonces todas las columnas por valor que yo quiera o que haya especificado en el text box pero vamos me interesa llenar mejor son las filas que están vacías vamos a bueno este que está aquí quizá aparte un momento que ahí lo lo le explico para qué funciona ese voy a eliminar esto que hice aquí para explicar algo resulta que esto es más para un científico de datos resulta lo siguiente en algunos casos tú puedes tener una columna por ejemplo esa columna puede ser precio digamos de esta forma esa columna precio puede tener digamos varias filas voy a colocar aquí bueno precio más o ver que esto hay más columnas acá pero me interesa esta precio para que pueda entender para qué sirve eso esta precio puede tener los siguientes valores puede tener 1 2 3 4 puede tener aquí un vacío 5 6 7 puede tener aquí un null a nivel de base de datos que es diferente vacío lo coloco aquí entre paréntesis para que me entienda aquí puede estar estos vacíos y puede seguir acá con 10 11 el problema que se tiene cuando tú haces algunas de minería de datos también te te aplica es que muchas veces cuando tienes valores vacíos te afecta la desviación estándar y eso te puede llegar a conclusiones que pueden ser erróneas entonces lo que hacen y la técnica que están aplicando a nivel estadístico es que tú haces lo siguiente tú los valores vacíos los rellenas con el valor más cercano ya del lado izquierdo del lado abajo el izquierdo derecho perdón aquí como lo tengo vertical es que tú lo escojas hacia arriba o hacia abajo la edición que escoja no cambia porque al fin y al cabo te lo que busca es lo siguiente si yo tomo este 4 aquí yo tomo que este lo va a rellenar con el más cercano hacia arriba significa que todo rellena con 4 este null lo relleno con 7 este señor lo relleno con el de más arriba que ya lo puse con 7 y así se seguía su suecidamente seguiría hasta aquí y te rellenaría los datos de esta forma que va a pasar ahí que esta técnica te ayuda a que la desviación estándar de esos datos no sea tan alta porque eso que están ahí vacíos te pueden afectar o te pueden afectar también el promedio entonces estos señores aplican esa técnica esta técnica está hecha en esta en esta función que está acá escoge por favor género si es tan amable escoge la columna género y ten en cuenta estos vacíos que están aquí si lo rellenate por favor quítalos y hay una función que dice lo siguiente film entice el front a vos a vos arriba verdad sí o arriba o arriba sí arriba entonces esta fila que está vacía o lo siguiente esta fila que está vacía rellenará de su valor vacío con el mismo que está arriba o sea con una f este seguiría con el de más arriba que ya reemplace con una f este con una f este con una f y este con una m eso más que todo es para la técnica se llama suavizar los datos vamos a ver entice listo hago ahí para ver efectivamente ahí los rellenó eso esa esa función está específicamente es para eso recuerden que esto va más para analistas y científicos de datos para que los formateen pues en el formato que yo te sé listo vamos a ver qué más función hay bueno aquí film en vale balwe y esta estandarización funció vamos a ver listo ok esta es la misma técnica del max similar que teníamos allá pero aquí con un porcentaje de desatitud vamos a lo siguiente vamos a tomar nombres este nombre que está aquí y vamos a la función esa que confirmo que me confirmo algo acá es por ese momento listo vamos a ver y encuentro un nombre aquí listo aquí tengo un nombre Elena y quiero estandarizarlo a Helen a ver cómo me va entonces para eso voy a tomar la columna nombre me voy al data clínica el que estamos y voy a estandar de valor aplica el mismo fusy entonces aquí que pena que se me escapó el lo confundí con otra función ya le ente ya ya ya ya recordé note que aquí tengo anteriormente el fusy que usaba lo comparaba contra un valor pero ahora voy a compararlo con todos los elementos que estén en la columna en la en la en la columna es decir mire darte cuenta que en la fila número 2 tengo elena y en la fila número 10 tengo elena con h en la fila número 11 esta que está aquí tengo aquí yo y yo acá vamos entonces él va a intentar hacer un producto cartesiano de todo contra todo para ver qué elementos similares encuentran la misma columna los que habíamos hecho anteriormente lo que hacíamos es que colocamos un valor base y ese valor base se comparaba vamos a ver lo siguiente aquí dice entonces que busque por un porcentaje mayor 80 vamos a encontrar algo de él aquí preview para ver qué hace ahí no hace nada parece que no encuentra voy a darle el más cercano que sería el nom más cercano a ver pero no está funcionando a ver un momentico ahí ahí parece que me subiese a ese momento que este ejemplo no me acordé ahora pese para ver voy a esta analización fuchsia aquí aquí me está marcando estos elementos de género porque me está marcando pero no sé por qué me está marcando aquí pero de se cuenta que aquí me está marcando quisiera entender por qué me está marcando aquí solamente este valor acá pero lo que me está marcando son los parecidos por ejemplo este yon se parece este yon de acá y el yon de acá esta laura no se parece en nada este para el espectro mítico porque esta estandarción fu si me está dando es no este no sé por qué no me funcionó este momento de ahí reviso para ver la teoría que se me escapó este ejemplo momento por favor que no me está funcionando es aquí debió convertir este lena elana elena pero lo raro es que no está siendo bueno hagamos algo ese tenemos un brillo ahora el del almuerzo en el almuerzo reviso este ejemplo y les digo por qué fue que no funcionó por qué que raro que no haya funcionado en un momento intentó hacer la última vez enmarca estos elementos acá bueno ahí disculpo ahora en el break reviso para ver por qué no funcionó este ejemplo entonces quedamos en ese estándar fu si y le explico ahora por qué fue que no funcionó bueno vamos entonces al ejercicio número 6 que es el este data masking que funciona mucho más para la privacidad y confidencia de datos entonces vamos al ejercicio número 6 voy a revisar para decir el 6 lo subí aquí lo tengo arriba voy a crear entonces una preparación con el 6 aquí listo le voy a cambiar el nombre perfecto entonces voy a cambiar aquí el nombre a ejercicio 6 preparación la primera vez no funciona perfecto bien entonces aquí lo que hace es lo siguiente primero note que puede pasar aunque eso no creo que pasó hoy en día en la vida real esta parte pero quien quita que lo tenga note que aquí tengo un par de columnas que tengo id nombre correo y password ok entonces note que el password está aquí en texto plano y quisiese de pronto encriptar ese texto para que nadie lo vea entonces tú puedes hacer lo siguiente puedes convertir este señor que está aquí está texto plano en una clave hash tal forma en que cuando lo compartas no puedan entender qué es lo que está aquí entonces si te vas aquí donde dice password vete a donde dice el menú data masking de máscara de datos y escoge has data le envías un submit y te convierte esa columna en una clave hash esa clave pues ya ahora sí va a estar encriptada y va a ser difícil entonces que detecten entonces la clave que estaba en texto plano básicamente lo que hace es convertir una cadena a una clave hash teniendo como base la otra parte es el correo vayamos a la otra función si estuviese en la columna correo y tú puedes enmascarar ciertas letras que están aquí entonces vete o nata masking nos situamos en correo ahora estamos en correo le damos en max data ofuscación aquí hay muchas técnicas de ofuscación entre esa técnica de ofuscación la más sencilla es la que dice reemplazar los primeros n caracteres replace n first character reemplazar los primeros n caracteres aquí por defecto está 5 aquí te dice si lo deseas repetir con caracteres aleatorios vamos a colocar un carácter repetible y voy a colocar x significa que ahora va a colocar en los primeros elementos una x este no es tan parecido al de al que se rellenaba con el con la máxima cantidad que este es un poco diferente ese para que no vean cierta parte esto puede suceder cuando puede ser esto cuando de pronto compartan datos que tengan datos sensibles como dirección le vamos a decirle como de pronto quizás el el el sueldo entonces aquí le damos aquí bueno al final me cogió fue un randon ahí voy a ver por qué me cogió el randon porque perdón yo le puse la x fue en la semilla ese es para cuando es randon debió colocarle la x en replacement voy a darle su mi nuevamente si porque le coloqué la semilla aquí fue la sec de la semilla esa semilla se coloca ahí para cuando los caracteres sean randon y ahora si le coloca los caracteres x para eso que es el data más que no es nada para otro mundo perfecto ahí terminamos entonces vamos al ejercicio 7 yo no sé si me pareció que no lo he subido voy a subir el 7 el 8 si no lo había subido el 7 voy a subir el 8 el 8 y voy a subir también el 9 para que sean los tres que vamos a continuar no sé si me regala un break de 10 minuticos para buscar agua que se ve que se me acabó entonces empezamos en 10 minuticos por favor a la 1 y 25 mientras busco algo de agua regresamos en 10 minutos ok bueno regresamos pues listo ya con la garganta un poco más aclarada bien continuamos entonces ya vamos el ejercicio 7 8 y 9 esperamos ya el 10 vamos a hacer conexiones entonces de pronto a una base de datos listo entonces vayamos a lo siguiente ejercicio 7 vamos a ver si subió perfectamente aquí ya subió listo voy aquí a las preparaciones esto perfecto dígame sí seguramente sí vamos a ver cuáles son si eso es para un formato de teléfono que tengo ahí pero creo que no sé si nos da tiempo porque quiero hacer otro ejercicio vamos a quedar hasta aquí hasta el 9 y si nos da tiempo subimos eso es 10 y 11 para ver porque la idea es comentar una base de datos ahora muchas gracias a ti bueno continuamos entonces listo voy a hacer una preparación aquí con el 7 y esa viene con funciones de fechas entonces vamos a escoger fecha nacimiento esta que está aquí vamos a las funciones de fechas sería el 7 por favor mientras algunos oídos están subiendo vamos a esperar 7 7 nada más tiene tres columnas que es fecha nacimiento fecha registro la fecha nacimiento vamos a calcular entonces la edad que tiene cada uno de los registros que están establecidos que solamente son 5 apenas espero todavía que hay algunos que le está subiendo perfecto yo creo que ya brenda le subió entonces hacemos la preparación el 7 y vamos a calcular la edad que pueda tener cada uno de estos registros partiendo de la fecha nacimiento para hacer entonces funciones con fechas y calcular con fechas vamos aquí a la primera vamos al menú de dates y aquí hay una la primera función que dice calcular tiempo desde vamos clic ahí tomando desde la fecha nacimiento listo primero te pregunta en qué unidades deseas la salida en este caso deseo la salida en gears aquí está gears y contra qué quieres entonces hacer la operación de ese elemento en este caso sería now la actual de esa forma calcularía pues cuál sería la edad actual que tiene también hay otras opciones que puede especificar una fecha la que tú quieras o es su defecto usa su otra columna como base en este caso deseo calcular es la edad actual por lo tanto la configuración de esta columna sería desde tiempo unidad unidad de tiempo gears y hasta ahora no crea lo de una nueva columna por favor y la edad sumi y ahí te están marcando cuál sería la edad que se tiene actualmente partiendo esa fecha nacimiento más específicamente cuál es el tiempo que ha ocurrido desde esa edad hasta la que estamos tiene que tener en cuenta algo que ya había mencionado en el talent data steward y te lo menciono en esto también talent ha escogido como como formato de fecha formato año guión mes día si el formato no está lo más recomendable que puedas convertirlo a formato que él entienda o en su defecto que los formatos estén estandarizados para hacer algunas operaciones listo entonces eso sería aquí 34 perfecto vamos a ver qué otra función viene ahora vamos a cambiar el formato de la fecha vamos a escoger la fecha de registro y vamos a escoger vamos a cambiar su formato como hacemos para cambiar el formato de la fecha quizás el formato no lo cambia para hacer operaciones dentro del talent pero sí le serviría para quizás lo vas a llevar a un power v a un tablú que quizás quien necesite un formato especial entonces es como fecha de registro y vamos a cambiar chains el data el formato de fecha ahí te preguntan que si en realidad te preguntan si sabes el formato de la fecha en cuál está ese el caso de que tú no sepas puede darte el caso en que quizás los registros no todos estén estandarizados entonces le pides al sistema que te adivine cuál es el formato en que está pero como el formato sé lo mejor es entonces es que cojas y vamos a definir nuestro propio formato el formato en que está sería el siguiente aclaro que estos formatos son establecidos por el formato de java entonces permítame y encuentro aquí format date java modifide si lo encuentro aquí aquí están estas serían las letras de los formatos de java tienes que tener en cuenta que tendría que usar estas letras para cambiar un formato específico por ejemplo que quisieses cambiar de numérico a nombre del mes el nombre del mes por ejemplo está en formato m m mayúscula en la m mayúscula es demo y la m minúscula es de minuto entonces hay que saber cómo conjugo cada uno de sus elementos ahora vamos entonces a lo siguiente vamos a cambiar este formato partiendo ese hecho el formato estaría en año guión mes día el original por lo tanto partiendo de java para java el año sería ye y como está en formato de cuatro dígitos sería ye ye ye ye guión perdón lo vi en minúscula mayúscula en minúscula que perdón gracias no sé por qué este día muchísimas gracias es en minúscula ye ye ye porque él de java hizo perfecto vendría m m dos dígitos del mes y sería en minúscula de de te pide si deseas el nuevo formato a uno estandarizado sobre hizo normalmente porque estos maestros se meten con esa parte de hizo y estos estándares lo que pasa es que en la unión europea hay que seguir unas regulaciones así como quizás tú adoptaste es como norma a nivel de privacidad de datos un gdpr que es el europeo estándar europeo entonces en europa hay unos estándares que tienen que conseguir que seguir las diferentes fechas entonces por eso es que quizás estos estándares están muy bien establecidos en esta herramienta aunque acá no es que se base en el caso de colombia no sé cómo estaría méxico pero no todas las empresas no hay un estándar a nivel de fechas cada empresa adota como él quiera pero lo que he visto es que la mayoría se casa por un año mes y raro en eeuu este software europeo el software en eeuu normalmente el formato que ellos siguen es un mes día año pero estos están muy regulados a nivel de europa como no quiero ninguno de estos estándares voy a decirle others y voy a decirle que me cambia el formato a lo siguiente mm 12 m mayúscula voy a cambiar el carácter de separación a slash voy a decirle dd y que me termine en yeyeye en minúscula gracias por la persona que me colaboró y no sé pero muchas gracias yeye en minúscula y voy a hacer aquí un preview para ver si ese formato en realidad lo está tomando si efectivamente ahí lo tomó voy a hacerlo en que me cree una nueva columna mejor y lo manda sumi para revisar si que todo esté bien si efectivamente ahí está 0 9 10 y es 20 al nuevo formato establecido en la única moraleja que hay que tener en cuenta es que las letras que vayas a escoger para definir el formato son las que están establecidas por java no son las que están establecidas por talen porque como tan basado en el lenguaje java quien establece esas letras es java y no talen perfecto listo ya terminamos con ese date vamos a comparar las fechas vamos a ver si la fecha de registro la fecha de registro de en este caso para sacar el documento de identificación no sé en méxico pero en colombia todavía estamos en que aquí hay que sacar dos documentos un documento que llama antes de 18 años y el documento que está después de 18 años eso se vuelve un complique porque los números se varían y es independiente todavía no se han actualizado en esa parte el caso de eeuu no sé el caso médico que está un solo número nace con un número y ese número lo acompaña toda la vida el caso de colombia y dos números y eso trae algunos inconvenientes a nivel de universidades porque el pelado entra el muchacho entra adolescente y después cuando entra etapa adulta entonces ya tiene cédulas entonces bueno eso hay que adaptar los sistemas de información para eso vamos a hacer lo siguiente vamos a registro y vamos a escoger la función de que hice comparar fechas comparar fechas y en este caso entonces la deseo comparar es si la fecha de registro es mayor aquí están todos los operadores igual no igual mayor igual mayor menor igual y menor entonces voy a coger mayor greater than puedo compararla con un valor fijo en este caso lo voy a comprar con otra columna y la columna que la quiero comparar sería fecha de registro verifique que esté una nueva columna aquí al parecer vamos a darle aquí submit debería estar todas en true si fecha de nacimiento y con que la comparé vamos a ver a la misma con la misma si si si fecha de nacimiento muchísimas gracias submita aquí y efectivamente es como usted sí dígame quién me habló disculpe brenda voy para allá listo bueno ah listo ahí dele clic por favor y vamos a darlo operador greater dan es el tercero ese que es ahí perfecto ese de ahí use envalue dele clic ahí porque malo es para un valor fijo y estático dele clic a ese valor y escoja other column no escoja other column porque la vamos a comprar el con fecha de nacimiento other column y ahora en el column que le apareció escoja la fecha de nacimiento fecha de nacimiento dele submi si es tan amable envíe dele submi para que le cree la perfecto comparemos aquí entonces voy a cambiar aquí la fecha listo me voy a cambiar aquí a 1981 debería 1981 y aquí hay algo de la herramienta que bueno yo lo hubiese hecho como desarrollador que automáticamente cuando se hizo un registro ejecutar a esto creo que de pronto lo pensó porque le consumía mucho tiempo me tocaría volver nuevamente a hacer la evaluación con submi para que este cambio que hice aquí a no porque perdón en realidad no lo hizo fue porque en realidad estoy reemplazando después de comparar entonces me tocaría subir este valor aquí a la tercera posición para que reemplace y después vuelva a comparar entonces y aquí está entonces el por sí ahí fue un error de apreciación y eso cual viene ahora con ver a listo listo el otro vamos a tomar la fecha de registro nuevamente y ya habíamos visto el cambio de formato el cambio de formato es que tú pues quisieses pasar como hicimos el caso particular de que estaba año mes día y tú quisiera pasar la mes día por ejemplo pero aquí está una de conversión vayamos entonces y escojamos fecha de registro y vamos a convertir en este convertir te preguntan entonces en qué formato está el formato que debería estar debería ser calendario gregoñano este que está aquí pero ahora si tú quieres lo puedes convertir a otros tipos de calendarios aquí lo que de pronto te puede o que pronto es conocido ese formato juliano y ese push day es el formato que se usa para time están al final es muy parecido pero no es igual la diferencia fundamental es el año con el cual tú vas a sacar el cálculo entonces mientras si mis cálculos no me fallan el push day lo calculas con la fecha del mil novecientos setenta y el full and they lo comparan con una fecha que no recuerdo es decir para poder darte el valor en que está al final como lo que te convierte es un número para poder saber qué fecha es ese número entonces lo que hace es que lo resta con la fecha base que tiene el calendario conviértelo por favor a push day este push day que está aquí y dale un sube mit debería darte un número aquí lo cree sobre la nueva sobre aquí está este número que está aquí representa entonces la fecha pero se me hace porque normalmente es más grande para evitar voy a darle aquí voy a eliminar este señor para que no crea no no debía ser eso debí darle un creen y un colón y mandarlo a ejecutar nuevamente voy a correr nuevamente fecha de registro y voy a hacer estas conversiones que se tienen aquí entonces era en el formato de is con ver de y aquí está el push day perdón está en grego en gregoña calendario y lo puedes pasar a push day permíteme y hago una consulta aquí porque se me escapó la diferencia de push y creo que está en están es diferente a juliano se basan en lo mismo pero es diferente es un momentico aquí y hago una consulta rápida es un momento es poch está en están y julio es poch empieza en el año primer o sea para calcular lo calculas con el 1 de enero del año 1970 el tan están bueno pero no me dice aquí la el juliano lo calculas con el 1 de enero del 47 13 antes de cristo o sea ese sí listo de cristo o sea juliano viene de cristo para acá el push empieza el año 70 para acá y el tan están bueno es un formato específico que se calcula como no me dice aquí pero bueno esa es la diferencia que hay en realidad son diferentes los tres cuál es mejor dependiendo del caso esto sí se usa bastante porque lo he usado mucho lo uso más que todo el tan están porque para evitar el problema de los porque es que hay algunos que usan el formato mes día año día mes año entonces mejor puedes usar un formato de esto intermedio en que al final tú puedes convertir un époche julian o el tan están lo puedes convertir a la fecha que es y en el formato que tú quieras entonces te da mucha versabilidad utilizada en alguno de estos formatos pero bueno ahí está la función que no es nada del otro mundo lo que hace es que te convierte a un en este caso convertimos creo que el que viene te convierte julian vamos a ver aquí nuevamente aprende que aquí hizo fue lo mismo es un momento que ya como que me está dando hambre el almuerzo pero es un momento a ver aquí listo vamos aquí a hacer lo mismo que hice ahora que se me perdió deis aquí está y había hecho un convert crear nueva columna y le voy a decir que sea époche de ahí entonces su mic aquí ahora sí y creo que ahora viene el de convertir a ahora bueno convertamos un lado porque aquí vamos a convertir a tallestán en la función que viene este señor que está aquí y el nuevo formato hay varios formatos como dice de julian vamos a usar el de la iso y debería también darme un número se te insana debería darme un número también si no lo calculó es porque la fecha de registro no entiende el formato pero ahí aparece en blanco al parecer bueno ese ejemplo no me salió también ahí ahí lo que debe tener en cuenta es que hay algunas funciones al parecer el formato no sé no como que debió entenderlo pero como que no lo entendió y él no pudo convertir termino ya esta parte de day ya casi para irnos al break del almuerzo que más nos falta extraer parte de la fecha entonces estamos en fecha de registro extraer parte de la fecha aquí tengo un error no sé si sale aquí un error voy a volverme a loguiar no me espera un momento por favor sería tdp para que me cerró la sesión un momento y es qué pasa aquí no sé si ésta me funciona no espero un momento que está cargando
on 2025-01-27
language: ES
WEBVTT ¿No? Qué pena que perdí comunicación. Me llamo nuevamente aquí al Preparation. Ahora sí, estaba en ejercicio, creo que era el siete, este de aquí. Perfecto, está en fecha de registro, voy al menú de dates y voy a extraer parte de la fecha, entonces, aquí puedes extraer el el trimestre, el mes, el nombre del mes si lo tiene, voy a extraer aquí nada más el gear, el cuartel que sería el trimestre y voy a ver si me saca el nombre del mes, que debería sacarme el nombre del mes en inglés. Nada más voy a escoger esos tres elementos, decía el año, el cuartel que sería el el trimestre y el nombre del mes. Automáticamente debería crearme una columna para cada uno de esos elementos, voy a quitar la hora y el minuto de acá. Los lenguajes, aquí tengo un Spanish, no me acordaba que había un Spanish. Vamos a ver cómo funciona esto, vamos a darle aquí a Sudmi para ver. Año cuartel, el nombre del mes. Perfecto, listo, aquí tenemos entonces los meses en español, el cuartel que sería el periodo, cuarto, tercer, trimestre, perdón, y tendría el año. Esto sale, hay muchas funciones, hay muchas veces que necesitas sacar porque necesitas agrupar por mes, por año, por trimestre, y te puede servir funciones de esto. Listo, perfecto, voy a borrar aquí y le voy a hacer nuevamente, perfecto. Bueno, vamos a ver, vamos a hacer un clic, un momentito, listo, estoy en fecha de registro y me voy al menú de dates. En el menú de date hay una opción que dice extraer parte de la fecha, es extract date park, es la penúltima, y de aquí vas a sacar lo siguiente, vas a sacar el year, el cuartel, el mes no lo vas a sacar, vas a sacar el nombre del mes y nada más voy a sacar esos tres. Voy a sacar, repito, el año, el cuartel que sería el trimestre y el name que sería el nombre del mes, y asegúrate que el nombre lo mande ahora en Spanish. Aquí en Spanish, y le das subme para que te, te adicione entonces, le le subme aquí para que te haga un clic en esta, y esto tenga los datos ahí. Perfecto, ahí salen entonces, no sé si lo que hacerte es a terminar. ¿Quién me preguntó? ¿Qué fue Brenda? Bien, terminamos con este ejercicio y nos vamos al break, todo demora nada, vamos a terminarle el dates, este que está aquí, es jueves, fechas de registro, y vamos a la opción que dice modify date, que es la última, modify date, y lo que hace este señor es que modifica la fecha, incrementando ya sea años, meses, días, o horas, a la fecha. Por ejemplo, ¿qué estaría aquí? Voy a quitar este señor, este filtro que tengo aquí. Si yo dejo ahí la unidad de tiempo, years, momento, years, aquí me especifica si lo baso en una columna o un valor fijo, va a colocar valor, ¿qué es lo que haría este señor? Me sumaría un año a la fecha en la columna que estoy. Si quiero restar, pues coloco la suma negativa y me daría, pues, restar el año, aquí puedo, en la unidad de tiempo, si usted quiere puede escoger meses, días o horas para hacer operaciones sobre la columna de la fecha que escogiste. Yo escojo fechas y aquí escojo uno, voy a darle sumi y aquí lo que debería hacer es que debería incrementar en un año cada una de estas fechas. Ahí está, efectivamente. Perfecto, listo. Entonces, dejamos hasta aquí, nos vamos al y volvemos entonces a las cuatro a las tres en punto, hora México entonces, ¿OK? Cuatro horas. Bueno, buen provecho.
on 2025-01-27
language: ES
WEBVTT se ofrece en modo on-premise o en su defecto en modo híbrido, pero al final es un instalable. Tienes que instalarlo en la infraestructura que la vayas a usar. Entonces aquí hay un acceso directo en el escritorio que dice TOSBD. El segundo que aparece en esta línea vertical, por favor ejecute ese TOSBD si es tan amable. Lo que vamos a acceder entonces es a la fase del talent big data. En este caso la versión que vamos a usar es una versión open source. Si me da tiempo uso una versión propietaria que tengo ahí instalada que se llama el talent studio, pero hay unos elementos ahí del talent studio que tienen que ser con licencia. Entonces vamos a iniciar con este open open source de big data. Inicialmente pues lo que va a pedir es que te conectes a un proyecto. Aquí voy a hacer unas pequeñas diferencias con la versión open source versus la versión propietaria. Mientras ésta te va a pedir que te conectes a un proyecto que debe estar de forma local en la máquina que tienes instalado el open big data. La versión comercial te va a pedir que te conectes a un repositorio de control de versiones. En este caso solamente están casados con git. En pocas palabras la diferencia fundamental es primero en este caso me conecto a un proyecto de forma local, mientras que en la versión comercial me conectaría a un repositorio que tenga un proyecto que va a ser compartido con el de personas. Hasta ahí pues no hay mucha diferencia porque creo aquí hemos manejado git. Entonces vamos aquí al finish, vamos a abrir para que nos permita visualizar entonces la interfaz gráfica que tienes. Ah ok perfecto. Estamos en la máquina virtual, estás en la máquina virtual. Sí no te veo porque te toca necesariamente conectarte a la máquina virtual porque está en la máquina virtual. No sé, no te veo acá Alejandro.
on 2025-01-27
language: ES
WEBVTT ¿No? Sí, sí, sí, sí, sí, sí. Alejandro, nota entonces en el escritorio, en la parte derecha vertical, hay un ícono accesorio que dice TOSBD, el segundo. Dale doble clic, por favor. Sale un pequeño warning. ¿Por qué sale ese warning ahí? Porque como les decía en la parte introductoria del ecosistema de talent, la versión es open source, solamente dieron soporte hasta el año pasado. Entonces, él está intentando conectarse a un repositorio que ya no está activo. Dale OK, por favor, eso no va a afectar lo que vamos a hacer. En características de las herramientas de talent, sea talent big data, talent data integration, talent SB, es que la interfaz es compartida, es la misma. Lo que te va a diferenciar, siento algunos elementos de forma, quizá colores o configuraciones muy específicas. Y lo otro que te puede cambiar son los componentes que puedes encontrar en la versión open source y en la versión propietaria. Eso es lo único que te va a cambiar, pero la interfaz sigue siendo prácticamente la misma. Voy rápidamente a explicar cada uno de los elementos de la interfaz. Nota que a nivel, esto se llaman perspectivas. Si tú quieres, llámalo pestañas. Aquí tengo una perspectiva que se llama repositorio. Esta perspectiva repositorio está compuesta por un menú. Primero tienes el job design. En esa parte es que vas a definir los diferentes jobs. Recuerda que en una herramienta de STL algunos lo llaman job, otros lo llaman workflow, otros lo llaman pipeline. Básicamente va a definir los jobs donde va a tener un conjunto de componentes para ser procesados y transformar los datos en el formato que tú quieras. Segundo elemento que tú vas a ver aquí, vas a ver que hay algo que se llama contextos. Ese contexto se asocia a variables de entorno. Esas variables de entorno recordará que esas variables tú las clasificas en variables de tipo. Normalmente en un sistema de desarrollo software las clasificas en entorno QA, entorno de producción y hay algunos que agregan un nuevo entorno que es un entorno de nivel o pro desarrollo. Entonces esas variables de entorno las puedes hacer y cómo las maneja la herramienta a través de textos. Si alto seguido está una parte de código, esa parte de código que está ahí, lo que tiene es lo siguiente. Hay unos códigos que están prestalecidos que tú puedes usar. Esos códigos están escritos en Java. ¿A dónde quiero llegar con ese código? Tú puedes agregar código necesariamente con Java para usar en este, en algún componente o algún job. Yo le soy sincero, yo no he hecho, nunca me he puesto a, aunque no es complicado, claro, nunca me he puesto a crear código porque al final yo creo que me desgasto más en hacer ese código ahí y darlo en el formato en que está, en que requiere, que he definido como un componente particular de en el job. Listo. Pero digamos que tú quieres usar un código en EBSES, lo puedes agregar ahí. Por aquí viene algo interesante que se llama los SQL templates. Y ese SQL templates nota que hay una carpeta solamente para clasificar y cada carpeta tiene diferentes nombres a nivel de motores de bases de datos, ¿Cierto? Ahí tienes, por ejemplo, un postware, tienes un MySQL, tienes un Hive. Eso al final, ¿Para qué es? Ese templates SQL es para crear, por ejemplo, un patrón SQL que tú quieras ejecutarlo. Te explico mejor con un ejemplo práctico. Me parece mucho mejor. Permíteme y te muestro algo aquí que hice hace tiempo sobre esta herramienta. Listo, voy por acá. Un momento, por favor. Espérate que no lo encuentro. Ya, se me perdió ese ejemplo. Sí, aquí lo encontré perfecto. Este template que está aquí. Este es un template que hace lo siguiente. Hace una consulta SQL sobre diferentes tablas y al final hace unos cálculos que van a ir hacia un data warehouse. Eso es lo que hace eso que estoy mostrando aquí. Y tú pensarás, ¿Por qué no hiciste eso con componentes propios del ETL? Porque en realidad para la cantidad de tablas era más eficiente que hubiese hecho esta codificación y se ejecutara contra el motor que si lo hubiese hecho directamente con la herramienta ETL. Entonces, al final, ¿Qué es? Tú puedes crear unos templates SQL donde tú vas a escribir código, velo como un procedimiento almacenado que puedes ejecutar contra el motor de base datos. ¿Y por qué están diferentes carpetas? Porque entenderás que cada motor tiene una sintaxis y una forma en que puedes crear y escribir esos procedimientos almacenados. Entonces, para eso es que son esos SQL templates. Eso es ya muy particular y muy específico. Normalmente uno lo hace a nivel de eficiencia. Aquí viene algo que vamos a trabajar que es la parte de metadata. Nota que esa metadata hay muchos tipos de datos. Entonces, tú como el ETL se basa en que tú puedas acceder a fuentes de datos. Entonces, tú puedes tomar esta metadata para tomar, como su nombre lo dice, la metadata de los archivos con que vas a trabajar. Básicamente, ¿Qué sería la metadata? Supongamos que tú tengas un archivo CSV. Lo que hace esta metadata es que te guarda, por ejemplo, los nombres y el orden que tienen las columnas en ese archivo. Pero lo que hace eso nada más es guardar esa metadata. No te guarda los datos del archivo. Acto seguido, por aquí tienes algo que se llama documentación. Que esa documentación tú puede hacer varias cosas. Puedes, por ejemplo, tener archivos o manuales de referencia que puedas agregar, donde haya algunas definiciones que te puedan servir para utilizarte pronto en el diario de vivir de tu job. O en su defecto, en esa documentación, te van a quedar, la remedia te permite cuando tú hagas un job que te haga una documentación. Prácticamente lo que te hace es un archivo HTML que te explica qué está haciendo ese job en particular. Y por último estaría pues aquí lo que digamos que la parte de la basura, se me escapó el, la, el bote, llaman a alguno, bote de basura aquí de donde van a tener aquí los elementos que vayan borrando. Papelera reciclable, claro, se me escapó el concepto. Listo, entonces, eso sería de forma general y voy a ir explicando. Inicialmente no voy a empezar con Big Data porque claro, en la, en la forma de que veníamos anteriormente ya no teníamos una experiencia sobre una herramienta que se llama el Talent Data Integration. Entonces tú podías ir directamente a los componentes de Talent, Talent Big Data y lo entendías muy fácilmente, pero entonces voy a hacer una pequeña introducción para que entiendas cómo funciona la herramienta ETL de Talent. Esto da lo mismo que uses Open Big Data, por ejemplo, Open Data Integration o Open SB. Al final el modelo de funcionamiento es el mismo. Para hacer esto entonces todo me acompaña ahora sí en lo siguiente. Voy a ir muy despacio. Listo, vayamos a y nos ubicamos en la parte de repositorio. Vamos donde dice Job Design, por favor. Vamos a darle ahí click derecho y vamos a crear aquí un folder. Te aconsejo como buena práctica que organizes tu job dependiendo del proyecto o digamos varia en que estás trabajando. En este caso voy a crear un job, un folder, perdón. Crear un folder y lo vamos a llamar AXA, por favor, AXA. Listo. Ahora dentro de AXA vamos a crear una subcarpeta y esta lo voy a llamar básicos, o sea ejemplos básicos. Vamos a colocar ahí y ya lo de Big Data lo voy colocando entonces en algo un poco diferente, una carpeta diferente. Entonces vamos a darle aquí Finish y lo que he hecho hasta el momento es crear una carpeta. Listo, perfecto. Ahora se sitúa en la carpeta básicos, por favor. Y tan amable. Y vamos a darle click derecho por favor ahí y dele entonces y vamos a darle crear job, por favor. Esto es algo que te vas a conseguir en la mayor parte de job que es bajo el ecosistema de talent. Te pregunta más o menos lo mismo. Entonces primero te pregunta el nombre del job. Listo. En este caso vamos a votar los nombres de job snake case. Voy a llamar de la siguiente forma el primer job. Voy a llamarle job. Aquí voy a llamar job underscore transformaciones underscore básicas. Sería interesante como buena práctica en que puedas completar el propósito del job y la descripción del job. Velo del punto de vista en que aunque tú hagas el job sabes que ese job tú lo entiendes pero verlo en que seguramente pues no siempre todos vamos a estar en la misma empresa siempre y sería bueno entonces para que documentar el job para que sea mucho más sensible pues hacer cualquier mantenimiento que tenga sobre ese job como tal. Propósito del job voy a colocar aquí explorar los elementos básicos de la herramienta de tal en mi data de la herramienta de explorar los elementos básicos de la herramienta de vamos a colocar aquí como descripción vamos a colocar aquí el job leerá leerá unos archivos de entrada y salidos formateará formateará formateará a un archivo de salida diferente. Diferente. Esto lo voy a hacer solamente en este eh en este job, es decir, eh los demás yo no voy a agregar propósito ni descripción porque me de casta mucho en el tiempo y en realidad tengo un poco tiempo para la cantidad de elementos que tengo. Si notas ahí te pregunta otras cositas como el autor y el bloqueador. Ese autor y bloqueador en esta versión carecen un poco de significado pero ese autor ese autor que aparece ahí cuando tengas eh ya el sistema montado te había comentado en una clase que hay eh cuando yo tengo ya licenciado el talen hay una herramienta que se llama el talen MC el Manas console el Manas console maneja los usuarios entonces ahí por defecto como tú te vas a loguiar con el TMC en el autor te va a aparecer el autor que te haya creado el administrador de talen y en el bloqueador pasa lo siguiente el bloqueador que es normalmente el que crea el job eh es el que permite bloquear entonces el bloqueador que quiere decir hombre que muchas veces tú puedes darles permisos a un grupo de usuario para que puedan digamos escribir o modificar el job y hay algunos que lo puedan bloquear para eso es que sirve el bloqueador ese que está ahí ahora las versiones son eh netamente internas estas versiones eh el caso de la herramienta no no sé si solamente a modo informativo notarás entonces que a nivel de versiones se manejan algunos manejan tres números maneja entonces el número que llaman el mayor el número que llaman el minor y el número que llaman el el patch entonces si yo tengo por ejemplo versión diez punto dos punto tres y paso a diez por ejemplo a diez punto cuatro como estoy en el patch el que subí el patch significa en que lo que he hecho es corregir algún error que tengo si por ejemplo yo paso de versión ahora a versión diez punto tres punto cuatro subí el minor significa que no es que haya agregado una nueva funcionalidad sino pude haber hecho una refatorización del código para que sea más entendible para que sea más eficiente pero sigue funcionando y todavía sigue siendo compatible el problema tengo con el mayor que es por ejemplo si yo paso a once punto tres punto cuatro hay una característica que se busca pero el once cuando yo subo el mayor no hay garantía de que siga funcionando con versiones antiguas eh eh al subir de versión no significa no no significa o no es prioridad o digamos no es garantía si subo el mayor de que te siga funcionando el código tuyo cuando sube la versión son características eh pasa y te pongo un ejemplo muy claro con ah php php que ya hace rato no trabaja con php eh php con ocho y con siete epa me tocó refactorizar eh reescribir mucho código para adaptarlo a la versión ocho porque hay cosas que no estaban funcionando bien entonces por qué porque subió el mayor entonces esta parte que está aquí la m minúscula lo que te hace nada más tengo mayor y minor entonces la m minúscula si yo cojo aquí m minúscula me sube el minor y m mayúscula me sube el mayor entonces si yo subo a versión uno punto cero por estandarización significa que he creado la versión la primera versión estándar ya el sistema versión ya tú lo manejas internamente lo que si es seguro es que la herramienta eh como es open source no te permite bajar los modificarlos si ya lo subiste si lo subiste al uno ahí no te deja bajar lo tengo que ya pues cancelar el yoke y volverlo a crear nuevamente por aquí eh el estado eh tú puedes manejar estado que eh developer texting y producción ahí tienes que manejar internamente cómo vas eh como tu equipo de trabajo desarrollo ETL va a manejar esta parte de texting cuando pasa un texting a digamos a a cuando un devolven perdón cuando un devolven pasa a testing o sea cua cuando de cua pasa a producción bueno etcétera ahí ya la cantidad de cosas vamos a colocar aquí development y el pad pues el pad aquí lo que me está identificando es donde a nivel local lo voy a guardar este archivo ya en la versión comercial lo que hace este pack es que te guarda en el repositorio aquí que tengas interno eh a nivel local y te guarda eh repositorio centralizado que tengas de aquí listo eso es nada más la entrada es más que todo y ahí tienes la información informativa de esta parte dale por favor finish perfecto y se te abre una nueva perspectiva esta perspectiva que está aquí en el centro es lo que uno llama el canvas en ese canvas es que vas a colocar los diferentes componentes del job como tal de igual forma se te abre una una una pestaña una perspectiva en la parte de abajo que te va a permitir configurar ciertos elementos del job y tienes una perspectiva que está aquí a la izquierda que te va a permitir configurar algunos elementos a nivel de código de ese job y la perspectiva que tiene acá de la parte derecha que son las paletas son los diferentes componentes que vas a que puedes usar dentro de un job y están clasificados ve aquí te clasifica como big data business intelligent bueno cloud aclaro que a nivel comercial te van a aparecer más de lo que están aquí en el centro de la profesional. Bueno vamos a crear nuestro primer job para ver para decirle cómo funciona esta parte. Primero vamos entonces a definir una metadata es decir quiero leer un archivo de entrada y para leer un archivo de entrada necesito saber la estructura del archivo por si acaso la herramienta está más pensada los componentes están pensados para que haga un procesamiento estructurado pero si vas a agregar un procedimiento no estructurado entonces hay unos componentes que te van a permitir codificar por ejemplo leer datos de un audio leer datos de un archivo PDF convertirlo si lo hay pero las principales componentes que existen están pensados para elementos netamente estructurados. Esta metadata que está aquí entonces hagamos lo siguiente expande por favor el menú de metadata si está más grande. Y ahora hagamos lo siguiente quiero leer un archivo en un formato específico resulta que él te va a clasificar los archivos dependiendo del formato en que lo vas a leer entonces aquí notarás en que tú puedes leer tablas de una base de datos en DB connection tienes archivos delimitados tienes archivos estos archivos delimitados lo que hace es que delimita por un ancho por ejemplo yo quiero delimitar los datos que van del cero al diez al carácter diez del once al veinte y delimita por digamos un índice o un espacio los delimitados son los SV eh estos posicionales perdón el delimitado perdón el delimitado son los SV que están delimitados por un carácter los posicionales son los que te dicen qué posición de la cero a la diez del once al veinte y así sigue sucesivamente y si te preguntas si hay un metadata que quiero leer y no está dentro de esto de dentro de elementos que están por defecto tiene varias opciones una opción es buscar el repositorio para ver el repositorio de talent en las últimas versiones para ver si le agregó un metadata de esa forma o en lo último le tocaría hacer una programación me explico supongamos que quieras leer un PDF y el PDF no está aquí entonces podía ver si existe un componente que tiene un PDF si el componente no está en los que están actualizados hoy en día lo que puedes hacer es que creas un código aquí por ejemplo en bueno necesariamente en Java en que tome el fichero y lea los datos si no existe la metadata como el archivo que quiero leer es un archivo CSV entonces los archivos SV se encuentran en formato que llaman del limitado este que está dele clic derecho por favor a este señor y coja la opción crear file delimited y te va a aparecer un conjunto de opciones note ahora que sigue la misma tendencia a nivel de los elementos de metadata que son parecidos al yo te va a parecer el autor bloqueador versión etcétera ya tú tienes que ver internamente cómo conjugas esta parte en los estándares de desarrollo que tengas ya en tu empresa pero aquí no voy a crear ya más propósito de descripción ni tampoco voy a crear versión por una cuestión netamente de tiempo aquí voy a llamar entonces sería buena práctica que llamaras el archivo de igual forma que que el formato en que está en este caso quiero leer un archivo que se llama generos generos generos generos sería buena práctica que colocaras la fecha de esa versión que tengas en el mismo nombre o en el propósito pero bueno no lo voy a hacer por una cuestión netamente de tiempo dejamos solamente generos y vayamos aquí donde dicen next bien por defecto estos metadatos vienen con una característica en que van a buscar esos datos o esos archivos a nivel local o a nivel o a nivel local en el equipo o en la versión en la versión comercial puede hacerlo a nivel de redes o sea puede tener una carpeta compartida en la cual vas a ver en este caso vamos aquí donde dice bros y se va entonces a la carpeta que se llama en el escritorio recursos entra a su carpeta de de tal en mi data entra donde dice data set y accede a donde dice ccv note que ahí está un archivo que se llama gen repunto ccv por favor tómelo de quién me habló Beatriz o Brenda voy a su máquina por ah listo en primer día es donde está voy a voy a su pantalla ahí primero vamos a colocar el nombre del metadata llámelo generos por favor si están amables dele next por favor y ahora váyase a dice bros por favor ahí donde dice fichero sitúese en el escritorio ahí está recursos tbd la primera carpeta tbd data set cv y escoja que no lo cojo dele nuevamente clic en el segundo no no no no cojo el clic ahí listo y dele abrir por favor bien continúa entonces eh bueno aquí podía seguir con los detalles pero hay detalles que lo voy a enviar porque pronto por tiempo bueno aquí solamente note que aquí hay un formato porque este formato hay que tenerlo en cuenta lo que pasa es que este formato lo que tiene en cuenta son los caracteres de tabulación y de salto de línea entonces el carácter de salto de línea a nivel de lo que es windows es el mismo que el de unis pero puede que el de mac el carácter de salto de línea sea diferente recordará que cuando yo tengo un archivo yo en cada línea tengo un carácter que hace que el carácter de salto de línea para que entienda el sistema operativo que hay que bajar entonces aquí la recomendación es la siguiente si está trabajando en un sistema windows o un sistema unis no hay problema pero pronto mac sería recomendable que usaras aquí mac entonces aquí puedo usar unis porque el de unis sigue siendo el mismo de windows entonces no hay mucho problema a nivel de tabulación y salto de línea aquí me da un preview de los datos que están vamos y por aquí están algunas características que te voy a dar recomendación en primer lugar está el sistema de codificación aquí te recomendaría que el sistema de codificación en el caso de nuestro idioma que es el español y tiene unos caracteres especiales ese ASCII no te va a funcionar bien cuando es español porque porque los caracteres especiales como la ñ y la tilde te lo va a marcar con no lo va a entender entonces yo te aconsejo en su defecto que no te va a cambiar si no usas dos tipos de de codificación o usen su defecto UTF 8 o en su defecto Windows 12 52 entonces aquí no hay mucho problema con el ASCII porque los datos están en inglés pero acostúmate a usar UTF 8 mejor y ahora eso como recomendación no te va a cambiar y ahora pasa lo siguiente analiza que el carácter de separación que tengo el CSV es coma y por ejemplo este defecto aquí en el separador de campo está punto y coma entonces dale aquí clic y escoge el carácter de separación si no está ahí hay una opción que dice custom que puedes escoger el carácter que no está aquí tengo la coma y escojo coma por favor. Nota también que aquí en el preview que tengo tengo unos encabezados que dice Jim Rayde y Ney pero él me colocó un encabezado que dice columna cero porque si sabe que tu archivo tiene encabezado por favor chulea aquí donde dice y ya después que tiene la configuración dale un refresh y ese refresh te va a mostrar los datos con la configuración correcto no sé si hay alguien que va a comentar algo. Ese refresh que está ahí muy ojo lo siguiente ese refresh lo que hace ahí es que toma del archivo que tiene 50 filas tú puedes cambiar el preview ese que tiene ahí ese preview que está aquí son 50 filas nada más nada más el archivo tiene 25 pero viene un preview por defecto a 50 tú puedes cambiar eso que está ahí cómo te afecta el preview ya te digo que te afecta el preview esto es lo mismo que el talent data preparation ya te digo en qué te afecta ve entonces ya después que mira visualmente que tu archivo está estructurado de forma correcta vemos que tenemos dos columnas estructuradas de forma correcta vayamos aquí donde dice next nota que el archivo es formato ccv recordará que los ccv no guardan tipo de datos el ccv solamente guarda los datos ahora nota que la herramienta te está mostrando aquí la estructura que es gen raide y ney lo como como columna pero le ha colocado un tipo de datos que es integer y stream de dónde saca eso bueno lo que hace eso es que a partir del preview que tiene mide a los datos analiza y proyecta qué tipo debería ser como el primero era numérico proyectó para que sean integer como el segundo tenía puro texto entonces proyectó a stream tienes que tener en cuenta que esto lo hace el preview por ende puede haber un error porque quizás en la línea cincuenta y uno en la fila cincuenta y uno hay una letra entonces lo clasificó como integer y en realidad que era una letra entonces ahí tiene que estar muy pendiente que puede haber un error en la clasificación por la forma en que él internamente lo clasifica ese integer y stream son tipos de datos de java entonces de aquí finish y automáticamente lo que hace es que en la metadata te crea aquí un árbol y te muestra el archivo generado voy a borrar este que tengo aquí de ejemplo bueno aquí tengo uno de que como que estaba haciendo alguna prueba y lo dejé ahí bueno y ya está listo entonces sigamos la herramienta de tel está empezada para como su nombre dice extraer es decir leer de fuentes de entrada transformar los datos y cargarlos a una fuente diferente o a la misma fuente en este caso me piden que quiero leer como tal los datos de ese archivo entonces hay diferentes formas de hacer lo mismo voy a empezar con la primera la primera es la más fácil quiero leer los datos que están en este archivo que está géneros está claro que el tal en no te guarda en este punto no te guarda los datos del archivo lo que te guardas la metadata o sea pocas palabras los datos de las columnas y en qué orden están toma ahora este género le da lo selecciona aquí sostenidos y lo vas a soltar en el canvas suéltalo acá y ahí lo que te va a mostrar son diferentes componentes con el cual el tal en detento que puedes procesar esos datos en la mayor parte de los casos el componente que está por defecto es el componente ideal para la metadata que escogiste des cuenta que por defecto aparece te file input delímite entonces para aprendernos algo de tal en los componentes de tal en la mayoría empiezan en te te minúscula de tal en si tiene el el si contiene la palabra input significa que va a ser de entrada así que que voy a leer si tiene output significa que es de salida significa lo siguiente te file input delímite voy a leer un archivo de entrada de tipo ccv y tú dices y cómo convierto eso un archivo es decir cómo escribo un archivo de salida delímite entonces va a buscar ya un componente que es te file output de límite entonces está muy parecido el mismo nombre lo que te va a cambiar es el input o output en su efecto como ese es el que más conviene vamos a darle aquí ok perfecto darle clic en el componente que agregamos y nota que la perspectiva de abajo más específicamente en la pestaña de componente te da unas pequeñas características de ese componente la mayoría de componentes tienen estas cinco configuraciones basic avance dinámica y documentation vamos a tratar en no voy a entrar tan en detalle porque voy a oprimos de haciendo el detalle y pierdo mucho tiempo pero si tiene alguna duda por favor y me la avisa yo en pronto en en otro espacio diferente nos podemos conectar yo le explico cualquier cosa listo aquí tengo un componente de entrada ahora quiero formatear este componente entonces la herramienta tiene diferentes componentes para formatear listo voy a usar voy a colocar el más usado para agregar un componente en el canvas ya ve que la primera forma es tomar el metadata y soltarlo aquí para agregar un componente diferente ahora voy a hacerlo de esta manera voy a escribir el nombre del componente yo te voy a entregar a ti una documentación donde están los diferentes componentes de ya de talent creo que parece carece de sentido en que yo haga una diapositiva y te explique componente por componente porque perdemos ahí no alcanzamos las seis horas del día de hoy para aplicar de todos los componentes que tienen entonces te voy a tratar de colocar los componentes que más requieres ahora vamos a agregar el siguiente cómo así estando aquí en el canvas darle clic aquí en el canvas vamos a buscar un componente que se llama tema más de mapeo entonces empieza con té y hazte cuenta que te aparece un menú una lista incremental de los componentes que empiezan con té dale ahora eme y empieza a colocar los componentes que empiezan por té eme una lista incremental en este caso me interesa ese tema que está ahí que estoy buscando le puede dar enter o le puede dar clic yo le di enter y me trae el componente la otra forma que tú puedes agregar un componente entonces aquí al canvas ya te dije ya me fui de la metadata hasta acá ya creé uno aquí en el centro la otra sería la siguiente que lo vamos a buscar en esta paleta entonces esta paleta tiene aquí un un buscador vamos a colocar lo siguiente vamos a colocar la palabra loc de bitácora log log enter y hace una búsqueda de loc trajo muchos archivos entonces por favor colócale mejor un té loc colócale té loc mejor para que eh disminuya la cantidad de de componentes que tenía un loc colócale té loc enter té loc enter y hay varios componentes para poder hacer digamos auditorías uno de los más usados es este té loc rob té loc rob normalmente es un componente que hago a nivel de developer o sea perdón inversión de desarrollo inversión de desarrollo en el que estoy probando y seguramente ya en versión de producción ya que después que está testiado ya quitas esos té loc rob que utilizaste para ser mucho más eficiente tu tu job entonces a nivel de de de developer o de del entorno de developer mientras desarrollo voy a usar este té loc rob para probar lo como los elementos que vaya agregando en el té loc en el en el canvas para agregar este señor toma el té loc rob clic sostenido y lo sueltas aquí en la canva sí sí me sacó ah ah ya eh porque hay una etapa hay una etapa en el entorno intermedio que es Cuba en Cuba eh debería reflejar exactamente lo que está en producción aclaro la palabra debería pero en la vida real no es así en el en la vida real no están así entonces en realidad eso me quedarían en Cuba donde si hay un error lo replico en Cuba y verifico para ver cuál es y ya a nivel de producción eso no deberían estar aclaro que esto en un mundo ideal eh a veces un mundo ideal no está en en el en las empresas que yo he trabajado a veces producción va va más arriba que Cuba sí eh en el mundo ideal sería así pero la pregunta es interesante porque a veces la teoría no cuadra con con la vida real a veces a a a solo nos tocó un error que había pero el error era habitada para un cliente entonces corrimos el riesgo de corregirlo en producción y entonces ahí producción se nos fue más adelante que en la vida real en Cuba ¿Por qué? Porque era vital ese cliente no sabía que corregir un pequeño problema ahí la teoría pues no se aplicó como debería pero a final no se no se podía perder el cliente. Listo entonces ya tenemos los componentes esto que necesitamos entonces este componente de géneros que está aquí es un componente de entrada que vale los datos que tiene el archivo géneros tema va a mapear y Telo me va a escribir los datos entonces en consola ahora vamos a lo siguiente ahora vamos a unir este señor con este tema listo hay diferentes formas de unirlo me voy a lo más básico entonces la primera forma de unirlo es la siguiente le da clic derecho sobre el componente que vas a unir clic derecho y aquí te aparecen dos opciones una opción que dice fila y disparadores vamos a coger donde dice fila escojamos aquí main te aparece por defecto una flecha y coloca esa flecha en el centro del componente que vas a unir y te aparece ahí y te conecta ya te lo hace la unión ahí perdón aquí se me fue la lista claro como no listo ya aquí encontró seta escoja el componente que voy a conectar con el con el otro que sería el género va a contarlo con el tema le voy a clic derecho en géneros y de aparecerme un menú en el menú voy a entrarle que se dice fila y voy a escoger la opción main me debería ahora crear una flecha y esa flecha la voy a conectar al centro del gráfico o el icon del componente que doy clic aquí sí ya vamos entonces vamos a hacerlo entonces de esa forma que el nombre la flecha viene de esta manera listo ya digo vamos a unir ahora este tema con este teló ro entonces vamos a unirlo de forma diferente dele clic en el componente del tema y note que ahí le aparece una flechita en naranja hay algunos que le gustan y parece engorrosa esta forma pero como esta flechita aquí y la suelta en el teló ro ahora hay unas uniones de componentes dentro del talent que te exige que le coloques un nombre a la conexión entonces aquí lo que voy a hacer es lo siguiente partiendo que el map va a formatear la salida voy a colocarle lo siguiente salida on the record formateada y eso me ayuda a leer de forma más transparente el flujo de mi proceso sería conveniente en que le llegue a sus nombres a los diferentes flujos para que cualquier persona que lea tu yo pues lo pueda entender conecta por favor como tú quieras y si desea conectan clic derecho o como ustedes quieran me gusta más clic derecho y le doy fila me parece mucho más sencillo se llama salida on the record formateada nota que en el caso particular de la unión de géneros con más no te pidió el nombre pero sería interesante en que a esos flujos le diga sus nombres concretos de lo que hace entonces en el caso de ese road uno que está ahí entonces vamos a cambiarle un poco el nombre de road uno cómo se cambia ese road uno vamos a darle dos clic no doble clic sino dos clic primer clic voy a darle clic en road uno road uno aquí después le doy otra vez clic y me abre para cambiar el nombre no es doble clic sino dos clic primero un clic y después el siguiente clic lo voy a llamar géneros on the record datos claro que esta es la parte básica del talen ya no me voy a meter con bit data espero no demorar mucho con esto pero esto es primordial para que pueda entender lo que vamos a hacer note otra característica de la opción de talen es que cuando tienes un componente y el componente tiene un elemento en rojo del lado derecho como lo notaste ahí en el tema ese tema que está ahí significa que hay un error o hay o todavía no has configurado el componente entonces el problema que tengo aquí ya por experiencia y como lo conozco es que todavía no he configurado el tema por eso me aparece el rojo entonces el rojo aparece o porque hay una mala configuración o porque todavía no has configurado el componente si intentamos ejecutar con ese rojo pues no va a ser un error vamos a darle aquí doble clic por favor entonces nota el típico trabajo de mapeo en el de la entrada como viene de la fuente esas variables me van a permitir formatear los datos como yo quiera estos ejemplos lo hago más adelante y acá tengo la salida que quiero que salga en ese caso del formateo nada más quiero que salga lo siguiente toma los archivos que ven a aquí toma estos elementos que están acá seleccionados con control todos control da control y da clic para selecciones todos y los sueltas de este lado nota que aquí no hay ninguna transformación solamente lo que quiero hacer es cambiarle el nombre a las columnas de salida nota que aquí tengo los elementos que entra y acá tengo los elementos que salen por defecto la salida viene de los de los encabezados vendría con los mismos nombres de entrada pero yo quiero cambiarlo en muchas veces o hay veces que quiere cambiar los tipos de datos para cambiar esto vete acá a la parte de abajo que hay una tablita le da clic en la primera columna que se llama y en re y le das y la vas a llamar género perdón lo va a llamar identificador acostumbrate a algo en esta herramienta eso al final es un table es un otro table en java porque no te ha creado con java el java tiene un problema un pequeño boque a veces yo voy a poner clic por afuera y a veces no se automatiza el no se actualiza perdón el dato acostumbrate que cuando vayas a cambiar algún table creo que como buena práctica darle un enter porque hay veces que no se actualiza o sea mejor darle enter que darle clic por afuera y cambia el segundo elemento a nombre enter si bueno va a colocar la mayúscula colócalo allá como no no me califico aquí para considerarlo de perfecto no hago ninguna transformación más aquí voy a darle aquí ok y es bien cuando tú tienes un yo recordará que tú lo que hace gráficamente unes componentes configuras componentes y el yo que internamente tiene que generar un código esa parte es muy importante para poder detectar código más rápidamente y puede hacer más rápido en la parte de corrección nota que aquí en la parte de aquí de abajo aquí hay una pequeña pestaña que dice designer y co dale clic aquí en co por favor antes por favor guarda si quieres guarda el por si acaso y aquí lo que está dando es como transforma esa unión de componentes en un código java que va a ejecutar después aquí abajito aquí en la parte de abajo del del canvas está una pestañita muy pequeña que dice designer o co si das co aquí te va a aparecer el código generado ah listo acá en el en el disque este que está acá aunque por defecto cada vez que tú ejecutas es él va a guardar los el yo esto mismo lo puedes ver acá en la en la pestaña de acá abajo que dice visor de código te va a mostrar lo mismo yo creo que me parece mucho más sencillo aquí en co esto es fundamental cuando hay unos errores entonces detectarlos más rápidamente en qué componentes que está el error y cuál error está aquí no aparece ningún punto rojo este no aparece ningún punto rojo indica que no hay ningún error de codificación en el componente cuando generó el el el el el el el el código ¿Cómo hacemos para ejecutar esto? Bueno, vaya forma, la primera la voy a ejecutar, la más sencilla es te vas en la toolbar y vas a tener acá un un play que es símbolo oficial de ejecutar. Dale aquí ejecutar. Entonces, al final lo que ejecutas el código ya va generado. Listo, aquí lo que está haciendo entonces es que este te lo rojo que es un elemento para visualizar datos en consola te está mostrando cuáles son los datos que trae ese archivo. Nada del otro mundo. Ahí aparte de eso te está mostrando cuántas filas va leyendo, cuál es el promedio de lectura de fila para que tú puedas darte una idea de cuánto puede demorarte un job con base a cuántos datos tienes. Seguimos por favor. Qué pena que vaya un poco más rápido porque es que sé que me va a quedar corto el tiempo. Entonces voy a seguir lo siguiente. En este mismo yo voy a leer otro archivo, ¿OK? Para esta parte, entonces, voy a hacer lo siguiente. Voy a leer un archivo en formato XML. Para esta cuestión voy a voy aquí a file XML, como sé qué formato XML, clic derecho y voy a decir crear file XML. Este archivo lo voy a llamar empleados. Voy a dar aquí next. Y como todo, hay componentes que tienen características diferentes. Entonces, aquí me pregunta, esto pasa mucho con los JSON y los XML, si la metadata que voy a hacer es de entrada o salida. En este caso es de entrada porque voy a leer un archivo. ¿Para qué sería el de salida? Para crear un archivo con ese formato. Pero como lo que voy a hacer es voy a leer en XML, entonces voy a coger XML entrada. Y ahora voy a buscar en la carpeta de recursos, subo a la carpeta de datos y voy entonces a XML y ahí aparece un emplodge XML. File XML. ¿Sí cogiste file XML? Sí, sí. Sí, ese emplodge que tienes ahí, sí, exactamente. Escojamos este emplodge que está aquí a abrir. Y me aparece la estructura del XML. Vamos a darle aquí y ahora recordarás, no sé si de pronto lo tienes claro, es que cuando yo voy a leer un archivo o cuando voy a leer un archivo de XML existe unos lenguajes. En el caso particular del señor XML existe un lenguaje que se llama XML y el del se llama JSONPAT. En este caso la herramienta en particular pasa a lo siguiente con la herramienta. La herramienta usa XMLPAT para XML y usa JSONPAT para leer JSON. Listo, entonces no voy a entrar mucho en detalle de cómo funcionan los lenguajes de consulta XML y JSONPAT que son muy parecidos, pero básicamente velo de este punto de vista. Para el señor JSONPAT, este representa el el el ROOT, o sea, el ROOT del archivo, mientras que para el XML lo menciona como ROOT así, ROOT así. Entonces, aquí te pregunta, oye, ¿De dónde el absolute PACK, XPACK que está aquí, que es, ¿De dónde vas a empezar a leer los archivos? Como este señor es un ARRAY, el problema que tengo no lo hago usted ya, es que si yo uso como absolute PACK el ROOT y pongo los datos que quiero leer, el row este que está aquí, y yo intento mostrar los datos, o sea, para que me muestre los datos, va a tener un problema en el formato. ¿Por qué? Mirad a cuenta que el archivo me lo llevo todo de manera horizontal. Y lo que pasa es que hay un ARRAY de XML, o sea, de elementos de XML, hay un ARRAY. Entonces, ¿Qué pasa? Aquí me toca hacer lo siguiente, que es, en este caso, que tengo que leerlo desde el ROOT. O sea, tiene que coger este ROOT y cogerlo como el absolute PACK, o sea, ¿De dónde voy a empezar a leer los archivos? Y ahora, vas a coger todas estas columnas, le vas a dar, escoge la primera, presiona SHIFT, y vas hasta el final para seleccionar todo. Nuevamente, la primera, le das SHIFT aquí a EMAIL, y las sueltas de este lado. Y le das aquí un REFRESH, y de pronto te ha mostrado, y te muestra la medida para que veas la diferencia en que te va a mostrar los datos. Ya te muestro los datos en el formato establecido. ¿Qué pena que le haya explicado esto tan rápidamente, lo del XML PACK y lo del JSON PACK. Es que cuando hagas, por favor, dele aquí un REFRESH PREVIEW para que le muestre y usted pueda ver visualmente si los datos, en realidad, están en el formato adecuado. Vamos a darle aquí, entonces, NEXT. Te muestra cómo quedaría la metadata con los datos que él interpretó, a partir del PREVIEW, y le damos aquí FINISH. Entonces, vamos aquí en el mismo job, este que está aquí, por favor, se va a la metadata y expande ahora, suelta, escoge el archivo creado, selecciona, click sostenido, y lo suelta aquí en el canvas. Y le va a aparecer el más recomendable que es TEFA y el INPUT. ¿XML? OK. Pavel, en este caso, elimina el el el employee ID, selecciona ahí de DAS con SUPRIMIR. O si quieres, hazle lo siguiente, escoge ROW, mejor, escoge ROW, Pavel, escoge ROW, y lo sueltas en el solute PAP. Suéltalo en el solute PAP, para ese sobrescribe. Suéltalo ahí, ahí, suéltalo. Ahí, listo, y le das las columnas de employee, click ahí, shift, y le das click, ole, declash shift, baja con el clor, clíso sostenido ahí, shift sostenido, hasta el final, y le das click ahí, perfecto. Pasa todos a esos ahora a primero Haz ref介, a bueno, listo. Haz refresh, si refresh un momento, por favor, mientras, listo, perfecto, ahí lo tienes. Dale next, dale finish. Cambia, por favor, el donde estás ahora en code, cambia la design exactamente, y ahora suelta, ese señor lo suelta de este lado. Perfecto, lo sueltas ahí. y OK, agreguemos ahora un map por favor, un tmap, listo, a un tmap y agrega ahora no un telorode, sino voy a formatearlo a un archivo diferente de salida, voy a formatearlo a un json. Entonces si lo que vas es a una salida, ya cuando tú empiezas a acostumbrarte en la herramienta ya sabes cómo debería llamarse el componente sin necesidad de que lo sepas de memoria. Como lo que voy a crear es un archivo de salida entonces necesariamente tienes que empezar con tfile. Entonces tienes que empezar con tfile. Ahora, partiendo de que lo quiero, un archivo de salida json, entonces tiene que ser tfile json. Te pregunto ahora, es un archivo, como el archivo lo voy a escribir, tiene que ser de output, entonces escribe output aquí y te empiezas a colocar todo lo que empiezan por output. Ahora busca el formato en que lo quieras, que sería json, en pocas palabras, busca un componente, te voy a colocar aquí, que sea este nombre te lo voy a colocar aquí, sea tfile output porque es de salida, voy a escribirlo y aquí puede ser json, xml, etcétera, aquí sería json y escoge ese componente como tal. Procede a unir como hicimos en el joc anterior, en el bejebro anterior, perdón, conecta aquí el tmap y el tmap conectarlo aquí al tfile. Coloca lo siguiente ahora, si colocas salida donde formateada, por defecto los nombres tienen que ser únicos en el joc, entonces voy a cambiar el nombre de salida, underscore archivo, underscore json, pero recuerda que los nombres que coloque deben ser únicos en el joc, si intento colocar un nombre que ya exista me sale un error diciéndole de que no podía utilizar ese nombre. En realidad que el talent en la documentación que tiene no tiene buenas prácticas, o sea, perdón, no tiene un módulo que diga de buenas prácticas al nivel de nombrado. Tiene que basarse netamente en los estándares que haya definido a nivel de desarrollo. Ahora, tengo algunos documentos de algunos proyectos que han hecho de ciertas buenas prácticas de cómo están nombrándolos, que quizás podría compartirtelos y me escribes a mi correo, al final te digo mi correo y me escribes y te lo mando los documentos de algunas que yo he seguido y he tomado algunas cositas de acá, algunas cositas de allá y defino entonces un documento de buenas prácticas. Esto es perfecto. Solamente para practicar, bueno y aquí sería buena práctica en que esos nombres no sean genéricos row 1, row 2, entonces solamente lo voy a dar genérico por cuestión de tiempo, pero para practicar cómo hacemos para cambiarlo. Primero le das clic en el nombre y después le da otra vez clic y se estabilita para que puedas cambiarlo. Entonces aquí llámalo empleado. Ya te había dicho, cuando veas el punto rojo en algún componente indica o un error de configuración o falta de configuración, en este caso es falta de configuración con el tmap. Vamos aquí el tmap. Aquí te recomiendo lo siguiente, cuando vayas a mapear de aquí para acá, trata de ampliar un poco más esto que está aquí porque a veces se te colapsan todos en un mismo, todos los elementos de entradas te colapsan en un solo elemento. Entonces como buena práctica creo que aquí amplía acá y nada más lleva por favor tres columnas, las que tú quieras. En este caso voy a llevarme las tres primeras. Employee, voy a seleccionar con control y con clic. Employee, last name, first name y las voy a soltar de este lado nada más. Vamos aquí entonces. Y pasa lo siguiente, ¿para qué hizo esto de esta forma? Muy importante. En este caso tengo un job, pero note lo siguiente, tengo una división y estos colores me lo están indicando en que estos tres componentes que están aquí no están integrados con estos componentes de acá. ¿Qué es lo que está pasando internamente? Que en realidad ese job está dividido en dos subjobs. Si los componentes que tú tienes no están unidos, cada componente se ejecuta como un subjobs diferente. Si me decís, va ahí, va conmigo. Buena pregunta, que es lo que vamos a resolver ahora. Por defecto la herramienta no lo ejecuta en paralelo. La herramienta lo ejecuta, abro comillas doble, en la forma en que usted lo agregó. Partiendo del hecho en que yo agregué el primer subjob, este que está aquí, me ejecutaría este subjob primero y después me ejecutaría este subjob de acá. Aclaro que si vas a hacer esto con subjob, es mala práctica hacerlo de esta forma, porque una persona que lea el subjob no sabe en realidad cuál empieza, porque yo fácilmente pude haber colocado este señor de primero, pero en realidad no fue el primero que agregué. Entonces, pero bueno, así como está, está divido en dos subjobs. A nivel pragmático que viene siendo eso, como esto se ejecuta con Java, prácticamente muy rápidamente te lo voy a decir qué es lo que está pasando. En este caso, listo, aquí voy a crear aquí un diagram. A la pregunta, que creo que fue la que me hizo bueno, que está bien la pregunta y la resuelvo de esta forma, es si los subjobs no se ejecutan en paralelo, técnicamente lo que está pasando es lo siguiente. Tú tienes un procesador y el procesador está dividido por varios core, verdad? Cada core lo que hace es que ejecuta un hilo de un proceso en particular. El proceso velo como el job cuando lo ejecuto. Entonces, voy a colocar aquí este cuadro aquí, que no me salió tan buena la imagen aquí. Significa lo siguiente, que yo aquí tengo, por ejemplo, un core 1. Aquí tengo core 1, duplicar aquí, tengo el core 2. Recuerden que los procesadores hoy en día pues tiene varios core. Tengo un sola pastilla, tengo un procesador y ese procesador está compuesto por varios core. Y a nivel de servidores, tú puedes tener varios procesadores y cada procesador tiene un core diferente, duplicar aquí. Entonces, yo tengo un subjob 1, un subjob 1 y tengo un subjob 2. ¿Por qué tengo dos subjobs? Porque dos están unidos. Si están unidos, notará que él va solamente a reventar con un solo color muchas veces. Mire lo siguiente ahora. Si no se ejecutan en paralelo, significa entonces que cuando yo ejecute, va a tomar el core que esté ocioso, o sea que esté sin hacer nada. Primero ejecutaría el subjob 1, cuando termine el subjob 1, ejecutaría el subjob 2. O sea que los tiempos de respuesta ahí te van a demorar más tiempo. Eso depende porque muchas veces quisiera que se ejecutara uno primero y después el otro. Si se ejecutan en paralelo, entonces significa en que él va a intentar buscar, intentar porque muchas veces no lo va a intentar buscar o ejecutar este subjob en el core 1 y este subjob en el core 2. Y ahí se ejecutan de forma paralela, dando tiempos de respuesta mejores. Por defecto, por defecto, esto al final viene siendo Java lo que estoy mencionando, por defecto, por defecto la herramienta lo ejecuta primero uno y después ejecuta el otro. Es decir, no lo ejecuta en paralelo, por favor. Epa, fue muy rápido porque hay pocos registros y el formateo es. Entonces para que usted vea esto, haga lo siguiente, busque un componente que se llama T-sleep de sueño, slip slip de slip de slip que aparece como un relojito aquí para detener un poquito este yoke aquí de slip. Conecte el telo row con ese slip conecte el telo row con slip. Dele doble clic al slip para ver la configuración doble clic y te debe aparecer acá abajo la configuración aquí me está diciendo que por defecto estaba usando en segundos un segundo entonces vamos a ejecutar este yoke que está aquí note que ahora estoy ejecutando el primer yoke y todavía el segundo yoke no ha empezado a ejecutar debería entonces por la teoría de la herramienta cuando termine el de arriba seguir con el de abajo en términos pragmáticos cuando ejecuté está usando un treac un hilo de ejecución el treac va a intentar ejecutarlo sobre un solo cor efectivamente vea que lo ejecutó y terminó ahí entonces. Déjelo un segundo porque son 25 registros me está demorando 25 segundos ahí. Comprobado de forma secuencial y normalmente en el orden en que tú hayas agregado los subyokes. El caso de pavel tienes un error voy a ver qué error tienes a ver un momento y carga darle error vete a tu co un momento a tu co y sería bueno para ver aquí co para ver si hay un error. Nota que hay unos puntos rojos esos puntos rojos que hay un error de compilación en el yoke dale clic en alguno de los puntos rojos al parecer tienes un error en el vete al design en un momento nuevamente ahí está en realidad el error ahí está. Pavel mira lo siguiente lo que pasa es que hay n n columnas que están mapeando o sea tienes siete columnas que están mapeando una sola entonces hay un error de compilación ahí haz lo siguiente selecciona del lado derecho selecciona las dos filas esa fila listo que está aquí y ahora en la parte inferior del lado derecho vas a tener un más y un x entonces dale x listo ahora haz lo siguiente vete del lado derecho y amplía mejor la salida verticalmente para que sea verticalmente para que sea porque eso pasa porque es muy pequeño ahí cógelo ahí ahí sale cuando vas a la puntica y sale a veces listo perfecto ahora selecciona las columnas que quieras migrar pasa cuatro si tú quieres cuatro date cuenta que ahora estoy mapeando uno a uno y el bueno que estamos viendo de 7 a 1 dale ok ahora leyes y ahora sí vuelve a ejecutar para ver ahí entonces estamos ejecutando de forma secuencial para que pueda ejecutar el segundo tiempo que terminar entonces el subyoke del primero si tú deseas ejecutarlo de forma paralela te vas en la configuración del acá en la en la perspectiva de acá abajo te vas en la configuración del yo de la perspectiva entonces cuál sería sería la primera pestaña que tiene igual nombre del yo que dice trabajo yo transforme básica talidad clic aquí en la primera pestaña de la perspectiva de abajo aquí hay algo que dice extra y ve que tiene multitreat multitreate es a nivel de programación un triad y el triad va a intentar ejecutarse en un core si yo tengo dos trias significa que va a intentar buscar dos core para ejecutarse chulea por favor el multitreat y haz la ejecución nuevamente ahora con el cambio cuando cuando tú ejecutes el automáticamente y date cuenta que ahora te ejecuta de forma paralela esto ya tú tienes que entender que yo lo puedes hacer de otra forma que yo no lo haces si a buena pregunta lo que pasa es que quizás un subyoke dependa del otro por ejemplo quizás usted haga una transformación para generar un archivo y ese archivo lo necesita en segundo subyoke entonces no podría ejecutarlo multitreat porque quizás cuando lo ejecuta todavía el archivo no está listo al final depende como todo el sistema depende liso no sé si hacemos el pequeño break de 20 minuticos y volvemos
on 2025-01-27
language: ES
WEBVTT bueno volvimos nuevamente después que hayamos descansado un poco si estamos conectados perfecto listo bueno continuamos con esta parte básica de lo que es talent a claro que esto que estoy mencionando se puede repetir para todos los componentes que tengan de big data sb talent data preparation que también tiene componentes talent data staywars y componentes de tipo talent data quality también o sea todo esto es lo que decía mencionaba que esto es elemento esto básico hagamos el siguiente ejemplo entonces vayamos nuevamente a la carpeta esta de los si quiere cerremos este yoke un momento cierra aquí este yoke aquí váyase por favor a la carpeta donde tiene el yoke y va a ser una duplicada una copia ese yoke clic derecho en sobre el yoke y aquí hay una opción que dice duplicada duplicate este que está aquí llámalo por favor yoke y le coloca el sufijo versión 2 con el record v2 nuevamente se va al yoke cierre el yoke que tiene abierto para evitar cualquier de pronto pronto confusión con respecto a algo que vamos a hacer cierre el yoke que tenemos abierto y saco una copia listo perdón bueno se va aquí al canvas en el canvas en que estás un momento deja y lo abro en el canvas que está aquí está el nombre del yoke y te aparece aquí una x en esa x listo cierres ahí perfecto y sacas el duplicado que se va a llamar igual lo único que vas a agregar el sufijo on the record v2 perfecto creo que listo hay algunos que todavía falta perfecto
on 2025-01-27
language: ES
WEBVTT los subjobs porque la persona que los va a leer quizás no sepa cuál inicia, cuál continúa y cuál finaliza. Entonces para hacer eso lo que hace el talent es que tiene opciones para que tú jerarquices los jobs que vas a ejecutar. ¿Cómo se hace esa jerarquía? Bueno, dese cuenta que actualmente tengo dos subjobs, subjobs de arriba y subjobs de abajo. Yo puedo cambiar por defecto, como está me ejecutaría este subjobs que fue el primero que cree y después me ejecutaría este subjobs que está acá. Pero si tú quieres puedes cambiar el orden de ejecución, inicia con el que tú quieras y si continúa con el que tú desees. Para unir subjobs y definir una jerarquía lo que tienes que hacer es lo siguiente, tomas el primer elemento del subjobs, en este caso sería este señor que está aquí, el primer elemento del subjobs y le das clic derecho y hay una opción que dice disparador. El disparador tiene básicamente tres opciones, opciones sobre un subjobs, sobre un component y sobre run if. Rápidamente explico, vamos a escoger un subjobs ok y ahora vas a unir ese subjobs ok con el primer componente del siguiente subjobs, este que está aquí. Nota entonces que aquí ya tú puedes leer la jerarquía, primero se ejecutaría este y después se ejecutaría este. Aún estando en multitread, porque ya definí una jerarquía, voy a verificar que estoy en multitread para ver en este job extra, aquí está multitread y aún estando en multitread debería ejecutar el primero y después seguir con el segundo, se voy a intentar ejecutar aquí. Alito, algo muy particular de la herramienta, ojo al siguiente, no sé si mencionarlo como me parece que sí es un bug, muchas veces cuando tú abres varios subjobs, te ejecuta el job anterior. Date cuenta que aquí donde está la pestañita del job, dice el nombre del job que va a ejecutar. Este job que está ejecutando es el job anterior. Creo que para corregir esto que hay que hacer es, cierra esta pestaña del run, creo que se actualiza volviendo a ejecutar aquí y ejecuta nuevamente. Hay veces que no funciona de esa manera, sigue ejecutando el viejo, si no funciona de esta manera. Espera un momento que yo me recuerdo que yo había corregido eso.
on 2025-01-27
language: ES
WEBVTT y lo volvemos a abrir nuevamente y aquí sí está el nombre del job que es transformaciones básicas versión 2 eso es un pequeño bot que tiene la herramienta no lo no lo ha corregido todavía ejecutamos aquí y ahora sí empieza a ejecutar de se cuenta que está en multi trea y todavía sigue ejecutando el primer sub job aún estando en multi trea porque hay una jerarquía de job entonces tú puedes jerarquitar su job de esta manera y sería mejor práctica si tienes varios sub jobs si hay la jerarquía pues evidentemente que las marque de esta manera porque así cualquier persona que vaya a leer el job ya entiende que se ejecuta primero que se ejecuta después y cómo están las dependencias de esos sub jobs perfecto creo que ya lo hicieron vamos a ver el caso de Beatriz creo que tiene un error mostré para ver si salió un error ahí extraño vuelva a ejecutar nuevamente para ver no ahí está ejecutando la versión anterior cierre ese sub job por favor, cierre el job perdón, cierre el archivo vuelvelo a abrir para ver el click para si lo tomo de se cuenta que ahí le aparece de ejecutar ahora ahí le aparece el run y el empertre bar en sí aparece ya la listo ahí lo que hemos modificado es la jerarquía para que ahora sí primero se ejecute el primero y después el segundo independiente que estén multitread por último acá visualicen lo siguiente veanlo a este lado no lo haga usted allá para ganar más tiempo la otra opción es que yo coloque no coloque un sub job sino un component ok significa que es lo siguiente cuando este componente se haya terminado de ejecutar correctamente se va a ejecutar esto de acá abajo si lo ejecutar con un component va a dar exactamente lo mismo con un sub job ok ya le explico por qué mira voy a volver aquí a ejecutar con un component y me va a dar exactamente lo mismo que un sub job ok vea que está primero terminando acá y después sigue acá porque un component para este caso funciona exactamente igual porque resulta que este componente para verificar que terminó correctamente tuvo que haber recorrido los 25 registros entonces como él se ejecuta registros por registro al final ejecuta todo el flujo y tendría que terminar de ejecutar los 25 para que este terminara de la ejecución del componente pero normalmente que hace lo con un component que es diferente a un sub job quedado un componente en particular si ese componente se ejecuta de forma correcta pasa entonces al siguiente sub job esa es la diferencia fundamental que hay por otro lado aquí puede encontrar si te quiere agreguen un temesas box aquí tmsg tmsg box ese es para hacer una casilla de texto tmsg box y aquí hay una opción que dice el disparador o el sub job error las conecta acá ahí entenderá lo siguiente que si hay un error en el sub job manda a ejecutar el mesas box si no hay ningún error pues sigue su flujo normal en este caso pues no nos va a mostrar error porque la lectura del componente la está haciendo de forma correcta pero para eso que sirve recuerde la diferencia del sub job, el sub job termina el sub job completo y un component solamente ejecuta el siguiente sub job cuando el componente ya terminó de ejecutar de forma correcta esa es la diferencia que hay ya unió, Beatriz tiene que unir el primer componente con click derecho disparador voy a hacer el primer componente del sub job click derecho ahí sí disparador y on sub job ok tiene el tmsg box no ya está conectado está bien está conectado está bien está en rojo ahí está conectado está bien ah no perdón usted lo conectó con un regex, ese regex es para cosas diferentes haga lo siguiente bueno bien sirve para lo siguiente si hay una línea que está más conectada dele click en la línea roja que es la que queremos eliminar y dele suprimir selecciona el click creo que no lo ha seleccionado y ahí está creo que está seleccionado ya ya está seleccionado dele click entonces en el row 3 donde dice row 3 dele click dele ahora suprimir ahora sí vayas al primer componente click derecho vamos a disparador y vamos a un sub job ok perdón era error que pena era error porque un sub job que debemos hacer, dele escape click derecho disparador con su job error y lo conecta ahí perfecto ahí está bien esto solamente se ejecutaría siempre cuando haya cualquier error en el job eso es piensa lo que pronto tienes un job y quisieras mandarlo a un correo o a un celular que te manda un mensaje entonces para hacer cualquier actividad de mantenimiento como tal por último ya para mirar esta parte básica crees un nuevo job crear job que lo va a llamar job on the record integrador job on the record integrador te da finish entonces ya le mostré la forma en la cual tú puedes definir la jerarquía de ejecución de varios sub jobs de igual forma puedes definir jerarquía de cómo lo haces dos formas de hacerlo primera forma y vas a buscar un un componente que se llama troom de ejecutar troom job troom job troom siempre cuando vayas a configurar un componente en talent es lo mismo le da doble clic y te va a aparecer en la parte de abajo te debe aparecer la configuración de ese componente entonces aquí hay diferentes elementos aquí está lo que se llama trabajo dele aquí entonces al laito del text box hay un botoncito con tres puntos dele clic y va a escoger el job que quiere ejecutar ese componente espere que ahora que a veces demora un poquito aquí tengo axa básicos y voy a escoger yo transformaciones básicas 1.0 ok ahí estamos en la configuración del job verdad doble clic aquí aparece una sección que dice trabajo para ese motivo trabajo aquí ven aquí sale aquí listo aquí en la configuración trabajo aquí está un text file y aquí está un botón con tres puntos le da clic para que escoja a que quiere referenciar ahí escoge el trabajo que fue el primero perfecto y la otra forma de hacer lo mismo es se va a repositorio y vamos a seleccionar el job que hicimos 2 que es versión número 2 clic sostenido y lo suelta de este lado aquí se aplica lo siguiente que está si está en multitread va a intentar ejecutar los dos jobs de manera paralela pero para ejecutarlo de manera jerárquica le da aquí en fila y de aquí hay un main y los conecta aquí y ahí ejecutaría primero el job 1 y después ejecutaría el job 2 cualquiera de las dos formas bueno déle guardar eso no lo vamos a ejecutar pero eso es lo que hacen en la primera lo que hace es ejecutar su job dentro de un job y este ternón job lo que hace es que ejecuta y puede ejecutar varios yo que en un solo yo listo listo falta jorge falta te falta unir el los dos componentes en cual lo ejecutó este warning no aquí dice más que todo es no hay un esquema definido como si no aparece en el primero en el segundo no si pero si está definido no sé si guarden ahí no fundaría porque está ahora lo reviso para ver bien bueno ahora sí terminamos esta parte básica y nos vamos entonces a la parte de ahora sí vamos a entrar un poco en la parte del dato para trabajar con teclas y en la parte de la parte de entonces vamos a hacer lo siguiente minimiza esta ventana por favor de gesto abierto y yo tengo una máquina virtual en el cual tengo bueno un clóster pero ese clóster nada más tiene un solo maestro y un solo worker que está en una máquina virtual no armé un clóster completo porque en realidad no te lleva tenía poca máquina necesitaba necesitaba mucha infraestructura entonces vamos a lo siguiente en el en el escritorio vayas aquí al ícono que está al final de la primera línea y aquí hasta que se administró de hay para mí del doble clic a todos de aparecerle por defecto una máquina virtual que se llama a lo que le doble clic a ese jado que está ahí y él va a intentar entonces le abre una ventana para que inicie la máquina virtual dele iniciar por favor si aparece un warning de un punto de control dele continuar no hay ningún problema continuar a les de usted aceptar ahí en el caso de brenda no sé qué salió mucho para ver hoy nuevamente su máquina brenda un momento a ver voy un momento su máquina brenda por favor y déjeme yo ser a perdón creo que no creo que hay dos conexiones un momento no lo que hace que haya dos conexiones perfecto listo pero hemos que carguen entonces explico listo explico a mientras va cargando la máquina virtual voy a explicar lo que vamos a hacer entonces voy a pintar aquí un diagrama tenemos entonces lo siguiente tengo una máquina que es la máquina windows en esta máquina windows tengo el tal en big data como herramienta tal en big data que es la que tenemos montada ahora mismo en windows tengo el hipervisor de windows que es hay y en este hay que tengo aquí tengo una máquina virtual esta máquina virtual de aquí esta máquina virtual tiene montado un clóster de hadut con lo único es que ese clóster nada más tiene un worker no agrego más porque en realidad me lleva mucha infraestructura y al final pues tenemos 15 y que sería un poco más costoso la parte de la máquina o cada máquina porque entonces por por por hora y por recursos que consume la máquina entonces qué es lo que vamos a hacer al final este tal en big data se va a conectar a este clóster dejado y va a hacer operaciones sobre este clóster dejado listo eso es lo que vamos a hacer entonces vamos nuevamente a la máquina que ya tuvo que haber cargada y ahora dele clic en el usuario hdud el password es el mismo hdud pero en h minúscula hdud le da enter hdud en minúscula por favor perfecto ya cargo ahora hagamos lo siguiente entonces abra una terminal como lo hace se va el menú de los puntos que están en la parte de abajo y ahí le aparece la terminal aquí mismo que sería en la primera fila última columna y vamos a comprobar entonces conectividad para esto vamos a dar el siguiente comando va a colocar el estado de comandos aquí en un archivito que vamos a hacer vamos a ver primer comando vamos a darle el comando ip addr con doble de ip espacio addr bueno listo yo le voy a dar ip addr acá ip addr y aquí me salen entonces dos direcciones la look back que es la 127.0.0.1 pero me interesa la dirección que es 10.0.3.6 en pocas palabras para completar este diagrama esta máquina que está aquí tiene dirección ip 10.10.0.3.16 esta es la ip de esta máquina de acá y como sé que la máquina está clonada la máquina windows debe tener la misma dirección para todas entonces voy a la máquina windows no sé si me hace el favor alguno que me haga la comprobación no creo que haya una diferencia voy a la máquina windows está acá algunos nada más voy a escribir aquí cmd y voy a dar comando ip config y todos deberíamos si no estoy mal cada máquina tiene la misma dirección yo tengo dirección 10.0.3.15 cmd o power power shell la que tú quieras y colocas ip addr si voy a colocar el comando acá sería el otro comando y pequeño que ip config y pequeño y creo que la 10.0.3.15 verdad listo por favor vamos a probar conectividad tele pin comando pin y coloque 10.0.3.16 y debería responder la máquina virtual en ahí en el cmd por favor en la en cmd de windows coloque pin 10.0.3.16 y debería devolver entonces pin 10.0.3.16 perfecto tenemos respuesta listo no hay ningún problema a nivel de conectividad de redes vayamos nuevamente a esta máquina que está aquí a la de máquina virtual por favor se sitúa en la terminal le da con el mouse y ya aquí tengo instalado el cluster de hadut vamos a iniciar entonces ese cluster de cero entonces vamos a lo siguiente vamos a dar el siguiente comando si son tan amables por aquí lo tengo y se me perdió eso vamos a dar el comando todo en menos forma explico rápidamente entonces que hicimos ahí lo que hicimos ahí voy a buscar la gráfica recuerden que la arquitectura de claus se basa en master es clavo entonces el master de hadut lo llama name node o sea el master de hadut se llama name node y el walker de hadut se llama datanode lo que estamos haciendo es que estamos formateando el cluster de hadut es decir si ahí había en archivos lo formateamos ya eso es lo que estamos haciendo listo seguimos entonces vamos a levantar dos servicios vamos a levantar en la instancia vamos a levantar el servicio para el almacenamiento distribuido con hdfs para eso va a dar el siguiente comando va a dar start de iniciar en inglés guión de fs punto sh entonces start guión de fs punto sh e intenta subir unos demonios recuerde que el concepto de lino el demonio es lo mismo que hablamos en windows como servicio son procesos que se ejecutan en background siendo que como se cambia el sistema operativo hay veces que se cambian los nombres no sé fernanda si si te ejecutó bien nuestra parada de fernanda voy a tu máquina si espacio dale flecha arriba flecha arriba flecha arriba para hacer para recuperar el vuelve con flecha izquierda y bueno y borras ahí listo perfecto enter perfecto listo cuando termine de ejecutar va a ejecutar ahora un comando que es un servicio que se llama el servicio de ya ya el servicio que le va a permitir poder compartir los recursos entonces aquí está estar ya punto sh ya con g y termina en rn punto sh entonces le damos aquí estar ya punto sh esto nada más lo vamos a hacer una sola vez perfecto listo cuando termine hay un comando que le va a permitir verificar cuáles servicios de nacionados con con jadu que están arriba el comando es jps jps y debería tener 1 2 3 4 5 bueno 6 con el jps servicio arriba bueno 6 demonios arriba uno que es no resource managers secundaria y no jps de no y no maya no un manager a betis parece que te veo menos a ti un momento y a tu máquina algo raro en el tuyo no le veo el no no lo veo permíteme accedo a tu máquina un momento se me hace raro que voy a intentar bajar los servicios por favor ahora dele el siguiente comando los que terminaron por favor vamos a verificar el tuvo que haber abierto unos puertos para los servicios entonces démosle el comando net está menos punta por favor esperan un momento por favor si aquí lo subió este que no dice no bueno yo voy a dar el comando aquí mientras termina acá con net está menos punta ven aquí sigo va a tener que ampliar para poder verlo bien aquí amplié esto para que se lo vea mejor aquí confirme que tenga abierto el puerto 98 70 necesito dos puertos abiertos a claro a modo informativo el 0 0 0 que está indica ahí significa que cualquier máquina de la red se puede conectar a este puerto si aparece 127 indica que solamente la máquina local se puede conectar entonces me interesa que verifique que tenga el 98 70 aquí abierto y el 9000 abierto que son los que necesito inicialmente para comprobar si quieres no comprueba comprobamos de esta forma esa windows ahora abre el browser de su preferencia el que usted quiera yo voy a abrir entonces hech y va a colocar la siguiente dirección va a colocar 10.0.3.16 dos puntos puerto 98 70 voy a parar a voy a coger jps que raro el caso suyo voy a comprobar un momento veatriz 10 puntos a comprobar acá el caso mío para ver listo aquí debería aparecer esa ventana el caso suyo batriz voy a sumar nuevamente que no sé qué está pasando aquí hay algo que pasó no sé vamos a intentar hacer un formateo para alguien más tuvo problemas para subir esto no sé de pronto alguien más voy a verificar aquí las pantallas bueno veo veatriz hizo brenda no sé si probó ya para ver si le funciona fernanda no sé si coloca la dirección en el blog se para ver 16 no 16 sería estar 16 listo abre el browser que usted quiera desea este hecho ahora cron el que usted quiera y coloca esa dirección que está ahí perfecto entonces en la barra direcciones coloque 10.0.3.16 dos puntos 98 70 perfecto este fue el pequeño problemita que faltó un menos parece a mí que ese fue el error me esperan un momentico por favor los demás mientras solucionan que un problemito bien esto lo hacemos nada más una sola vez perfecto listo perfecto bien vamos todos entonces ahora estamos aquí en esta ventana listo bueno esta es una ventana de la información de clósteres a dos si usted quiere vayas aquí donde dice data nodos un nuevo de datos note que nada más hay uno entonces prácticamente lo que tenemos en la arquitectura montada tomando esta gráfica es como si tuviese este clóster pero nada más estos workers no están aquí nada más hay un solo worker tengo una y no y tengo un solo worker casualidad que están en la misma máquina por buena práctica pues no debería estar en la misma máquina pero listo esto es lo que tengo configurado actualmente vayamos entonces no voy a meterme en detalle con esta parte vayamos lo que me interesa en la última opción que dice utilities hay una opción que dice bros de system que me queda ahí por favor utilities la última en el menú horizontal que está en la barra utilities le da click ahí y le da un browser listo ahí debe aparecer que está vacío ok por último ya para finalizar la configuración en la máquina virtual vayas nuevamente en la máquina virtual y va a dar los siguientes comandos se me tocó volverme a loguiar a todo el minúsculo va al siguiente comando entonces va a escribir hdfs hdfs de sistema de ficheros dfs o con el menos este que puede estar ese no sale directamente es las vamos a crear una carpeta que se llama así y por último después de esto le da este mismo comando hdfs para darle permisos vamos a crear una carpeta para poder organizar los archivos que vamos a trabajar con el tal en big data fernando voy a ver que creo que le salió algo raro está si hay un espacio exactamente de flecha arriba por favor para ver el comando si hay un espacio exactamente por eso es que los que estudiamos esta carrera nos volvemos cuadriculados sin el espacio no funciona sin el menos no funciona de lente por favor perdón aquí aquí hay un comando está raro este comando aquí que pena si es ese ahí corregí el comando porque es ch mod 77 de flecha arriba y cambia el ch dir y le equivoqué 777 entra hoy el f5 ahora al browser en el edge el que tiene abierto en windows el f5 momento debería apreciar la carpeta perfecto la carpeta no no voy a proceder entonces a hacer esto acá en mi máquina sería ch mod dfs menos m cadir es las axas minúsculas perdón aquí dfs hdfs y después le hago un ch mod con 777 ch mod 777 listo perfecto entonces cuando termine de hacer esto le da f5 acá en el windows y debería aparecer entonces la carpeta que creo allá falta todavía alejando que es el último comando que hace falta y continuamos entonces te pongo el comando del sachet aquí te lo colocó alejando nuevamente la pantalla sería lo mismo pero cambia el m cadir por ch mod y le agrega el 777 bueno continuamos entonces ahora sí vamos a utilizar el talent big data váyase ahora sí a herramienta el talent big data cierre por favor los chocs que tenga por ahí que pronto le van a causar confusión y ahora voy a hacer lo siguiente entonces vamos a crear en la carpeta kiaxa vamos a crear una subcarpeta y esta voy a colocarla como jadut el talent big data entonces creamos una carpeta listo jadut talent big data sobre la carpeta jadut vamos a crear un job y lo vamos a llamar job on the record subir on the record archivo on the record jadut no voy a agregarle propósito de descripción porque me desgasta mucho entonces es como buena práctica ya tenerlo en cuenta pero por cuestión de tiempo nada vamos a colocarle job on the record subir on the record archivo on the record jadut le damos aquí finish para que nos cree listo en el dado finish bien hay diferentes formas de hacer esto voy a tratar de dar varias no puedo dar todas porque se me quedan después los los ejemplos vamos a buscar los siguientes componentes vamos a buscar un componente que se llama thdfs si usted quiere se va acá a la paleta va donde dice hdfs y va a encontrar los mismos componentes que voy a escribir yo acá como ustedes se hacerlo o los busca de este lado o los consulta acá ahí me gusta más buscarlo de este lado pero si usted quiere pues puede ser de varias formas vamos a buscar uno que se llama thdfs thdfs connection ese thdfs connection lo que hace es que hace una conexión a un sistema de ficheros hdfs hdfs connection vamos a agregar ahora lo siguiente vamos a agregar otro componente que se llama thdfs put aquí un tema esa voz que ya lo veíamos pero vamos a configurarlo cuando lo configuramos por si acaso hay algún error evidentemente el mesa vos carece de sentido porque tendría más sentido que mande un error ya sea un correo o a un sistema de issues que disidencia que maneje pero bueno para verlo aquí gráficamente vamos a agregar aquí un tmsg vos continuamos entonces ahora vamos a unir los diferentes componentes y después los configuramos entonces lo que hace este hdfs connection lo que va a hacer es conectarse a un sistema de ficheros después que me conecte voy a intentar subir un fichero para esto entonces voy ya como sería ya todos los componentes va a ser igual es cual la forma en que lo quiere conectar a mí me gusta más el componente clic derecho voy disparador y vamos a escoger un component ok y une el tema esa voz con el t-connection con un t o un component error disparador t o un component error procedamos entonces a configurar los diferentes componentes primero vamos a configurar el thdfs connection dele doble clic Beatriz tiene que seleccionar la mitad en toda la mitad del componente o sea de clic exactamente en el icono ahora si clic derecho disparador y ahí escoge un component error y ahora si lo conecta perfecto dele ahora después que termina y le da doble clic al thdfs connection para configurarlo recuerde para darle con para configurar siempre damos doble clic y vamos a configurar el componente listo cada configuración de los componentes en tal en es claro que varía dependiendo de lo que tú quieres hacer entonces ahí la configuración pues no es única para todos vamos entonces aquí nos pregunta el en la parte en la perspectiva de abajo nos pregunta la distribución resulta que hay diferentes distribuciones de jadut así como hay diferentes distribuciones de gene ulinus tofedora existen diferentes distribuciones para jadut entre esas las más importantes tenemos claudera y horton pero claudera compró a horton y dentro del esquema del señor aws tenemos a amazon emr como esta es una distribución particular no es una distribución ya de estos señores de ya sea de emr de horton vamos a hacer lo siguiente donde dice distribución dele clic por favor y va a escoger la que dice universal ahí aparece también la de ashur pero me interesa la que dice universal lo deja por favor en versión 3 y note que automáticamente le define un esquema c hdfs listo vamos a configurar ahora el no el no es el no do maestro de una arquitectura de un clóster de jadut hay lo único que hay que hacer es cambiar la dirección ip donde se encuentra este clóster si ese clóster tú lo tienes a nivel de la nube ahí colocarás la url donde se encuentra ese clóster sea en ashur o sean aws o en horton el que tú quieras entonces voy a colocar aquí en grande algo muy particular porque esto viene de java entonces voy a colocar este señor aquí en uno para que entienda lo siguiente resulta en que la cuando vas a definir un texto en algún componente de talent la mayor parte de las veces nada te va a decir una sola vez en el cual no se aplica esto ahora te la digo cual en la mayor parte cuando es textual lo que vas a configurar tienes que meterlo entre comillas dobles porque entre comillas doble porque él al final transforma en java y java un string es comilla doble entonces de esto que está aquí vas a quitar la palabra localhost esta que está aquí y vas a colocar la dirección ip donde está el clóster que sería 10.0.3.16 te quedaría así como estoy mostrándolo aquí voy a quitar este señor de acá entonces perdón voy a copiarlo y lo voy a sobre escribir aquí sigo acá perfecto 316 aquí vienen dos elementos que es la parte de autenticación la parte de autenticación hay unos sistemas autenticación tipo carveros que son muy buenos definen un token para en este caso de ese cuenta que yo cree la carpeta y le cree un chemos 777 de tal forma que tenga cualquiera permiso de acceder pero si tiene esta autenticación tendría que especificar las credenciales en la parte de abajo este no es el caso porque lo dejé abierto la configuración para que no pidiera ninguna credencial entonces carece de sentido la configuración que está ahí pero ahí colocaría lo de las credenciales correspondiente listo ahí no hay ningún problema ahí termina la configuración de la conexión ahí eso es lo que entabla es una conexión hacia el clóster vamos a configurar ahora el componente para subir ficheros dentro de lo que es el clóster date cuenta que ya yo me sé los componentes te los colocas y no sé es a mí me ha fusionado las dos prácticas una práctica que cuando tengo tiempo libre estudio digamos en detalle los componentes y me acuerdo de un componente y lo otro me da la práctica pero vuelvo repito a nivel de metodología carecía sentido en que yo me pusiera tres horas a describir componente por componente entonces voy directo los componentes mejor vayamos entonces al put que como su nombre dice pone un archivo en el sistema de ficheros vamos a darle doble clic y ahora aquí tú tienes una opción de volver a configurar la conexión pero como ya yo ya yo la configuré vamos a usar una conexión existente entonces notarás que aquí debajo del property type hay un chulito de una opción que dice usar conexión existente chuléala por favor es importante que es cojas en el combo voz de la lista de componentes dale clic ahí y te debería aparecer todas las conexiones existentes en el job que sería esta perfecto listo está dele doble clic a la conexión del hdfs putos no sé si le hay ya de que me dijo veatriz puede ver que no me habló brenda a brenda que pena no me conozco hoy a las dos a un momento dele doble clic está en la si se da cuenta está donde dice hdfs con está en el componente hdfs conécteo tiene que ir la configuración del componente hdfs está bien está bien a mi pantalla si mira mi pantalla un momento note que cuando yo doy doble clic aquí en la parte de arriba me aparece en que componente estoy dele doble clic aquí al hdfs puto para cambiar la configuración doble clic en el centro y ese cuenta que está y le parece ahí usar conexión existente o el property type listo ahí aparecer entonces hay escuas y están amables component list ahí dele clic ahí hdfs conexión perfecto listo permítame comprobó aquí algo de permítame comprobó algo aquí del sistema de ficheros momento para que sea más fácil hagamos lo siguiente pero no tenía que escribir vayas a la carpeta de recursos que está en el escritorio recursos en tbd data sets ccv escoa todos los archivos que están ahí menos el genre copie pegue en temporal aquí en esta carpeta ten esos tres que están ahí en re está en escritorio recursos los todos se sube data set ccv se sube y escoja todos menos el genre y los coloca en la carpeta tengo que yo creo que esto me funcionaba bueno para que hice eso bueno al final ya sé para qué lo hice bueno aquí el local director y darey por favor aquí en el en los botones que están acá el último botón que aparece para los tres puntitos para escoger una carpeta escoja la carpeta ten seleccionar carpeta quería demostrar algo pero al final creo que no no era necesario lo muestro ahora ten una cosa particular y esto ya va en ese caso de ese cuenta que la ubicación está de esta forma c2 punto es la ten el separador es a veces me pierdo si este es la inverso en las buenas entonces creo que es inverso no sé en caso este el separador típico de linux o de sistemas unix de unix y linux pero entonces en windows normalmente recuerde que windows lo tiene de esta manera c2 puntos así perdón se me así sería en windows en este caso en particular cuando es las de esa forma ahí le marcaría un error porque para yaba cuando ese es la esta forma hay que colocarlo doble porque este carácter de el carácter especial de yaba entonces las dos formas si es tiene que ser dos porque si no sale un error de compilación bueno continúo entonces váyase ahora al hdfs directory dele clic ahí en los tres puntos y debería conectarse vamos a ver aquí me pide que me instale unos componentes esperamos que no haya ningún tipo de error acepto listo lo y finis va a intentar conectarse y debería mostrarme el sistema de fichero que tengo en la máquina virtual que es con hadut en este caso lo voy a mandar a axa escoja entonces el folder de axa aquí ok perfecto escoja axa ahí está en axa es que coger axa y debería aparecer acá espera un momento que algunos le termine de configurar algunos componentes dele clic veatriz en su caso bajar a instalar el download a incisal abajo el de abajo el de abajo ese que está ahí dale acepte todo por favor y ahí escoja por favor si están amable axa exactamente ok continuamos entonces ahora he definido la carpeta de entrada y la carpeta de salida ahora por favor vamos a agregar los archivos que quiero subir en la parte de abajo dele por favor si están amable en el más y vamos a subir los siguientes archivos vamos a subir el archivo que se llama producción pero antiguo que se me escapó el nombre se llama production.csv esta en inglés production production.csv y te pregunta ese el de entrada cómo quiere llamarlo en el de salida en este caso en particular pues puede llamarlo exactamente igual listo voy a agregar otro archivito aquí que sería el que se llama fill actor fill recuerde que en el caso particular de windows no hay problema no es sencilla los nombres de archivos pero en el caso del señor linux y unis hizo sensibles fill actor.csv y voy a hacerlo exactamente acá y el último sería super market on the record sales hubiera sido mejor copiar el nombre del fichero verdad super market on the record sales.csv te quedaría la configuración de esa manera revisa por favor que los nombres coincidan exactamente porque si no va a salir un error entonces al ejecutar perfecto termina entonces de configurar el tema es a vos entonces te pregunta el título que quieres que aparezca en la casilla de texto voy a colocar aquí error error hadut como título el título tiene que estar entre comillas doble porque va a ser un stream encierra entre comillas doble porque si no encierra sale un error entonces entre comillas doble es el mensaje voy a decir error de conexión al cluster hadut vamos a proceder a ejecutar dese cuenta que acá en este run de acá aparezca el nombre del job voy a ejecutarlo de forma diferente me voy acá a la pestaña de la perspectiva de acá abajo de run y aquí me aparece un botón que se llama run verifica que el nombre del job coincida con el nombre del que quieres ejecutar vamos a darle aquí run ahí lo que está haciendo es que genera el código java para poder ejecutar listo empieza la ejecución para algunos y termina sin ningún tipo error para confirmar que todo esté bien se van al browser entran a la carpeta axa y deberían estar los archivos migrados al sistema de ficheros entre la carpeta axa entonces de aquí puedes migrar lo que tú quieras como hablamos de variedad aquí estamos hablando de almacenamiento tú podrías mandar una imagen un audio al sistema de ficheros ya automáticamente el maestro se encarga de tomar el archivo y dividirlo en varias partes noté por ejemplo que ahí tengo una replicación de 3 y tengo un tamaño de bloque de 128 en pocas palabras el archivo se divide en bloques 128 y se reparten los diferentes nodos como solamente hay un solo nodo pues ahí no hay problema replicaciones que ese archivo se guarda tres veces por si acaso hay algún error perdón el bloque de se guarda tres veces por si acaso hay un bloque que causa errores no se pueda recuperar en un momento determinado perfecto listo lo sé si acudo es el error no sé si si funcionó vamos a esperar para ver creo que a todos me parece que ya le funcionó voy el caso suyo fernanda que tiene un error allá voy a ver para ver pero ah listo pasa lo siguiente fernanda se me escapó esto todos acá que lo entiendo que dice fernanda aquí en el put yo coloqué en el put noté cuenta que yo creo que el action file en create significa que si yo vuelvo a ejecutar este job si lo vuelvo a ejecutar este yo voy a tener un error porque va a intentar crear un archivo que ya está allá entonces qué me tocaría hacer ahí aquí sale está el error que me tocaría hacer aquí si hay algunos archivos que voy a sobre escribir lo mejor entonces es cambiar el create por overwrite y ahí los que están ahí los sobre escribe y los nuevos pues los copiará en el caso suyo fernanda por favor cámbiale a action file y esto lo que haría sería que volvería a ejecutar sobre escribiría los archivos y los que sean nuevos lo volvería a crear voy a su voy a su equipo para ver si error tiene ahora sí revisa por favor su carpeta si está amable el f5 ahí ahí está perfecto ahí está listo perfecto vamos entonces a lo siguiente ahora vamos a crear aquí un nuevo yo crear yo y este yo que lo voy a llamar entonces yo leer archivo jaud listo leer archivo jaud finish ahora tengo un pequeño si nota un poco la forma de este yo este yo me queda poco flexible porque porque la conexión está dependiendo netamente de esta si la url me cambia entonces me tocaría entrar al yo cambiar la url y bueno y ejecutar entonces entonces para eso es que existen las variables de entorno para flexibilizar entonces la configuración de los yo así mismo como estemos al desarrollo entonces para esto vamos ahora a ver a en el repositorio vamos al menú de contextos por favor context ahí está context debajito de yo design debajito del yo design context seleccionamos aquí vamos a darle clic derecho y voy a decir que voy a crear un grupo de contexto aquí que está aquí y lo voy a llamar axa se lo coloqué con a mayúscula vamos a darle aquí entonces next y aquí le coloca los ambientes que vaya a trabajar usted para confiar los ambientes notará que aquí está un table en la parte superior del table horizontal aquí la parte derecha hay un más ese más que está ahí le va a permitir configurar los diferentes ambientes entonces vale aquí clic vamos a generar un nuevo ambiente este lo voy a llamar producción ok y el default lo selecciono y lo voy a editar ahora edit y lo voy a llamar cua ok y escogemos por defecto que el entorno por defecto va a ser cua es el que está ahí definido pero tú puedes cambiar la producción en este caso sería cua vamos a darle aquí ok listo vamos a crear entonces ahora una nueva variable les espero algunos que todavía están listo ahora vamos al más que está acá bajito este más de acá abajo me permite crear y el de aquí que está la mitad vamos a darle aquí un más ese que está aquí y me pregunta entonces ahora lo siguiente el nombre de la variable entorno que quiero manejar en este caso le voy a llamar entonces url on the record cluster on the record hadith me pregunta el tipo de datos y los tipos de datos que van a aparecer son específicamente de java no cambio porque me interesa que sea string el tipo de datos me pregunta si quiero un comentario y me pregunta ahora para que especifice los valores para cua y para entonces para no tener que copiar eso vamos a darle aquí un momento finish se va al job que se llama subir archivo hadith y vamos a copiar la url que está ahí la del hdfs cópies eso que está aquí por favor copiar va nuevamente a la variable del grupo de esto que creo él le va a decir que va a editarlo editar next y va a pegar ese valor debajo del valor de cua y por favor aquí hay algo particular que aunque esto sea string en esta parte específica no requiere comillas doble y si la colocas a un error porque está así no sé pero está así entonces quitéle las comillas doble al fin al inicio y al final listo y si desea copia eso y lo coloca en producción es claro entonces en producción es claro que en producción vas a colocar un IP diferente pero como no tengo un cluster adicional pues voy a dejar la misma dirección para hacer la prueba cambie para hacer una prueba que se me ocurrió ahora cambie la dirección 16 por 17 por favor si están amables 16 por 17 a ver si sale si mando un error ahora 16 por 17 y le da finish ok me voy a ubicar entonces en el en el job a este viejo que tengo aquí voy a concentrarme en el de leer archivos a dos listo voy a hacer entonces de forma diferente voy a crear aquí ahora voy a agregar un archivo que se llama thdfs input de fs input el put es para agregar y el input es para leer thdfs recordará que la conexión en el pasado la hice en el thdfs connection esta la voy a hacer directamente en el componente como voy a hacer aquí primero voy a coger como distribución universal y ahora deseo usar la variable de contexto que tengo como se hace aquí cuando note lo siguiente que aquí tengo un contexto en el repositorio y tengo un contexto a nivel del job en él en la perspectiva que está abajo entonces el tale maneja dos tipos de contexto un contexto a nivel del proyecto que esa puede ser compartido con diferentes job o poder con textos muy particulares de cada job si tú sabes que los contextos lo vas a utilizar en diferentes elementos de los job lo mejor es que lo haga de tipo project o sea de este lado si es una variable que es muy particular del job la puedes crear en los contextos de estos que están acá entonces pasa lo siguiente en esta perspectiva situate en context por favor aquí lo que dice context al ladito casi el del componente y qué vamos a hacer vamos a importar los contextos que tenemos a nivel del proyecto lo tengo que importar al job para eso aquí a donde están los botones de acá abajo que hay un más un x aparece con una pequeña limita con un y ahí te debe aparecer todos los contextos que están a nivel de proyecto nada más hay uno porque fue el que creamos entonces voy aquí cojo ese señor ok selecciono todas las variables de los entornos y le doy ok y me hace el import para que pueda usar esa variable dentro de este elemento que está acá perdón alguien me habló pero no sé si la si fue que no lo escuché bien a ver si me puede hablar un poquito más duro que no sé por qué perdí no lo escucho muy bien no sé si le escuché por muy bajito que soy yo no usted soy yo si alguien me puede de pronto alguien puede repetir la pregunta que la escuché muy bajo verdad no sé si alguien no lo que pasa es que aquí listo si no la tiene ahí ya estoy viendo sí entonces voy a ver lo siguiente se le perdió la configuración y esa pesaña donde está ahora hoy entonces aquí estoy en su máquina ok ventana aquí hay un show y voy a buscar aquí contexto le doy doble clic aquí está ahora sí es que como que de pronto la cerró aquí y cuando hay una ventana que se me pierde entonces tengo que ir acá show y busco la ventana en particular que la de contexto y ya es la hora ahora sí sí ya entendí ahora haga el import que sería en la desde clic aquí en este botoncito el que está al ladito del más aquí por aquí hay un botoncito ese que está ahí para que importe el perfecto listo entonces ahora vamos entonces a la configuración del hsb input borre ahora todo lo que está en el eso que está ahí y va a colocar la palabra con le da control espacio control espacio y ahí le va a aparecer todas las variables de contexto que están definidas en ese yo entonces la variable de contexto que me interesa es la que dice context punto urel cluster y la pego ahí cuál es la ventada de usar variable de contextos en que ahora si hay un cambio nada más hago en la variable de contexto y automáticamente afecta la dependencia de esas variables es lo que mencioné alguna vez que es reutilizar veatriz voy a su venta en un momento que ahí está sí ok de ley veatriz estoy su venta ok ok seleccione ahí chulé ahí listo ok perfecto vamos a configurar ahora el componente t hd fe input dele doble clic es el componente t de exactamente se ubica donde tiene no urión está hd fs localhost y borra todo lo que tenga el borra todo eso ahora escribe con el edad control espacio con cebo en faltó la c la c o n control espacio ahora y ahí le aparece en toda la escuela por favor perfecto entonces como venía diciendo la ventada de la variable de contexto es que si hay un cambio en la url nada más lo haría en la variable de contexto y automáticamente afectaría a todos los yo que dependan de esa variable entonces ahí flexibilizo más mi código listo ahora voy a proceder entonces sí dígame a listo perfecto buena pregunta porque cuando usted vaya aquí en el rum cuando usted lo vaya a ejecutar en el rum aquí tengo las opciones que son cua y producción listo entonces tú escoge ahora en un sistema en el caso de ustedes las ejecuciones no se van a hacer directamente en la máquina sino ustedes van a tener un sistema que se llama el tmc el manas console que tú subes el job a ese manas console y te lo ejecuta allá arriba en el clóster o donde tenga montado el tmc pero lo que si es seguro que la confesión la toma de aquí cuando tú especifica esta parte acá listo sigamos entonces ahora resulta pasa ya acontece en que lo que va a intentar hacer este yo es leer este archivo pero este archivo está estructurado por lo tanto necesito definir la estructura del archivo en pocas palabras voy a leer en este caso en particular voy a leer este filáctor que está aquí este filáctor voy a mostrarlo aquí directamente aquí este señor que tengo que definir la estructura de este filáctor por ejemplo que hay una columna aquí que el nombre coincida va y venga pero sé que tengo que especificar una columna las columnas que acá lo más posible sería que sea el mismo nombre entonces una forma de hacerlo de hacer esta parte sería lo siguiente sería lo siguiente aquí vaya la confesión del hdf input que está aquí y aquellos componentes de talen que de una u otra forma tienen que tener una estructura para poderlo leer como el caso un ccv un jason una tabla van a encontrar quizás en diferente ubicación pero siempre vas a encontrar una opción que dice editar esquema si tú le das aquí clic aquí entonces tú puedes definir el esquema que coincida con el archivo que tú vas a leer aclaro si le hacemos manual esto es muy engorroso te voy a decir cuál es la mejor forma la mejor forma es que si aunque el archivo sea muy grande lo que tú vas a hacer es que vas a tomar solamente la estructura las dos primeras filas la fila de arriba y la fila de abajo o sea la primera y la segunda aquí como este archivo es muy pequeño en realidad puedo hacerlo directamente pero te aconsejaría entonces que tengas una copia a nivel local de la estructura del archivo y hagan lo siguiente crees una metadata de ese archivo como sería el cuento como el archivo es ccv los archivos ccv se dotan como archivos delimitados entonces voy aquí al delimite voy a darle clic derecho y voy a crear una conexión hacia ese archivo de los metadatos que tiene entonces lo voy a llamar on the record actor se va a file delimited clic derecho crear file delimite le da entonces next ubica el archivo porque usted va a tener una copia muy pequeña para la estructura en este caso vayas en la carpeta ten que es tenerlo ahí escoge fila aquí puede visualizar cuál sería el carácter de separación que tiene y note algo particular que aquí ahora sí le está apareciendo unos símbolos especiales eso porque el sistema de codificación no lo ve yo de forma correcta vamos a darle aquí un next aquí me lo está leyendo pero tiene encabezado me interesa voy a decirles que encabezado y voy a cambiar no sé cuál en qué idioma está voy a cambiar a windows voy a crear aquí a windows 12 52 saber si el problema era si el problema era de codificación pero esto no tiene nada que ver aquí la codificación por qué porque al final le interesaría es para los nombres de columna recuerde que es lo que va a guardar los metadatas no guarda los datos del archivo pero aquí me sirvió el ejemplo para para ver para que entendiera este sistema de codificación acá listo entonces vamos a darle aquí next perfecto vamos a darle aquí finish y ahora se sitúa en el archivo delimitado mira lo que va a ser ahora va a archivo delimitado y aquí una opción que dice metadata le expande el árbol el archivo delimitado que se llama filácto le da click derecho editar esquema y aquí hay un botoncito que dice que es el penúltimo que dice exportar en un xml el metadata o sea el penúltimo el penúltimo le da click importante entonces coge la ubicación vamos a dejarlo ahí en temporal y lo voy a llamar entonces fil actor y muy importante que le agregué el punto xml porque después no lo lee bien fil actor punto xml punto xml guardar y listo ahí le da finish ahí ya después que tiene la metadata entonces se va al input nuevamente hf input se va el esquema del input y aparece un botón de penúltimo casualmente para importar ahí le va a dar click y va a buscar su listo es quién me habló a ese Brenda Brenda Brenda Brenda Brenda ahí en el componente en la parte de abajo suba un momento suba un poquito más suba y listo dele editar esquema y dele click en editar esquema a la parte de arriba abajito ahí donde dice property type ya veo property type abajo y esquema y ahí ahí lo tiene ahí lo tenía ese de aquí no sé si alcanzaba mi mouse dele click un momento escoja el penúltimo botón busque el sería fil actor dele abrir dele ok haga por favor una corrección ahí en el net no uri la o está hdfs local borre por favor esa línea toda la línea borre la toda que quede en blanco escriba con con control espacio de aleora control espacio y escoja ahí la variedad de contexto que ya definió que se llama url en la primerita url closer perfecto listo que se bien vamos entonces como el lo que buscamos era leer entonces vamos a hacer lo siguiente vamos a colocar aquí un telor row para que me muestre aquí internamente los datos telor row y conecte el hdf input a este telor row quieren para variar vamos a configurar telor un poco diferente vaya aquí al telor row aquí hay varias formas en que le va a mostrar dígale que le muestre los datos en tipo table no básico table doble clic en el telor row y cambie el modo que estaba en básico a table hay tres modos básico table y vertical entonces eso puede jugar después es para teníamos tiempo a veces para ir a cada uno con identidad a configuración ejecutamos aquí y debería entonces listar perdón aquí me ejecutó pues subir archivo entonces voy a cerrar este señor aquí salmar y voy a verlo abrir que es el leer aquí está voy a ejecutar aquí error aliso ya que pena se me escapó algo sirvió el error tengo un error de ejecución este error de ejecución que está aquí seguramente pasó con lo siguiente el archivo que subimos hay una particularidad que el archivo que subimos tiene está separado por punto y coma y este archivo en particular en punto y coma y tiene un encabezado se nos olvidó confiar esa parte entonces vamos aquí nuevamente al vamos al hf input y me pregunta el nombre del archivo que pena se me olvidó confiar es confiar esta parte nombre del archivo entonces vaya aquí al que vamos a leer que no lo habíamos especificado esta parte dele clic aquí y escoja entonces que se llama filácton el tipo de archivo es text file ya explico esta parte de sequestras adelante el separador es punto y coma y como tiene un hider me toca colocarle aquí un uno diciéndole que tiene encabezado fernanda bueno dale al bajar a instalar ahí por favor dale ahí bajar a instalar dale a aceptar todo no no dale que no botón aceptar todo ese que está ahí dale nuevamente ahí bueno ahí escoge expanda y axa y escoge filácton ok bien el tipo de archivos es text file está bien en separador de filas ya lo viste está bien el separador de campo es ssv es punto y coma y como tiene un hider tienes que colocarle que elegir está en la posición número uno o sea que no lo va a leer perfecto vamos entonces a ejecutar ahora aquí a ver qué pasa voy a ver un momento bueno a ver si termina de cargar voy a revisar un momentico a fernanda que lo volviste a ejecutar salió error vamos a ver mientras de pronto se bloqueó dele cancelar y vuelve a ejecutar nuevamente prenda a ver listo pax vamos a ver qué pasó esto no había configurado el pack fernanda me pareció que tuviera configurado el pack ya no me pareció a mí permite lo vuelvo a ejecutar aquí aquí aclaro que todavía no he hecho progresamiento de data estoy simplemente es haciendo ejemplos para subir archivos hacia adu todavía big data no ha hecho todavía ya explico no sé qué pasó aquí hay algo en particular a que está aquí a fernanda aquí parece que estuviese ejecutando el primer yo que teníamos antes fernanda lo que pasa es que cogimos escogiste el archivo diferente el archivo que mapea es filácton no es chema pero esperate un momento creo que cogiste es de acá esta meta data creo que mapeaste fueste vamos a mapear este señor editar esquema vamos a ver vamos nuevamente a leer este archivo aquí editar next y aquí se te escapó colocar que tiene encabezado si tú no le colocas encabezado por defecto él va a colocar cada columna con estos nombres que están aquí entonces voy a hacerle este señor para que tome el encabezado y haz de cuenta que ahora va a tomar estos elementos de encabezado y es ok vamos a ver esta herramienta a veces si me cambió el esquema ahora no voy a intentar leerlo nuevamente filácton next aquí he leído que tengo encabezado bueno ahora sí creo que aquí directamente lo puedo exportar que es este que está aquí y doy clic y lo puedo despertar voy a sobre escribir este archivo filácton cuál fue el error que tomaste es importante importaste en el esquema este importaste fue otro archivo que es el y no era ese entonces voy ahora sí a importar filácton ok y es y voy a intentar leer aquí nuevamente efecto el problema era que habías importado un esquema diferente y por eso había un error el caso tuyo brenda voy a ver para ver por qué no te que te pasa ahí se bloqueó fue bueno momento momento momento creo que hay un problema en la conexión está intentando conectarse al conectarse al al hadut y parece que no está consiguiendo la conexión asumo que puede haber un error en la en la dirección entonces espérate un momento y voy a bajar este señor y voy a volver a subir entonces los temas por favor me esperan un momento no te que esté un poco más complicado porque acá hay que acasar de más errores bueno como diciendo todavía no estamos no hemos usado big data hemos algunas funciones de componentes pero ahí no está siendo big data todavía no está siendo ni mac review ni spark entonces ahí lo que está haciendo simplemente es almacenamiento sobre hdfs todavía no hemos usado mac reviews pero voy a verificar la variable de contexto un momento a ver si está apuntando bien brenda a ver ok aquí el contexto si está bien 16 está bien hoy entonces al job que es el que se llama aquí en hadut subir ficheros perfecto voy aquí este de aquí el problema es que marcantes a producción y en producción yo le colocó le cambiamos la edición a 17 entonces ese 17 no no está entonces este está en cuba ahora sí marcando aquí a 16 y vamos a intentar entonces acá abajo para ver y si porque lo vamos a buscar acá será que si se habrá tomado el cambio porque debió tomar el cambio a cuba porque pareciese que estuviese buscando todavía la 17 si parece que estuviese buscando todavía 17 será que el cambio no lo podemos ver en el contexto no ahí pudiamos haber colocado de forma manual pero para que era más fácil aquí quería ver este momento a ver aquí me va a tocar cancelar porque aquí va a demorar un tiempo permíteme lo cancelo nuevamente porque queremos un momento y por acá le hizo axa basado leer archivos así se está cargando perfecto voy a cambiar entonces la forma de ejecución voy a colocar de forma manual el archivo sería entonces el archivo sería está ubicado en es las axa es las fil yo acto puntos eso ve cuando lo voy a ejecutar que aquí todavía está marcando a producción me parece que fue que no tomó el cambio voy a guardar por si las dudas voy a ejecutar ahora listo ok creo que aquí hubo un problema aquí el tipo no sé por qué se tomó aquí este text file no sé en qué momento se cambió eso le hizo voy a volver a ejecutar ese secuencia lo veo cuando vayamos a ver hay se explica que es ese sequence listo aquí es porque no le coloqué que tiene encabezados entonces intentó hay una fila que está tipo entero pero como el encabezado es un string intenta convertir un string a entero y ahora sí debería funcionar perfecto ahí está listo ahí el problema que teníamos es que estábamos marcando allá producción y eso causó ahí un pequeño problema y seguimos entonces se cuenta que hasta el momento lo que estoy haciendo son conexiones a nivel de especificando la url ya sea en los componentes o en el contexto si ustedes en algunos casos puede hacer lo siguiente puede hacer una configuración desde la metadata en la metadata aquí le aparece algo que se llama hadu cluster terminamos con esta configuración para la marzo no sé dele clic derecho aquí y dígale que va a hacer una conexión a un clúster de hadu number la va a llamar hadu donde es coraxa aquí le pide escoja universal la distribución nuevamente cambia aquí a universal universal por favor ahora en este universal que está aquí escoja entonces cambie donde dice localhost por favor cambie a la dirección ip que tiene de la máquina que sería 10.0.3.16 si quiere mejor la copia y la donde diga localhost el directorio lo cambia si ya va a un momento listo esperemos que confirma aquí algo a pero un momento que aquí me salió creo que si ahí es 9 mil muchas gracias si la 3.1 momento ya recuerdo aquí esta conversión que se me escapó que no me deja aquí sería 10 un momento por favor ya 10.0.3.16 si efectivamente aquí sería 9 mil muchas gracias sería 9 mil y las demás nada más cambio la ip no me acuerdo ese error que sale ahí porque no me deja pasar no este par no tiene nada que ver momento por favor que aquí me sale un error de conexión usar name no vamos a hacerlo nuevamente para ver qué pasó aquí me preguntó voy aquí a que me sale un error ahora aquí en el metadata aquí hay un clóster aquí le coloco el nombre la conexión que había dicho un momento por favor y confirmo ya acá acá voy a coger universal aquí acá nuevamente allá ya me acordé ya me acordé permítame y le hago la prueba yo inicialmente para que usted no tenga que ser aquí aquí tengo que colocar el user de del clóster que sería h2 h2 con h mayúscula y cambio local a su momento porque creo que si la no estoy más y esa versión 3.1 me va a funcionar con la clóster de ya un momento por favor 10.0.3.16 cambio aquí a este número cambio aquí y listo voy a darle aquí chequear servicios no creo que el problema es que aquí me toca versión 3.0 porque no es compatible y cada vez que cambio de versión me toca cambiar nuevamente la skip no creo que fue que no creo que fue no que no aquí no en el un momentito a ver si lo voy a hacer nuevamente creo que permítame que venga confirmo con 3.1 creo que con 3.1 el error que era es que no cambié el puerto es para confirmarle ya iba a volver a hacer el ejemplo creo que fue que no cambié el puerto aquí a 9 mil aquí le colocó listo no es 3.0 listo ahora sí vamos a hacer ejemplo nuevamente de 0 se conecta se ubica en la metadata va donde dice hadu clóster y le da crear host de hadu clóster el nombre lo vamos a llamar hadu on the record axa next aquí escoge universal aunque creo que aquí no hay mucho problema con esta parte aquí vamos a coger ahora sí en distribución vamos a coger universal pero aseguré que sea 3.0 3.0 x y vamos a cambiar en la primera en el name no uri vamos a cambiar el localhost por 10.0.3.16 y cambiamos el puerto 9 mil o sea en la primera línea cambio tanto la ip como el puerto 2 con los dos puntos que están ahí y después continuo y cambio en todos los demás que haya localhost cambio y por último coloque en username coloca hadu con h mayúsculo cuando haya hecho la configuración le da en service y debería aparecer entonces en verdecitos y todo está bien está correctamente configurado si está correctamente configurado le dan finis por favor la quien me habló disculpe no no se preocupe yo yo le digo ahora yo lo yo a su pantalla y algunos seguían porque hay algunos que han terminado ahí coloque 10.0 punto ahí punto siga con punto 16 dos puntos 9 mil ahora donde está los localhost cambielo por 10.0.3.16 dos puntos ahí sería dos puntos ahí se me escapó el puerto el puerto creo que es 80 20 y un momento ya le confirmo cuál es el puerto ahí porque se me escapó espera un momento por favor allí 80 32 32 22 y en el de abajo no borre no borre el bueno si quiere sobre escribir sería 80 30 dele por el username coloque hachedu con h mayúscula hachedu sex service ok listo dejamos finis o close finis bueno y dejamos aquí nos vamos entonces al break del almuerzo venimos entonces en una hora o sea 13 en punto entonces regresamos buen provecho entonces muy buenas tardes nuevamente espero que haya sido de buen provecho su almuerzo necesitamos conectados ya nos queda una hora nada más para terminar este día si me confirman por favor si tenemos audios y me están escuchando perfecto aquí muchísimas gracias alejandro perfecto entonces vamos a revisar un poco que es los ejemplos que hemos venido haciendo hasta el momento primero iniciamos con unos ejemplos básicos para entender el funcionamiento de la herramienta que es el tal en como tal como forma general y estamos en la parte de hacer ejemplos con jadut el primer ejemplo con jadu que fue subir archivos note algo en particular de la forma en que lo hice creé una conexión a jadu que con tipo hdfs conectio mientras que el otro lo que hice fue que la conexión la hice directamente en el componente entonces como buena práctica que deberíamos hacer si tienes un joque en el cual vas a utilizar muchos componentes sobre hdfs para leer muchos archivos escribir o colocar muchos archivos en el sistema de ficheros lo más recomendable es que hagas lo siguiente que cree solamente una conexión con hdfs conector y los demás componentes tomen la configuración de esa conexión es lo más conveniente si el caso particular es solamente un solo componente pues la puede hacer directamente en el componente como tal la otra buena práctica es el no posible utilizar variables de contexto en el cual pues la configuración de conexión la tengas mantenidas ahí de tal manera en que si hay algún cambio en la configuración o en la dirección la url que apunta entonces simplemente la cambias directamente en la variable de contexto y automáticamente todos los joque dependen de ello cambiarán entonces esa variable de contexto ahora estamos en otra forma de conexión a hadut que es a través de una metadata entonces habíamos quedado inicialmente con esta
on 2025-01-27
language: ES
WEBVTT como Hadoop Aksa en el menú metadata de repositorio. Y ahora vamos a hacer una conexión hacia el sistema de ficheros. ¿Cómo así? Váyase a la conexión del clúster por favor y le da clic derecho. En pocas palabras se conecta donde dice Hadoop Aksa. Y note que hay varias opciones sobre las cuales pues puede usted configurar sobre ese clúster. Una de las opciones es Hive. Recordará que a nivel teórico yo le había dicho que Hive es una base de datos que está cimentada sobre tecnología de Big Data. En versión 3 hacia abajo se cimentaba sobre Hadoop y en versión 3 hacia arriba se cimenta sobre Spark. Entonces yo podía crear un Hive que se conecte hacia ese Hadoop. En pocas palabras que almacene los datos en ese Hadoop. La otra es un HBase. HBase se escapaba aunque no es tan popular. HBase es una base de datos no SQL que ejecuta directamente sobre Hadoop. Imagínense un MongoDB pero acá este HBase el sistema de almacenamiento lo mantiene el sistema de fichero HDFS. Y hay un H Catalog que ese H Catalog en el sistema de lo que es Hadoop es como si fuera un diccionario de datos. Es decir guarda los datos a vez de tablas de cuáles son los archivos que están en el sistema Hadoop en el clóster y que digamos que particiones están en cada uno de los diferentes nodos que tengan. Y la última que es la que me interesa es crear una conexión hacia el sistema de fichero es decir hacia el sistema HDFS. Entonces lo que me interesa en la cuarta vamos entonces a la cuarta que dice crear HDFS. Vamos a llamarla entonces HDFS Slash AXA. Vamos a darle aquí Next. Y aquí le pregunta sobre la conexión hacia el sistema algunas configuraciones por defecto que es las configuraciones que estaban en el HDFS input en el cual el separador es Slash N y el digamos el carácter de comparación de los archivos que voy a almacenar es punto y coma. Esto es la configuración por defecto pero yo la puedo configurar cuando utilice por ejemplo algún tipo HDFS input por ejemplo. Entonces déle aquí un cheque debería conectarse. No hay problemas listo la conexión es exitosa. El caso de Brenda estás por no por ahí no por ahí no. Brenda cierra un momento. Cierra donde está. Sí, cierra, cierra, cierra eso. Situate en la conexión que creaste de Hadut. Es decir situate en Hadut AXA esa que está ahí. Dale clic derecho ahora por favor y escoge la cuarta opción que es crear HDFS es decir una conexión hacia el sistema de fichero. Llámala ahora HDFS Underscore AXA. Dale Next por favor. Dale check para ver de no debería haber ningún error en la conexión. Check. Ahí está. Perfecto. Dale OK y al final dale Finish. Entonces iremos por ahí por Finish. Y si expande el cluster debería aparecer el sistema de ficheros. La conexión en pocas palabras. Para probar esta conexión vamos a hacer lo siguiente entonces. Vamos a crear sobre la carpeta Hadut. Vamos a crear un nuevo job. Crear job. Y este job lo vamos a llamar Job Descargar Fichero Underscore Hadut. Descargar Fichero Underscore Hadut. Vamos a agregar los siguientes componentes. Vamos a agregar un HDFS Get. HDFS Get. Y vamos a agregar un T-Mesas Boss. Conecte el T-HF Get con el Mesas Boss. Y vamos a configurar entonces la conexión del... Vamos a configurar el T-HFS Get. Para configurarlo recuerde que hay que darle doble clic al componente. Justamente en el gráfico del componente. Dejemos darle doble clic. Y ahora como... Presta atención como la conexión la tengo es sobre la metadata. Es decir la conexión que ya configuré tengo que hacerlo de esta manera. Si se nota en la configuración aparece un property tie. Y aparece la configuración built-in. Es decir que la vamos a construir. Vamos a darle clic en ese combo Boss y vamos a decirle que la configuración la vamos a tomar del repositorio. Dele clic en repositorio y le cambio un poco la interfaz. Le aparece un text file. Dele clic ahora en el botoncito que está al final que son uno de los tres puntos. Y le va a llevar a la metadata para que coja la conexión que ya configuró previamente. Entonces aquí está Hadut Cluster. Baja. Sigue bajando y va a conectar con la conexión que se llama HDFS AXA. ¿Por qué? Porque lo que quiero acceder al sistema de ficheros. Le da clic a HDFS AXA y le da OK. Listo. Él hace la configuración necesaria y lo único que usted debe hacer es definir cuál es el archivo que va a descargar. Entonces el caso de Brenda que teníamos un problemita Brenda asegúrese que acá ah no listo no es necesario que venga. No es necesario porque no estamos usando barial de contexto que venga. Ahí perdí. Fui yo. Ahora sí vamos a darle en en la configuración que dice HDFS Directory en los tres puntitos y escoja el archivo que vamos a descargar. En este caso pues descarguese producción nuevamente. Es para hacer la prueba. Perdón. Aquí le preguntas el directorio. Perdón. Tiene que coger el AXA, no el archivo. AXA. Le pide ahora el directorio donde quiere hacer la la descarga. Sería local directorio. Entonces voy a darle clic aquí en los tres puntos y lo voy a mandar aquí a temporal. Aquí especifica la acción. En este caso entonces la acción le ofrecen tres. Una que es crear, sobre escribir y agregar. En la PEN lo que va a hacer es que va a sumar registros del archivo inicial que tengas al archivo que vaya a descargar. En este caso vamos a coger sobre escribir por si las dudas y vamos a especificar ahora sí el nombre del archivo que quiero descargar. Entonces voy a descargar producción. Se llama production.cv y lo voy a descargar con el nombre production.copy production.copy o production.score.copy ccv. Perfecto. Tengo todavía un punto rojo indicando como si hubiese existido un problema de configuración. No lo veo directamente. Voy a acceder un momento aquí al al code para ver si me está marcando algún error. No, no tengo ningún error. De pronto es que me tocaría ejecutarlo para ver qué raro. Al final configure el message box con el mensaje que usted quiera colocando archivo descargado correctamente. Por ejemplo, recuerde que en este caso como cuando son string la mayor parte de los casos tiene colocar comillas doble. El único caso que hemos utilizado un string sin comillas doble es para definir los contextos. Archivo descargado correctamente. No entiendo. Voy a adelantarme un poquito a ejecutar este señor acá para ver si me va a marcar algún error porque ese punto rojo me indica como aquí tengo el error. Dice este componente. Un momento y leí el error. Este componente tiene una salida. Creo que el problema se forma porque no debí conectarlo directamente como fila sino como un componente. Sí, qué pena. Ahí fue que la línea, por favor, haga lo siguiente, no acepta. A ver, el error cuál es. El error es que al conectar la línea con may él espera que el hfs get tenga una salida pero en realidad no está sacando ningún elemento. Entonces ese es el warning que está. Seleccione por favor la fila, dale click en row 1, la borra con suprimir y la vuelve a conectar con disparador y coloque on-component ok y la conecta, por favor. Sí, efectivamente ya se quita el error. Perfecto. Ahora voy a ejecutar entonces. A ver, ahora sí, revise que en el run este que vaya a ejecutar esté el nombre, el archivo del job que vaya a que sea usted. Bueno, aquí me salió el mensaje archivo descargado correctamente y cuando termine busca la carpeta escogida y debería estar la copia del fichero. Ahí está la copia del fichero. Ok. Bien, este ejemplo muy sencillo, lo que buscaba era que usted supiera cómo podía yo referenciar una conexión, en este caso de Hadoop, cuando la conexión está definida en una metadata. Termino este ejemplo de Hadoop haciendo una integración con s3. Muchas veces vas a tener archivo que puede estar dispersos, entonces tú recordarás que puede haber una etapa de ingesta, que la ingesta es que tú tengas los archivos divididos en diferentes fuentes y los vas a centralizar en una fuente. Quizás la fuente que hayas escogido de centralización sea un HDFS de Hadoop. Entonces vamos a hacer el siguiente ejemplo. Vamos a descargar un archivo del s3, acto seguido lo vamos a formatear y lo vamos a enviar como salida al HDFS. Eso es lo que vamos a hacer. Sí, dígame, versionador de los jobs. Sí tiene control de versiones, pero ese control de versiones la maneja mejor la versión propietaria. Hagamos algo, mañana yo le muestro un ejemplo con la versión propietaria en cómo maneja las versiones. Y esas versiones son manejadas tanto a nivel local como a nivel de un repositorio de control de versiones en Git. Este lo podía manejar previamente, o que haría ser un poco más manual, pero como al final va a usar el propietario, yo le muestro mañana un ejemplito con el propietario para que vea cómo maneja el control de versiones interesante. Listo, gracias por preguntar. Bueno, vamos entonces a terminar con este ejemplo y este ejemplo de Hadoop, que todavía no he utilizado Big Data, estoy simplemente usando el sistema de ficheros HDFS. ¿Por qué no estoy usando Big Data aunque estoy usando Hadoop? Porque la definición clara de Big Data al final hoy en día es que proceses con Big Data y todavía no he procesado con Big Data. Termino entonces con este ejemplo un poquito más complejo y vamos entonces a hacer lo siguiente. Voy a crear aquí un job, dice crear job y lo voy a llamar entonces Jot, procesar, perdón, no, formatear archivo con the record nba. Termino este que va a ser un poco más complejo. Jot formatear archivo nba. Le damos finish aquí. Aprovecho esto y voy a tratar en lo posible de cada ejemplo que vaya a hacer, voy a agregar nuevos componentes para poder ver la mayor cantidad de componentes posible. Bien, vamos a adicionar dos componentes aquí adicionales. Un componente que se llama un teprayop y un componente que se llama teposjop, teprayop y teposjop. ¿Qué hacen estos teprayop y teposjop? Bueno, algo interesante a nivel de poder darle un poco más de sentido y orden a los job. Si recuerda que cuando el concepto de subjop, listo cuando tenemos un teprayop, el primer subjop que se ejecuta es todo lo que está aquí en el teprayop. Es decir, vamos a suponer que tú tengas cualquier componente aquí, un tefile no la gusta ya para que lo entienda aquí. En primer lugar, note que estos componentes no están unidos, por lo tanto, estos componentes por defecto, si no tengo configurada la parte de multitread, se van a ejecutar de forma secuencial. ¿Por qué sé que hay tres subjop? Porque no están unidos. Entonces aquí tengo un componente, dos componentes, tres componentes. Al final tengo tres subjop. Pero cuando tengo un teprayop, lo que hace internamente talent es que va a ejecutar primero siempre este elemento. Entonces tú deberías tener un teprayop para iniciar variables o configuraciones específicas. Y el teposjop siempre se va a ejecutar al final y este debería ser utilizarlo para conectar, perdón, para desconectar o para borrar algunos archivos quizás intermedio que hayas definido. Entonces vamos a hacer lo siguiente. Vamos a definir en el teprayop todos los elementos de conexión que necesito para este job. Para este job voy a necesitar una conexión hacia un sistema de fichero HDFS del Clotel de Hadoop y una conexión hacia un S3. Pero una característica que tiene los jobs del señor talent es lo siguiente. Váyase al primer job que fue subir archivo. Subir archivo. Ábralo por favor si es tan amable. Y ahora copie los componentes que usted vaya a reutilizar. En este caso me interesa este componente de conexión. Entonces voy a darle click, voy a copiarlo y lo voy a pegar en este job de acá. Y se me copia tal cual como tenga la configuración. Pegar. Y de esa manera pues yo puedo algunas configuraciones copiar y pegar sin tener que volverlas a hacer nuevamente. Ya esta conexión sé que me funciona por lo tanto no me voy a ponerla configurar porque ya habíamos ejecutado ese job y no funcionaba correctamente. Voy a proceder ahora a hacer una conexión hacia un S3. Entonces voy a colocar aquí TS3. TS3. Y aquí debe haber un connection. Aquí está TS3 connection. A alguno le apareció un naranja. Vamos a ver qué pasó. Un momento. No, uno solo. Ya un momento por favor. En el caso de Jorge Luis le pide que instale, por favor dele doble click al TS3 connection. Dale doble click para configurarlo y aquí algunos componentes por defecto no tienen, no están descargados los componentes. Solamente está el nombre. Básicamente lo que está haciendo esto es que como esto está en java, lo que está haciendo esto al final es que le va a descargar unos YAR. Entonces dele aquí en instalar por favor y dele download e install. Al final lo que hace es descargar los YAR. Disculpe ¿Quién me estaba comentando de que no pudo copiar? Qué pena que interrumpí en el momento. Listo, perfecto. Listo, perfecto. Ahí está en instalar. Listo, algunos que están instalando. Perfecto. No quedamos entonces en la configuración y vamos a una conexión por credenciales estáticas. Vamos con un access key y un secret key que eso lo vimos el día de ayer en un ejemplito del talent data preparation. Entonces vayamos a la carpeta, al producto archivo de windows y vamos a buscar las credenciales para conectarnos a un s3. Entonces voy aquí a donde dice escritorio. Vamos a donde dice recursos. Talent, TBD, credenciales s3. Credenciales aquí s3. Copio el access key y lo voy a pegar en el access key. Tiene que estar entre las comillas dobles. ¿Por qué? Porque es un string. Tengo que pegarlo entre las comillas dobles. Y ahora me pide entonces el secret key. Voy a copiarlo. El secret key que es desde el más hasta la P. Voy a copiarlo y lo voy a colocar en el componente secret key y que debe estar dentro de las comillas dobles. Entonces dentro de las comillas dobles voy a colocar el elemento. Como dato curioso aquí, cuando yo lo agrego y lo vuelvo a abrir, él lo encrita con base 64. Perdón, se me escapa el algoritmo de encriptación. Es decir que si yo abro aquí no lo voy a poder ver nuevamente. Es decir, ahí no aparece, pero ya debió configurarlo ahí. No sé si lo borró, no creo que lo haya borrado. El caso Fernanda, por favor, dele clic en install. Ok, bajar e instalar. Listo, perfecto, Fernanda. Listo, perfecto. Ahora, en el T-Pre-Job, vamos a conectar el T-Pre-Job con el T-HFS Connection y conecte el HFS Connection con el TS3 Connection con un component ok. Significa que el primer sub-joke que se va a ejecutar es lo que está conectado al T-Pre-Job. Es decir, que inicialmente va a ser las conexiones al HDFS y al TS3. Este señor lo voy a borrar de aquí, que eso era para ejemplificar, por favor, si no lo vamos a usar, qué pena. Agregue ahora un componente que es TS3 Closed, TS3 Closed y conecte el T-Pre-Job al TS3 Closed. Disparador o un component ok. Vaya al TS3 Closed y lo configura. Bueno, por defecto toma la configuración que esté de la conexión, entonces no hay problema, ya queda configurado ahí. En pocas palabras, este T-Pre-Job y el T-Pre-Job lo que hacen es darme, permitir leer de forma, digamos, mucho más documentada y mucho más fácil el job. El T-Pre-Job primero lo que hace es que se ejecuta el sub-joke primero y el T-Post-Joke. En este caso el T-Pre-Joke hace las conexiones y el T-Post-Joke cierra las conexiones. Voy a hacer entonces lo siguiente. Voy a descargar un archivo que está en el TS3. Entonces voy a colocar aquí un TS3 Get. TS3 Get. Listo, entonces en TS3 Get, este que está aquí, vamos a decirle que vamos a usar una conexión existente al Get y ya por defecto me está tomando la configuración de la conexión que ya había definido anteriormente. Listo, aquí ahora en el bucket, este que está aquí, me pide entonces qué elemento deseo descargar del S13. Entonces en el bucket por favor coloque Noble Pro, ya le escribo acá en grande, dentro de los signos de las comillas dobles, va a colocar Noble Pro, acá lo voy a colocar en nuevo aquí, acá. El bokeh se llama Noble Pro y ya les digo el archivo que vamos a descargar. Un momento por favor, y entro al bokeh que se llama nba underscore, un momento, listo. El archivo se llama nba.xml, perdón un momento, le confirmo porque de pronto esa versión está errada, un momento, un momento por favor, no, ese es muy pequeño, vamos a uno un poquito más grande, listo. En el nombre del fichero, el nombre que va a descargar en donde le pide el key es este archivo, que se lo voy a colocar aquí, es team under core nba.csv, team nba.csv, y fíjate que este señor lo voy a copiar aquí. Listo, aquí entre las comillas dobles lo coloco. Voy a agregar entonces lo siguiente, me pregunta ahora dónde quiero ubicar este archivo, entonces le recomiendo que cuando voy a colocar de forma manual, porque aquí me toca apuntarlo a un archivo específico, no me va a dejar seleccionar la carpeta, me tocó seleccionar un archivo de estos, vamos entonces a colocarlo de forma manual, yo creo le aconsejaría como estamos con java, cada vez que vaya a colocar una ruta absoluta, por favor, hágalo entonces c2.slash invertido, y vamos a llamar el archivo exactamente igual, team.csv, este que está aquí, slash, porque si quieres el otro te tocaría hacerlo de esta manera, creo que a veces es un poco más engorroso, sería doble slash así, entonces mejor de esta sí, voy a decir sí manual, o la otra si no quiere manual haga lo siguiente, que también es viable, expande aquí y escoja cualquier archivo que esté en la ruta, por ejemplo va a coger producción.csv y me lo va a dejar abrir y después le cambio el nombre, que también es viable, entonces ya después que he cogido el archivo, le voy a cambiar aquí a producción, le voy a llamar team underscore nva, que también me funcionaría, porque el file chooser está configurado para escoger un archivo, el anterior me permitía escoger una carpeta, pero este está configurado para escoger un archivo, al final decida cuál es la forma para cada quien, pues a veces trabaja de forma diferente. Listo, voy a agregar ahora dentro de este yoke ciertos elementos para documentar este yoke, una de las formas de documentar es entonces usar una nota, coloque aquí note, de nota en inglés, note, y aquí puedes entonces ampliarla aquí si tú quieres y aquí voy a colocar, se descarga, se descarga un archivo del s3 llamado team nva.csv y listo, aquí voy a ampliarlo, que hay que cogerle el truquito aquí, bueno ya lo cogí, bueno aquí está, aquí puede configurar el color, el fondo, el texto, qué más, bueno aquí voy a tratar de que no me deja el mouse, mejor lo voy a colocar horizontal, porque parece ser que no me está dejando, creo que aquí me ha tocado colocar un enter, si le coloque un enter acá en el texto y se me perdió el fondo, voy a colocarle un fondo cualquiera aquí, qué es este, qué pasó, no me está cambiando el fondo, bueno no sé ahí, para que bajara me tocó dar un enter, porque por defecto no justifica con el tamaño de las letras que tenga, está un poquito de problema, es como en la máquina virtual con el mouse a ver si no llega tarde y parece como que uno lo mueve y no coge la configuración. Atención a lo siguiente ahora, yo deseo este archivo descargarlo, pero a su vez este archivo lo voy a formatear y lo voy a mandar a Hadoop, significa que carece de sentido que este señor, este archivo lo mantenga a nivel local, porque lo va a tener en Hadoop, entonces en el t-post job voy a hacer lo siguiente, voy a agregar aquí un componente que se llama t-file deleted, la idea es que ya después que yo descargue, procesé, voy a quitar ese archivo del sistema local, o sea de la máquina en que lo ejecuté, entonces él se llama t-file delete y ahora váyase al t-sclose y entonces aquí tiene, hágalo con un componente ok acá y haga lo siguiente, copia la ruta que tiene en el s3 del archivo descargado que ya lo tiene aquí en el s3 get, lo copia y lo pega acá. Quiero ahora procesar ese archivo, para poder procesar este archivo voy a hacer lo siguiente, necesito entonces recorrer el archivo para procesarlo, voy a cambiarlo un poco el formato, voy a coger unas columnas específicas, entonces voy a agregar aquí un componente que ya lo hemos visto que se llama el t-file, lo que pasa es que, un momento espere un momentico, creo que no me va a dar tiempo, son las 3 y 40, lo voy a mandar directamente a Hadoop mejor, lo voy a mandar directamente a Hadoop, entonces voy a hacer lo siguiente, no lo voy a formatear, voy a directamente el archivo, lo voy a mandar a Hadoop directamente porque no va a dar tiempo, voy a hacer lo siguiente ahora, para mandar un archivo recuerde que lo que hace es un put, hdfs, put y aquí note lo siguiente, creo que fue Beatriz la que me preguntó, en este caso no me convendría hacerlo multi-tread, porque para poder subir el archivo primero tuve que haberlo descargado, entonces necesariamente me toca hacer una jerarquía aquí, ahora partiendo de que primero lo voy a descargar y después lo voy a subir, lo más conveniente es que yo entonces conecte este componente de aquí, lo conecte con un disparador con su shock ok, de tal forma que primero descargue y después intente subir. Aquí si no me sirve el multi-tread. Acto seguido voy a configurar el thfcput, este de aquí, ya tengo una conexión que la tengo, que viene el t-pre-job, entonces voy a usar una conexión existente aquí, voy a configurar la conexión en el hfcconnection y aquí si puedo usar perfectamente los botones de configuración, el directorio local cual sería, pues el directorio local es donde iba a quedar el archivo descargado que es temporal, el directorio de salida va a ser el directorio de AXA, que está en el hdfc y el archivo que voy a subir, voy aquí, se va a descargar con el nombre team underscore nba.csv, team underscore nba.csv y lo voy a mandar entonces acá con el mismo nombre al sistema de ficheros de hdfc, espero que algunos terminen de configurar, voy a darle guardar por si de pronto hay algún problema con la máquina virtual antes de ejecutar. Bueno y el job aquí como buena práctica de desarrollo, pues que es lo que esperamos del job, que suba el archivo team nba en el sistema de hdfc y que borre al final de la máquina virtual de windows y me quede en la máquina virtual que sería la de Ubuntu donde el trabajo que voy a ejecutar es el que deseo, trabajo, job, formatear archivo nba, listo, en este caso el nombre me quedó me quedó corto porque no hizo ningún formateo, en realidad lo que hizo fue descargar y subir, voy a ejecutar para ver, bueno y está todavía ejecutando, se conectó, ya descargó, ahí está un ok y subió acá, entonces voy a comprobar cómo compruebo, voy a darle f5 y debería estar team nba, efectivamente aquí está nin con 79 megas que pesa y en temporal no debería existir ese archivo porque lo mandé a borrar, temporal perfectamente no está, bueno vamos a ver quién tiene errores, noto que tienes un error acá Fernanda, vamos a ver, voy a tu máquina, voy a tu máquina, nota que el error te lo está marcando en el file delete verdad, significa lo siguiente, por favor si eres tan amable entra tu file delete, estoy en tu pantalla, dale doble clic, haz este file delete, justamente en el medio del doble clic, bueno ahí el error que pasa es lo siguiente, nota que por defecto el componente tiene habilitado fail o un error, o sea que marque un error si falla, es decir que él intentó borrar ese archivo y ese archivo no lo encontró en la carpeta ten y por eso te mandó un error, veamos lo siguiente, vete a tu carpeta ten un momento, en el explorador de archivos de windows, la carpeta ten y efectivamente no está ahí, está rara la situación, vete ahora al explorador de archivos y muéstrame los archivos que te quedaron en el HDFS en el cron o lo tienes en edge, dale f5 por favor, ahí tampoco hizo nada, vete entonces nuevamente a tu job y muéstrame tu TS3, a ver el TS3 get, ahí supuestamente lo descargó, está mal, intenta ejecutar para ver, no si es la RSI, vamos a ver, ahí te a tu browser y dale f5 a ver, sí efectivamente pero ahí debió marcar, no marcó un error el TS3 porque había un problema en el nombre del bucket, bueno ahí no lo marcó, perfecto, bueno pero funcionó perfectamente, a alguno no le funcionó o me avisa por favor, vamos a ver, no existe, ah ok, váyase un momento al TS3 get un momento, dale doble clic al TS3 get, perfecto noble pro, listo, váyase al HDFS put un momento, dale doble clic por favor, lo que no entiendo por qué lo puso sensible, ahí el error está en que no encontró el tim con T mayúscula, cambia de la T a T minúscula un momento y déjelo, bueno cambia los dos lados porque si no le queda con la T minúscula que es la T mayúscula del lado derecho, lo raro es que no salió error porque estamos en Windows, ejecute para ver si está mal nuevamente, váyase a sus problemas de archivos si está mal y dale f5 para ver si copió, dale f5 para ver si, si efectivamente se me hace raro porque la base que tengo es Windows, ahí tiene que ver algo con el talent que tuvo cargado porque es que Java no es sensible cuando el sistema de fichero lo tengo en Windows y lo tengo en Unity, bueno y se me hace raro, voy a tener que investigar, bueno listo gracias a usted, no todavía no hemos procesado nada con Big Data simplemente estamos haciendo unos pequeños ejemplos para empaparnos primero con Hadoop y segundo con el talent como tal, antes de finalizar hay que hacer lo siguiente para evitar la configuración que hicimos al inicio que era formatear y esos elementos, vayamos por favor entonces a la consola de administración del HyperBig, es esta que está abierta aquí y ahora dele click por favor en la máquina virtual le va a dar click derecho ahora y hay una opción que dice guardar, eso lo que hace que guarda la máquina en el estado justamente en que está, dele ahí guardar click derecho hay en guardar, listo aquí le guarda la máquina perfecto aquí cerramos acá y por favor bueno aquí ya cerramos esto y apague la máquina virtualista porque es que si queda encendida entonces y no la estamos usando al final cobran por el uso de esa máquina virtual la apaga por favor después que haya guardado la máquina virtual del HyperBig esta es otra máquina virtual sobre Windows, se apague la máquina de Windows y mañana quedo pendiente a un pequeño ejemplito que era el de las versiones como la está manejando el talent inversión comercial
on 2025-01-27
language: ES
WEBVTT perfecto, listo. Bien, eh, para iniciar el día de hoy, vamos a hacer entonces lo siguiente. Primero nos vamos al hipervisor de Hyper-V. Eh, vamos entonces aquí en el escritorio. Accedemos entonces al acceso directo que tenemos en el mismo escritorio. Y debería aparecer la máquina virtual como guardada, que fue lo que hicimos el día de ayer. La idea de esa guardada es que quedaba exactamente en el estado en que estaba anteriormente. Es decir, para evitar entonces subir nuevamente los servicios, aunque pude haber hecho esos servicios de manera automática, pero listo, la tengo de esa manera. Vamos entonces, dale doble clic para que inicie. Y le damos entonces eh, clic en el botón iniciar y debería llevarnos al estado en que la dejamos el día de ayer. Vamos a comprobar ese estado de la siguiente forma. Abra el browser que utilizó el día de ayer para conectarse al al clóster de Jadut y mostrar las gráficas a nivel de lo que contenía ese clóster. Yo si no estoy mal usé Edge. Y voy a darle a dirección diez punto diez punto cero punto tres punto dieciséis punto noventa ocho setenta. Y debería tener entonces los archivos que trabajamos el día de ayer. El caso de Beatriz eh noto que está perfecto. Alejandro también lo tiene perfecto. Fernanda está iniciando los servicios. Brenda lo tiene perfecto. Brenda eh si está mal le vaya a ser al en ese en ese al menú utilities que está al final y dele browse para comprobar que los archivos no hayan sufrido dele clic en AXA por favor. A ver ¿Por qué hacemos esto? El problema que tenemos con esta parte es que esta es una máquina virtual de una máquina virtual entonces puede haber algún problema con algún dato específico. Eh Luis no sé si a ti te está fucionando no sé mira para ver si. Exactamente dale F5 ahí para ver. Perfecto está bien entonces. Vete a utilities por favor browse. Mientras vayamos también subiendo el talent big data se me escapaba que vamos a trabajar entonces talent big data por favor no lo había subido. Brenda anda voy contigo entonces eh Liso vamos a ver voy a ver voy a acceder a tu máquina ¿OK? Beatriz ejecute el otro exactamente había ejecutado el la versión comercial que había instalado ahí entonces voy a ver un momento aquí está ejecutando es el el talent eh sí ese que abrió usted inicialmente es el talent estudio pero necesitado que abría ahora por favor el talent big data y fue el día de ayer vamos a ver un momento no si todo bien Fernanda lo que es que no haya abierto el browse pero todo está bien aquí ahí está todo perfecto eh Fernanda si está amable sube el talent big data si si está amable lo mismo que Luis también para que sube el talent big data esa máquina virtual la dejamos quieta Pavel no sé si tú eh configuraste eso ayer no recuerdo sube el talent big data por favor es es Pavel el que subiste el talent estudio es el segundo que está del ese que está ahí ese que está ahí bueno vamos entonces a iniciar el día de hoy como venía comentando los ejemplos del día de ayer eh estuvieron más relacionados con la parte de almacenamiento eh específicamente el día de ayer nos conectamos a un S3 y nos conectamos al cluster que que está configurado en la máquina virtual eh de a Hyper VIP hoy en día pues normalmente estos clústeres es muy raro a nivel de infraestructura un problema es que alguien los monte seguramente te vas a conectar alguna solución en la nube ya sea un MR un tipo sin el tipo de clústeres más que de que tengas por ejemplo de de Azure para conectarse a este tipo de clúster o en su defecto eh no utilizas eh HDFS para almacenar si no utilizas un object store C de tipo S3 tipo block el que tú quieras entonces ya la parte del almacenamiento está más diversa con respecto a lo que se tenía anteriormente anteriormente para Big Data me casaba mucho con la parte de de Hadut eh aunque los verbos de almacenamiento para almacenar y procesar hoy en día hay un algo más eh más conceptual un poco en definir Big Data es cuando proceso no tanto cuando almaceno partiendo del hecho en que ya yo tengo diferentes opciones para almacenar los datos que yo quiera procesar entonces hoy en día se tiene más en cuenta Big Data es a nivel de procesamiento no tanto de almacenamiento por el mismo modo vamos a hacer lo siguiente entonces vamos a ir a los job design tenemos una carpeta que se llama AXA y ahora vamos a hacer lo siguiente vamos a crear una subcarpeta eh perdón una subcarpeta aquí un folder dentro de AXA para organizarnos un poquito más que se llame procesamiento Big Data esto necesita no no acepta espacio en blanco entonces lo separo con Underscore eh la carpeta la llame Big Data Finish aquí perfecto vamos a crear entonces eh un job dentro de la carpeta Procesamiento Big Data que lo vamos a llamar Job Underscore Job Película Underscore más popular más popular por década eh Job Película más popular por década recuerde que tiene que que usar un carácter eh porque no acepta el espacio como carácter especial entonces sepárelo por un Underscore Job Película más popular por década ahora lo que vamos a hacer vamos a hacer un progresamiento yo en la parte teórica le le dije prácticamente lo que tú haces con Big Data es prácticamente lo que hacías anteriormente sin Big Data con composición nacional la única diferencia es que puede haber una variedad en los datos y segundo que quizás eh ese gran volumen de datos necesita entonces que sea progresado con Big Data por eh por algo relacionado con la parte de velocidad entonces vamos a darle aquí Finish y para rehusar un poco ya lo que hemos hecho y no tener que volver a configurar en EBS es lo mismo váyase a la carpeta y busque el último ejemplo que hicimos el día de ayer que fue eh Jot formatear archivo que realidad no lo formateamos por tiempo no lo alcanzamos a formatear Jot formatear archivo por favor lo abre y cópiese el tepreyop y el HDFC Connection lo copia para no tener nuevamente que que configurar esto y lo pega acá listo bien la idea es no tener que rehusar en EBS es lo mismo entonces pegas acá si ya cierran el archivo ese que hicimos el día de ayer para que de pronto no te cause algún tipo de confusión listo eh qué es lo que voy a hacer eh voy a mostrar inicialmente eh el archivo que lo tengo por aquí creo que sí bueno voy a mostrar este archivo que lo tengo por aquí se llama Phil actor que ya está en el en el clóster de Hadud en ese momento y lo muestro por aquí tiene hasta hacer de aquí este archivo lo que tiene es datos de los actores principales de una película entonces tiene por ejemplo el año el el tiempo de la película que está como longitud en minutos el título de la película el actor principal la actriz principal director y la popularidad entonces aquí tiene en realidad que el archivo es muy pequeño carecería de sentido a nivel pragmático en plástico a nivel de producción usar nuestro archivo para saber data porque es demasiado pequeño esto lo puedo hacer sin necesidad de big data pero eh partiendo del hecho en que tengo poco recurso pues eh al final trate de piense que este archivo es inmensamente grande o que hay un conjunto de archivos en que me toca unirlos y la cantidad del volumen es grande para la velocidad que en el cual yo quiero ejecutar o que me termine de ejecutar el proceso pero bien eh en pocas palabras yo tengo el año de la película tengo aquí la popularidad de la película y voy a sacar la película más popular por por década ¿OK? Ese es lo que voy a hacer ¿Listo? Asumamos entonces que el archivo es elevadamente grande por volumen y me toca entonces progresarlo con big data para obtener digamos respuestas en tiempo real. Me devuelvo nuevamente a la al talent big data esta que está aquí. Y lo primero que voy a hacer entonces es que voy a leer el archivo que ya tengo en el clóset de jadú que lo tuvimos el día de ayer. Para leer un archivo directamente del clóset de jadú entonces usamos a T HDFS input HDFS input esto es para leer algo para que lo tenga presente cualquier componente de talent que tenga relación con la lectura o escritura de algo siempre tiene que tener un esquema una estructura hay que configurar el esquema entonces este input va a intentar leer un archivo entonces con esos procesos de lectura y escritura de archivos es necesario que tenga una un esquema o sea decir cómo es la configuración que tiene las columnas para talent no le interesa el nombre de las columnas tú puedes llamarla como tú quieras al fin y al cabo la interesa es el orden y el tipo de datos de las columnas eso es lo que le interesa al final pero yo puedo hacer un esquema y los encabezados no necesariamente tienen que coincidir con el archivo original para esto ya recordamos que para poder configurar un componente entable tiene que coger la gráfica del componente o sea el icono del componente le da doble clic y nos lleva en la perspectiva de abajo para hacer la configuración como ya tenemos una conexión existente y el día ayer te recomendé cuando deberías usar un HDFS connection cuando sepas en que en el mismo yod vas a tener varios componentes de tipo HDFS entonces lo más recomendable porque es más sencillo configurarlo es tener nada más una conexión y esa conexión la reuso n veces en el mismo yodo sería la condición ideal o digamos el caso de estudio ideal en el cual deberías usar el HDFS connection vamos a decirle entonces en la confesión del input en que vamos a usar una conexión existente y expando entonces la lista de conexiones y debería aparecer la conexión como tal acto seguido entonces voy a definir lo siguiente voy a escoger el archivo como lo con nombre el archivo tengo al final un botón que me va a permitir conectarme al al closer de hadut y voy a escoger el que se llama fil actor que ya lo habíamos definido el día de ayer fil actor perfecto ahora vamos a hacer la configuración del archivo note algo muy particular de la herramienta es que la configurando con los componentes de tipo HDFS es que la lectura específica sean archivos delimitados te preguntarás si los archivos no están delimitados entonces te tocaría hacer un formateo de esos datos para que se han leído directamente con los componentes de HDFS ya con la versión comercial tienes otros componentes que pudieras agregar listo entonces el tipo de archivo es tipo textual esta parte aquí hay un tipo que se llama sequence files ese sequence file lo voy a explicar mejor con hype pero voy a dejarlo aquí con text el separador de fila es slash n separador de campo es punto y coma así entonces tiene que coincidir estos elementos y al final el header hay un header en ese archivo entonces le coloco uno diciéndole que la primera fila son los encabezados del archivo en pocas palabras en que no la lea como les decía y debe tener estos memorias y va a trabajar con esta herramienta todas las herramientas que tienen lectura y escritura de archivo tengo que con tengo que especificar un esquema entonces puede que varíe la posición en los componentes de talent lo que sí es seguro es que vas a encontrar esto en alguna parte de esta configuración de los componentes en este caso está en la parte de arriba y veces que está en la parte del medio y otro está en la parte de abajo entonces dele clic en editar esquema y este esquema de aquí yo puedo hacerlo de forma manual creo que podía ser bueno cuando la cantidad de columnas es muy pequeña quizás dos máximo cinco pero si la cantidad de filas es muy elevada lo mejor es que haga como hicimos el día de ayer creamos una metadata con el tipo de archivo recuperamos los datos en las columnas en el orden en que está y los tipos de datos que asumió la herramienta y mejor la importo esa es la mejor forma de hacerlo entonces aquí le damos importar y el día de ayer hicimos un esquema que se llama filactor.xml dele abrir por favor y dele aquí ok se cuenta que hasta el momento lo que hemos hecho es prácticamente lo del día de ayer en el cual nos estamos conectando a un archivo ahora pasa lo siguiente voy a resolver esto cómo voy a resolver esto bueno la idea va a ser la siguiente voy a intentar voy a decirle un poco la metodología que voy a trabajar el día de hoy el día del día de mañana quizás el yoke lo voy a resolver en algunos casos de forma ineficiente porque la idea que voy a buscar es que usted pueda ver la mayor cantidad de componentes en este curso o sea entonces podamos hacer los yoke con diferentes componentes y pueda ya tener digamos un background mucho más grande de que hace cada componente en el caso del talent big data entonces miren la cual va a ser la idea que cómo voy a resolver este señor que está acá se lo voy a resolver de esta manera de otro momento listo aquí este señor me está espera un momento que resuelva aquí algo bueno mejor lo veo acá porque me tiene hay unas piezas discúlpeme un momento y se lo muestro mejor acá por favor entonces por ejemplo lo siguiente en que yo tengo el año de la película noventa noventa noventa noventa y uno noventa y dos noventa y tres noventa y cuatro entonces lo que voy a hacer es lo siguiente voy a convertir el año en década en pocas palabras este año que está aquí noventa y uno lo voy a convertir en noventa porque a mí me interesa es la película más popular por década entonces los años los voy a convertir en década y ya después que convierta los años en década hago una agrupación y en esa agrupación entonces saco los diferentes elementos ok eso es lo que voy a hacer esa es la idea que voy a entonces listo ahora voy a hacer lo siguiente voy a usar un componente que es muy popular en talent que se utiliza mucho para mapear o para cambiar el formato de los datos en este caso voy a usar entonces el tema y voy inicialmente para hacer un testeo voy a colocar aquí un telocrow para testear el resultado que me va a dar listo entonces el telocrow voy a agregar otro componente que es fundamental que es un componente para agrupar datos voy a hacer entonces aquí un telocrow se llama telocrow telocrow y voy a usar otro componente que se llama telocrow componente muy utilizado en talent en este orden y voy a decirle la idea como tal aclaro que la idea fundamental es que haga yo que agregar un componente nuevo quizás esa no es la forma más eficiente pero aprovecho esta forma para agregar el test short y el telocrow entonces son cuantos componentes he agregado uno, dos, tres, cuatro, cinco componentes el input el temap el test shortrow el telocrow y el telocrow el telocrow ya saben que hay algunos componentes en talent que no están instalados básicamente técnicamente que es en el caso de java como este está basado en java es descargar un punto YAR que es el que tiene la codificación de ese componente primero entonces aquí hay dos corrientes de personas elige cual va a ser la forma en que tu quieres trabajar una forma es la que hice ahora mismo es que yo tengo todos los componentes agrego todos los componentes de java los conecto y después los configuro hay personas que no le gusta trabajar así hay personas que van agregando componentes según lo que van requiriendo al fin adaptate como tú digamos como mejor crees tú que trabajes más rápido en este caso voy a conectar entonces el HDFS input con el temap el temap y lo conecto con el techo row y voy a colocar aquí como salida ordenar registros voy a conectar el techo row con el T-aggregated e inicialmente voy a mandar el T-aggregated row al techo log row este techo lo voy a tener ahí inicialmente solamente es para para comprobar antes de finalizar el job completo voy a comprobar que lo que quiero hacer es lo que me está dando el job recordamos como tip entonces que ese punto rojo que tenemos ahí en el temap o en cualquier componente que tenga detalle y te hace falta una configuración ahí bien entonces veamos vamos a configurar inicialmente el tema recuerda que como como buena práctica te recomiendo en que no dejes estas conexiones con nombres genéricos row 1 row 2 solamente la voy a cambiar a ese row 1 dale click primero en un row 1 y después otra vez click y lo más recomendable es que le des el nombre de la de la entrada en este caso como el archivo se llama fill actor voy a cambiar ese row a fill on the record actor eso no más lo voy a hacer aquí para recordar de ayer lo demás no lo voy a hacer para evitar veníamos para no consumir tanto tiempo vamos entonces aquí ahora a configurar el tema nota entonces que aquí aparece fill actor que fue el nombre de la entrada recuerda que cambia row 1 a fill actor entonces esto que está acá arriba tiene el nombre de la entrada por eso es que es más recomendable que le des el nombre allá para que puedas guiarte mejor aquí en el tema y más cuando vayas a hacer un joy a nivel de TL listo nota lo siguiente ahora estos archivos estas columnas que están aquí corresponden a las columnas de la entrada del input recordar aquel input hicimos un esquema e importamos los diferentes columnas que va a tener y acá también coincide los tipos de datos tú puedes cambiar los tipos de datos si tú quieres acá pero tienes que tener muy pendiente que de pronto puede haber unas conversiones en que el lenguaje ya no las permita por ejemplo si yo intentara no la gusta ya por favor si yo intentara cambiar este de integer a string aquí va a ver un error ¿por qué? porque el dato viene de tipo integer de la entrada y cuando llega aquí lo intenta convertir a string y esa esa conversión no la puede hacer directamente entonces sí puedes cambiar los tipos de datos pero tienes que estar muy pendiente en cómo vas a convertir esos tipos de datos ¿ok? no voy a hacer tanto ejemplo con esto porque lo principal aquí es big data esto normalmente venía de un curso de tres días que se llamaba talent data integration donde usted aprendía esta parte pero no me puedo demorar mucho en ciertos detallitos aquí normalmente ¿cómo hace para mapear datos en esta herramienta para mapear datos entonces aquí tengo el dato de entrada y para mapear el dato lo más recomendable es que hagas lo siguiente que definas una variable intermedia entonces dale click aquí en variable en el más este que está ahí aquí te pide un tipo de datos y en este caso quiero que el tipo de datos de salida sea un entero entonces voy a cambiar esto a entero a integer y nota que del lado siguiente o sea la columna siguiente al table que tienes te está el nombre la variable esta variable la voy a llamar década solamente como elemento informativo nota que al ladito de la variable vas a tener un check box cierto si ese check box está habilitado nota que te cambia el tipo de datos de int a integer me explico lo que pasa es que int es lo que llaman un tipo de datos simple en java e integer es un tipo de datos object en pocas palabras en palabras llanas y castas para que sirve eso si la expresión te va a volver un nulo tienes que definirlo como queto o sea como integer o sea tienes que estar chuleado si sabes que la expresión no te devuelve integer siempre te devuelve un valor entonces lo dejas de tipo simple o sea sin chulearlo porque hay un error si lo si por ejemplo si tienes tipo simple así como está inicialmente sin el chulito y te devuelva a nulo que sale un error de ejecución porque los tipos simples en java siempre tienen que tener un valor esto no es de talent esto es necesariamente de java listo entonces aquí hay varias formas de hacer lo mismo voy a empezar con una quiero tomar ese campo que se llama gear y pasarlo y hacer una operación para convertirlo en una década entonces voy a tomar esta columna que se llama gear y la voy a soltar aquí donde dice expression para que sea más sencillo cuando colocas el mouse en la expresión dale click aquí y se te va a habilitar un botoncito que te va a abrir un texaria de configuración dale click ahí en ese botón por favor para que te aparezca un texario eso mismo que hice de tomar ese gear y pasarlo a este lado lo hubiese hecho también igual no lo haga para que lo tenga usted allá nada más para que no tenga que hacer dos cosas es abro la expresión vacía y aquí me aparecen todas las columnas de entrada que están de este lado tanto si yo pude también haber hecho esto darle doble click y me hubiese hecho exactamente lo mismo ok ahora nota que en la parte de aquí abajo te aparecen una parte de funciones estas funciones estas funciones que te aparecen de este lado no cierre solamente mira mi pantalla esas funciones que te aparecen de ese lado son las mismas funciones que te que has agregado en esta sesión que hice code en esta sesión code donde están unos códigos hechos netamente en java esta que está no la está mira lo de este lado son las funciones que te aparecen allá entonces tú puedes agregar nuevas funciones tú las codificas nuevas funciones y las puedes re-usar n veces en los proyectos que tengo mi recomendación yo nunca lo he hecho mi recomendación es si sabes que vas a crear una función en que la vas a re-usar en njobs sería bueno que la codifiques pero si la vas a usar un solo joc haz el código en algo que te voy a mostrar más adelante haz el código en un componente que se llama te-java y listo lo pones el código ahí pero creo que desgastarse en subir esto acá colocarlo en el formato que lo especifica tal creo que es mucho trabajo para algo que de pronto vas a usar solamente un solo joc listo me devuelvo entonces nuevamente era solamente informativo esa parte aquí y voy a convertir este año voy a convertir este año entonces en una década para hacer esto esto es netamente java hago lo siguiente divido entre 10 y multiplico por 10 ya le explico entonces divido entre 10 y multiplico por 10 explico de forma sencilla que fue lo que hice ahí y esto al final termina siendo netamente algo particular de java entonces pasa lo siguiente supongamos que tú tengas este número integer giar igual a 1991 si yo por ejemplo digo giar entre 10 si el dato este es entero notará lo siguiente que giar entre 10 daría 1999,1 verdad pero como el dato es entero entonces la división de dos entero en java da en otro entero por lo tanto esta parte real se quita y me daría 199 1999 si lo multiplico por 10 convierto el año 91 en 1990 que es la década que quiero ahora si el dato es un doble en java por ejemplo doble voy a copiar esto así doble y este dato doble o sea real o float como tú quieras en data en java y datos reales sería float y doble si yo hago esto esto me daría si me estaría dando esto si me está dando esta parte entonces ahí porque me está resolviendo el problema porque el dato es entero si el dato fuera doble o float no me daría lo que yo quiero entonces aquí tengo divido entre 10 y multiplico por 10 ok vamos a pasar unos datos de aquí para acá el caso no recuerdo el nombre ayer que se el día de ayer alguien se le todos los colunas se le colocaron una sola entonces yo te recomiendo que expandas esto un poco verticalmente para que tengas espacio y vamos a soltar de este lado década y vamos a soltar entonces década title y popularidad que son los tres campos que necesito para resolver el problema de la película más popular por década si la fusión esta es indistinto en este caso en particular te explico porque en este caso el paréntesis y el por tienen la misma precedencia entonces se evalúa de izquierda a derecha o sea aquí evaluaría como el perdón el entre y el por tiene la misma precedencia entonces evalúa de izquierda a derecha pero fíjate algo con lo que tú me estás mencionando si yo tengo esto así por ejemplo tengo ahora GR tengo esto actualmente así si yo tengo este más aquí el por tiene más precedencia entonces aquí multiplicaría y después sumaría entonces aquí si tú quieres sumar aquí si es necesario esto así porque el por y el tiene más precedencia para el caso en particular pues no daría lo mismo si le coloco el paréntesis gracias a ti por preguntar fíjate que mientras algunos terminan aquí el caso del el caso del hijo mío cuando estaba en primaria entonces el profesor le coloco una expresión de esta donde tenía un más y un menos y un por y entonces el profesor sumaba primero restaba y después multiplicaba no hay paréntesis entonces yo le estaba yo le ayudaba a mi hijo a resolver los problemas y perdió esa evaluación y entonces me tocó bien de profesor mira qué pena lo que pasa es que hay una precedencia de operadores pero eso va más que todo para la gente de sistema la gente pronto no le presta mucha atención a eso pero bueno entonces aquí tenemos esta parte ok listo yes me dice retomo la idea entonces al final de que quiero resolver al final me va a quedar más o menos esto mire lo siguiente ahora voy a tomar estos datos aquí me va a quedar vamos a poner que este ya era noventa y uno me va a quedar todo en noventa ahora lo que quiero hacer es lo siguiente voy a ordenar por década voy a ordenar por década ya les voy a hacer lo siguiente ahora voy a ordenar los datos una particularidad que se tiene con los componentes de talent es que cuando hay un esquema de entrada el esquema cuando hay un esquema de entrada y de salida en este caso tema que es un esquema de entrada y de salida la salida automáticamente y esto me va a llegar acá como entrada en el entonces haga lo siguiente vaya al y note ve que aquí tiene editar esquema entonces como este tiene que trabajar con datos la posición te va a cambiar pero al final te va a dar lo mismo entonces si das clic aquí en editar esquema darte cuenta que aquí esta es lo que esta es la salida la entrada que me está llegando del tema y esta es la entrada que tengo del techo esto es poco para perdón esta es la salida del tema y esta es la entrada del techo aquí tú puedes agregar y quitar lo que tú quieras en caso de que pasa pasa y que es lástima que no le hago un ejemplo para cada cosa siempre tengo que invertirle pasa en que de pronto suponte que aquí no te llegó es muy raro que pase esto que de pronto tenga aquí una salida y que si se hace con esta entrada acá entonces tú le puedes dar aquí sincronizar columnas y lo que hace eso es que se puede pasar pero eso para eso es sincronizar columnas entonces vamos a configurar el techo row y el techo row quiero que haga lo siguiente dele aquí un más y este más entonces te coloca las columnas que tiene entrada en este caso quiero primero por década y aquí tiene que estar muy pendiente con el tipo de datos que vas a ordenar década es integer por lo tanto es numérico y aquí puedes ordenar ascendente o descendente para el caso particular me da lo mismo si es ascendente o descendente vamos ahora a hacer un nuevo criterio de ordenamiento y aquí voy a ordenar ahora por popularidad popularidad también te recomendé como esto es un table en java java tiene un pequeño box que no ha podido corregir que a veces yo muevo con el mouse y no me actualiza cuando tengas un table acostumbre darle enter darle enter para que tome el cambio y quiero que este señor me ordene descendentemente entonces retomo nuevamente la idea mejor acá en un nuevo archivo nuevo aquí tengo década tengo title y tengo popularidad suponte que tengas aquí mil novecientos noventa título x y popularidad por ejemplo ochenta tienes mil novecientos noventa también popularidad noventa y uno quizás tengas dos mil aquí popularidad ochenta y siete y tengas mil novecientos noventa popularidad y seta aquí noventa y dos al ordenar primero por década me quedarían los datos al final de esta manera me quedaría todas las décadas primero ordeno por década y después por popularidad descendentemente significa que el primer registro que va a tener es el la mayor popularidad que sería noventa y dos o sea me quedaría más o menos esto de esta manera noventa y dos después seguiría de esta manera noventa y uno después seguiría ochenta y después seguiría este dos mil que está aquí si me entiende cuál es la idea al final lo que quiero es que me quede en el primera fila de cada grupo me quede el que tenga la película que tenga mayor popularidad eso fue lo que hice listo esta es la idea que me va a quedar así ahora mire lo que voy a hacer voy aquí al T aggregated row y esto lo que hace es un group by hago la semejanza porque de pronto con el group by sale más fácil de entender en un group by tú tienes un select tienes un from y tienes un group by entonces esta parte de group by tienes acá group by como tal la función group by vamos a configurarlo entonces voy a hacer lo siguiente voy a agrupar por década o sea voy a hacer más o menos la sentencia de esta group by década cómo se hace esto con la con la con la herramienta vete la herramienta un momento vamos a configurar el T aggregated row y este agrupar por indica el group by entonces dale aquí más y date cuenta lo siguiente que aquí no me hace automáticamente el la circulación entonces vete aquí a editar esquema por favor y de editar esquema necesito lo siguiente necesito década necesito title y también necesito la propiedad los tres campos necesito le das ok por favor y ahora si te va a permitir definir dale aquí más y aquí tú eliges la columna aquí tienes la columna de entrada la columna de salida cómo quieres llamarla con respecto a la columna de entrada y ahora presta atención a lo siguiente esta función esta operación acá indicaría lo que vas a colocar la función de grupo en el SELEC recordará que las funciones de grupo que tú has manejado a nivel de SQL son con min max a promedio que es AVG se me escapa zoom etcétera entonces este señor viene con algunas en particular en primer lugar yo quiero sacar la máxima popularidad de la década o sea max popularidad si yo agrupo por década esta que está aquí por ejemplo este sería un grupo verdad 1990 si te das cuenta al sacar el máximo me da cuánto 92 si vamos bien hasta ahí espero que me entienda un poquito la idea significa entonces lo siguiente ahora en que como columna de salida entonces voy aquí a cambiar esta columna y voy a definir que esta es popularidad de popularidad especifico la función de este grupo que yo quiero que en este caso va a ser el max y especifico esta es la columna el nombre la columna de salida y esta que salida la voy a mapear con la entrada que se llama popularidad ese ignore null que está ahí hay algo muy particular cuando las funciones son de suma y encuentra un nulo él sale error entonces tú dirás pero entonces si hay error mejor siempre coloca ignore null no necesariamente porque si tú colocas ignore null quizás no te puedes dar cuenta de un error de datos en que tú supones que esos datos no venga en nulos entonces si le das ignore null te viene un nulo y tú te das cuenta mejor dejar y que dispare el error y tú te das cuenta y puedes mandar de pronto esos calidad de datos y que te digan epa hubo un error eso de ese dato no puede estar nulo el joke mío no funcionó porque ese dato no tiene que estar nulo tienes que revisar entonces hay que estar muy pendiente en cómo lo vas a manejar yo diría que si tú sabes que siempre es no nulo mejor coloca déjalo así no que lo ignore de tal forma de que si hay un error te levantes el error y tú lo puedas corregir listo voy a hacer ahora lo siguiente voy a dar aquí un más y me aparece title y aquí en la función de grupo voy a usar algo que no aparece solamente hasta versión bueno eso nada más MySQL lo hace porque aquí hay un estándar de SQL que no lo permite pero este señor sí me permite hacer lo siguiente date cuenta que aquí hay una función que se llama first sácame el primer title first te explico ahora entonces que significa significa lo siguiente recordarás entonces en que si yo tengo una función de grupo a nivel de SQL yo no puedo colocar ninguna columna que no sea función de grupo me explico de esta manera si yo intento colocar en ese SQL este title que es lo que hace sale un error porque porque no es función de grupo y porque sale un error porque está diciendo si está buscando el máximo significa que el máximo es uno solo independiente que haya varios registros que tengan el máximo el máximo sigue siendo uno solo pero entonces si el grupo está formado por tres registros y solamente te puedo mostrar uno cual title quiere que te muestre entonces para evitar esa confusión SQL te manda un error cuando no colocas una función cuando la la coluna no está dentro de una función de grupo casos diferentes como MySQL que es un poco más rebelde con las estándares de SQL y MySQL no se complica la vida MySQL entonces tu puedes colocar este title y MySQL lo que hace es que a partir del grupo que tenga formado saco el primer fila ya yo sé que la primera fila va a correr como está ordenado de mayor a menor yo sé que la primera fila que está aquí va a corresponder al nombre de la película con la menor popularidad entonces lo resolví de esta manera para agregar el te short y el te aggregate row listo entonces aquí no hago más nada perfecto entonces antes de ejecutarlo te voy a explicar dónde es que entra el Big Data en el caso particular de la herramienta el procedimiento de Big Data lo está derivando en dos elementos o lo hace con MacReduce que prácticamente MacReduce quedó simplemente para aplicaciones relegadas a Hadoop decíamos ya funcionan con Hadoop para que MacReduce para que lo vas a cambiar te funciona perfectamente o lo utilizas Spark entonces la herramienta se deriva en esos dos o lo hace con MacReduce o lo hace con Spark cuando hace con MacReduce entonces que hace la herramienta como has usado una entrada que es HDFS la herramienta lo que va a hacer es lo siguiente todo lo que conecte después de aquí hacia adelante esto lo va a convertir en un código Java pero ese código Java lo va a convertir a MacReduce o sea MacReduce para distribuir toda esta parte sobre el cluster que tiene sobre Hadoop entonces ya tú no tienes que programar en MacReduce ¿por qué? porque él sabe que a partir de esta entrada es lo que va a hacer entonces que todo este código lo va a convertir en MacReduce y lo va a ejecutar con Tcluster entonces ya te despreocupa si yo no tuviese esta entrada aquí si no yo hubiese leído el archivo con TfileInput de por ejemplo este TfileInput de Limite y lo conecto con este tema que está aquí ahí me puede dar el mismo resultado pero ya no estoy ejecutándolo con MacReduce entonces ahí es donde entra la herramienta con la Big Data ahora con el caso de Spark es mucho más sencillo porque Spark tú puedes no tener la entrada con HDFS sino con el TfileInput por ejemplo y aquí hay unos elementos de configuración que lo vas a encontrar acá bajito y tú le das chulea y se conviértame ese código a Spark entonces toma ese código y lo convierte Spark basado con Java y lo ejecuta con Tcluster de Spark que tengas tú ese es la ventaja de la herramienta entonces tú terminas al final usando una herramienta ETL que la herramienta toma ese ETL el código que al final lo convierte en Java y lo manda o a MacReduce o la manda a Spark dependiendo de tu configuración como la tengas ese es prácticamente el boon de la herramienta que te evita escribir el código en MacReduce o en Spark automáticamente lo hace listo entonces eso es la esencia de la herramienta a nivel de Big Data al final date cuenta que en resumida cuenta sería la misma herramienta ETL pero me ofrece la característica de convertir el código Java para que sea ejecutado con MacReduce o con una Spark esa es la esencia del Big Data sobre esta herramienta pues ahora que vamos a hacer entonces vamos a ejecutar este señor de aquí vamos a darle aquí verifica por favor en que el el yo que vayas a ejecutar corresponda al yo que deseas en este caso yo película más popular voy a ejecutar aquí bueno voy a ejecutar a ver qué sale el yo puede que sea lento pues no tengo gran cantidad porque la máquina virtual de Hyper-V tiene poca memoria pues en un ambiente real vas a tener un clúster con varios equipos o varias o varios o varios contenedores bueno aquí salió un error y fíjese que me dice que la popularidad que es nula lo que te había dicho entonces eh ah no aquí en realidad para cualquier función de grupo si hay un nul sale un error entonces qué pena aquí popularidad a sacar el máximo como una función numérica es el problema saca el máximo de ese integer dale ignore nulls por favor y vuelve a ejecutar nuevamente solamente para popularidad porque no creo que haya error porque no es ninguna función si efectivamente solamente con popularidad efectivamente y ahí te están mostrando entonces las películas con su aquí no se ve muy bien pero aquí tenemos las películas Brenda no sé si le quita ignore null y vuelve a ejecutar o voy a verificar para ver qué error tiene dice input string gear listo pareciese lo siguiente en que cuando intenta leer hay un dato entero voy a ver lo siguiente explico este error aquí dice input string gear aquí el problema es lo que este entero lo intenta convertir a numérico pero qué problema que tenga un gear ya intenta convertir a numérico sale un error cuál es el problema que tiene que está leyendo encabezado como datos váyase al input por favor dele doble al input hcf input si está amable y note que en el header tiene cero colóquelo uno al decirle uno que la primera la primera fila no la tome porque va a intentar leer un entero y le va a mandar gear intenta convertirlo sale un error vuelve a ejecutar nuevamente para ver perfecto ahí lo tiene perfecto ahí ahora si quisiésemos algo en particular de esto es base del señor Eclipse hay veces que tú quieres maximizar por ejemplo si le damos doble clic en una perspectiva en esta de room le damos doble clic dese cuenta que automáticamente me maximiza si quisiera colocarlo nuevamente en como estaba en la configuración de tu de tu talen le das nuevamente doble clic y te lo coloca en la posición en que estaba la herramienta como lo hayas definido hagamos algo aquí vamos a si deseas vamos a ordenar los los datos bueno no tiene sentido vamos a hacer lo siguiente ahora vamos a crear un nuevo componente aquí como ya yo sé que me funciona voy a hacer lo siguiente voy a quitar este telocrow bueno si quieren lo dejan también vamos aclaro bueno la pregunta que me hicieron ayer en cuá los datos tal cosa lo que pasa es que si tienen muchos datos mandar esto a consola te consume mucho tiempo y el joke te va a demorar mucho si output significa a escribir en el sistema de fichero del señor si esto tiene un que tiene que tener un esquema un esquema con el cual va a crear archivo pero cuando conecto este telog con el telop automáticamente la salida del Tegar Gate se convierte en entrada en el T, en el T HDFCU. Bueno, el T-Log no, pero sí podías hacer lo siguiente. Voy a dejarlo como estaba anteriormente y se lo voy a dejar. Usted hágalo con allá con un, sin el T-Log. Aquí pude de hecho varias cosas. Si quisieses por ejemplo tener ese T-File en un archivo, podías aquí cambiar este T-Log por un T-File Output. O si quisieses dejar todavía la salida, yo pude haber hecho este T HDFCU Output aquí y conecto el T-Log Road con este HDFCU. ¿Qué va a pasar aquí? Que aquí me va a mostrar lo que pasa por aquí y al final lo que pasa por aquí lo va a mandar acá. Hay varias formas de hacerlo. Al final lo que quiero es que la salida de aquí me quede en un archivo allá en el clóset dejado. Pero es viable también este esquema en que dejo este intermedio aquí. Podías dejarlo porque normalmente en T-Log Road cuando tenemos datos reales, datos de pruebas, y podíamos aquí dejar ese T-Log ahí, bien funcionaría igual sin o con el T-Log Road. Voy a configurar ahora entonces este Output que está acá. Lo que les decía como... Sí, dígame. A ver, aquí hay varias cosas. Bueno, en primer lugar, si el T-Log Road no lo tengo, no tendría un archivo de logs. En primer lugar. Ahora, hay varios componentes en talent que te pueden mandar. Por ejemplo, hay un componente que se llama un T-Warning. Este T-Warning que está aquí te manda algunos warning que tú quieres. Pero el problema donde tú quieres llegar es si el T-Log Road no lo tengo, ¿cómo podría detectar un issue? Aquí... Sí, sí. Ah, sí, listo. Pero ese mensaje tendría que sacarlo con un componente que es T-Log Catcher. Este T-Log Catcher, sin este T-Log Road, yo tengo este T-Log Catcher y este T-Log Catcher lo podía mandar a un T-File, o sea, a un archivo de log físico, de memoria secundaria. Mira lo siguiente, la idea sería de esta manera. Sin este T-Log Road, podía quitar el T-Log Road y colocar un T-Log Catcher. Si hay un error aquí en el job, él lo manda al T-Log Catcher, pero el T-Log Catcher me queda de memoria principal. Entonces, lo que haría es que el T-Log Catcher lo mandaría a un archivo de log. Perdón, aquí es un T-File Output. Y tendría mis archivos de log normal de estos jobs. Si me entiendes la idea y si quieres que esté muerto, te invento un ejemplo más tarde. Pero la idea sería la menor. Sin el T-Log Road, el T-Log Catcher captura cualquier error que haya aquí y para mantener la memoria secundaria lo manda a un T-File Output. Si de pronto la idea se dice... Sí, exactamente, exactamente. Sí señor, así es, efectivamente. Tiene que quedar un T-Log Catcher. Ah, listo. La única es que el T-Log Road lo manda a consola. Listo. Y el T-Log Catcher, el T-Log Road mandaría que ella escribiría aquí, pero si hay un error detrás, el T-Log no lo captura. Entonces, el T-Log Catcher sí captura cualquier error que haya en el flujo y te guarda el error, en qué posición estaba, y con el T-File lo guardas en un log de memoria secundaria. Y ahí mantiene tu log listo. Vamos entonces aquí a este THDF Output entonces para configurarlo. Como les decía, ya yo sabía que usar dos componentes de THDFS, la mejor forma era con un Conectium. Entonces aquí uso la conexión existente. Nombre del archivo. Si deseas para que no coloques la ruta, hacemos el fluquito del día de ayer. Voy a buscar un archivo que esté, voy a coger un archivo que esté en la ubicación que yo quiera, por ejemplo, aquí, y después le cambio el nombre. En este caso lo voy a llamar Mejores Undercore Películas por Década. Es para evitar colocar toda la ruta, entonces tomo un archivo que está ahí, y después le cambio el nombre para que sea mucho más sencillo. Perfecto, entonces aquí le coloco TextFile, el circuit si todavía no lo he explicado. La acción, si vas a ejecutar varias veces este yo, mejor coloca Sobreescribir. El añadir lo que hace que cada vez que ejecute le vaya a ir más datos al archivo como tal, pero en este caso desea solamente Sobreescribir. El Sobreescribir si no está creado lo crea, y si está creado lo sobreescribe entonces. Al nombre del archivo, ah, ok, sí. Para ese caso en particular, déjenme decirle, bueno, pero le adelanto un poco porque si acaso no me da tiempo de hacerle un ejemplo con eso, pero entonces la herramienta maneja lo que llaman variables globales. Entonces aquí hay una variable que se llama, por ejemplo, aquí hay un test global bar, este señor me permite crear variables globales, entonces imagínate un programa que tú define la variable que sea aquí, la voy a colocar aquí, nombreArchivo, nombreArchivo. Listo, entonces aquí defino la variable. Podría usar un componente que se llama Tjava que monte primero, y aquí por si algo le digo a la variable que llamé nombreArchivo, le puedo colocar aquí un nombre que se genere a través de, tome la fecha del día y define el nombre. Y lo que hago acá es que en vez de mandarle a colocar aquí el nombre, hago una concatenación con la variable global. Sé que lo dije muy rápidamente, pero voy a intentar entonces hacer un ejemplo con este para ver si salen, pero sería la forma en que haría dinámico el nombre. Defino una variable, la variable le cambia el valor cada vez que ejecute y listo, perfectamente puedo concatenar con el nuevo valor y me da. Listo, es que es muy este, normalmente aquí ya llevábamos toda la teoría, cuando estaba este curso antes teníamos toda la teoría ya está básica del talent y ya tú sabías cómo resolver estos problemas que me estabas preguntando. Pero bueno, vamos a ver, vamos a intentar ejecutar aquí este señor de acá, listo run acá, debería ahora hacer lo siguiente, debería generar, como tengo el telorode por la mitad, me va a mostrar los datos que pasan por ahí y al final me debería mandar el archivo al clóser de Hadoop. Dice que aquí no hubo problema, entonces voy a revisar acá el clóser de Hadoop, tengo esta, un momento a ver qué, ahora sí, bueno aquí tengo el clóser de Hadoop y aquí está, bueno no estaba, F5, ya tengo mejores películas por década, voy a bajar aquí y voy a descarguelo aquí mismo por favor desde la interfaz y veamos cómo nos quedó el archivo, el archivo me quedó sin encabezados, se me dejó colocar los encabezados. Sí, se nos olvidó configurar ese encabezado, entonces voy aquí, que raro porque me está dando eso acá, voy aquí a este señor acá y le digo incluir header en la parte de abajo, incluir header, se va al output, por favor a confusión del output y en la última opción hay un chulito que dice incluir header acá, incluir header acá en la parte de abajo ya, bajito y lo vuelvo a ejecutar nuevamente y debería agregar los encabezados. Vamos a ver entonces, debería de este lado. ¿Quién me habló? Sí, normalmente cuando se cambia o quiero volver al mismo lugar le da nuevamente doble clic, pero ahora tiene algo, lo que hace es que le cambió, lo que estaba acá abajo en la confusión que tiene acá abajo, la tiene ahora del lado izquierdo porque le cambió la forma de perspectiva. Haga lo siguiente ahora, ok, dígale lo que hay ahí, note en la parte, no sé si me voy a mostrar su pantalla aquí, mire que de este lado es que tiene ahora la configuración que tenía acá, entonces si da clic aquí, por ejemplo, dele clic aquí a donde está como la paleta esa, dele clic ahí, espere que ahora, dele doble clic a eso y debería colocársela abajo, dele aquí donde dice component, doble clic, nuevamente doble clic y ahí va armando nuevamente. Ahora, ese run, dele doble clic nuevamente y ahora doble clic nuevamente ahí en la parte de arriba, espere un momento, hay que cerrar ese, se nos cambió la forma. Listo, perfecto, sí, así es. Intente ejecutar ahora nuevamente, ya creo que ya ejecutó, no sé si ya había ejecutado, creo que le cambió alguna configuración. Váyase al basic, ahí en la parte de abajo está en memory run, váyase en basic run porque ahí está haciendo es, váyase aquí, memory run, suba a la primera opción que es basic run para si vuelve a ejecutar ahí porque ahí está haciendo era un análisis de memory ahí. No sé, Fernanda, en el caso suyo salió un error allá, suba para ver, suba para ver ahí en donde está el run, suba a la barra de, a ver qué error puede salir ahí, suba y suba, está al principio, normalmente sale en el principio. Ahí está, la segunda línea dice que ya existe. Sí, exactamente, porque ya existe, dele doble clic al output, por favor, listo, perdón, dele ejecutar ahora, listo, perfecto, entonces continuamos, a ver si me da tiempo de hacer un ejemplito con alguna IA y podamos relacionar el job con IA. Bueno, vamos a crear otro ejercicio aquí entonces, ya cerramos este de aquí, vamos y vamos a crear aquí create job, un nuevo job, vamos a hacer lo siguiente, job, lo vamos a llamar job, calcular, producción, por estado, temporada, es decir, vamos a hacer entonces a sacar los datos de cuánto es la producción por estado y por temporada. Vamos a ver aquí finish, vamos, que venga, vamos a abrir el anterior para tomar la configuración de conexión, este vamos a tener, listo, esto que es aquí, vamos a copiar y vamos a pegarlo acá, para no tener que volver a configurar eso. Listo, voy a cerrar esto que ya no me interesa este lado. Vamos entonces a hacer lo siguiente ahora, vamos a tener un HDFS input, HDFS input, vamos a tener ahora un THDFS output, vamos a tener un T-aggregator row nuevamente, agregue otro THDFS input si es tan amable, input y esto es para ejemplificar aquí, coloque un THDFS row. Bueno, listo, entonces este es el archivo que vamos a manejar, nos piden, esto lo que hace es que tiene el valor de la por estado, por distrito, por año, por temporada, cuánto se ha cultivado y cuándo fue la producción, cuánto, digamos, cuánto tomé de la cosecha que tuvo, y vamos a hacer lo siguiente ahora. En primer lugar, voy a tomar del HD, que lo hicimos el día de ayer, tomamos y creamos, subimos el archivo que se llama producción, entonces vamos a hacer lo siguiente, este HDFS input que está aquí, voy a decirle usar conexión existente, defino la conexión aquí, y ahora voy a tomar como referencia el archivo que se llama producción.csv, perfecto, producción, ahora necesito el esquema de producción, necesito el esquema, que es la recomendación que te hago yo cuando tienes varios archivos, tiene muchas columnas, carece de sentido que lo haga de forma manual, entonces créate, en una porción de ese archivo muy pequeño y vamos a crear una metadata de ese archivo, vamos entonces aquí a decirle file delimited, clic derecho y crear file delimited, esto lo estoy haciendo simplemente para tomar las columnas y el orden y los tipos de datos en que están, lo voy a llamar producción, en español producción, next aquí, busca tu carpeta temporal y ahí vas a encontrar el archivito de producción, en un ambiente real pues no vas a tener archivo completo, vas a tener solamente las columnas, nada más abrir, next, está separado por coma y el día de ayer te comenté acerca de la codificación, normalmente pues con un UTF-8 te debe bastar pero en algunos casos, en español el Windows 15-52 te puede servir mucho mejor, le digo que tiene encabezado y que está separado por coma y después le doy refresh para ver que todo esté bien, listo y aquí lo que quiero sacar es cuánto he hecho por producción, por estado y por temporada, sé cuánto he producido, por estado y por temporada, es lo que quiero, dale aquí next y el día de ayer lo hicimos un poco diferente, vamos a exportar automáticamente este señor, en la penúltimo botón, vamos a exportarlo directamente el esquema, en el penúltimo botón de esta ventana, le das click ahí y va a exportar el esquema, si dígame, el que perdón, el name de la producción, producción, será producción list y aquí vamos a llamarlo entonces producción.xml, esto fue lo que hicimos el día de ayer, la diferencia es que el día de ayer lo hicimos ya cuando estaba creado, este es cuando lo está terminando de crear, entonces me lleva listo a guardar y le doy finish aquí, si digo, Beatriz voy a ir para ver, primero ya creo el archivo delimitado, no, vamos a ver, dele click derecho ahí en donde está en la metadata, justamente en click derecho, a un momento, a qué pena, que me equivoco, que fue de pantalla, listo, ahí está en el penúltimo botón, dele next por favor, dele next, y ahora en el penúltimo botón de esta ventana, listo, vamos a hacer lo mismo que hicimos el día de ayer, coloque ahí entonces producción y asegúrse de terminar con xml, dele guardar ahí, finish por favor y listo, vamos por ahí, ahora vamos a tomar ese esquema que está ahí, vamos nuevamente a hfs input, que asegúrese donde dice editar esquema, que en este caso está en la parte de arriba y en el penúltimo botón es para importar, busque entonces aquí producción, vamos a darle aquí ok y ya tuvo que haber importado entonces el esquema exactamente con los nombres de que para el caso de talent pues es irrelevante, lo más importante es el orden y el tipo de datos de cómo vas a sacar las columnas, si quiere le puede cambiar el nombre, pero bueno, normalmente uno a nivel de producción deja los mismos nombres, acto seguido vamos entonces a conectar aquí con el t-aggregated y el t-aggregated row lo conectamos con el hdfs output, listo entonces repasemos este componente que es muy usado a nivel de cuando voy a sacar algunos cálculos porque recordará que cuando yo voy a analizar algo analizo en conjunto para ver la frecuencia que puede tener los datos, entonces vamos al t-aggregated row y vamos entonces donde dice editar esquema, en el caso anterior utilicé los mismos nombres de columna que me tenían de aquí de entrada, voy a hacerlo un poco diferente, si los nombres de entrada tú lo quieres conservar pues lo más lógico es que tomes de aquí para evitar para hacer más rápido y lo mandes para este lado como fue el caso de ayer, el caso del proceso pasado, voy a crear ahora unas nuevas variables que son las que voy a sacar, entonces las voy a colocar en español ahora, aquí tengo un más y este más lo voy a llamar entonces aquí me agregó una nueva fila, voy a darle clic ahí donde dice new column y la voy a llamar estado en español, tipo de dato stream, por qué lo hice diferente la vez pasada es porque muchas veces vas a quisiera conservar los mismos nombres entonces era más rápido que pasar los nombres que tenía y los tipos de datos, aquí lo voy a hacer un poco diferente por si acaso te toca hacerlo de esta manera alguna vez, estado voy a colocar aquí, voy a agregar una nueva columna que la voy a llamar temporada, que también es temporada y voy a agregar entonces una nueva columna, la voy a llamar estilo snake case total underscore producción y aquí es donde va a quedar la sumatoria de esa producción, entonces como voy a sumar datos que son numéricos, el tipo de datos no podía ser string entonces, entonces voy a expandir aquí y voy a escoger el tipo de datos más conveniente, para este caso entonces aquí tiene, java tiene estos tipos de datos son directamente de java, entonces aquí tiene lo siguiente, si sus datos son de tipo enteros entonces java tiene integer y tiene long, integer le ocupa menos cantidad que long, el long si es un dato mucho más grande y de igual forma tengo, para reales tengo flowat que es para reales y tengo doble, si el doble, si el número es muy grande entonces usa el doble, si no, usa flowat, si no cabe en un doble, java tiene un tipo de datos especiales que se llama big decimal que ahí aparece, que lo que hace internamente es que maneja el dato como si fuese un string, o sea hace unos cálculos matemáticos pero lo guarda al final como si fuese un string, pero no es el caso la cantidad de datos no me da para big decimal entonces use por favor doble. Este icono que está aquí, perdón este chulito que está ahí en el medio que se llama clave, perdón, esto es, esta clave se usa cuando ejemplifico, son muchas cosas que de pronto estoy metiendo la cabeza, esa clave que está ahí se usa es, supongamos que tú quisieses mandar esos datos en una tabla a la base de datos, entonces yo coloco una clave, me manda ese dato como si fuera ya de primaria, me colocó un primaria aquí a ese campo, pero no es el caso, te estoy informando y acá recuerde que este nullable es el mismo chulito que hicimos con el caso de la variable en el tema que si iba a recibir nulo la chuleabas, si sabes que no va a recibir nulo entonces pues no la chuleas, no quiero la chuleabas y ahora voy a agrupar entonces como quiero que es sacar por estado y por temporada me toca hacer en el group by, me tengo que agrupar entonces primero por estado y después por temporada, recuerda que el orden en que agrupes te va a dar diferente entonces primero voy a agrupar por estado, voy a darle aquí clic y aquí me dice estado y acá tienes que mapearlo con la columna de entrada que sería state name, perfecto ahí mapeo bien, agrega ahora una nueva columna temporada y mapearlo con la columna temporada de entrada que sería season, listo no vamos a seguir agrupando, vamos a definir entonces una función de grupo, vamos a darle entonces aquí en el más y aquí me va a aparecer las las columnas que todavía están libres ya yo había usado temporada y estado y nada más tenía producción entonces función aquí la función sería suma y que columna vas a sumar entonces spande y hay una columna que se llama producción y el error que vimos pues normalmente cuando es matemático si hay algún nulo entonces voy aquí ignore null para que me funcione pero recuerda que como recomendación si tú sabes que no debe haber nulo no debes colocar ese ignore de tal forma que salga un error si de pronto viene un nulo. Configuramos el HDFS output digo usar conexión existente y ahora voy a hacer lo siguiente entonces voy a escribir nombre archivo mismo truco que apliqué ahora voy a buscar un nombre archivo que esté en la carpeta donde yo quiero perdón aquí no especificé la conexión aquí en el combo voz amplió aquí y escojo aquí bueno cualquier archivo que al final lo voy a cambiar el nombre y lo voy a llamar entonces producción on the record por on the record temporada perdón por estado on the record temporada. Aquí un par de recomendaciones el problema de las codificaciones ya habíamos visto en el Tefalinput que hay varias codificaciones ASCII, ISO, la ISO, la ANSI entonces te voy a recomendar en que los JOTS ya adopte su sistema de codificación el que tú ya has definido por estándar normalmente casa como UTF-8 por ejemplo aquí sitúa codificación personalizada por defecto está en ISO, ese ISO es inglés si los datos tienen español y le mandas para ISO allá cuando los vayas a leer baja tiene un pequeño problema entonces normalmente acostumbra pues a usar estándar que tú ya definido UTF-8 no sé el que hayas definido pero si los datos en español mejor que se casen con un estándar de UTF-8 si de pronto es europeo el ISO le funciona perfectamente eso lo quería mencionar aquí y lo último aquí es esa parte de compresión de datos pasa lo siguiente en que recordará que por la forma de clostrización que se tiene que está en este caso de JADUT JADUT lo que tiene es lo siguiente toma un archivo y lo divide en diferentes partes o particiones pero esas particiones la réplica por una cuestión netamente de redundancia por si acaso se daña alguna particiones por ejemplo si notamos aquí esta partición de JADUT acá nota que aquí tengo una replicación de 3 significa que este señor va a replicar tres veces la misma partición eso te va a ampliar a digamos en en gran medida el almacenamiento que vas a ocupar en memoria secundaria la ventaja que tienes con esto es que la memoria secundaria es muy barata a nivel de clau pero quizás hay archivos que son muy grandes entonces la herramienta te permite hacer lo siguiente te permite comprimir los datos entonces de aquí una compresión de datos y aquí están varios formatos de compresión estos formatos de compresión vienen directamente del mundo de UNIX aquí está si y vamos a quedar aquí incluir hider incluir listo ahora vamos a hacer lo siguiente quiero ahora leer este archivo porque lo quiero leer es porque cuando está comprimido tienes que leerlo tienes que especificar que está comprimido aquí me adelanté un poco a usar este como yo perdón no me adelanté que pena no me olvide lo último que di no me adelanté entonces qué vamos a hacer ahora este hdf input va a leer este archivo que voy a escribir acá entonces que voy a hacer estando en el hdfs up voy a copiar la ruta del archivo el nombre del archivo la voy a copiar y la voy a pegar en hdfs input aquí voy a configurar que voy a usar una conexión existente configuro la conexión y voy a pegar aquí el nombre del archivo de salida que tengo en el hdfs listo ahora que voy a hacer recuerde que todo lo input y output que tenga tiene que tener un esquema el esquema de entrada tiene que ser el mismo esquema de salida de este archivo que está aquí por ende ya yo sé que este hasta acá voy a este a este output le digo editar esquema y voy a exportar el esquema este que estado que está aquí donde está este sería la antepenúltima opción aquí la antepenúltimo botón perdón antepenúltimo botón y lo voy a llamar entonces producción temporada producción temporada punto xml te doy aquí guardar cierro aquí con ok y lo que hago ahora me voy al input al esquema del input y aquí si es el penúltimo botón y busco entonces el archivo del esquema que exporte abrir y debería dar entonces listo aquí damos ok y por último conecto el input con este teloro ah listo sí perfecto y lleva hider pero el momento en el input listo estoy no con si si gracias entonces en el input tengo que hacer aquí tendría que tener un hider la codificación tendría que ser la misma que sería utf-8 y necesariamente tendría que descomprimir los datos porque vienen comprimido la descomprensión tendría que estar en el mismo algoritmo que colocarte el op vamos ya lo exportó o todavía falta importarlo había por dónde va bueno bien vamos primero a exportarlo primero nos vamos al hdfs output le da en editar el esquema este esquema de salida para exportarlo va a ser el tercer bot el atp no último botón que dice export all y aquí lo exporta llamélo producción temporada y aseguré que sea punto xml si están a mal dele ok perfectamente ahora se va al input al hfs input y edita el esquema del hdf input perfecto editar esquema y ahora importa que sería el botoncito el penúltimo botoncito penúltimo botón y busca el archivo que ya había exportado listo header en uno la codificación tiene que ser igual a la del output si la codificación del hfs output está en utf-8 como el caso mío que la cambie aquí en utf-8 la el input también tendría que estar en utf-8 si no la configuró no hay ningún problema porque la bala por defecto que sería la hizo y por último como este archivo lo comprimió tiene que descomprimirlo en el mismo algoritmo de ese cuenta que en el output yo comprimí con jett con jesset y acá voy a descomprimir con jesset bien cuánto su job habría en ese trabajo que está ahí a ver si no acordamos ahí cuánto su yo que habrían ahí habrían tres verdad el tepe yo el segundo su job y el tercer su yo aquí por defecto aquí me funcionaría bien en el caso particular por qué porque no tiene que darse ese y después este pero como buena práctica y quizá porque se te puede olvidar a ti mejor define el orden jerárquico si hay una jerarquía define la jerarquía de los su job entonces recordamos cómo hacíamos esto vamos al primer su job a elemento del su job 1 y voy a conectarlo con el disparador con su job ok hacia el primer componente del su job aunque la ejecución da igual este este yo que se puede leer más fácilmente porque sé que se ejecuta primero y después que se ejecuta después listo entonces voy a hacer aquí voy a ejecutar aquí verifiquen el ron que sea igual al que está ejecutando y vamos a ejecutar este señor aquí me sale un error dice no puede ser progresado porque incompatible o no sé no es raro extrañamente raro bueno ahí está los datos en que salió un warning ahí pero no sé por qué se lo hace warning ahí está entonces por ejemplo voy a sacar solamente dos dáticos aquí nada más para verlos aquí lo que veo raro es que no me lo está formateando bien parece ser que no lo está formateando bien el separador de campo acá es punto y coma y el separador es punto y coma no sé parece que no está como que hay algunos que tienen errores voy a verificar entonces aquí luis está preguntando algo para ver en el esquema el campo producción viene definido como stream a ok bien stream porque bien stream entiendo ah claro aquí está como es trin lo tomó mal y por eso que sale error bueno si quieres vamos aquí voy a cambiar el problema que tiene déjame un momentico ahí y solución aquí los demás porque yo te entendí la idea muchas gracias no me da cuenta voy a voy voy en el caso de luis que tiene a listo luis a ti salió error entonces vamos a ver el error te salió en el no porque ese input que está ejecutando luis el de abajo es el vete a tu hdf o por un momento luis hdf o por un momento ya está sube eso coloca lo más porque si no perfecto ese que está ahí es que está ejecutando al revés luis yo está buscando la chido que yo está creado borra el subyop borra el pt perdón borra la flecha del onsujok ok que están a mal de onsujok ok borrala ahora vete y dale clic derecho al input el de abajo y ahora sí dale clic derecho disparador porque se se ejecuta primero onsujok ok con el de arriba y porque estaba buscando el archivo que tuvimos está creado ejecuta ahora sí para ver y ahí está total producción porque ahora le cambiamos el tipo de datos para solucionar el problema perfecto liso el problema que tenías era el que tenías al revés el quién más perfecto vamos a solucionar el problema este del del warning que me sale este warning ojo lo siguiente y sería interesante bueno interesante que haya pasado esto el problema que tengo es que en el te agregué este robo todo haciendo una suma de un dato que es entero entonces mira lo siguiente yo pude haber cambiado el tipo de datos aquí en el te agregué este row de a doble el problema que tengo es que el señor viene string y va a intentar convertir el string a doble y va a tener un error entonces aquí lo mejor es convertirlo desde el inicio vete acá al hfs este este output editar esquema y conviértelo a doble que creo que sé por qué lo hizo conviértelo un momento a doble este señor se me perdió el doble aquí está doble entre pasa lo siguiente que muchas veces yo con cambio aquí al inicio y los elementos que siguen a continuación no los cambia entonces hay que verificar que el doble siga en el siguiente componente voy aquí al te agregué terro voy aquí a editar esquema y si si lo cambió si lo cambió lo cambié al inicio y cambió la cadena hay veces que no lo hace ahora vamos a ejecutarlo para ver si no sale error porque quizás salga un pequeñito error listo aquí el error fue porque no coloqué para que sólo escribiera entonces voy a dar aquí over white brenda tiene un error ahí ya voy a ver para ver qué tiene cuál error que tiene ya un momento para ver bueno perfecto ahí salió listo perfecto ningún problema ok ese era el warning que teníamos muchas gracias luis aquí no es necesario que lo cambies en el input 2 el porque el input 2 te quedó como te quedó como string a no no perdón no qué pena confusión bien quién era brenda que tiene error muestrame el room dale click en el room brenda por favor si está mal para ver qué error tiene dice todo no puede ser progresada diva entonces después nombre a total producción a listo bs al hfc input por favor al 2 al 2 exactamente 6 de doble clic si está mal ahí fue porque no lo colocó encabezado entonces intenta leer intenta convertir un string a entero y no la elegir tiene que estar en uno corrida inmediatamente váyase al che al hfc output al 1 por favor si están amables al esquema del 1 al hfs el 1 gracias al perdón al input que pena al input hfs input 1 no así si tiene colocarle 1 también 1 porque tiene encabezado váyase a editar esquema un momento de ese ahí editar esquema ahí cambie production el tipo de datos que está en string cambia los dobles si están amables el último ahí entre dele ahí lo tomó dele que yes ejecute ahora para ver nuevamente ya se alte al hf output y cambie de crear a overwrite doble clic ahí y cambie action el action de crear a sobre escribir y vuelve a ejecutar nuevamente perfecto ahora sí listo ok listo si va a la a su cluster de hadut f5 que sería este punto csv ya la como en es más la extensión carece de sentido porque ya pierdo el formato de más si yo lo descargo aquí creo que me debe salir como un formato binario algo así por el estilo ahí está porque está está comprimido cuánto pesa el archivo a ver 3 3 puntos megas permítame y hago aquí una una pequeña observación voy a ejecutarlo sin no la guste simplemente para verlo acá no lo voy a comprimir y voy a ver cuánto pesaría para comprar los dos voy a cambiar aquí el nombre para ver más o menos cuánto aunque el archivo muy pequeño entonces quizás no se ve tan claro porque muy pequeño archivo listo ahí está ejecutando perfecto f5 vea el original pesa sin comprimir 14 megas y comprimido da 3 megas y comprimir bastante comprimir bastante bueno continuamos con otro ejemplo y vamos a hacer un join ahora como hacemos un join acá entonces perfecto listo voy a sacar lo siguiente mire tengo los datos esto de esta manera voy a tomar aquí estado bueno listo voy a sacar nada más estos tres campos aquí que sería crochet listo y producción quiero sacar la mayor producción por año entonces primero me tocaría sumar todas las producciones que haya en ese año y después saco la mayor que tenga desde cuenta que el mayor que como lo hice anteriormente creo que lo tenía por aquí no sé este que está aquí este esta forma que hice yo era para introducir el texor no me funcionaría en todos los casos porque puede hacer el caso en que haya dos películas para este caso muy particular que tenga la mayor popularidad por ejemplo yo puedo tener aquí x con propiedades 92 aquí en realidad que el dato me tenía que dar 2 pero como yo estoy sacando solamente el primero nada más me mostraría este que está aquí entonces realidad esa consulta o ese yo de la forma en que lo tengo puede que me cause algunos problemas porque quizás haya varios películas que tengan la mayor popularidad por ende voy a hacer entonces el ejercicio de forma diferente esto entonces voy a hacer lo siguiente voy a sacar ahora la mayor producción que hay por año listo esto este solo voy a hacer es para incluir cómo se haría un join entre varios archivos para esto entonces vamos a irnos nuevamente al talent y vamos entonces a crear aquí en el big data que está acá clic derecho y voy a crear un nuevo yo este yo que lo voy a crear entonces yo lo voy a llamar calcular mayor under score producción por año coloque por anualidad porque no le va a aceptar el año entonces colócale por anualidad yo calcular mayor producción por anualidad como le decía voy a tratar de hacer los archivos de forma diferente cada yo para poder incluir componentes nuevos le damos aquí entonces finish y cópiese del anterior las conexiones por favor creo los siguientes elementos agregué un hdfs es más como es el mismo archivo por favor en el pasado cópiese el input de producción y fue el primer thdfs input entonces voy a la anterior al estado temporada que me sirve cuando tengo que volver a configurar eso voy a tomar el hdfs el input 1 que es el que le de producción y lo voy a pegar acá se me escapaba y con esto entonces para evitar tener que volver a configurar algo que ya ve lo que voy a hacer primero voy a obtener cuál es la mayor producción por año ok cuál es la mayor producción por año y después saco entonces los demás elementos entonces voy a hacer lo siguiente voy a agregar aquí ahora un aggregator row y ya está lo más lo manejamos voy a agregar aquí un thdfs output y voy entonces a hacer las conexiones aquí vamos a conectarlo aquí a este output listo entonces voy a sacar lo mismo ahora mira lo que voy a hacer primero voy a calcular cuánto ha sido la producción que he tenido por estado por temporada y por año me toca hacer la sumatoria pero voy a hacer algo particular diferente a la que tenía anteriormente voy a mandar esto primero a un archivo entonces voy a hacer aquí lo siguiente voy aquí al aggregator row voy entonces aquí donde dice editar esquema voy a sacar entonces aquí la columna estado voy a la columna temporada el anterior fue que saqué la producción por temporada y por estado esta va a sacar por estado temporada y por año se voy a colocar aquí un nuevo que se llame anualidad y este que está aquí va a ser de tipo integer y voy a colocar aquí total total on record producción y este va a ser de tipo doble la diferencia que hay el anteriormente solamente tenía la producción por estado y temporada aquí va a sacar la producción por estado temporada y por año ok y es configuramos entonces el group by que sería agrupar aquí espero un momento que algunos que todavía han terminado listo el te agregué este row entonces vamos a agrupar por primero por estado en este caso mapea la columna de salida está bien mapeada con la columna entrada vamos a agregar la temporada que si me toca cambiar así son voy a agrupar ahora por anualidad que sería crop gear y vamos a hacer entonces una operación en el total voy a hacer una suma de la producción que tengo y voy a ignorar null por el problema que tuve ahora parecido al otro la única diferencia que hay es que ahora voy a agrupar por estado temporada y por año el anterior solamente agrupe por estado y temporada ahora quiero saber cuál es la producción tanto por estado temporada y por año ahora en el hdfs output haga lo siguiente entonces configuremos usar conexión existente busque un archivo que ya esté aquí se me olvidó configurarla aquí un archivo que esté aquí cualquiera y lo va a llamar este archivo de salida producción llámelo producción producción estado under score temporada anualidad listo aquí le da sobre escribir por si acaso lo vamos a ejecutar varias veces y dígale que incluya el hdfs voy a hacer un ejemplo entonces mientras usted va haciendo esa parte de aquí tenemos estado en ese momento para mostrarle cómo quedaría los datos si más o menos ese archivo de salida va a quedar de esta manera tengo el estado y tengo cada temporada el año y voy a sacar la producción por año más o menos me quedaría así se me repite varias veces el estado temporada y por cada año en la temporada me va a calcular el valor eso es lo que va a volver hasta aquí estamos hasta aquí ahora quiero sacar lo quiero sacar el máximo de cada grupo que está aquí entonces si analiza el máximo el máximo de aquí cuál sería carrito sería de aquí sería este de aquí verdad sería el máximo si saco el máximo de acá sería este registro de acá o sea el que el año que más tiene o sea tengo hasta aquí voy a sacar estos máximos de acá se voy a crear aquí voy a colocarle para identificar voy a colocarle aquí una nota aquí voy a colocar se obtienen se obtiene lo producido por año producido por año en cada estado y temporada eso lo que se hace aquí lo acomoda como usted quiera para poder bajar esto tiene que hacerlo acá directamente en el aquí creo también lo puedo hacer aquí lo puedo hacer aquí lo voy a bajar para que me quede así bueno no me está bajado ahí está esto hace esto voy a hacer lo siguiente entonces voy a sacar la segunda parte que es esta que está aquí entonces para esto vamos a hacer lo siguiente voy a hacer lo siguiente voy a hacer aquí un hdfs input nuevamente un te agregué terro te agregué terro te agregué terro y voy a mandar a este señor a un thdfs output porque así vamos a ver si así la única forma de hacer esto es lo siguiente este año no lo puedo sacar así directamente sino a partir de cómo está el archivo yo voy a sacar el máximo valor o sea en pocas palabras cuál es el máximo producido en esta en esto sería esta fila de aquí entonces que voy a hacer yo voy a agrupar por estado y temporada y voy a sacar el max producido eso lo que voy a hacer en este agregate significa que me está dando al final estaría dando en el grupo este de aquí me estaría dando x a y me estaría dando 13 en este grupo de acá que voy a hacer voy a agrupar por estado y temporada y sacar el máximo me estaría dando x b y aquí me estaría dando 18 y después hago un join de estos dos archivos para poder sacar el año aclaro que lo estoy haciendo así es para poder incursionar en el join vamos a lo siguiente vamos aquí vamos a conectar este señor de aquí con este de acá y voy a conectar este te agregué este rub con este de acá el archivo que voy a leer aquí es el archivo producido en este punto de acá entonces voy a hacer lo siguiente voy a exportar el esquema de aquí editar esquema ya saben cómo es aquí voy aquí al output editar esquema y aquí sería la antepenúltima exporto y lo voy a llamar entonces producción estado temporada año anualidad porque no es anualidad punto xml ok del output me robo el nombre del archivo para poderlo copiar allá en el input aquí usar conexión existente sí dígame Beatriz vamos a ver si está raro un momento permítame y accedo de forma interactiva para poder manipular su pantalla voy a darle aquí un guardar aquí un momento voy a hacer no sé si pronto fue voy a cerrar este señor de acá volverlo a ir para ver no sé fue algo extraño hay que ese algo extraño ahí no sigamos entonces no sé qué pasó ahí algo extrañamente raro ya se quitó ahí se realicen el ingeniero bueno aquí el input este que está aquí editamos el esquema y exporto aquí y aquí sería producción estado temporada anualidad ok ese en realidad estoy sacando el máximo de un grupo que normalmente uno lo hace con un sub query acá lo que voy a hacer es que voy a dividirlo en dos archivos y después hago un de los dos y resuelvo el problema voy a esperar que algunos están mientras algunos que todavía están mientras espero alguno me regala dos minutos con café y vengo a seguir inmediatamente con café mientras algunos terminan ahí ya
on 2025-01-27
language: ES
WEBVTT ¿Verdad? de este grupo. Listo. Listo, entonces, vamos a lo siguiente, ya habíamos definido la input aquí, vamos al T aggregator dos. Y vea lo que deseo hacer, deseo sacar el máximo valor de este grupo de acá, entonces, de este, de este grupo. Entonces, voy a agrupar por estado y por temporada y voy a sacar el máximo valor que contenga. Listo, entonces, sería lo siguiente. Al final, lo que quiero que entienda el grupo, es que es un favor de hacerlo, seguramente, pero la idea es, lo estoy haciendo es para llegar al al join. Entonces, voy a hacer lo siguiente aquí, voy a agrupar por, perdón, no he hecho la los esquemas. Voy a mandar para este lado voy a mandar el estado estado, lo que me sirven, temporada y total de producción. Esto, ¿Para qué lo hago de esta forma y no quiero la de crearla? Porque quiero observar los mismos nombres. Entonces, como quiero concebar los mismos nombres, me sale más práctico tomarlos de entrada y mandarlos de salida. Me queda mucho más sencillo de esa forma. Mandé de este lado estado, temporada y total de producción. OK. Yes. Agrupo por estado, temporada, y la columna de salida, saco el máximo. Esta vez no voy a ignorar el nulo, porque ahí ese máximo no puede ser nulo. Por ende, ahí voy a dejarlo así, sin si sale un error, tiene que haber un error en los datos, seguramente. Sí, estado y temporada, exactamente, fue. Y voy a sacar el máximo en ese valor. Este es el archivo que estoy ocupando por este y por este, y saco el máximo de esto, sin tener en cuenta el año. Vamos a la salida, entonces. Ehh uso conexión existente. Voy por aquí, AXA, escojo cualquier nombre de archivo, y este lo voy a llamar. Máximo under score producido máximo under score producido por estado temporada. Incluye el por favor. Agregue aquí una notica, nota. Se obtiene el máximo producido producido por estado y temporada. AXA, Aunque sé que el orden primero me ejecutaría el subyacht de arriba y después el subyacht de abajo, pero el subyacht de arriba depende del de abajo. Perdón, el de abajo depende del de arriba. Aunque está en ese orden por defecto porque fue el orden en que lo cree, prefiero mejor, como buena práctica, unirlo con un un subyacht, OK, y lo uno aquí. Ahora vamos a hacer el join. Aquí, claro, ehh bueno, acá sé que hice un ejemplo muy particular, porque recomendación de cuándo hacerlo, creo que me demoraría haciendo un ejemplo ahí. Mejor vamos directamente a hacerlo. Voy a hacerlo el siguiente, voy a bajar un poquito este señor de acá, para que me deje un poco más de espacio y voy a hacer lo siguiente ahora. El join lo voy a hacer entre los dos archivos que he creado. El primer archivo que cree, lo estoy leyendo en el input dos. Entonces, como no voy a a confiado dos veces lo mismo, voy a copiar este input dos, copio, y este sería el archivo, el primer archivo. El input dos. Voy a agregar ahora sí un T H D F E S input ahora. Cuando bajo automáticamente debería así, se hace un scroll aquí. Así. Este input cuatro que tengo va a leer este opus dos que saco aquí. Entonces, del input dos, del opus dos, perdón, opus dos, voy a tomar el nombre de archivo que es el máximo. Entonces, el input cuatro sería usar conexión existente, H F Conectio. El input cuatro va a apuntar al opus dos, es decir, el opus dos genera un archivo que se llama máximo producido por estado o temporada. Ahora, hay que definir el esquema del input cuatro. Pero si recuerda, el esquema del input cuatro es parecido del input tres, siendo que el input cuatro no tiene una columna que es el gear. Entonces, voy a aprovechar ese esquema que ya lo tengo, lo que busca la carrera siempre reutiliza cosas, editar esquema, y voy a buscar el esquema que llamé producción, estado, temporada, anualidad. Lo tomo y borre por favor anualidad. ¿Cómo lo borra? Selecciona la fila y en la parte de abajo hay una X. Y ahí le borra y lo data exactamente como lo quiera. Da ok. Y aquí hay dos formas de hacer un join, dos componentes. Vamos con el más fácil. Nuevamente con el tema. Agregue aquí un tema. Entonces, un tema. Y agregue un H D F C opus que ya me va a dar el archivo de salida, el de la definitiva. Y por favor, conecte, primero, el input tres al tema, y el input cuatro lo conecta también al tema, irían dos flechas hacia el tema. Y el tema lo suelta hacia el opus tres. Llámelo archivo under score máximo under score producción. Le da ok y le suelta la la línea vayamos entonces a configurar el tema y como hace el join? Bueno, el join tiene que hacerlo uniendo las columnas sobre las cuales pues eh tienen relación la la unión. En este caso la columna que une el archivo arriba con el archivo de abajo es total producción. Noten lo que les decía también, aquí va a ser road cinco y road seis, como buena práctica, recuerde que hay que cambiar los nombres de la flecha para que tenga más sentido, pero por cuestión de tiempo, lo hemos adoptado plenamente porque nos demoramos más. ¿Qué quiero unir? Quiero unir producción, total producción de arriba con total de producción de abajo. Entonces, ¿Qué va a hacer? Va a tomar total producción, clic sostenido, y lo suelta justamente en la fila que está el total producción de abajo. Hay veces que no le cuadra, le genera una nueva fila. Si le genera una nueva fila, está mal. El caso de Fernanda, por ejemplo, el caso suyo lo colocó Fernanda, uno antes, ¿Verdad? Me parece que la colocó aquí, ve. Si la quiere cambiar, entra aquí a la fila y lo borra con suprimir. Y automáticamente ya borra. Ese sería total producción con este total producción de aquí. Panda, por favor, la expresión esta. Ah, OK, claro, sí, sí, sí, pasa a veces. Entonces, seleccione por favor esa fila nueva que generó. Y en la parte de abajo donde está la tablita, donde está un más y un X, en la parte de allá al fondo, hay una X, dele clic en la X esa. Abajo. En la, en la misma línea, sigue bajando el mouse. Baja hasta el final, está uno más y una X. Dele clic en la X, listo. Vuelvo nuevamente entonces. Listo, ahora sí, ahí está haciendo perfecto. Si es con varias columnas, pues unirás las columnas que tú quieras. Como buena práctica, amplí esto para que sea más sencillo. Y envíe los cuatro campos que están acá, lo envía hacia acá. Perdón, que pena, que pena. El join lo hice mal. Son el, el join es con estado y temporada, porque unido solamente con el total producción no me da. Perdón, el join sería estado con estado. Sí, sí, después no me da porque me va a dar una cualquiera. Y temporada con temporada, ahora sí. Sí, sí, sí, ahora sí. Claro, porque si no me me me va a dar algo que no es. O me puede dar algo que no es en realidad. Quedaría al final como lo tengo ahí. Estado, temporada, total producción. Damos aquí OK. Y configuramos nada más el Opus tres. Usar conexión existente. Listo, coge el nombre del archivo. Listo, coge el nombre del Vamos a llamarlo entonces máximo no sería máxima anualidad producida por estado temporada. Temporada. Máxima anualidad producida por estado temporada. ahora el job del el primer elemento del subyacht segundo con el primer elemento del subyacht tercero con un subyacht. Agregue la pregunta del agregamos el que era lo que me enciende los vamos a agregarlo para que no salga aquí vamos a agregar aquí un que este no se une con nada queda al final aquí si usted coloca dese cuenta que hasta aquí diga está pero si yo coloco más abajo lo automáticamente escrolea y voy a mandar aquí a un de de de de de de de bare el delimit también puede ser un but le va a mandar a un csv y una con él con él ahí lo que me preguntó aquí y ahí puedes capturar por ejemplo cualquier error que serían sesiones en Java capturar un очo un es un componente que tú matas el John ahí o cualquier warning que tengas. Y por favor, en lo último, aquí la ubicación, mándela. Aquí voy a hacer el mismo truco. Voy a buscar un archivo que esté en temporal, cualquiera. Y después le cambio el nombre a ese archivo para que me dé la ubicación y lo cambio a loc.csv. Bueno, antes de ejecutarlo, hagamos entonces el break de veinte minutitos para descansar y cuando vengamos, entonces se ejecutamos y procedemos a hacer algo que es, vamos a conectarnos con una IA y hacemos algo interesante con la IA. Entonces, volvemos en veinte minutitos, o sea, a las 12 entonces volvemos. Hacemos el pequeño break de veinte minutitos y cuando vengamos, corregimos cualquier error que haya. Listo, volamos entonces en veinte minutitos. Listo, gracias a ustedes. Volvimos nuevamente. Listo, espero que haya tomado y descansado un poco. ¿Cómo estamos? Bien. Sí, estamos conectados. Sí, conectados. Sí, estamos. Y hay audio. Alguien que me dé un feedback, por favor, de que sí me está escuchando. Perfecto. Gracias, Fernanda. Muchísimas gracias. Bueno, quedamos entonces en ejecutar nada más. Antes de ejecutarlo, revisemos un par de cosas. Seguramente puede que tengamos algún par de errores. Por lo tanto, vamos a verificar que las salidas estén de tipo right, de sobrescritura, para evitar que la segunda vez nos salga error. Se voy a verificar cada una vez. Aquí la segunda la tengo yo de crear. Y la última la tengo a ver también de crear. Ok, voy aquí a sobre escribir. Por si las dudas de pronto pasa algo. El telocatcher que está ahí no se conecta con nada. Simplemente él sabe el telocatcher que ejecuta, toma, guarda memoria principal cualquier error y después al final ejecutará para guardar la memoria secundaria con el tfile output del limite. Entonces, no siendo más, vamos a ejecutar. Verifiquemos entonces que el run coincida con el jog que vamos a hacer. Aquí voy a ejecutar, calcular mayor producción por anualidad. ¿Qué sabéis? Bueno, vamos a ejecutarlo para ver qué sale. Se nos pide que descarguemos un YAR en el caso mío. Debe de ser algo relacionado con el telocatcher. Bueno, empezó la ejecución. Sale un pequeño error. Tengo un problema con anualidad. El inconveniente es que no coloqué header en los inputs. En los inputs, verifique por favor que tenga header. Yo no había colocado el header ahí. Y uno en los inputs, por favor, header. Y verifique que los outputs también tenga la configuración del header, que yo no sé si las coloqué en todas. Reviso el primer output y tiene incluir header. El segundo output tiene incluir header y el último output tiene incluir header. No, no tiene incluir header. Bien, revisé todos los HFE inputs y revise que el header esté en uno para cada uno de ellos. Y revise que los outputs tengan chuleados incluir header. Exactamente. Bueno, listo. Voy a intentar nuevamente ejecutarlo. A ver. El por defecto, cada vez que ejecuta, guarda. Bueno, empezó nuevamente la ejecución. Listo, ahora sí empezó. Bien, creó el primer archivo, creó el segundo archivo y creó ahora el tercer archivo. Vamos a ver qué medio, a ver si esto está bien. Ok. Noto algo aquí en particular que... un momento, a ver. Aquí el segundo, no tengo errores de ejecución, pero aquí el segundo, algo raro, porque el número de filas que entran es igual al que sale. Como estoy sacando el máximo, se me hace raro de que quede exactamente lo mismo. Un momento y verifico un par de cosas. Parece que hay un error más de todo lógico. El T-aggregatorRole lo que hace acá es que tengo temporada, corjea, anualidad y suma. Perfecto. Este T-aggregatorRole que está aquí, está por estado temporada y el maxs. Un momento, aquí el problema que se me hace raro algo de este que está aquí, es que el número de filas tiene que ser menor, no igual al de arriba. Un momento, ya corrido los demás errores. Verifico que tengo aquí un error lógico. A ver, el primer registro devuelve, el primer archivo devuelve 200. El problema que tengo con el archivo es que el input 2 debería marcar a la salida de este archivo y está marcando a la entrada del book. Aquí tengo mal, me tocaría colocar el output aquí. Por lo tanto, si está malo el 2, está malo el 3. Efectivamente, está malo el 3. Ya corrido, espérate un momentico y ya le digo qué pasó. Tuvo un error en los archivos de entrada. Sí, que se me hizo raro que el número debía ser extremadamente menor. Listo, efectivamente me dio nuevamente igual y ¿por qué me dio igual? El cambio no me lo adoptó. ¿Por qué? No sé. No, mentira, aquí tengo un error que no sé por qué este aggregate error no está funcionando bien. Y estoy sacando el máximo de total producción porque hay error aquí. Bueno, voy a intentar. Mientras corrido aquí, aquí aclaro que el problema que tengo es con el segundo suyo porque la entrada es igual a la salida después del aggregate. No debería darme eso. Mientras corrido, de pronto, robo el caso de Brenda que tiene un error allá, voy a ir para ver. Un momento a ver porque ese máximo ahí me tiene que dar menos registros. No sé por qué me está dando. Listo, reviso para ver qué pasa. Dice, total producción no puede ser. Disculpe, tome el esclero horizontal y explígalo hacia la derecha para ver más el error. La primera columna dice warning section. Dice, archivo no existe. Listo, bien. Es la tercera. Dice que el archivo no existe. Suba para ver. Para el job. Suba listo. Entonces, muéstrame la salida THFS output, por favor. La del output 1. El output 1. Ese es el output 2. El output 1. Ese es el input. El output al final. Aquí está el finalcito. Ese output que está ahí. Perfecto. Tome, copie, por favor, ese nombre de archivo y péguelo en el input 2. Péguelo, por favor. Listo. Ahora, váyase al T-aggregator row. El 2. El T-aggregator es el 2. El 2 es el que está ahí. Está bien ahí. Váyase al output 2. Dele doble clic ahí. Y listo. Entonces, váyase al input 3. No, ese input 3 está mal. Váyase. Dele editar esquema para confirmar. Dele editar esquema ese. Ok. Dele ok para cerrar ahí. Tome el nombre de ese archivo, si es tan amable. Y ese nombre de archivo es del input 4. Vaya al input 4. Input 4 que está ahí. Y péguelo ahí. Listo. Váyase ahora al input 2. Perdón, al output 2. Perdón. Váyase al, tiene que ser el output 1. Y tome ese nombre de archivo y sería el input 3. Ejecute para ver que todavía no encuentro cuál fue el error lógico que tengo ahí. Ejecute. Esperamos a ver. A ver qué pasa. A ver, lo que pasa es que en el subyacht 2 la entrada de filas tiene que ser menor después de la targette porque estoy... Aliso, váyase al input 2. El header, por favor, colócale header 1. Váyase al input 3. Se me escapó. Y colóquen header 1. Y vaya al input 4 y colóquen header 1. Ahora sí, vuelve a ejecutar nuevamente. Bien, ahí tenemos el error de que tratar producción como que está entero, algo así extraño. Listo, ahí tenemos error en el input 4. Dice que no existe ese archivo. Ese archivo tiene que ser del output 2. Váyase al output 2 un momento. Creo que ya dice máxima, me parece a mí. Ctrl C y péguelo acá en el input 4. Dele doble clic a ese input 4. Si allá dice máxima, péguelo ahí. Vuelve a ejecutar nuevamente a ver. Pero aún... Sí, pero es la salida ya. Dele doble clic en el output 3 para ver. Sería máxima producción. Hay falta el nombre del archivo. Hay falta el nombre del archivo. Bueno, vamos a ver quién tiene error. Vamos contigo, Alejandro, que tienes un error allá para ver. ¿Qué sale ahí? Dice no existe. Ese... Vete a tu output 2, Alejandro. Y esa salida de ahí, dale doble clic ahí, doble clic. La salida de ese señor es la entrada del input 4, que es donde tiene el error. No, está bien. Ya sé qué es lo que pasa, ¿no? El problema son los datos. Voy a revisar un momento. Hay totales con letras. Dale a ejecutar para ver. Dale para ver entonces. Revise el log para ver el archivo, lo que puedan. Si le está mostrando el log del archivo. Es estar en temporal ese archivo. No lo creo aquí. Perdón, está en temporal. Y aquí está log.csv. Y aquí me dice el error que pasó cuando lo ejecuté la primera vez. Entonces, a la pregunta que me hicieron algunos, ese es para cerrar los logs. ¿Todavía tienes error, Alejandro? Sale error aquí en el... A atrapar el error que salió ahora. Dice archivo no existe, qué raro. Búscate ese archivo, máximo producción estado-temporada. Búscatelo por favor acá en el browser para ver si ya lo creó o tuvo que haberlo creado. Dale F5 ahí. Listo. Fíjate que el archivo se generó con sin punto.csv. Lo tiene csv. Máximo producido, no tiene extensión sino faltó un punto. Qué raro es. Vete entonces nuevamente al job. Vete a tu output2. Un momento. Ahí tienes punto.csv. Qué raro. Ahí lo tienes como punto.csv. Vete al input4 un momento a ver. Está supremamente raro. Borrátelos. Y mira si puedes borrarlo directamente desde el browser para que lo vuelva a generar. A ver qué pasa ahí desde el browser. Ese máximo le hizo. Y la máxima producción temporada. Y vuelve a ejecutar nuevamente para ver. Bueno, ahora sí lo generó. No sé, como que había algún error con el número. Pero todavía tengo un error lógico. No sé quién tiene todavía un error ahí. Ahora reviso bien este job. Pero bueno, que les funcione. Al final lo que buscaba era el tema. Ahora reviso para ver por qué no me está dando como debería. Siento que lo programé mal. O lo configuré mal. Pero bueno, ¿Quién tiene error todavía? No creo que. Vamos a ver. Ahí dice archivo ya existe. Ahí dice. En la tercera línea dice que el archivo ya existe. Entonces significa que en el output tiene que colocarle override. En el dos, donde está marcando el error. Ahí dice file already. Listo. Ahí dele action. Cambielo a. Segunda opción. Sí, exactamente. Ejecute para ver. En todos. Sí, exactamente. Ese creo que no lo alcanzó a crear. O sea, que no le iba a funcionar esta vez. Porque no lo. Ejecute para ver. Mientras ejecuta, vaya a su carpeta temporal, por favor, a ver el archivo log que mandamos a hacer. En su carpeta temporal. Ahí está log. Abra log.sv. Sí, el log. Ahí lo único es que tengo que sobre escribir. Ahí podía darle que haga un append para que mejor vaya adicionando los diferentes logs. Pero bueno, esa es la forma en que podíamos hacer para. Para guardar, separo log. Muestre para ver. Listo. Bueno, será un warning ahí con la suma, seguramente, con el tipo de atopaje para ver. Sí, está. Todavía no está. Los datos están en herrados, pero lo voy a revisar más tarde para ver. Para no perder más tiempo aquí en el break lo reviso ahora más tarde. Ahí lo único que tengo es que en el test file del de limit, voy a ver un momento si yo puedo configurar. Este señor me deja. Porque cada vez que voy a ejecutar ese yo, entonces me sobre escribe. Entonces voy a ver. Creo que este test file de limit tiene algo que se llama. En advanced setting del test file output está una opción que dice añadir. Si lo digo añadir, entonces lo que hace es que no me sobre escribe, si no me añade cada vez un registro nuevo. Por si las duda de pronto, porque cada vez que estamos ejecutando, estaba sobre escribiendo. Bueno, este quedó pendiente. Ahora lo reviso en el break para ver por qué no me está dando lo como yo quiero, porque tengo ahí unos errores que estoy viendo de manera lógica. Voy a continuar entonces para no perder mucho tiempo y voy a hacer lo siguiente. Sí, dígame. Ok, buen punto. Vamos a ver. Gracias. Vamos a hacer lo que hice. Para ver. Excelente. Si tiene razón que ese archivo estaba con punto y coma. Muy buena observación. Aquí voy a cambiar el campo. ¿Verdad, Luis? El primero, ¿Verdad? Aquí. A coma, ¿Verdad? El Luis que habló, ¿Verdad? El Luis, ¿Verdad? Sí. No. No, porque el primero, porque como acá la salida está con punto y coma, entonces vamos a ver. Sí, vamos a ver. ¿Qué salió aquí? CrossGear. CrossGear, salió aquí un error. CrossGear, que no lo puede convertir. CrossGear, ahí entero. Extraño aquí. Voy a convertir este string, porque como ese no estoy haciendo. Yo creo que, a no ser usted, si está en cero, claro. Pues gracias. Sí, sí, sí, no me he dado cuenta, hombre. Ve el input no revisé. Revisé todos los, pensé que todo iba a revisar los inputs de, con el Header y ese no lo lo había revisado. Hay un error con el total producción. Parece que está en nulo. Entonces, ignorar aquí y vuelvo a ejecutar para ver. Sí, efectivamente, aquí sí daba, ¿Verdad? Ahora sí está dando. Vea que aquí es la cantidad. Bueno, los cambios que hicimos fue en el input uno, cambiamos el separador a coma y bueno, aquí el Header no lo había colocado, aquí Header uno. Y el T-aggregator row, el dos, le dije que ignorar a los nulos en la operación y lo vuelve a ejecutar para ver. Y me dice, muchísimas gracias. No me había dado cuenta. Muchísimas gracias. Excelente, excelente. Ve el caso suyo, Brenda, que de pronto veo que salió un error ahí. Váyase al input uno, por favor, Brenda, si es tan amable. Váyase su input uno y cambie, listo, perfecto. Váyase su T-aggregator row, el dos, el dos y dígale que ignore los nulos, por favor, en las operaciones. Vuelva a ejecutar nuevamente. Sí, evidentemente, como el separador no lo tenía, no había hecho nada. Todavía sale algo extraño, pero bueno, vamos a ver qué sale. Sí, ahora sí. Bueno, ahora sí, muchísimas gracias. Salió ahí un warning que no sé por qué es total producción. Después lo revisamos a ver qué pasó ahí. Vamos a continuar entonces. Bueno, ya me evitó revisar eso, Luis. Le hizo muchísimas gracias. Sigamos entonces. Vamos a, hoy como está muy de moda esta parte de ya, vamos a hacer un progresamiento con Big Data y al final terminamos con un análisis con y que nos analice la IA. Ok, vamos a hacer eso. Para esta parte, vamos a hacer, vamos a trabajar de esta manera. Vamos a hacer lo siguiente. Por favor, váyase un momento y creo que esa carpeta no sé si la subí. Confirmo para ver. Ese un momentito aquí, la comprimo porque después de tener problemas. Váyase a la carpeta compartida. Cómo hacer la carpeta compartida? Va al escritorio y aquí existe la URL de la carpeta compartida, la URL y colóquela en el Edge porque no sé por qué, no sé, en el cron no está funcionando. Si no está funcionando en el Edge, váyase al Edge. Pegue ahí la ruta que copió y va a haber un, en TDP, recurso, aquí está, aquí está, credenciales OpenAI comprimido y descargue por ahí. En este caso vamos a usar la de OpenAI, la de chat GPT. Vamos a usarla entonces. Descárgese la que está comprimida, por favor, que está dentro de recursos del TBD. Perdón, está directamente en TBD. No está metida en recursos, está en TBD. Descárgese la carpeta, por favor, y la descomprime en la ubicación que usted quiera. En este caso yo la descomprimí directamente aquí en descargas. Perfecto, ahí. Bien, ahora, por favor, váyase ya después que la tenga descargada. Se va nuevamente al talent big data. Y vamos a hacer primero de esta manera. Me ha funcionado esta forma. Como sé que esa IA es algo que podía, el mismo yo lo puedo rehusar varias veces, voy a hacer un joke genérico en el cual tenga las conexiones de esa IA y parametrizo los diferentes elementos como el prompt. Entonces, ¿para qué? Para que después que me funcione, copio todos los componentes y los pego directamente en el joke que voy a usar la IA. Entonces, para esto vamos a crear entonces en AXA. Vamos a crear aquí un otro folder y lo vamos a llamar IA. Finish. Finish ahí, listo. Vamos a crear entonces dentro de IA un joke llamado JokeConnexiónJokeConnexión con conexión Underscore API, Underscore Open AI. Que es el que va a permitir a través del API conectarme entonces a su modelo y poder hacer cualquier pregunta a la IA. Le damos Finish aquí. Listo, perfecto. Entonces, armemos esto por partes aquí ahora. Primero vamos a configurar el payload. El payload es lo que voy a enviar hacia la Open AI. En este caso, pues lo que quiero que me resuelva. Para hacer esto vamos a hacer lo siguiente entonces. Vamos aquí a donde dice JSON, por favor. File en metadata. Vamos a la metadata y vamos a crear una metadata para un JSON. Le damos aquí clic derecho y así le crea JSON esquema. Esto me pude abucionado con un JSON con XML porque traigo un JSON para hacerle variedad que en los ejercicios que no todos sean exactamente iguales. Este JSON lo vamos a llamar PROM, que es lo que queremos que nos resuelva la IA. PROM. Lo vamos a llamar PROM. Next. Va a ser de entrada. Input. En el Browse, váyese a la carpeta que descargó. Y no recuerdo, voy a ver cómo se llama en credenciales Open AI. Aquí creo que el archivo está como TXT, pero no hay problema. En el filtro del archivo, dígale que muestre todos los archivos y escoja el que dice PROM JSON.TXT. El problema que estaba es que tiene al final un TXT como que se me fue ahí. Entonces, cambia el filtro para que le pueda mostrar ese TXT. Coge este PROM. A abrir. Y listo. Ahí le expande. Dele Next, por favor. Aquí, aquí, aquí. Cuando hay el Browse, aquí. Bueno, cuando hay el Browse, aquí se va a credenciales y cambia el filtro, porque el filtro por defecto aquí de Windows está asterisco JSON. El filtro, perdón, del talent está en asterisco.JSON. Lo cambia asterisco asterisco. Y va a tomar el que se llama PROM JSON TXT. Archivo. PROM. PROM. PROM PT. PROM. Listo. Dele Next, por favor, Brenda, si están amables. Browse ahí, exactamente. Váyase a la carpeta que descargó, que debe estar en descarga, no sé. Listo. Entra a credenciales OpenEye y cambia el filtro, el nombre del archivo. Le dice asterisco JSON. Cambia el asterisco. Y escoge, por favor, el que dice plantilla. Ese es lo que se llama. Ese. No, no. Ese, ese, ese. Que pena. Ese que ocurrió PROM. A abrir. Listo. Dele Next. Y configuramos el JSON Pack, que sería de dónde voy a tomar los datos del JSON. Entonces, el JSON Pack es, en este caso, el pack, el absoluto pack sería el asterisco, que sería root. Pase acá el asterisco. Y el PROM lo manda acá abajo. Dele un refresh y debería aparecer un texto, que es el texto del valor que tiene la etiqueta PROM. Ahí se desempeña el papel de un proyecto académico. Algo así dice ahí. Si le muestra el PROM, que es un texto, está correctamente configurado. Démosle Next aquí. Finish. Como la idea es de hacer esto flexible, el PROM va a estar en el archivo que acabo de referenciar. Entonces, váyase ahora nuevamente por el archivo de Windows. Se va a la carpeta credencial que descargó ahora. Y abre con el Notepad. Abre el archivo PROM JSON. Dese cuenta que es un JSON que está ahí. Por favor, en el valor de la key PROM, borre todo lo que esté hasta ahí, hasta el último asterisco. Cierra con asterisco. Abre con asterisco. Perdón. Abre con comillas doble y cierra con comillas doble. Borre todo el texto ahí y coloque algo que quisiera preguntarle. En este caso, vamos a hacerlo genérico y después lo relaciono con algo de Big Data. PROM, entonces, voy a colocar lo siguiente yo. Voy a preguntarle al chat GPT. Necesito dinero. Por favor, dame el número de la lotería. Vamos a ver qué sale con eso. Pregunte lo que usted quiera ahí. Tiene que tener en cuenta que lo que vaya a escribir tiene que estar entre las dos comillas dobles. Y al final, pues, le da a guardar. Perfecto. Listo. Volvemos nuevamente al Talent Big Data y vamos a configurar el formato del Payload. El formato del Payload tiene que tener unos elementos propios que te pide el señor OpenAI. Para esto, váyase al file delimit y vamos a crear un archivo delimitado. File Next y váyase a la carpeta compartida. Váyase a la carpeta que descargó. Dígale que le muestre todos los archivos porque parece que al final me parece que lo coloqué y te quiste a todos. Y coja la que dice plantilla Payload chat GPT. Lo deja un momento ahí para mostrarle algo en particular de eso que está aquí. Esto es lo que yo voy a hacer para poder mandarle al API de chat GPT. Tengo que mandarlo un JSON en este formato. Este que está aquí. Esto que está aquí. Aquí le mando el role, que hay varios roles, y aquí le mando el content, que sería el promo, que fue lo que usted colocó. Yo coloqué necesito plata. Ok. Pero deje cuenta que este content tiene un porcentaje S. ¿Qué va a pasar? ¿Qué voy a hacer con ese porcentaje S? Lo que voy a hacer entonces es lo siguiente, que voy a tomar esto como si fuese un string y hay una función en Java que se llama string format, que lo que hace es que cada vez que encuentre un asterisco S lo reemplaza por el valor que yo le haya especificado en el parámetro que le voy a enviar a la string format. ¿Qué quiere decir en pocas palabras? Que esto lo voy a cambiar el tiempo de ejecución en este asterisco y lo voy a reemplazar por el promo. Pero ya esto es propio de Java, no es de talent. Entonces voy nuevamente aquí al talent big data, que es la que estaba, le voy a dar aquí next. Mire lo siguiente y este es un pequeño truco que hago yo en muchas cosas. Resulta que de la forma en que está esto que está aquí tengo un pequeño problema. El problema que tengo es que note que me está tomando el archivo fila por fila. ¿Si nota? Significa en que si yo lo mando ejecutar este file de límite, me va a leer la primera fila que sería la llave, mesas y fila por fila. Pero lo que pasa que yo tengo que mandar el archivo completo. Hay varias formas de hacer esto, pero me parece esta la más sencilla. Una forma es programando con Java. Yo no quería programar con Java entonces para evitarle eso. ¿Qué voy a hacer? Como quiero mandar todo esto, voy a cambiarle el separador de fila. El separador de fila le voy a dar el por defecto que es en la ene por un, por una roba que no la va a conseguir. Como no la va a conseguir me va a tomar todo el archivo como si fuera un solo stream. Dele refresh aquí y vea cómo te va a leer el archivo en una sola línea. En el caso Fernanda suyo a veces que sale un error, ese no es suyo. Vete para ver el error que tiene, un error extrañamente raro ahí. Quítale, quítale, quítale slash, quítale slash por favor si está mal y vuelve a darle refresh en el preview. Dese cuenta que ahí está salida, dale refresh ahora. Ahí está, el problema era el slash. Si nota que esta carrera es complicada con esos símbolos, solamente con un símbolo, no le funciona algo. No sé si a usted le ha tocado a veces esta noche hasta las tres de la mañana hacer un proyecto y lo difícil que es encontrar un error. A veces que uno no se da cuenta y le manda un símbolo y tres de la mañana uno se da cuenta de eso. Pero bueno, estamos en eso. Si me entiende la idea, lo que lo que hice fue modificar este componente para adaptarlo a lo que quería. Yo pude haber hecho esto de otra forma, pero de todas las formas que he visto esta vez va a ser la más sencilla. Le doy aquí next. Voy a cambiarle aquí el nombre de esta columna, aquí se lo va a cambiar, doy click y lo voy a llamar prompt pt para que tenga más sentido prompt pt y voy a darle aquí un finish. Listo. Ahora por favor haga lo siguiente, mande el prom jason hacia acá y mande la plantilla del del del payload que le puse nombre pronto, sepa que le llave prompt, era payload, pero ya déjalo así. Mande el payload para este lado de tipo input. Mande los dos. Le puse prompt, en realidad era payload. Déjalo así ya en el nombre de columna. Quiero unir estos dos campos, o sea los datos de aquí con los de acá, entonces voy a hacer aquí con un tema. Lo hago aquí y voy a colocar aquí un telo row para revisar que el pelo que voy a enviar está correcto. Entonces voy a hacer aquí, voy a darle aquí prompt, lo voy a mandar para este lado, prompt aquí. Váyase por favor al metadata, es la metadata en el archivo jason que hicimos que se llama prom jason. Lo suelta, lo suelta acá. Listo. Y ahora coloca un tema, si dígame, el telo row. Ahora conecte el tema con el telo row, que todavía no lo he hecho yo, pero conecte el tema con el telo row. Mientras usted lo va haciendo yo lo voy a hacer. Ah, qué pena, sí, sí. Ah, ok, vamos a halarlo entonces. Ahora si yo así entendí que era, que no había pensé que no. Listo. Váyase al archivo prompt, en el file jason está un prompt, le da click, clic sostenido y lo suelta en el canvas. Perfecto, ahí file input. Perfecto, tómalo ahí. Ok. Ahora váyase al payload y es el nombre del archivo, no la metadata, sino el nombre. Exacto, payload y lo suelta en el canvas. Ok. Agregue por favor ahora un tema y un telo row. Telo row, telo row para ver el consola. Ahí lo tienes, el segundo. Perfecto. Une por favor el prompt con el tema y el payload con el tema. Y el telo row lo tira, lo cuenta con el tema. Entonces yo voy a hacer esto lo siguiente. Listo. Y este lo suelto acá con este señor de acá. Es que esta lo voy a llamar salida, under score T, si la llamaste diferente no hay ningún problema. Déjala así, test. El caso de Brenda, te falta conectar el de abajo con el tema. Sí, puede ser. No sé nada más para ver. Nuevamente, colócalo en todo el medio, que no suelte en todo el medio. Tiene que ser, ahí, listo. Suéltalo ahí. Ahí está. Y ahora el tema lo conecta con el telo row y lo llama salida text. Creo que cogió fuerte todo el job. Clic ahí, ahora sí. Salida under score T. Perfecto, listo. Vamos a confundir ahora el tema. Recuerda que el tema, con el tema hicimos un join ahora, ¿verdad? Ahora, dese cuenta que este tema también tiene dos entradas. En realidad que el tema va a ser un producto cartesiano y después hace un join. Cuando tú haces un join, recuerda que tú tienes el, primero se hace un producto cartesiano de todos los elementos. Por ejemplo, yo tengo front, clientes, empleados. Se hace el producto cartesiano de clientes con empleados y el join se hace normalmente en el web o en el front, como tú quieras colocar. En este caso se va a hacer un producto cartesiano, pero no hay problema. ¿Por qué? Porque el archivo front tiene una fila y el archivo JSON tiene una fila. El producto cartesiano son el número de filas de uno por el número de filas del otro. Uno por uno da uno y al final va a soltar una sola fila. Entonces, no hay problema aunque no haga el join aquí. Es decir, aunque no unan estos dos archivos. Ahora mire lo que va a hacer aquí. Abre la expresión esta, créate una nueva variable. Nueva variable. Expande por favor aquí para que te salga un text area de configuración. Y como esto es Java y Senzilla, mayúscula y minúscula, vas a copiar exactamente lo siguiente. Te lo voy a colocar aquí en un notepad para que lo copies allá. Vas a copiar string con S mayúscula string.format. Así. Abre paréntesis aquí. Ojo con la S mayúscula. S mayúscula lo demás es minúscula. String.format. Así. String.format. Lo voy a copiar entonces aquí. String.format. Abre paréntesis. Y aquí el row 2 debí llamarlo payload. Entonces, dale doble clic a este señor aquí. Doble clic. Y si ya te autogeneró el código, situate en null. Si no, dale coma y dale doble clic al pron de arriba para que te reemplace. Al final te debe quedar más o menos algo así. Aquí aclaro que me equivoqué el segundo nombre debí colocarlo payload. Lo coloqué como un momento aquí. Te muestro acá cómo te debe quedar al final. Al final te debe quedar más o menos algo así. Te debe quedar algo así más o menos. Ahí lo que hace es que el porcentaje que te mostré va a ser reemplazado por lo que mande aquí. Perfecto. Entonces, si esto está listo y vamos a comprobar. Vamos a darle aquí ok. Aquí vamos a colocarle como variable. Vamos a llamarlo payload. Y mande este payload de salida a este lado. Después que lo configures, le das ok a todo y vuelve a ejecutar. Y te voy a mostrar cómo te debe quedar, cómo te debió quedar ese payload. La salida que te debe dar debe ser esa. Exactamente, lo único que te va a cambiar es el texto de que tú lo colocaste en el porcentaje. Pero te debe dar. Exactamente. Te da esta salida. Así. Lo que te va a cambiar es el contenido porque quizás le preguntaste algo diferente. Si tienes errores me avisas. Jorge, no sé a veces que tienes un error ahí. Voy a ver para ver el caso tuyo. Bueno, ¿Qué error salió? No sabes. Vamos a ver. Ya existe. Si tú quieres. Es como si lo intentaras. Ah, porque cogiste un tefailo. Entonces intenta escribir. Borra ese componente. Suéltalo, borralo. Ahí con suprimir. Si quiere, seleccione el botón suprimir. Listo. Suéltate el prompt ahora, porque es el prompt del Jason. Pues no, es payload ahora. Y ese es input. Ahí está bien. Dale ok. Ahora conecta el payload con el tema. Vete al tema acá ahora. Doble click ahí. Dale doble click. Vete entonces. Road off. Ahí está bien. Ejecuta para ver. Sí, está bien. Ese es el payload que vamos a ver. Perfecto. Ah, pero me ha dado la misma pregunta. O sea, que el problema de billetes es que todo el mundo, todo el mundo necesita plata. No hay nadie que. Es verdad que todo el mundo necesita. Bueno, vamos. Listo, ya configuramos nuestro payload. Entonces, vamos a hacer lo siguiente. Atendiendo a, creo que es a Beatriz, no sé quién es la que la pregunta mucho con esta parte de buenas prácticas y el log. Voy a dejar a este log aquí. Y voy a agregar ahora unos componentes para ver si conectarme al señor Open Eye. Para esto voy a hacer lo siguiente. Voy a agregar un T-Res Client. Ahí nos llama T-Res. Ese Res viene de API Res. T-Res Client. Y por favor, quiero que le agregues dos Telorow. Telorow 1. Voy a copiar este señor y voy a pegarlo aquí. Esto es lo que necesitamos nada más. Un T-Res Client y dos Telorow. Entra el T-Res Client porque seguramente hay que instalarlo. Sí, efectivamente hay que instalarlo aquí. Vamos a ir aquí a instalarlo. Bajar a instalar aquí. Aceptar todo eso que saca. Ahora conecta el tema con el T-Res Client. Deja el Telorow para revisión. No sé si tú quieres ahí. Lo puedes dejar ahí en Cuba para que te vaya mostrando ahí cómo va. Pero puedes conectar ahora el tema. Conectalo con el T-Res Client. Y lo vamos a llamar entonces. Payload Under Score Open Eye. Y ahora en el T-Res Client te va a salir ahora dos salidas en el file. Pero ahora sí tienes que darle el mejor clic derecho. Tienes que conectarlo con clic derecho porque es cuando saco directamente con las flechitas no me salen las dos opciones. Entonces seleccionas el ícono en la mitad. Clip derecho. Fila. Y la respuesta Response la mandas al Telok de arriba. Significa que si se va por aquel lado el verde indica que hubo respuesta correcta. O sea mandó un 200. Clip derecho nuevamente. Fila. Y el error lo mandas para el Telok de abajo. Perfecto. Listo. Por último nos falta configurar el T-Res Client. Vamos aquí al T-Res Client por favor. Váyase a la carpeta que descargamos ahora y vamos a buscar una URL que está ahí. En la carpeta que descargamos hay un archivito que se llama URL Open Eye. Y ahí está el endpoint. Tome por favor ese endpoint que está ahí. Copiar. Péguelo acá en donde dice URL con las comillas dobles. De esa forma me funciona. Si usted quiere y le gusta esa forma bien a mí particularmente me gusta de pronto conservar algunas buenas prácticas. Dese cuenta que ahí tengo URL y abajo tengo Relative Path. Aunque de esa forma me funciona en realidad que ese endpoint debería dividirlo entre la URL base y el path del endpoint. Entonces como buena práctica debería cambiar, debería cortar este señor desde el, después del .com, copio desde el slash y lo voy a pegar en las comillas dobles de acá abajo. O sea al final si lo deja como tenía le funciona. Lo que pasa es que como buena práctica debería dejar la base del endpoint que sería hasta el .com y después sigo slash, versión del endpoint que sería B1, slash, complejo. Debería quedar así. Me parece que se ve un poquito más elegante. Ya casi para finalizar esta parte, este endpoint que está aquí tiene un verbo de tipo pos. Eso tuvo que haberse visto en un curso que se llama Talent SD, pero no lo alcanzamos a ver, bueno eso. Aquí tengo, voy a cambiar este get por pos. Dígale que el content time que voy a mandar es JSON. Dígale JSON. Y dígale que el tipo de respuesta que va a aceptar es Any. O sea que si desea OpenEye me manda un JSON, un XML como él quiera. No recuerdo, yo le mando un JSON, sí me mando un JSON. Pero por si las dudas dele pos JSON Any. Perfecto. Ahora, ya por último, configuremos los headers de ese endpoint que tiene dos headers. Váyase entonces, note que aquí este menú es muy parecido a los componentes que hemos visto, no cambia. Algunos puede, pero muy raro. Váyase aquí a la Advanced Settings, por favor. Y hay una sección que dice HTTP Headers. ¿Sí la notó? Dele ahí más y permítame y compruebo algo que no recuerdo si lo agregué. Permítame. Sí, aquí lo agregué. Váyase nuevamente al archivo. Váyase nuevamente al archivo que descargó la carpeta, perdón. Váyase donde dice API key y toma la segunda clave que se llama Content-Type. La va a copiar con las comillas dobles. Copia ese Content-Type, por favor copiar. Y la va a pegar aquí donde agregó en el nombre del HTTP Header que agregó la primera fila. La pega ahí, quedaría de esta manera. Y ahora pegue el valor que sería lo que está al lado del Content Header. Lo que está al lado del Content Header que sería esto que se llama Application JSON. Con las comillas doble la copia y la pegue acá. Perfecto. Agregue la segunda y última Headers, agregó una nueva fila, se va nuevamente al archivo y va a copiar ahora, en este caso va a copiar ahora el que dice Authorization, la clave. Y esta autorización de API es con Bitter. O sea, voy a ir el copio, bueno, no voy a meterme en detalles con eso. La pego aquí en el nombre. Y el valor es el que está al ladito que dice Bitter que está con un API key. Ese es el API key de acceso a esa cuenta. O sea, copio desde comillas doble Bitter. Voy a copiar aquí. Y voy entonces a pegarla aquí en valor. Listo. Te quedaría entonces dos Header, uno que dice Content Time como nombre y el valor sería Application JSON. Y el segundo Header sería el nombre Authorization y el valor sería Bitter y una API key que empieza con SK. Listo, pues entonces vamos a ejecutar y preguntarle al API aquí un momento. Voy a probar inmediatamente a ver. Bueno, empezó y me salió error. A ver qué error salió. Un 400. A ver, no sé si a todos salió un error. Voy a ver, verifico el error que está acá. Mesos dices. Creo que hay un error con él. Pareciese que hay un error con el JSON. Espera un momento para ver. Listo, que pena. Que pena, que pena. Váyase al T-Map, por favor. Abre el T-Map si es tan amable. Y ahora en el T-Map este payload que está sale aquí, conéctelo con el string del payload de la variable del request. Este payload se conecta con este string de aquí. Payload de aquí se conecta con el string de acá. Este string que acá es el TRS request. Payload que sale de la variable se conecta con la fila que tiene la columna string. Y me permite y pruebo para ver ahora sí yo nuevamente. Ejecuto a ver. Listo, respondió. Perfecto. Aquí me respondió. Bueno, ahora modifico esto. Aquí dice, lo siento, no puedo posicionar este número de loterías ganadores. La lotería es un juego de azar y no hay garantía de que pueda ganar dinero. Busque aquí donde está el Mechas. Le dice content. Ahora sacamos ese valor de ahí. Content. Y debería responderle. Si quiere cambia el prompt, le da a guardar y vuelve a ejecutar y le pregunta otra cosa diferente. Mientras verifico para ver quién tiene error. Creo que Fernanda tiene errores. Me parece a mí. Si quiere cambia el prompt y pregunta otra cosa diferente. Váyase al room, Fernanda. No se está mal. Váyase al room para ver qué error le salió ahí. No, no, no. Al room este, al room este. Si hay error, vamos al room. Espera un momento. Dele doble clic a cada cosa. Dele doble clic a este. Doble clic nuevamente. Dele minimizar acá. Espera un momentico. Lo volvemos más. Es este de acá. Perfecto. Y aquí minimizo este señor aquí. Perfecto. Vamos aquí al este room. Se nos perdió la ventana del room. Un momento. Show view. No voy a colocarla aquí mejor. Perfecto. Intenta ejecutar nuevamente para ver el room. Para ver. Dele clic ahí en ese logo un momentico ahí. Fernanda, voy a mostrar su pantalla aquí para que algunos. Dese cuenta que hay un error en el caso de Fernanda. Ese error puede ser, Fernanda, en que hay veces que cuando reuse un Telok row, la configuración me queda permanente. Haga lo siguiente, por favor. Borre los Telok row, los dos. Dele suprimir un momento. Y vuelva a crearlos nuevamente. Telok row y otro Telok row. Conecte ahora el Terrace Client. Intente ejecutar nuevamente para ver. Ahora sí. Para ver. Salió un error. Váyase al tema. ¿Cómo sé que salió error? Porque se fue por allá por el lot de abajo. Dele ok un momento. Ok, ahí está bien. Dele ok. Suba por favor un momento. Suba en la parte de abajo, en la perspectiva. Y el error que le salió baja un momento, pero el error que salió ahí se. Ah, Invalid URL tiene la URL mala. Váyase al Terrace Client un momento. Y tendrías que borrar en la URL. Dejala hasta el .com. La URL de arriba. Dejala hasta el .com. Sin el Slash, por favor. Listo. Vuelve a ejecutar nuevamente. Sí te respondió. Sube para ver. Diga response. Ahí se conten el lugar. Ahí te pueden leer. ¿A quién no le funcionó Luis? Se parece que tienes un error, ¿verdad Luis? Vamos a ver qué pasó Luis. Listo. Armemos ya. Terminemos ese ejemplito sacándole nada más la respuesta sin que nos muestre el Luis. Voy a ver el Luis para ver qué tiene a ver. Ya que le cargo un momentito la ventaja. Listo. Listo. Ese is null. Vete un momento al temaco un momento. Vete al tema. Ah, listo. Dale ok. Fíjate, con Luis voy a hacer algo que tengo la mala, tuve la mala práctica de por tiempo de no cambiarle los nombres a row uno y row dos. Luis para que sea buena práctica y como la buena práctica me ayuda a resolver el problema. Cambia row uno. El row uno de la línea de row uno. Dale click en row uno de la línea y cambia la payload. En row uno dale click ahí. Nuevamente click. Cambia ese que se llama payload. Payload. Payload underscore uno porque ya parece que hay una allá. Dale una list. Enter por favor. Cambia ese row dos y colócale como prompt. Vete a tu tema. Te digo cuál fue el problema. El problema que hay es que como yo usé como referencia row uno y row dos. El problema es que tu row uno y tu row dos es diferente al mío. Me explico de esta forma y para que todos entiendan. ¿Por qué? Porque el que yo tengo, yo tengo primero el Jason y abajo tengo el delimite. Tú tienes al revés. Entonces tu row uno y tu row dos no te daba igual a los row uno y row uno y row uno y row dos. Entonces cámbiate por favor y vete al prompt. Después del paréntesis del format. Borrate la variable prompt prompt o nada más deja los dos paréntesis mejor. Borrate esa variable. La até también y coloca inmediatamente ahí. Colócate la de ese día payload prompt. Payload uno prompt ahí. Borrate la otra por favor y coloca exactamente prompt prompt. Dale ok ahora e intenta ejecutar ahora para ver. Ok dale ejecutar. Listo ahí te da respuesta. Si quieres sube por favor. Ahí te mando un Jason de respuesta. La que diga content. Hello. Ahí tiene la prompt. Porque nada más te respondió como si estuviese vacío. Vete al prompt un momentico al archivo prompt. Para el prompt. Ese prompt Jason. Que raro. Enmuestra nuevamente el teyup. Métame el. Sube para ver el modelo que enviaste el payload sube. Te cuenta que el content te lo envió nulo. Entonces vete a tu prompt un momento al prompt que tiene, pero el prompt de archivo. Rompete. Pareciese que estuviese bueno. Vete al tema un momento. Dale nuevamente el tema. Dale nuevamente el tema. Quítale el join que tienes ahí. Mira que uniste ahí con el join. Entra ahí y elimina porque ahí te va a dar vacío. Elimina con suprimir. Dale suprimir. Si quieres elimina ahí todo. Dale ok. Intenta ahora sí nuevamente ejecutar para ver. Ahora sí se envió. Te cuenta que el content sí lo envió. Mira para ver ahí el content ahora y si es que te responde. Lo siento, no voy a usar la autoridad de ganadores. Te recomiendo. Te recomiendo que busques trabajo. Seguramente va a decirte. Bueno, listo. Bueno, fíjese que ahí colocándole la depuración para poder ver algunos mensajes me sirvió. Bueno, otra opción que se me ocurrió también para quitar esto en producción es que dejes el JOK aquí con los elementos para verificar que todo esté bien y en producción tú puedes coger este T-Lock Row, le das clic derecho y aquí hay una opción que dice desactivar este componente. Entonces desactivas este componente y pues cuando lo ejecutes en producción ya eso no se mostraría ahí ese resultado. Por último ya vamos a terminar este ejemplo para esta base para poderlo conectar con Vita Data. Ese cuenta que me está mandando el Jason. Entonces ese Jason que está ahí me lo está como que no puedo ver el resultado completo. Por favor, vamos a hacer lo siguiente. Entonces ahora vamos a agregar lo siguiente. Vamos a agregar un componente que se llama T-Strat Jason de extraer Strack. T-Strat Jason. T-Strat Jason. Y nada más, quite por favor la línea. Esto fue lo mismo que le pasó a Fernanda, hay veces que pasa, yo no te es, para mí es un pequeño voice. Pasa lo siguiente, vea. Este T-Lock Row ya está configurado con esta salida de aquí. Entonces a veces se queda pegado a la entrada aquí. Entonces vamos a intentar hacerlo para que no salga robo. Borre esta línea de aquí, que no me deja darle clic aquí, esta línea de aquí borrela. Meta de forma intermedia aquí el T-Strat Jason de aquí y conecte el T-Rest Client ahora al T-Strat Jason File. Conecte después el T-Strat Jason al T-Lock Row. A veces como el T-Rest Client está conectado con alguien diferente, un componente diferente, puede que salgan algunos errores. Pero para mí que es un pequeño voice que tiene ahí. Esto fue lo que se salió a Fernanda. Ahí lo mejor entonces es borrarlo y volverlo a crear nuevamente. Bueno, listo. Entonces permítame y explico en profundidad. Voy a coger este Jason que es la respuesta que tengo aquí. Mira este Jason que está acá. Este Jason es la respuesta completa hasta aquí. Voy a copiar este señor. Pero un momento que creo que estoy excediendo. Un momento por favor que me aparece.
on 2025-01-27
language: ES
WEBVTT No sé qué me está pasando con los... Y permítame, y voy a acceder aquí a un Jason Editor aquí, Jason Editor, voy a pegar, no sé, yo creo que lo copié, supongo que lo copié, ahí está, lo copié, este carácter demás. Y este es el Jason de respuesta, este es el Jason. Entonces, para poder extraer lo que yo quiera, ese, como se llama, extraer Jason, extraer Jason, voy a extraer un elemento del Jason. En primer lugar, me toca colocar el JasonPath. El JasonPath tiene que empezar desde el Rook. El Rook es todo el archivo. Entonces, voy armando lentamente el, cómo es el JasonPath, lo voy a armar aquí en este non-path que está acá. Entonces, primero voy a decirle, oye, empieza desde el Rook. Permítame aquí, que tengo, aquí me están saliendo unos mensajes que no me dejan ver y analizar directamente. Listo, acá listo. Mira lo siguiente. Coloque ahí, vamos a configurar el extra Jason, por favor. Entonces, para configurar ese extra Jason, haga lo siguiente. Váyase aquí nuevamente al señor Big Data. Váyase al test extra Jason. Aquí le pregunta si puede, si lo desea leer con JasonPath o XPath, como es Jason, mejor recomendarle a JasonPath. Y aquí donde dice JasonPath, por favor, escoja body. Si es tan amable, body, que es la respuesta. Perdón, la respuesta acá no es body, es string. La respuesta es la banda en la variable string, no in body, qué pena. Como que el amor se me está dando a string. Acto seguido, edite el esquema que está aquí, editar el esquema. Borre todos los elementos que están aquí. Borre todos los que están aquí. Agregue uno nuevo que lo va a llamar respuesta de tipo string. Lo borre y le da respuesta. Le da ok. Y te debe quedar más o menos así como está aquí en la... Voy a colocarlo aquí a mejorar aquí en el centro. Después. Ahora, el JasonPath que te voy a colocar aquí, si quieres borra esto, nada más deja las comillas dobles. Lo vas a colocar ahí dentro de las comillas dobles, el JasonPath que te voy a especificar ahora. Perfecto. Entonces, te voy explicando más o menos cómo quedaría ahora sí. Listo. Entonces, esto lo tenía aquí. Primero, voy a especificar el root que sería todo el archivo. Entonces, para especificar el root, tú lo haces con el símbolo, coloca más grande aquí, más o menos lo tienes así, el símbolo pesos. Eso estoy indicando que estoy haciendo referencia a todo el archivo. Dese cuenta que lo que quiero sacar es content. Pero content está metido dentro de mesas y mesas está metido dentro de un array de una clave que se llama choice. No sé si lo alcanzas a ver ahí. Quiero sacar este content. Este content está metido dentro de mesas y mesa está metido en el primer elemento del que se llama choice. Entonces, ¿cómo hago para referenciar? Digo, eh pa, eh pa, ve acá, haga lo siguiente. Ya estoy aquí en el, en el root. Después en el root tengo que entrar primero a choices. Entonces, le digo choices en minúscula porque es sensible este condenado. Choices. Abro corchete indicando que este señor es, es un array. Le digo, en el primer elemento, o sea, en la fila número 1, estoy hasta aquí, ve. Voy cerrando aquí un par de cosas aquí para que te des cuenta por dónde voy. Entré al root y estoy por aquí por choice, que es lo que estamos acá. Choice, en la posición cero. De la posición cero voy a entrar aquí y voy a entrar a esto que esto que se llama mesas. Entonces me queda más o menos así. Punto. Mesas, así. Y ese es tu Jason Pa. Entonces, este Jason Pa que está aquí, lo voy a colocar acá. Copio este señor aquí, copiar. Y lo pego aquí, en el centro. Listo. Ve que estoy aquí. Estoy aquí en mesas. Ahora, en mesas que quiero sacar, la variable que se llama content. Y aquí es donde entra juego, es lo siguiente. Oye, desde aquí voy a empezar a sacar. ¿Qué quieres sacar acá? Entonces, acá en el Jason query, que está aquí, le vas a colocar el nombre de la clave desde ese punto que va a sacar, que se llama content. Y te quedaría más o menos así. Ojo, que el señor es sencilla, mayúscula y minúscula. Tiene que estar exactamente. Voy aquí entonces, intento ejecutar para ver, para ver qué sale. Debería solamente mandarme la respuesta nada más que necesito. Ya el Jason ese, no debería mostrármelo todo. Y vea, aquí está. Solamente me manda la respuesta. Lo siento, no puedo posicionar este número de comentarios, pero es lo que me gustaría. Te recomendaría jugar de forma responsable y no depender de la suerte para obtener dinero. Claro, cómodo. No, no, no se preocupe, claro que sí. No sé si le muestro esto más grande aquí. Esto, eso que está aquí en el en el loop Jason Pat es esto que está acá, en grande. Y acá es content. Ahí se lo dejo entonces. Me te cae las dos minutos buscar un poquito de agua, ya vengo enseguida. Bueno, volví nuevamente. No sé si tiene alguna duda por ahí. Quiero ver quién me habló. Brenda, Brenda, Brenda. A ver qué pasó. Seleccione por favor del lado derecho, del lado derecho, del lado derecho. Seleccione ahí y a la no en la selección de la fila de la equidad de la equidad de abajo. No, no, pero ahí no sé. Lo que hace es que si quiere seleccionar todas. Un momento, un momento, yo me conecto y le explico un momento. Me conecto de forma interactiva para poder mover. En primer lugar ahí tiene esta fila seleccionada, verdad? Entonces aquí en esta es que la borra. Si quiere varias tiene que darle con control, pero aquí en la primera columna está que está vacía para seleccionar toda la fila, porque aquí lo que hace es configurarlo. Aquí seleccioné las dos y ese cuenta que hay la borra. Ahí agregue, por favor, déle ahí más y agregue la que se llama respuesta. Dele ok, dale enter a ver si acostumbres. Ok, ya está ahí funcionó. Y ahora va a sacar de esa ruta que está ahí, va a sacar el item que se llama conten entre comillas doble y dice Jason Query de lo de clip. Jason Query al lado de respuesta entre comillas dobles con lo que conten, comillas dobles que cierran. Enter ahí y procede a ejecutar para ver. Debería ahora solamente mostrarme la respuesta. Ahí me mostró el Tello Grow que tenía y ahí está la respuesta. Un profesional de data science se encarga de recolectar lo que dice. Si quiere, por favor, el Tello Grow, ese Tello Grow que tiene ahí, colóquelo, seleccione Tello Grow, el que está acá abajito, el primer hito, el que está al lado del tema, el Tello Grow número uno, clic derecho y desactívelo para que no nos muestre y lo activamos cuando tengamos algún error. Ese es de desactivar la primera opción, ese que está ahí y ahora si lo ejecuta no se ejecutaría ese Tello Grow. Perfecto, ahí está la respuesta. Listo, ¿quién más? Bueno, permítame y este ejemplo me da pie para alguno que me preguntó de cómo hacía para cambiar en tiempo de ejecución los nombres del archivo. Yo le dije con una variable de tipo global y este ejemplo lo termino también para el que me preguntó del Tello. Muchas veces de pronto tienes un error y quisieras que te mande una advertencia a un correo o a un celular. En este caso voy a mandar un correo electrónico, es decir, voy a mandar la respuesta a un correo electrónico. No lo voy a enviar aquí por consola sino lo voy a mandar a un correo. Para esto entonces agregué lo siguiente, agregué un componente que se llama T-Send de enviar, T-Send Mail, Send de enviar en inglés, quite, bueno todavía no lo quite porque primero a ver si funciona. Dele doble clic aquí, instale aquí los componentes que sean necesarios. Aceptar, listo, descarga, perfecto. Vamos a configurar este T-Send Mail que no vamos a demorar mucho aquí configurándolo, listo, doble clic aquí para configurarlo. Entonces me dice vamos a configuración, primero tú a quién lo va a enviar, envíeselo a su correo personal, si estás amable, envíelo a su correo personal, en este caso yo me lo voy a enviar, a John J. H. O. N. Jaime Mendes Alandete, arroba email.com, a quién, D, por favor haga lo siguiente, el D, de quién es, váyase nuevamente a la carpeta de recursos del que la tiene en el escritorio, aquí tenemos recursos, y ahí está algo que se llama credenciales correo, entra el archivo credenciales y la cuenta es la que está ahí, esta de que tengo de ejemplo, tome esta cuenta, copiar y en el front, o entre comillas doble, vas a colocar la cuenta, entre comillas doble, no esté con copia, lo voy a quitar, dice con copia, yo creo que se va a usar ya, con copia, con copia oculta, eso no se ocupe, subject, vamos a colocar aquí entre comillas doble, voy a colocar el mensaje que en va a colocar aquí solamente test, inicialmente, ahora le agrego el mensaje que me envía la IA y configuremos las credenciales, yo después de configurar esto, baje a la configuración, por favor, bueno no voy a colocar archivos juntos, nada de eso, voy a enviar, listo, no va a mandar here y entonces vamos a configurarlo, la cuenta original que es la que colocamos acá arriba, que fue la que copió el archivo, es de Gmail, entonces, el proveedor SPT de Gmail es smtpgmail.com, es decir, cambia la palabra provider por la palabra Gmail, te quedaría como smtp.gmail.com, ahí tendrías que saber cuál es el servidor de correo, porque si es el de Aulu, tiene que ser smtpaulu.com y no sé si el puerto smtp que tienen por ello es igual al de Gmail, habría que dar igual, entonces te quedas y el puerto smtp que está escuchando, ese equipo es 587, necesariamente para el servidor de correo necesita un TLS, entonces tienes que darle clic aquí en start TLS Sopor, porque si no no funciona, bueno aquí le colocan la importancia del email, si es alta, bueno déjela normal si usted quiere y vamos a autenticarnos entonces, la cuenta es la misma del from, entonces voy a copiar aquí este señor que fue el from, lo voy a copiar y lo voy a pegar acá abajo, donde dice username y por último la contraseña recordará que estos servidores de correo ya necesitan habilitar una contraseña para que una aplicación tercera se pueda conectar, en este caso la contraseña no es la misma contraseña del correo, sino una contraseña que generé, para que se pueda conectar un tercero, entonces voy aquí y voy a copiar la contraseña, que sería esta que está aquí, copio y la pego dentro de las comillas dobles pendiente a eso, pego la dentro de las comillas dobles, ok y conecte inicialmente el TLR, conéctelo con el send email, aquí es lo que vamos a probar si nos envía el correo y ya después vamos a hacer como hacemos para mandar la respuesta que nos envía el señor OpenEye, bueno procede a ejecutar, aquí no es más nada, procede a ejecutar, voy a estar pendiente a mi correo, voy a abrir aquí mi correo gmail, ya no ha empezado, vamos a empezar a ejecutar, listo, ya finalizó y acá tengo el correo, tengo acá curso tv de AXA y tengo test, por favor verifica ya que le funciona y le llega el correo que usted ha configurado, si es tan amable para decir si tiene algún error, Beatriz noto que tiene un error voy allá para ver, dele ok por favor, si usted quiere la mejor forma, porque de pronto ya yo lo veo y le reconozco, cuando usted tenga ese error y ese no tenga, ya usted sabe que el error está ahí en ese componente, parece que el error es de compilación, si usted quiere comprar de esta forma, váyase al co, recuerda que en la parte de abajo está un designer y un co que está aquí como al final del canvas, está designer y co, está que no sé si ve mi mouse aquí, designer y co, es co donde dice co, es co donde dice co, si aparece un punto rojo es un error de ejecución, es un error de compilación, vea que tiene un punto rojo, dele justamente clic en ese punto rojo, ahí lo tiene, mejor como buena práctica en el punto rojo del lado derecho, exactamente, pero la próxima dele mejor clic en el punto rojo del lado derecho, hazlo para que vea, el punto rojo que está del lado derecho, no el de izquierdo, es el izquierdo en el lado derecho, dele clic y lo va a llevar justamente a donde está el error, se lo marca, para eso nuevamente al designer, acceda al test email y en el punto rojo tenía que ir entre comillas doble, nada más ve un punto rojo, asumo que nada más es, por favor vuelve a ejecutar, listo, creo que ya busca su correo para ver con certifique de que le haya llegado, perfecto, bueno finalizo este para la pregunta de cómo resolvería la pregunta de ser dinámico, por ejemplo algunas cosas como el nombre del archivo que iba a generar en el clúster, entonces esto me sirve porque aquí tengo un problema que tengo que resolver de esa forma, cuál es el problema que me toca resolver, resulta que este componente test email no recibe datos de entrada, o sea no le puedo mandar un dato de entrada a test email, entonces qué voy a hacer, voy a usar una variante global, la ventaja que tiene con las variantes globales es que se mantienen durante toda la ejecución del job, entonces que voy a hacer, voy a crear una variante global y desde este componente referencia a la variante global, por qué lo tengo que hacer así, porque el test email no recibe entrada, entonces para resolver este problema voy a hacerlo de esta manera, quita este row 2, este que está aquí, no lo quité, que raro que aquí hay veces que me queda como que voy a ser al ingeniero, voy a cerrar y volver a entrar porque parece que me quedó como la interfaz como extrañamente rara ahí, voy a voy a verlo abrir porque cuando lo borré me quedó así como, me borró la línea pero no me borró el icono. Listo, entonces ahora sí quedó eso, ahora voy a buscar un componente que puede que ya está un poco más especializado pero puede que lo necesites, que se llama un tjava row, tjava row. Conecta por favor el test JSON al tjava row y el tjava row lo conectas al test email, perfecto, vete ahora al tjava row, dale doble clic, tjava row, vete a donde hice editar esquema y veamos los archivos que están entrando, aquí está entrando un archivo que se llama respuesta, ok, mucho ojo con el nombre, mucho ojo con el nombre que usted le haya dado, porque si lo colocó con grega de mayúsculo tiene que ser exactamente igual, entonces vamos a definir una variable que aquí ya la definí con un componente que se llama tjava global, voy a hacer la variable global por código, en este código si usted quiere borrar ese comentario que está ahí y lo voy a colocar acá para que lo vea mejor, aquí lo voy a colocar, va a colocar el siguiente código, se referece de la siguiente manera, exactamente igual, ni más ni menos, global mat con la n mayúscula porque ya por defecto utiliza camel case, punto put y abre paréntesis y espera un momento ahí, global mat punto put, global mat punto put, ahí en el código, es decir, lo va a colocar aquí, doble clic en tjava row y aquí va a copiar eso que está ahí, ahora el primer parámetro que va a colocar dentro del paréntesis, llámelo como usted quiera, yo lo voy a llamar de esta manera, respuesta, el nombre variable como usted quiera y ahora aquí voy a colocar, es decir, este es el nombre de la variable que voy a guardar un valor, entonces recordará y aquí es importante que tenga pendiente que es lo que está entrando aquí, aquí está entrando respuesta todo en minúscula, entonces aquí le va a quedar de esta forma, voy a referenciar esa variable que me va a llegar de entrada, voy a hacerlo de esta manera, como la referencia le das input under score row, punto nombre variable que en el caso mío se llama respuesta todo en minúscula, respuesta, ese es para crearla, ahí por ejemplo, ahí puedes colocar los nombres de archivos de lo que tú querías, el valor que tú quieres, global punto put respuesta, input row respuesta, esta es la variable con que entra y este es lo que con la que va a salir y le puedes colocar el nombre que tú quieras, voy a coger este global y lo voy a pegar en el tella barro y lo pego aquí, ahora voy a hacer el test en mail, al test en mail por favor, dale a doble clic al test en mail, ahora vamos a referenciar la variable de aquí en el mesas que es donde me interesa, yo la puedo referenciar donde yo quiera, vais al test en mail y el mesas como es una variable que voy a referenciar ya no va entre comillas dobles, quite todas las comillas dobles y va a colocar lo siguiente, ahí va a colocar, ahí vamos a referenciar la variable para recuperar el valor que tiene, va a colocar lo siguiente ahora, va a colocar global map punto get el nombre de la variable que sería lo que estaba entre comillas dobles, resulta que esto me lo envía en java como object y el man espera un string, entonces se me toca hacer una conversión extraña aquí, tu en minúscula tu string, así exactamente como esté ahí, la única mayúscula aquí es la M y la S de acá, que vuelvo repito porque lo hice de esa manera, porque sencillamente ese componente no permite entradas, entonces muchas veces me toca estas variables y en tiempo de ejecución tú la puedes cambiar cuando tú quieras y la referencia cuando tú quieras, copio aquí y pego acá en el test en mail, bueno entonces ya simplemente vamos aquí en el room ejecutamos, tengo un pequeño error, vamos a ver, este error tiene que ser de compilación, por lo tanto voy aquí al code a ver qué pasó, aquí tengo un punto rojo que me indica, a que este van, espérate un momentito que no me acuerdo, ah qué pena, cuestiones ya sé, váyase al teyaba row y en el teyaba row cada sentencia tiene que terminar en punto y coma aquí, se me olvidó un punto y coma aquí, termine con punto y coma ese global punto put, al final colóquelo un punto y coma, que se me escapaba que ahí me toca colocar punto y coma en ese teyaba y volvemos a ejecutar para ver, listo, voy a ver a mi correo y la respuesta tuvo que haberla cambiado, se me perdió, sí ya me llegó, listo, aquí está y esta es la respuesta de OpenAI, lo siento no puedo proporcionar números ganadores de lotería, te recomendaría trabajar duro, retenerlo y ser un gasto para mejorar tu situación financiera, a ver a quién no le funcionó OpenAI, veo Brenda que tiene un error, vamos a ver, dele ok por favor, vele ok, váyase directamente al code si es tan amable para que nos ubique inmediatamente, al code acá donde dice designer, no sé si ve mi mouse, acá abajito dice designer y aladito dice code, dele clic en code por favor, para que nos especifice cuál es el error exactamente, vea que te hay un punto rojo del lado derecho, dele clic justamente en ese punto rojo para que nos ubique donde está el error, no, el derecho que está como en el centro, un poquito más abajo, el de más abajo, ya lo vi, ese, ese que está ahí, no lo vi yo justamente en el centro, dale el punto rojo, creo que hay un poquito más, ahí, ah listo porque da la casualidad que el get no necesita punto y coma, entonces váyase, váyase al designer, perdón, no es el get, es el componente que no requiere punto y coma, dale el designer, dale el designer ahí, vea realmente el tcmail, doble clic al tcmail y quita el último punto y coma que hay, en ese componente no es necesario, ejecúmate en el tellaba y vuelve a ejecutar por favor, ahora vamos para ver, con respecto a la respuesta le digo cuál puede ser ese word, mire para ver si le respondió, deje para ver, verifique para ver si le respondió, deje para ver ese warning un momentico que puede ser, yo estoy acabando dejando el momentico, parece un momentico, este componente no tiene suficiente row, no, no, no, no le veo cuál es el warning ese al final, no le entendí ese warning, ahí sé que no tiene suficiente entrada o algo así, bueno pues le funcionó aquí por lo tanto que está, después verifico para ver qué pasó ahí, si usted quiere para finalizar y de la forma cambiarle el prompt, vaya a hacer el archivito a la, donde tiene las credenciales, donde tiene el prompt y vamos a cambiarle algo, credenciales open eye, ese de aquí, este prompt que está acá lo voy a, listo, vamos a ver algo que nos preocupa, cuéntame del futuro de la programación con relación a la IA, listo, guardo el prompt y debería entonces responderme y mandarme al correo eso, voy a volver a ejecutar aquí, listo, aquí ya me llegó, ahí responde, el futuro de la programación en relación con la identidad es muy prometedor, la IA está reaccionando a la forma en que se desarrolla el diseño de la aplicación y sistemas informáticos del futuro, se espera que la programación con ella se convierta en una habilidad indispensable para desarrolladores de software, la IA está siendo utilizada en una amplia variedad de aplicaciones, ahí está, creo que eso no funcionó, ahora lo que hay que hacer es que vamos a tomar ese ese archivito, perdón, ese job y lo vamos a integrar, primero que se procese con IA y después con lo que se puede hacer con IA, entonces al final se analice con, perdón, que se procese con bitdata y al final que se analice con IA, todo no funcionó, veo que es un error, Fernando, voy a ir para ver, sale Null, Null Ponta, ah, listo, primero vete al Teya Barrow un momento, dale clic al Teya Barrow, listo, ahora vete, dale editar esquema ahí un momento, editar esquema, perfecto, listo, ahora vete a tu test email, que problema está en el test email, o sea, no, qué raro que te haya pasado, si está diciendo que el variable que está referenciando está nula, un momento a ver, un momento para ver, respuesta, respuesta, input, aquí está, qué raro, voy a copiar por si las dudas, el nombre de esta variable, no sé si de pronto, yo la vi igual, .get, luego al mat get, voy a intentar ejecutar nuevamente para ver, aquí lo que está diciendo es que esta variable no está creada, o sea, como si esta variable no lo hubiese creado en este punto y la intenta referenciar acá en este punto de acá y no la encuentra, eso es lo que está diciendo, pero lo raro es que en este punto se está creando, voy a colocar aquí de manera estática cualquier cosa, a ver si de pronto el problema la responde, si, si, ¿dónde está el qué? ah, no, aquí está bien, porque aquí sería para Java, no, no hay problema aquí, el problema es que no intenta, no está encontrando a este señor de aquí, voy a colocar aquí de manera fija aquí, parece el problema es la respuesta que me está dando OpenAI, hola, aquí estoy pudiendo la variable, puto, y acá la estoy recuperando, como si esa variable no la estuviese creando en ese punto, fíjate que ahora sí no hay problema, creo que tu problema viene, vamos a ver, ah, entonces esta respuesta iba nula aquí, aquí falta un content y la mandaba nula para allá, content, aquí este content y ahora sí, como no estaba referenciando la variable que quería sacar del JSON, la mandaba nula y entonces cuando la recuperaba estaba en null, vamos a ver aquí, ahora sí, vamos a ver, revisa por favor ofretando a ver si te llegó algún correo, a tu cuenta de que configuraste aquí, perfecto, listo, bien, el problema era que faltaba esa pequeña configuración ahí, pequeña, era una palabra nada más, al final uno dice no, no funcionó, era una palabra que no, por una palabra no te funcionó, sí, por eso no funcionó, bueno, nos vamos entonces al break y volvemos en una hora entonces, nos volvemos, feliz provecho, buen provecho, perdón, buen provecho y nos vemos en una hora entonces. Buenas tardes nuevamente, sí, estamos conectados, espero que haya tenido un buen almuerzo. Sí, listo, perfecto, gracias Luis, Jorge Luis, gracias. Bueno, vamos a continuar entonces, el último ejemplo que hicimos fue conectarnos desde un job al OpenAI, en este caso Lapid OpenAI, para que nos ayude con las UAR sobre algunos problemas, vamos entonces a integrar esa parte con Big Data, cómo sería la integración, para este caso vamos a hacer un ejemplo sencillo, dese cuenta que en algunos casos cuando tú utilizas Big Data, como el caso, por ejemplo, de Netflix, aunque la gran cantidad de datos sea bastante alta, al final los resultados que buscas con Big Data son pequeños, por ejemplo, Netflix lo que está buscando es hacer recomendaciones muchas veces, bueno, en tiempo real y al final esas recomendaciones son de 10, 20, quizás 30 títulos correspondientes a lo que ha analizado contigo, es decir, el resultado es poco comparado con la información de entrada, entonces pasa mucho en algunos casos con el Big Data. Vamos a hacer lo siguiente, ahora vamos a suponer que hay una empresa que le está metiendo un poco de ya a sus ventas, por ejemplo, esa empresa es una empresa que tiene sede, es un supermercado, y tiene sede prácticamente en toda Colombia, pero no solamente en una ciudad, sino en una ciudad puede tener cuatro sucursales, entonces tiene gran cantidad, entonces lo que está haciendo esa empresa es que ellos, por ejemplo, analizan sus ventas, las que más venden y lo que menos venden, y meten y analizan con Big Data un poco que hago análisis cultural de poder entender por qué se puede comprar más y se puede comprar menos, y al final después llegan a conclusiones en que hay productos que se venden más en una ciudad que en otra ciudad, entonces cuando tienen bajo el stock está muy alto, si tienen mucho, mucho producto, entonces empiezan a repartirlo por diferentes partes de Colombia hasta que vendan el stock completo. Partiendo de esa idea, vamos a hacer lo siguiente, ahí tengo un archivo de supermercados, vamos a sacar lo siguiente, los 10 productos que menos vendo, y voy a decirle a Open Eye que me ayude con una estrategia para poder vender esos productos, entonces vamos a lo siguiente, busquemos, qué pena, vamos a buscar aquí en el browser, vamos a acceder a los archivos que tenemos en el clóster de Hadut, y confirmemos que tenemos un archivo que se llama Supermarket Sales, ahí está, sí, ahí está, Supermarket Sales, venden de supermercado, perfecto, ahí está, vamos entonces a hacer lo siguiente, vamos a sacar los 10 productos menos vendidos en una ciudad específica de ese archivo, por qué lo quiero hacer con una ciudad específica, para mostrarles cómo se hacen filtros acá, entonces para este ejercicio vamos a hacer lo siguiente, Empresamiento Big Data, por favor, agregue lo siguiente, agregue aquí un nuevo job, aquí, job listar 10 artículos menos vendidos, listar 10 artículos menos vendidos, me interesa ese número 10, porque con el 10 voy a agregar otros componentes entonces, aquí le doy Finish, y por favor, cópiate de un job cualquiera, cópiate el T-Preyot que tiene la conexión, el T-Preyot que sería, bueno, voy a entrar a cualquiera de estos que tengo aquí, T-Preyot que haya hecho con Hadut, entonces voy a copiar este T-Preyot de aquí, listo, aquí está, lo dejo aquí entonces, primero como vamos a leer el archivo directamente de Hadut, recuerde que todo lo input yo pues necesita de un esquema de entrada, entonces el truco cual sería acá, vamos al file delimited, y vamos a crear una metadata hacia este archivo, para poder tomar el esquema de esa metadata, entonces vamos a darle aquí file delimited, vamos a llamarlo supermercado en inglés, en español perdón, supermercado, next, browse, y busque en el escritorio recursos, recursos en el escritorio, al talent bin data y entre dataset, csv, supermarket sales, ahí está, está separado por coma, para tenerlo en cuenta que gracias, fue Luis que me dijo de los errores que teníamos, lo había dado cuenta, coloque aquí que lo va a separar por coma, aquí en separador de campos, semicolon, y que tiene encabezado, dale un refresh por favor, archivo supermercado, lo puse en español, listo, ahí parece estar bien, no, sí está bien, no, voy a dar un refresh aquí, no sé si me quedo, estoy viendo bien que, no, parece que, cuál es el archivo de separación ahí, no sé, ah claro, estoy viendo mal acá, acá es coma, separador es coma, y ahora sí, ahora sí lo tenemos entonces dividido por columnas, perfecto, bueno, vamos a darle aquí next, y aquí me voy a hacer la exportación, cuál sería el botón que está de penúltimo, y voy a llamar entonces, esto lo he colocado en temporal, voy a llamarlo entonces, supermercado.xml, listo, lo hice aquí, separado por coma, ok, recuerda que está separado por coma, listo, acto seguido vamos a colocar un hdfs input, voy a colocar ahora un tema, y para este caso no lo quiero mandar a Hadut, porque el resultado lo voy a mandar ahí ya, ¿por qué no lo mando a Hadut? Porque el resultado va a ser muy pequeño, son 10 registros, es lo que te comentaba y por eso te hice la introducción de Netflix, Netflix al final puede ser muchos datos, pero al final llegó con, el resultado son 10 o 20 registros que produce, entonces, y aquí voy a formatear hacia un tfile input delimited, bueno, continuamos a ver, conectamos entonces el input con el tema, espere un momento que me falta aquí un componente, porque después no voy a llegar, agregue aquí un, espere un momento, me necesitamos aquí un, the shorted row, y se me escapa, necesito un t-aggregator row, porque necesito hacer unas sumatorias de ese archivo, t-aggregator row, sí, qué pena ahí, listo, necesito un t-mat, un t-aggregator, un t-short y un tfile input, y me faltó aquí otro componente que quiero agregar, aquí le estoy dando complejidad para que la mayor cantidad de componente, un tfilter row, tfilter row, tfilter row, de filtro de fila, tfilter row, bueno, aquí estoy intentando agregar, aquí voy a agregar prácticamente el tfilter row como elemento nuevo aquí, voy a optar por la segunda forma de crear el job, voy a conectar ahora, no voy a conectar todos los componentes, porque todavía no estoy seguro del orden, este recién me lo acabo de inventar ahora para poder agregar algunos componentes, entonces voy a ir agregando a medida que vaya configurando entonces, vamos a lo siguiente, vamos a configurar el t-map, el archivo de supermarket está de esta forma, voy aquí a supermarket, voy a buscar los datos de supermarket para verlos, y entonces vamos a hacer algo interesante para hacer el filtro, descargas, está aquí en escritorio, recursos, tvd, data sets, ccv, y se llama supermarket, este archivo, aquí está un par de columnas que son la ciudad y el género, voy a complicarlo un poco más, voy solamente a analizar cuáles son los diez productos menos vendidos en una ciudad y por un género, en este caso, yo voy a escoger, bueno, vamos a escoger la ciudad Yangon, aquí Yangon, no sé de dónde será eso, de la India parece, voy a escoger la ciudad esta, Yangon, así como está, y ahora hay una columna que se llama gender, en el caso particular, si usted quiere, está male y female, yo voy a analizar los productos que menos compran los hombres, si usted quiere, las mujeres si quiere analicen el producto que menos compran, los diez productos que menos compran las mujeres, female, aquí lo que va a cambiar es, si querés male, vamos masculinos, usamos male, y si querés femenino, usamos female, entonces vamos a filtrar lo siguiente, cómo hacemos un filtro, bueno, ahora sí vamos, primero, en el hf input vamos a configurarlo entonces, para esto voy a importar el esquema, que ya había exportado, que se llama supermercado, ok, yes, acto seguido, voy a decirle que voy a hacer una conexión existente, y voy a referenciar el archivo que se llama supermarket, perfecto, bien, acto seguido entonces, voy a filtrar filas con temat, hay dos formas de filtrar aquí filas, una la podemos hacer con el temat, y otra la podemos hacer con el te filter row, entonces voy a hacer una parte de filtro con el temat, para que sepa cómo funciona el filtro con temat, y después filtro con el te filter row, y ahí le queda el ejemplo con las dos, entramos aquí al, sí, muchas gracias, encabezado, y está separado por coma, gracias, y aquí en separador, que habíamos cometido este error, está separado por coma, gracias, sí, sin depender, no nos da, vamos entonces aquí al tema, y cómo hacemos para filtrar en el tema, entonces aquí me toca filtrar con el lenguaje de programación java, para esto entonces, mire aquí la entrada que tiene como row 1, que como buena práctica hay que colocarle un nombre, pero aquí al lado de y le va a abrir un texarea, ok, texarea, ahora en esta va a colocar la sentencia de filtro, con el lenguaje de programación java, cómo hacemos esto, quiero filtrar por ciudad y por gender, entonces voy a subir city, lo selecciono aquí, y lo subo, que es sostenido, lo suelto aquí, me queda row city, vamos a ver entonces, seguramente porque la extensión de pronto pudo ser que la colocó, no está en temporal, no, vaya temporal un momento, ten, haga lo siguiente entonces, sale que se debe cancelar un momento, vamos a volverlo a exportar entonces, vaya a cancelar, vaya a supermercado, abra el, escoja metadata, no, dele cáncelo ahí, escoja metadata que es la que está debajo del supermercado, abajo del supermercado dice metadata, dele click ahí metadata, click derecho ahí ahora, editar esquema y ahora el penúltimo botón que exporta, ese de ahí, y ahora colóquelo, lo va a mandar a csv, ojo que lo va a mandar al escritorio, para que esté pendiente, supermercado, si colóquelo para que sea organizando un supermercado, punto xml, dele guardar, dele finish ya listo, dele finish y nada, ahora si vayase al input, hdfinput, dele editar esquema, ahí al ladito de esquema, al primerito, al ladito de esquema, está editar esquema, este de aquí, eso, dele ahora el penúltimo botón, y ahí debe estar, ahí está super, no, se llama supermercado, no, se llama supermercado, el último, supermercado, eso, dele abrir, ok, y ahora si, dele que si, si entra el tema, debería aparecerle las filas entonces, ahí donde aparece row 1, dele click en la flechita que está al lado de row 1, por favor, la flecha de la entrada que dice row 1, del lado izquierdo, aquí, aquí una flecha esta que está acá, esa flecha de darle click, eso, ahora tome city, lo selecciona y le da click y lo suelta en este text area, listo, ahí tenemos, aquí resulta que me toca, listo, me toca entonces con java, entonces presto la función siguiente, como esa, esa función es un tipo stream, no puedo comparar con igual, entonces note que tiene lo siguiente, tiene row 1, punto city, creo que así más o menos, ahora para poder comparar le digo, tengo dos formas, si le digo equals, compara en caso sensitivo, significa en que si yo coloco así, como que se llamaba la, la ciudad se llamaba, como que se llamaba, se me escapó el nombre, Jan, espérate un momentito que se me escapó el nombre de que le di a la ciudad, se llamaba, Yangon, Yangon, entonces si por ejemplo, si yo busco Yangon con equals, con esta ye y esta con ye, mayúscula pues no trae nada, esta es una forma si sepas que está de esa manera, si tú quieres asegurarte independiente como esté, puedes comparar aquí con ignore case, pero como yo sé que está de esta forma Yangon todos los registros, vamos a usar equals, entonces en pocas palabras, vamos a escribir ahora punto, aquí, punto equals, abre paréntesis, comilla doble, Yangon, con en, aquí lo escribí yo mal, te queda de esta manera entonces, te quedaría así, tienes que agregar esta parte de aquí, no, no, ahí no va punto y coma, el punto y coma normalmente se lo pide en el te llavarró ese que te dije, en otras partes no te lo va a pedir, buena pregunta porque hay veces que uno se confunde y a veces se le coloca ahí, ahora como es que estén en Yangon y que sean hombre o usted colóquenle aspersand que es el I en java, doble aspersand y toma gender y lo suelta acá y le va a dar aquí punto equals y coloca en este caso yo colocar male, si usted quiere colocar female, male con en mayúscula, ahora te digo cómo te queda y a la pregunta sin, bueno, sin de punto y coma, te va a quedar así, la expresión te queda de esta manera, un momento que lo copio nuevamente, que no lo copio, te queda la expresión, te va a quedar así, esa es la forma en que vas a filtrar con un temat, bien, entonces ahora lo siguiente, vamos a darle aquí ok y una, el temat con el aggregate row, entonces coloque aquí importe, perdón, importe cantidad productos, le vamos a sacar ahora el importe de la cantidad que he vendido por productos en ese filtro que hice, importe cantidad productos y ahora sí entra nuevamente al tema, expande un poco más acá a la derecha, no me está dejando, el mouse no me está funcionando, bueno, de este lado tienes que mandar el product line que sería el nombre del producto, ahora sí me dejó y manda por favor quantity que sería las cantidades de producto, hagamos aquí una variable para practicar un poquito también con esta variable, suponte que quieres enviar el, digamos, el cuánto asfalturado, porque cada fila es una factura, cuánto asfalturado por cada, en esas ciudades, entonces vamos a crear aquí una variable, vamos a llamar la variable total, colócale tipo doble, esto lo agregué aquí es para practicar con este señor aquí doble, vamos a multiplicar la cantidad por la expresión unitario, entonces cómo hacemos, entra aquí a la expresión, después que hayas definido doble y total como nombre, accede a la expresión para que te dé un text área y acá busca lo que quieres, entonces si yo un input le doy doble clic y multiplico con asterisco y busco acá quantity y esto me daría entonces el total vendido, ok y pasa ahora el total de salida para este lado, damos aquí en ok y entra por favor a configurar el T aggregator row, listo editamos esquema y vamos a definir las columnas que necesitamos, recuerde si las columnas van a mantener el mismo nombre pues puedes tomar estas que de entrada y la manda a salida, si son nuevos los nombres pues simplemente las creas acá, en este caso quiere que conserve el mismo nombre, voy a mandar nada más product line y voy a trabajar con total mejor para hacer una operación de suma aquí total y nada más mando estas dos de este lado, mando product line y mando product total, lo hago porque esta manera porque quiero conservar los mismos nombres si no pues creo las variables con el más como hicimos un ejemplo y listo, ok vamos a agrupar por product line por favor y acto seguido vamos a coger el total y vamos a sumar los valores de la columna total que está como entrada y dale clic y no la null porque en realidad no sé cómo están los campos eso y para evitar algún error posible que tenga. Ahora voy a aplicar la misma técnica que apliqué en algunos que voy a ordenar de en este caso ahora de mayor de la menor 20 a la mayor y saco los 10 primeros elementos para que me quede ordenado, entonces voy aquí ahora al T aggregator row y voy aquí al T shorter y voy a ordenar por el total de manera ascendente me quedaría de menor a mayor, listo nada más necesito eso ordenar por el total, digo que es numérico porque el valor que entra es numérico y digo ascendente ahí para que salga de menor a mayor o sea ahí tendría de los que menos se vende a los que no lo estamos usando no lo usamos al final no decidimos nada más usé el momento voy a tu pantalla por si acaso de pronto esa no la pregunta si nada más a porque segura no te aparece da lo que hay un momentico te explico porque no te aparece ok da lo que hay un momento si está mal vete a tu tema por un momento al tema por lo siguiente tú en este caso tienes dos salidas y te das cuenta tienes una que se llama importa cantidad producto y una que tienes importe cantidad product sin la o si no estás ahí verdad si si no estás ahí verdad listo perfecto dale ok un momento ahí para no sé si expandes un poco el T aggregator row lo eché un poquito más a la derecha para preguntarte algo ahí date darte cuenta que la salida que tú usaste es la que se llama sin o y la que no tiene o tiene los productos no tiene la el campo cantidad si notaste entonces qué puede hacer ahí borra esa salida de ahí en la flecha borrarla vuelve a unir el tema con el T aggregator y ahí te está diciendo dos salidas que son las que tienes entonces coge la salida esa que es la productos y suéltala en el T aggregator row dale que es nuevamente entra al T aggregator row porque seguramente se desconfiguró entra editar esquema y un momento si cogimos la que era ahí si está raro un momento un momento para ver déjame yo te me conecto un momento aquí pero es que esto tampoco se nos se nos dañó la configuración aquí bueno en pocas palabras si te das cuenta en el movimiento que hicimos perdimos el quantity si tú quieres haz lo siguiente permítame y yo te agrego aquí no sé si o tú si puedes importe cantidad de productos que el que está amarillo está amarillo porque el que está usando del lado derecho amplía verticalmente un poco y manda quantity ahí manda ahora quantity no sé por qué se nos dañó la dale ok ahora y vete al T aggregator row vete a editar esquema y acá está quantity la moraleja es que no te aparecía es porque la entrada de la salida del componente anterior no estaba ese quantity en pocas palabras aunque no estamos usando lo que buscaba era que entendieras porque no te no te aparecía ahí bueno vamos a dar ahora sí bueno ya dale ok un momento ahí dale ok configura el agrupar por dale clic en más en agrupar vas a agrupar por product line no eso no el product line no ahí es revés borrate el product line abajo y el de arriba el total borrablocks agrega vamos a agrupar por product line dale clic ahí y abajo en las operaciones vamos a el total vamos a la función de suma perfecto ahora vamos a ordenar manda el te agrega y te al te show row más confiado el te show row dale ahí más y vas a ordenar por total cámbiate ahí darle clic en la línea product line le das clic ahí en la product line la columna product line y coge total enter por si acaso y ascendente perfecto listo entonces preste atención lo que voy a hacer aquí y esto lo voy a hacer de esta manera para que entienda para poder incluir este filter row entonces me va a quedar más o menos los datos de la siguiente forma me va a quedar line product line y me va a quedar total como está ordenada de menor a menor a mayor aquí me puede decir el primero que aquí tengo producto x total vendido pudo ser 10 producto y total vendido pudo ser 15 y voy a sacar los 10 primero estos ponzón n que están aquí y voy a sacar los 10 primero para sacar esos 10 primero me voy a valer de los siguientes voy a agregar en este elemento un número de fila row row number ya te digo cómo lo voy a agregar voy a decir la idea que tengo significa que esta sería la fila 1 la fila 2 y la fila 3 como quiero sacar los 10 primero y así sucesivamente hasta el final como si lo sacaron los 10 primero voy a hacer un filtro de tal manera que solamente saque las filas donde este valor sea menor o igual a 10 y de esa manera saco los 10 primero esto lo estoy haciendo de esta manera para incluir más elementos y ver cómo pudiera funcionar el te filtró cómo agrego este row number bueno te ron nombre aquí voy a agregar otro tema tema tema aquí voy a hacer este voy a seguir acá abajo para que no me quede tan tema y voy a agregar aquí una nueva variable agregue una nueva variable tipo entero y vamos a colocarla en español a no quita en inglés entonces va a colocarla en inglés row number el nombre del de la variable row number número de fila número de fila y ahora en la expresión vamos a buscar una función que no hemos usado nunca hemos usado funciones de acá vamos a usarla vea la sesión de categorías que ese matemático no perdón en numéric busca la que se llama la categoría numéric de esta parte en numéric y hay una que se llama sequence secuencia dele doble clic por favor y eso es lo que tiene es que me genera una secuencia empezando de 1 con incremento de 1 numéric dele doble clic aquí para que la parezca listo le da ok dese cuenta que acá no hay una salida vamos a hacerlo diferente que fue lo la forma en que lo tenía fernanda para hacerlo un poco diferente a lo convencional vamos a definir una salida aunque todavía no conectado el componente define aquí dele un más aquí llame aquí la salida va a colocar salida on the record con número de fila he cambiado un poco el orden de la de hacer las cosas quizá de pronto te gusta más esta manera ok y te aparece este señor que está aquí espándalo verticalmente creo que bueno mandará row number y ahora creo que para espandirlo verticalmente tengo que mandar no sé me parece que hay veces que funciona o no y mando estos tres dos elementos acá quedaría row number product line y total le damos ok dese cuenta que el tema que estaba libre no está no estaba conectado con nadie ahora vamos a conectar el tema con este filter row dale clic derecho por favor fila y le aparece la salida que ya configuramos anteriormente como ya la habíamos configurado con esa salida y lo conecta con el te filtró diferente forma de hacer lo mismo ya casi por último vamos a configurar el te filtró este te filtró no sé no se configura a diferencia del tema porque el tema lo configure por codificación en yaba acá confesión del componente entonces aquí tengo las columnas aquí tengo si tengo varias columnas las puedo unir con y o con or en este caso solamente va a tener una condición vamos a agregar aquí un más aquí en la condición del filter row en esta función no le voy a agregar aquí funciones que pueda aplicar a los números no voy a aplicar ninguna función y voy a buscar un operador que sea en este caso menor que perdón menor o igual que es el último que está ahí menor o igual a 10 menor o igual a 10 conecte el te filter row ya y aquí le va a aparecer con te filter row tengo algo interesante en que puedo escoger los elementos que filtro y los elementos que rechazo en este caso quiero los elementos filtrados que a este archivo de acá al te que aquí me equivoqué aquí no es un te filter no te file input es un te file output porque de salida que ven aquí borre el te file input y cambielo por te file output delimited ahora sí te file output delimited ahora si los filtrados lo manda al te file output delimited vamos al te file output delimited y vamos a hacer el mismo truco que hicimos allá con el con el cambio de nombre vamos a buscar un archivo que esté en la ruta que queramos es decir vamos a mandarlo a temporal voy a coger cualquier archivo que está aquí y le voy a cambiar el nombre le dejo la extensión csv y le digo aquí entonces productos donde record menos donde record vendidos termina configurando aquí dígale que incluye el header si no le digo en añadir significa de cada vez que lo ejecute va a sobre escribir y voy a hacer en el avance setting aquí puede cambiar la codificación del archivo está normalmente pero me interesa aquí está por defecto un truss que está señalado por defecto truss anero se lanza un error si ya existe quítele por favor ese ese chulito para poder ejecutarlo n veces lo que hace es sobre escribirlo bueno vamos a ver si tenemos algún error vamos a ejecutarlo para ver voy a intentar ejecutarlo a ver si no sale ningún error bueno parece que está empezando está leyendo bueno aquí no hubo ningún error al parecer lo raro fue que lo único malo es que el tema el filtro que coloqué nada más yo sé registros el filtro que me coloqué hay mil hay mil registros el filtro de sacar por por hombre y por por yangon y género y mail nada más me da 179 después que lo lo lo como es que es lo lo agrupo 6 hagamos lo siguiente saquemos nada más en el te filter row para ver que funcione saque nada más los tres primeros cambia el te filter row por 10 cambia lo menor o igual a 3 para ver si me está sirviendo el filtro vamos a ejecutar nuevamente a ver y debería nada más al final salir 3 parece si está funcionando y perfecto si funciona el filtro 3 voy a ver la salida entonces para ver cómo quedó sería en temporal lo que sería cómo lo llamé lo llamé fue produce menos vendidos editar ahí está product line total hagamos algo vamos a quitar ese ese round number porque carece de sentido para que me quede un archivo mucho más limpio entonces para quitar ese round number de la salida hacemos lo siguiente entonces de que me desconectó es un momentico para quitar ese round number de ahí momento por favor como todos estos elementos de input y output tiene esquema voy al te file output voy al esquema vea que este esquema está en una posición diferente está en la parte de abajo voy aquí editar esquema y voy a quitar de la salida el round number que no me interesa y solo utilicé como comodín y nada más dejó product line y dejó total ok voy a ejecutar nuevamente Alejandro, tienes algún error que parece que vi que no sé si vuelve a ejecutar para ver perfecto aquí ahora sí ya solamente tengo las dos columnas que requiere entonces aquí me está diciendo que los productos que menos compran los hombres son accesorios de moda verdad de salud que belleza y el tercero que menos compra que es raro son accesorios electrónicos bueno ahí está no sé voy con usted Luis que tiene un error allá pero es un momento ahí listo normalmente cuando aparece esa ventana es por un error de compilación entonces dele ok un momento ahí dile ok para ubicar ese error de compilación vayas al co de el que está al lado del designer la parte esta que está aquí en el co este de aquí si es tan amable y hay varios puntos rojos vayas a los puntos rojos que directamente a los tres que están a eso que está ahí vamos a listo ahí si quieres saber el error que le está marcando del lado izquierdo si se da cuenta tiene el mismo rojo verdad dele click en el rojo del lado izquierdo y dice exactamente le hice el error le en el rojo del lado izquierdo le click ahí dice este método compare string no es aplicable argumento entero vamos a ver listo hay un problema de formato bueno se vamos al designer ahora vayas al tema el problema del siguiente si se da cuenta el número de secuencia usted lo mandó de tipo string entonces cambia el tipo aquí en la expresión de la variable a entero y hay una particularidad que cuando cambia aquí no me cambia hacia adelante como algunos casos dele entera y vayase al round number ahora que está en la tabla del lado derecho no todavía falta corregir ahí vayas el tema porque se cuenta ahora que en la salida ese round number que tiene que ubíquelo en la parte de abajo cambio también a integer dele ok ahí vaya por favor ahora al te filter row un momento vayase a editar esquema y ahí la entrada tiene que estar entero round number entero listo perfecto ahora vuelve a ejecutar si está vamos a ver ah ok vayase al te show row el show row ese que está ahí vamos a ordenar hay errores le explico de por qué el error resulta que online es tipo string y usted la quiere ordenar como si fuera numérico entonces ese es el error ahí lo podemos corregir nada más cambiando string si usted quiere cambie el tipo de datos perdón alfanumérico alfanumérico y ejecute ese es el error que le está apareciendo vuelve a ejecutar para ver ah perdón dele enter a veces a veces pasa que no le toma entra nuevamente el te show row para ese tomó el cambio así lo tomó ejecute nuevamente para ver ahí sale error cuando lo que pasa es que él intenta hacer cuando es numérico como que hace un algoritmo especial para ser lo más eficiente del ordenamiento entonces por eso que yo asumo que tiene que haber coincidencia ahora sí ahora sí está bueno por favor vamos yo no terminamos este templo mañana vamos a seguir con hay mañana hago el ejemplo de lo que quedé pendiente que no me alcancé que era la de las versiones en la versión en las versiones de un job mañana lo ejemplifico y puedo mostrar algunas cositas del talent studio entonces vamos a hacer lo siguiente cierre por favor el talent big data a cierre por ahí la ventana porque lo que más me interesa a mí ahora es la máquina virtual por favor que le de clic derecho y le de guardar no apagar sino guardar guardar perfecto y si son tan amables me apagan la máquina virtual bien antes de despedirme va a comentarle algo es costumbre por parte de su empresa solicitan en que se haga una evaluación del curso entonces el día de mañana
on 2025-01-27
language: EN
WEBVTT Thank you very much. Thank you very much. Thank you very much. Thank you very much. Thank you very much. Thank you very much. Thank you very much. So we're going to start with the example from yesterday, in which we're going to integrate the Big Data part with IA. How would we do that integration process? At first, we had already done a job that allowed us to connect to an IA and ask questions. The idea now is, let's say, to integrate some work done with Big Data, and then we can do an analysis or some projection using IA, in this case, the OpenAI. Next, we're going to continue with Hive, which is an engine. Basically, Hive is used a lot to form Data Warehouse or Data Lighthouse. And we continue with Spark, although with Spark I'm not going to give an example. I'm going to show you how it's done. Actually, it's very simple in the commercial version. It's nothing out of this world. And we end then with, oh, well, I'll give you an example of what the version part would be like with the proprietary tool. And we end with the part of the study case, evaluable. In the end, then, we do it in the last two hours. We're going to continue then, as I mentioned with the first example, which was the integration of Big Data with IA. For that, then, I'm going to connect now to the virtual machine, which I haven't connected yet. I'm going to see here. I think I started it. Yes, perfect. I'm going to share the virtual machine. It's here. Perfect. And the first thing we're going to do, then, is we're going to upload the Hadoop cluster that we have in Hyper-V. Then we go here to the direct access of Hyper-V, the administrator, and I just give it to start. Perfect. And I should leave it in the state that the virtual machine had yesterday. And then we're going to upload the one in Big Data, which we have here in the desktop. And that's it. Those are the two initial tools that we're going to see. We're done with this example. We're going to add a new tool called Hype, as I was saying. For that, I created a container. In this container, I have version 4 of Hype. I have to explain how the architecture is, how it's currently installed in each virtual machine. Let's go over here. Done. And there are some that are going up. There are some that already have it. Perfect. There are some that already have the one in Big Data installed. Perfect, then. Perfect. Here, then, it has gone up. And we're looking for the last job we did, which was to get the three products less sold. And we had made an initial filter by city and by gender. Particularly, I took as a city Yangon and as a male gender. We're going to look for that last job we did, which is here in the Big Data project. And it's called listing 10 products less sold. But in the end, with the filter, I had six records left. So we ended up only filtering the last three, that is, the three less sold. Perfect, then. Here I have that part. Done. I'm going to wait for some to be here. Well, this job, what it does, I had commented on a case with Netflix, and it's something very popular with Big Data. Normally, Big Data is used a lot for real-time or almost real-time in the case of Netflix, which analyzes everything you do. There may be a large amount of data that is going to be processed, but in the end, the result can be 10, 15, 20 records, as in this case. For this job, take into account that we take as an input from the Hadoop cluster, and remember that when we take as an input from the Hadoop cluster, what the tool does internally is that it converts that to MacReduce, and it would execute it against the cluster that you have configured. But this job has something in particular in that the output is sent directly to a file. From the fact that the file has few records, I think it lacks a bit of sense to send it to the Hadoop cluster, given the fact that they are 10 records and I can easily handle it as a traditional job. So that's why I sent it directly to a file and I didn't send it directly to the Hadoop cluster. Let's do the following then. Let's configure our PROM for this part. To configure this PROM, let's do the following. Go to the folder that we downloaded yesterday which is called Credentials OpenAI. To vary a bit and also so that it doesn't damage the PROM that we had with the previous job, we are going to create a file with a new PROM, so that we have the two PROMs. So there is a file that says prom.json.txt. Please take that file and take out a copy. Copy. If you want, paste it there. So here I am going to change the name. PROMPT. I am going to call it PROM less sold items. There I made a mistake of leaving it in TXT, but remember that the tool has no problem with that part. In the end, what it does is change the filter, but the important thing is the internal format, not so much the extension that it has, because the tool can read it. The idea of this is to create a new file so that it does not damage the previous job and also to see how we would do to change the initial configuration that we had of the metadata, because we are going to have a new file. For this, then, we are going to enter the new file. Well, I'm going to write a PROM. PROMs are not very good at these PROMs. I'm going to write a PROM. I don't know if you want to write one of your own or follow me in the writing of this PROM. Remember that by the format of the file, we are going to write the PROM in the double quotes. So I'm going to start this way. I have a company that sells products in the city of Yangon, I don't know what it's called, I don't know, it sounds like India. I have a company that sells products in the city of Yangon to men and women. I have a company that sells products in the city of Yangon to men and women. Currently, men consume little of the following products. And here is where the trick comes from, but this trick is going to be done with Java. That is, I am going to insert the data that the Big Data brings me just after that product. Give it two points. This is important, regardless of the PROM that you want to do, you are going to put the following, percentage S, percentage S, two points, percentage S. That percentage S, what it's going to do is that in execution time, I'm going to replace a string where that percentage is. Currently, men consume little of the following products. I want you to make me a sales plan taking the cultural and socio-economic part of the region. If you want, I'll send you the text that I put here. Well, I don't know if you want to do it. The important thing is the percentage S. That percentage S has nothing to do with talent, it's more about Java. There I sent you the PROM through the chat. Please remember to save it. And I repeat, the PROM, just in case you are writing it. I started this way, it is not the best PROM, but the idea is the exercise of how we integrate it. I have a company that sells products in the city of Yangon to men and women. Currently, men consume little of the following products. I want you to make me a sales plan taking the cultural and socio-economic part of the region. The percentage S is important. Perfect, ready then. Let's save it here. Let's go back to Mr. Talent Big Data. And look what we are going to do now. We are going to take the job. We open the job base from yesterday. We made the one from yesterday. It is called Job Connection API Open AI. And copy all the job. I think if you right click, it gives you to copy all the job. Right click on the sub job you have there. And you have to copy all the elements of that sub job. And you are going to paste it just like that. Yes, here it is. And you paste it in the bottom part. You paste it in the new one which is the Job List 10 less sold items. It could be a generic job given a file but I don't think I have time for that generic job. Try to place it well down here so that it doesn't get confused. I am going to close I am going to add a little more here and I am going to minimize here in a minus that I have here so that it is more expanded. Let me know then if there are some that are still ready. Perfect. First, I am going to modify the PROM. Why? Because the PROM now I have to add a different element now. So look what I am going to do here. The line that connects the PROM with the T-Map, you are going to erase it. The PROM connection line with the T-Map. But there is still a moment that there are some that are still organizing the moment to see. It seems that a moment has been left. It seems that there is a moving window that does not allow to move here. Give me a moment then and I enter interactive to see something. Ready then. Super weird. Oops. I am going to close then the engineer let's see because how weird that happens. A moment to see then. Wait a moment please the others. I do not know why I have the CPU so let's see here. Let's try to open again. I think it is the JOK I do not know. There was another JOK to see. This is weird. It was here. I think it was the tab. A moment please. Being honest I do not know what happened there. But let's try to open the other again. Being honest I do not know what happened there. Let's try to open the JOK a moment please. Let's try to open the JOK a moment please. Being honest I do not know what happened there. Being honest I do not know what happened there. I am going to copy this man and paste it. I click here and correct the error. I do not know why it happens there. Remember to click here because it seems that the perspective is not damaged. I do not know why. Ready then. We start from this point here. First what we are going to do there is a file called PROM which is the one that connects to the theme. Please, the connection line remove it because we are going to format that PROM. Notice that now when you disconnect it it no longer belongs to that JOK. So if there is any problem to be able to connect it, lower the JOK a little so that this PROM is free up here. Later when you reconnect it there is no problem to be able to put it in this JOK. Just in case. Now we are going to place a file. This file that I generated here which is the one I want to integrate this file that is out is the one I want to read to integrate it and send it over there. This is not finished. So do the following. I am going to do I am going to export this man. He is an example. I am going to export this JOK. And I share this JOK with him. Perfect. I am going to share it here in 10. Perfect. And now let me share this 10 here. Here is the local project. Wait a moment. It didn't generate it correctly. Wait a moment. Export item. Here it is. JOK connection API. Perfect. Perfect. I am going to compress it. And I am going to upload it to the shared folder. If you wish, go to the shared folder. I think I have an open Gmail connection here. I don't know. I am going to try to send it here to my team and it is faster for me to upload it here. I am going to try to see it. Done. Let me download it here in my team and upload it immediately to the shared folder. I already told you how to export it. To import it. If it stays there. Done. I am going to present your screen to see how we can import it. Who called me? Brenda, right? Yes, Brenda. I am on your screen. Go to the shared folder. Access the Edge. Open your Edge browser. I think it should be in the history. It should be there. There it is. Perfect. Close that window, please. From the right side. That one is perfect. Now download that one called Job Connection Open. Done. Go to Downloads and unzip it, please. Now go to the Big Data tab and it is located in the Big Data tab. Right click there. Give it Import Items. Select it, please. Now I got confused. Did you have the Open Eye one? Or was it missing the three? Which one was missing? Ok. Choose the Open Eye tab. Job Open Eye. Select the tab. Wait a moment. It was missing the other one. Wait a moment. Yes. Wait a moment. Ok. Wait a moment. I am going to export this one. This one. Go to the shared folder again. Wait a moment. It is going to be here. Download the one called F5, please. The one called Job Listar 10. There it is. Job Listar 10. Less sold items. And unzip it again. Perfect. Now go to the Big Data tab again. Right click there, please. But wait a moment. You have to delete it. Because I think it is called exactly the same. So delete the one you have. If you have to close it before deleting it, you have to close the job. Close it. Say no. And delete it. There is a small problem with the tool. Even if I have deleted it, it won't let me create it with the same name. Delete it there. And at the end, it says to delete it. Delete it from the folder because it is still in the folder. Delete it from there. Exactly. Delete forever. Now try again. From the folder, click in. Import item. Look for the download folder. It should be called Job. That would be that folder. Select folder. Exactly. Select everything there. Click on local project. Select everything. It is in the AXA folder. Open it. Wait a moment. Perfect. If you want, go to the AXA folder. Go to the AXA folder. It is there. Go to the AXA folder. Go to the Aprovesamiento Big Data folder. And take it. And upload it to Aprovesamiento Big Data. And upload it. And upload it exactly so it stays in the route. Now delete the folders that were left there. Delete it. And now go to Job. Click on 10 less sold items. Finally, copy the whole Job connection API Open Eye. It has it there. Right click. We are going to copy everything. The best thing is to right click on the blue part. Within the blue part of the right click there. Copy it. Ready. And paste it here. Ready. It stayed more to the left. There it is. Continue more to the left because I need you to delete something. Select the prompt component. That prompt that is there. Select it. Click there. And it is going to delete it. It is going to delete the prompt connection line to the subject. Now go down a little bit to the sub job because later you won't be able to select the prompt. Go down the complete sub job. Click on the blue and go down. No, directly in the blue. No, in the blue. There it is. Well, there it is. It minimized it. Now it maximizes it. There in the plus it maximizes it. In the plus it has the theme 3. In the theme 3 it was minimized. In the theme 3, give it more there. Better go down a little bit. Select it with the click. Go down. And it is going to delete the prompt. There it is. Well, let's go then. If we continue with this part. This is the window. Perfect, done. I told you then. The data that I want to send to Mr. OpenEye is in this file that is here. I already told you why I didn't send it to Duque. It makes sense because it is very small. I want to read the data of this file. I need a tefile tefile input. We add a tefile input delimited. Well, here each one organizes it a little differently. I need a theme. I am going to configure this tefile input delimited. Remember that the inputs and outputs need a scheme. Like the scheme that I need, I have it in the tefile output. I go to the tefile output and I am going to export the scheme. Everything that is input and output is going to find this edit scheme. What is going to vary is the position in which it is going to find it. So we give here edit scheme and we do the export. In this case it would be the penultimate button. I am in the tefile output delimited. We are going to call it menos vendidos.xml Importante el xml because then it does not read it. Venas menos vendidos. Menos vendidos.xml We give here save. And what we do is import that scheme that is already exported. We import it in the input. Edit scheme. Importamos y buscamos menos vendidos. Ahí está. Dígame. Ok, aquí exportar. Ok, perfecto. Listo. Bueno, listo. Y por último, del tefile output delimited copie la ruta del archivo de salida y la va a pegar en el input porque voy a leer exactamente el mismo archivo. Entonces voy al output, copio la ruta del archivo de salida y es la que la aquí la borro y la pego aquí. En este caso recuerde que estos componentes cuando es un stream debe llevar comillas doble. Solamente hemos visto dos casos en que solamente, perdón, un caso en que no necesita comillas dobles, que es cuando creer contextos. Cuando dice la parte final. Ah, sí. Sí, la de salida, sí, exactamente. Aunque de verdad que estoy mal que la salida es igual a la de salida. Es diferente a la salida. Exactamente. Menos vendidos.xml pero está en descarga. No está en temporal. Tendría que buscarlo después que está ahí en descarga. Y después lo importa en el file delimited. Parece que le falta agregar el component de file input, exactamente, de file input delimited. Entra al esquema del file input delimited. Listo. Ahora por favor vamos entonces a unir el prom con el TMAG4. En este caso a mí me marcó como TMAG4. No sé si de pronto usted le marcó con el mismo nombre. Conectamos el prom y el file input delimited con el tema Como el orden puede influir con el caso, creo que fue de Luis, no se fue Alejandro que de pronto lo colocó en un orden diferente. Para saber cómo lo vamos a organizar vamos a cambiar el nombre de la flecha que es importante como buena práctica. La flecha que conecta el prom con el TMAG4 la voy a llamar plantilla on the record prom PT Recuerde cómo cambiarla, le da click y después nuevamente le da click. Y la que conecta el file input con el TMAG4 la voy a llamar resultado big data. Listo, perfecto. Ya estamos terminando esta configuración. No queda mucho. Vamos ahora entonces de aquí donde juega muy importante para lo que tenga en cuenta a nivel práctico este señor que había colocado como porcentaje S. En ese porcentaje S voy a reemplazar el valor que me devolvió el big data. Entonces, ¿cómo hago eso? Me voy nuevamente a mi talent mi talent big data voy al TMAG4 y lo voy a configurar. Voy a agregar aquí una variable el nombre, la variable la voy a llamar prompt el nombre y va a ser tipo string muy pendiente cuando cree esas variables porque el tipo tiene que coincidir con la expresión. Si la expresión devuelve un entero pues el tipo tiene que ser entero. En este caso la expresión va a volver un string. Por último entonces vamos aquí a lo siguiente. Hay un pequeño un momento que no me va a salir de la forma en que aquí me toca hacer un pequeño cambio. Un momento a ver si lo hago aquí directamente. Pero un momento a ver, me toca hacer aquí un pequeño cambio porque de si lo dejo de esta forma solamente me va a leer fila por fila y como hay tres registros me va a hacer tres llamados a lo que hay. Me va a tocar hacer aquí un pequeño cambio para adaptar que este file input delimited en realidad en realidad que este file input delimited solamente me lea todos los registros para que envíe todos de un solo llamado al OpenAI. Me va a tocar hacer aquí una pequeña modificación disculpa vamos aquí a la metadata mejor y lo hacemos acá. Vaya aquí a file delimited y va a crear un archivo delimitado acá en el metadata. Ahora salte un momentico Alejandro, ahí vamos a crear en la metadata que aquí fue un error mío aquí inicialmente de vamos a llamarlo ahora a este nuevo archivo, vamos a llamarlo salida big data big data vamos a darle aquí next busque por favor el fichero donde quedó creo que en el caso mío quedó sin temporal se llama producto menos vendido dale por favor next no le digas que tiene encabezado ya le digo, déjelo así sí dígame ya voy un momento claro que sí listo antes se lo voy a compartir inmediatamente no le coloque encabezado y le voy a decir cuál es el truco que quiero hacer. Esto lo pude haber hecho de una forma más complicada leyendo el archivo pero creo que esta es la forma más fácil de hacerlo quiero leer todo el archivo en un solo llamado o sea en una sola fila porque si lo dejo así por defecto el componente de este file input me lee fila por fila ya un momento, ya lo recupero entonces lo que quiero es que todos los registros se lean en una sola fila entonces el truquito un momentito ya le pongo esto acá ya lo descargo acá y lo voy a colocar entonces en talent td4 listo puede descargarlo en la carpeta compartida mire si ya le aparece del f5 ¿qué te parece? déjame para ver así, ya está, un momento no es cierto un momento que pasó aquí es el momento que no lo me la veo y ahora mire para ver si le aparece o no ok, por favor, descargue mire lo siguiente por defecto dese cuenta que aquí me está leyendo en dos columnas y en cuatro filas yo quiero que todo el contenido me lo lea en una sola fila ¿por qué? porque quiero mandar en una sola request, quiero mandar todos esos datos al OpenI entonces el truco que voy a hacer es lo siguiente en el separador de campo que está aquí le voy a colocar aquí custom utf8 y le voy a colocar arroba y en el separador de fila le voy a colocar custom string y también le coloco arroba al cambiar esto me debe leer todo en una sola fila lele refresh y mire como lo lee lo lee como si fuese una sola fila este es el truco para poder enviarlo entonces dele aquí por favor next y cambie el nombre de la columna por resultado aqui le dejo nuevamente lo que cambie fue el separador de campo en custom utf8 y le mande una arroba y cambie el separador de fila por una arroba y tome, entonces que hace eso? que todos los datos del archivo lo mande en una sola linea next aqui cambielo al resultado y aqui finish borra ahora al final el tefallinput que creamos y tome el tefallinput del metadata que lo llame salida big data y ahora lo une con el tema ahora si ese lo pude haber hecho en realidad eso que hice lo pude haber hecho directamente pero lo que pasa es que si lo hacia directamente sobre el archivo no voy a entender por que lo hizo al final el movimiento que hice o la configuracion que hice fue simplemente para que todos los datos que me arrojara big data estuviese en una sola fila de tal forma que le mandara un solo request todos los datos al señor open eye si digame menos vendido el menos vendido creo que usted no lo tiene porque usted no lo ha ejecutado asi como el caso de, no tenia ese archivo entonces descargue lo por favor, haga lo siguiente descargue lo del de la carpeta compartida que verdad que usted no lo ha ejecutado todavia, usted no lo tiene dale este 5 por favor ahi esta producto menos vendido, ese que esta ahi descargue lo por favor, si esta en aval de lo descargue en el temporal bueno, deje de ir en descarga, no hay problema vayas entonces al tal en big data y busque en descargas ahora si voy a mostrar como va abriendo de pronto alguno que va por aqui abra por favor ahi, dale next ahora cambie el separador separador de campo esa codificacion esta bien porque esta en ingles no hay mucho problema separador de cambio dele click y escoja la ultima opcion que es custom utf8 y cambielo para arroba porque lo cambio por arroba porque el carater actualmente es punto y coma entonces para que me de una sola columna y el separador de fila dele custom nuevamente custom y pongale ahi y cambielo arroba ese slash n lo cambia arroba dele un refresh y deberia entonces traer todos los datos en una sola fila perfecto dele next ahora y llame la columna resultado la columna 0 que esta y llamela para que tenga mas sentido resultado dele enter ahora listo dele finish ahora ahora en el job borre ese te file input del limited borrelo por favor ese te file input del limited del job lo borra si el te file input del limited que esta y lo borra suprimir dele con el tecle suprimir y se arroba listo ahora vais a la metadata del file del limited y busque el archivo que se llama salida big data lo suelte en el canvas y une ese señor con el te map este file input ahora une el señor con el te map, cambie el row 7 por resultado de score big data el row 7 sabe como cambiarlo la linea nuevamente click y lo llama resultado de score big data big data big data enter y ahora enter al te map y es por donde estamos entonces listo un momento por favor le hago aqui el cambio resultado under score big data vamos aqui al te al te map 4 y ahora si esta como yo quiero entonces vamos aqui a la expresion y recuerde que para poder modificar ese porcentaje ese voy a hacer la siguiente funcion string.format le va a mandar entonces la plantilla como primera opcion y despues le va a mandar resultado big data entonces como te va a quedar esto en grande te va a quedar de esta manera te lo voy a colocar te va a quedar esto asi lo que debes copiar es string.format ya el nombre de la variable lo toma directamente del te block que esta al ladito en una variable quien me hablo para guiarla mejor quien me hablo Beatriz vamos entonces exactamente entonces vamos a ver Beatriz entra al te map exactamente dentro de la expresion por favor dele click en la expresion en la primera y copia string con ese mayuscula string.format ahi esta el primerito ahora reemplaza ese null por plantilla pero donde el lado derecho estan las variables mejor tome la rayada que sale mas facil doble click ahi selecciona el siguiente null doble click en el siguiente null y vaya el resultado ese que esta ahi perfecto ya quedo esta ahi ok listo por favor si esta mal yo tambien lo voy a dar aqui ok ok voy a crear aqui una salida una salida que la voy a llamar prompt pt salida prompt pt aqui le da en el mas de aca arriba y manda la variable hacia esa salida perfecto prompt y manda la variable le damos aqui ok y unimos el tema 4 con el tema 3 es decir entonces vamos a unir este señor por la salida dele click derecho porque despues no le sale situa en el tema click derecho y debe aparecerle cuando aparece en fila debe aparecerle la salida que configuro tome esa salida prompt y la suelta en el tema 3 listo ahi tema 3 la suelta ya nos falta ya una confersion sencilla que es la del tema 3 voy aqui al tema 3 y en realidad aqui listo modifico lo siguiente aqui como no tengo los nombres de prompt payload rose la madre rose expande la expresion esta por favor mire por favor como llamo este es lo importante de colocarle los nombres a estas filas mire como el nombre de esta fila que esta aqui la segunda que esta aqui en el caso mio rose entonces nada mas cambio aca tengo rose 5 y cambio rose 5 cambio el 5 por 6 para que lo una mire como se llama aca y cambia el encabezado porque la variedad se llama igual rose 6 y cambia momento momento momento perdon no no es rose 6 es la de arriba es que haga lo siguiente para no equivocarlo con estos nombres me equivoque vamos a nombrarlo bien cierre un momento y vamos a nombrarlo bien el payload que une con tema 3 cambie ese nombre a payload para ubicarme bien la linea que une payload con tema 3 cambiela a payload si si payload para ubicarme mejor que ese nombre road 1 road 3 te pega una vez en una partida 1 road payload listo y ahora si vamos a entrar a configurarlo bien aqui esta bien y en realidad la segunda la segunda columna no es payload sino prompt que seria la de arriba prompt ahora si prompt porque el payload va aca y el prompt va de segundo para verificar que todo esta bien deberia aparecer 2 lineas uniéndose a la variable aqui esta una linea amarilla de la parte abajo y una linea amarilla de la parte arriba si no estan esta mal configurado solamente cambie la segunda encabezado lo cambia a promptpt y yo creo que ya verifique por favor cuando termine aqui que las 2 filas las 2 entradas se unan en la variable con una linea amarilla diciendo que estan relacionadas a esas variables la entrada con la variable vamos a darle aqui ok listo no lo hago usted aca lo voy a hacer solamente yo aca voy a agregar aqui un telo road para que me muestre como quedo el payload anterior y ya lo ultimo que va a hacer usted nada mas alla es unir los subjogs para que se ejecute primero el de arriba y despues el de abajo como unimos los subjogs va al primer elemento del subjog 1 que quiere unir y lo une con el disparador o un subjog ok con el primer componente del subjog 2 en este caso primero tiene que ejecutar el input de arriba para que de la salida y despues se ejecuta hacia lo que hay voy para ver vamos a ver ya se rojo perfecto la pregunta es que hay veces que se queda por la conexion bueno voy a probar voy a ejecutar voy a comprobar que este sea el jog listar 10 articulos vamos a ver vamos a ejecutarlo inicialmente para ver y digo para ver si hay algun error aqui bueno empezó haciendo la parte de big data leyendo directamente del dejado vamos a ver empezó a hacer el pron listo ah que pena un momento se nos olvido cambiar el archivo pron que lo modificamos creamos uno nuevo se nos olvido se nos olvido a mi vayase al pron pron pt el archivo y note que esta direccionando al pron del día de ayer hoy hicimos un nuevo archivo para cambiarlo nada mas vaya aqui donde dice los 3 punticos al final y cuando le aparezca este dele chain no le de un day sino chain y el le va a permitir cambiar la ubicacion del archivo nuevamente aqui le doy despues que doy chain tengo que dar nuevamente click y busco el nuevo pron que yo lo llame pron articulos menos vendidos listo porque estaba ejecutando el pron anterior vamos a ver ahora con este nuevo pron a ver si si aqui lo mando no chain quien me dijo Brenda fue Brenda voy a para que lo muestre dele chain primero y listo ahora escoja el nuevo pron que seguramente lo tienen credenciales open eye ese menos vendido listo dele abrir y dele ejecutar usted inicialmente para ver si no tiene ningun problema tengo un pequeño error el pron esta bien pero tengo un error vamos a ver si a todo le sale el mismo error me quede con la ventana aqui de Beatriz para ver si le sale el mismo error hay algunos que ya estan ejecutando vamos a ver vamos con Brenda tiene un error exactamente dele ok para buscarlo vaya donde dice code vaya al code del job y debe marcarle algun punto rojo que esta mal configurado payload dice que no existe eso entonces vayamos eso esta en el tema vayas al designer y entre al tema que une ese tema 4 que esta ahi ah no perdon es en el 3 bien dese cuenta lo siguiente lo que pasa es que en primer lugar dese cuenta que row 8 no esta en amarillo verdad y no esta no esta porque porque ahi su conexion se llama row 8 significa en pocas palabras lo siguiente vamos a hacer lo siguiente dele ok dele ok mejor ahi y vamos a cambiar el nombre de la linea dele ok y la linea que conecta baja un poquito por favor esa linea que conecta ese row 8 que esta ahi cambia el nombre a payload por favor si estan amable ahora si entre al tema 3 y asi nos vamos a ubicar listo tema 3 doble click por favor listo entre si estan amable ahora si dese cuenta que ahora si le marco bien payload y prom ahora si esta bien dele ok vuelve a ejecutar parece que ese nomas le da error vuelve a ejecutar nuevamente vamos a ver que error le sale a usted empezó ya la parte de big data por donde va se esta demorando por donde va subo un poquito por donde va esta por ahi que raro que haya demorado en ese punto note que ahi aparece starting si nota que esta en ese punto ahi que se ha demorado que raro que se haya demorado de esa forma espera un momento para ver si de pronto ahora vuelvo con usted no se si alguno le salio y que le salio muestre para ver ya voy para ahi listo vayase al designer porque le si copio el subo por favor vayase al tema 2 tema 2 ese que esta ahi no se porque esta ahi pero bueno note el product line de hay dos tablas la izquierda y la derecha que esta en la parte de abajo la tabla de la derecha le dice los archivos de salida ese product line tiene que ser a intero no se porque se cambio a este cambielo ahi a intero que es tan amable dele enter listo dele ok y ahora vuelve a ejecutar para ver Brenda detenga ese job mate los kills y vuelve a ejecutar nuevamente porque esta como rara ya no esta que demora tanto bueno creo que hay algunos listo vamos a ver ok dele ok un momento ahi ok entra nuevamente al tema 2 a ver que paso ahi porque hay una conversion extraña al tema 2 no que pena ahi me equivoque fue yo ahi en realidad el stream estaba bien deje el stream por favor deje yo acceder un momento que fue rovino un momento enter ok ahi nuevamente yes no el cuento era con ya se accedo un momento espere un momento que accedo al studio porque el problema creo que con el tipo de datos no era doble era que era un momento a ver este señor que esta aqui es total doble no veo ningun problema permíteme verlo el error está en dice que es stream ah ya aqui hay algo extrañamente raro ya se que le pasa este esta fila tenia que mandarla aca para cambiar la posición va a colocarla de primero simplemente por cuestión de gusto ok y no se porque en ese job pasa esto aqui no era pro online sino era rovno voy a guardar y verificar que el cambio esta aqui listo no hay ningun error voy a proceder a ejecutar perfecto listo este es el error que tengo un cuarto ciento de menos deja ahi por favor brenda usted tiene la máquina virtual arriba que pronto toda tiene arriba ah un momento ya voy aqui prendo el caso suyo se quedo ahi verdad permita un momento voy a acceder a su máquina de manera interactiva y voy a comprobar un par de listo voy a ver algo aqui no es que la máquina no tiene encendida entonces intentaba conectarte a esa máquina y por eso se bloqueo vamos a encenderla aqui iniciar y voy a bloquear un momento listo ya esta esperamos un momento vamos a ver vamos a ejecutar entonces ahora si nuevamente por haber ahora si vean este cuenta que va por aqui listo este era el error que queria que no saliera listo quien mas tiene errores diferentes a este cuatrocientos que nos devolvio nadie mas listo voy a corregir este error cuatrocientos que todavia no se que vamos a ver cuatrocientos que dice ahhhh este es el de Beatriz este es el mio a ver el cuatrocientos por que se da en pocas palabras me esta diciendo que mande de forma RadalJason este es el payload que estoy enviando ah listo lo que pasa es que este señor OpenAI es un poquito sensible que tiene que tener en cuenta lo siguiente dese cuenta que yo modifique la lectura del archivo pero no modifique el archivo como tal el archivo es de salida big data y parece ser que este señor no le gusta los saltos de linea entonces que vamos a hacer vallase al tema parece que es eso vallase al tema 3 perdon al tema 4 perdon al tema 4 perdon al tema 4 vallase a la expresion del tema 4 vallase a la expresion del tema 4 dele aqui al final un punto replace punto replace ya le coloco como queda en grande va a agregar esto al final un punto replace abro parenthesis, comilla doble slash n y reemplazo los slash n por espacio en blanco que al señor no le gusta seguramente en el jason que vaya un salto de linea porque bueno ya es cuestión muy propia de el de porque no debe aceptar eso agrega al final un punto replace mientras usted voy ejecutando para ver si ese es el error creeria que ese es el error perfecto me respondio debe de haber la respuesta en el correo voy a confirmar para ver efectivamente ya me respondio para aumentar la mente de productos entre hombres en yangon es importante tener en cuenta la parte cultural investigar las preferencias y tendencias de consumo de hombres en yangon bueno ahi el pron si estuvo mal la idea es saber como integrar bueno a quien no le funciono a ver me regala dos minutico y busco un cafecito y mientras usted va ejecutando ahi busco un cafe ya vengo bueno volvi que pena cuenteme si a quien no le funciono si le funciono a todos ah ok si creo que no se si le canso vaya a ser al tema 4 debe tenerlo como tema 4 este que esta ahi tema 4 por cierto para cambiarle el nombre tambien a los componentes que de pronto con tema 4 hace lo mismo como cambiamos las flechitas le da click en el componente que quiere cambiarle el nombre en el label click nuevamente y le puede cambiar el nombre si acaso vallense a la expresion por favor si es tan amable Brenda ahi falto listo al final del parentesi coloque un punto replace ahi esta el primero del enter abra comilla doble ahi slash n al el otro el otro el otro el ese cierre comilla doble y ahora esta el 0 coloque comilla doble espacio comilla doble para reemplazar ese caracter ahi espacio comilla doble dele ok por favor si es tan amable dele ok cierre la entana y vuelve a ejecutar para ver listo ya esta por la linea consumiendo listo rese su correo por favor bueno ya claro que el prod no fue el mejor pero la idea es creo que ahi tenemos el ejemplo de como podemos combinar todo resultado con la parte de ahi lo que tendria que mejorar es el prom y pues evidentemente saber como manejar los datos tiene que tener en cuenta que cuando manda un json ese open ahi es muy celoso con algunos caracteres ya iremos con el caso del salto de linea y puede haber unos caracteres que de pronto no los acepta si le llego Brenda ok listo por un lado y nos vamos con Hai explico entonces no vamos a lo siguiente mejor mientras voy explicando porque que no se si tenemos memoria voy a cerrar este señor por favor abra algo que se llama el docker de stock se busca aqui docker aqui esta no aqui esta esta en el escritorio dice docker de stock le da doble clic por favor para que abra la interfaz listo lo deja ahi que vaya abriendo un momento la interfaz mientras yo voy explicando como la arquitectura que estamos manejando actualmente listo mientras eso va subiendo mire mi pantalla un momento y le voy a hacer el diagrama de lo que tenemos entonces diagrama aqui en blanco perfecto bien veamos por un lado tenemos la maquina virtual que es la de windows listo esta maquina virtual tiene direccion ip estatica perdon ip 10.0.3.15 sobre windows tenemos otra maquina virtual con hyper v que se llama hadut y que esta maquina virtual tiene direccion 10.0.3.16 ahora sobre windows tengo instalado el docker que es un motor de contenedores y sobre docker tenemos montado lo siguiente tengo montado tres contenedores un contenedor de postgres que ya les digo para que sirve eso postgres sql un contenedor que se llama metastore metastore y un componente que es el que tiene instalado el hi explico entonces inicialmente este contenedor no tiene direccion ip aunque se le puede configurar pero normalmente la ip seria la misma ip de la maquina que este el señor instalado el contenedor explico entonces como es la historia ahora en primer lugar hi es un motor ahora pensado para bodegas de datos que utiliza tecnología de big data hi va a ser el almacenamiento en un cluster de hadu entonces ya esto esta configurado para que este hi guarde los datos en la maquina virtual en pocas palabras cuando creemos tablas insertemos registros ahi van a quedar guardados en el cluster de hadu que esta a este lado para que es ese postgres resulta en que lo que voy a hacer es que voy a colocar la misma capa sql que usted conocio pero al final cuando yo hago una consulta con un sql insert al final lo que estoy usando es ya sea macredius o ya sea sparr para hacer cualquiera de las cosas entonces para poder simular el sql insert el create table debo utilizar un motor de base de datos en este caso el motor que usamos el que estoy usando es postgres por lo tanto este señor va a tomar la sintaxis de pokres para crear tablas y como las creas a través de un elemento intermedio que se llama metastore en pocas palabras la estructura de datos de tu base de datos va a quedar almacenada aqui en postgres pero los datos van a quedar almacenados no en esta instancia de pokres sino en este hadu de aqui cuando hago una consulta en select aterisco por la tabla que tu quieras lo que va a ser entonces hay es que va a convertir eso o ya sea a macredius o ya sea sparr en el caso de versiones 3 hacia abajo haria y convertiria osea practicamente lo que hace es big data es la unica diferencia que el select aterisco que es una postgres sql me la va a convertir en un macredius y si estoy de 3 hacia arriba puede que la consulta me la haga con spark porque digo que puede porque tu puedes configurar el high en version 4 para que ejecute ya sea con macredius o con spark como tu desees entonces partiendo ese hecho esta seria la arquitectura vamos a comprobar lo siguiente entonces vamos a la maquina virtual a ver si ya me subio el docker de esto ok aqui esta por favor por defecto estan los 3 contenedores seleccionados si digo iniciar puede que me daña el contenedor porque tienen que haber un orden en los cuales vamos a subir los contenedores lo vamos a subir en el siguiente orden primero seleccionado todos los contenedores y el primero que vamos a subir se llama high postgres que es el que tiene instalado el postgres ahi van a quedar las tablas dele por favor seleccionale y da click aca en el play para iniciar listo el verde indica en que subio de manera correcta ahora suba por favor el metastore que seria el segundo lo selecciona y le da play para iniciar y no hay ningun problema si digame ok creo que hizo esto creo que esta asi mas o menos esta aqui aqui le queda como una pequeña flecha que esta aqui no se si me parece si no le da click ah listo perfecto verifique que subo ahora el segundo por favor por ultimo subamos ahora el de high que seria el ultimo el primerito que aparece que pasa si aqui me salio un pequeño error no se si a usted le subio no subio asi no subio hagamos lo siguiente entonces vamos a volverlo a recrear porque seguramente paso algo en alguna configuracion no se de la maquina virtual de windows hagamos lo siguiente estando los 3 seleccionados primero detengalos aqui en el cuadrado ese detener y cuando termine de tenerlos por favor le va ahora en delete para borrar los contenidores delete forever aclaro lo que pasa es que si me demo me podia demorar mas corrigiendo el error porque que pasa que volviendolo a crear entonces vallase al proveedor de archivo si esta amable y en el proveedor de archivo en la carpeta de descargas va a encontrar una carpeta que se llama docker high 2.0 si la vio dele doble click por favor permiteme confirmar algo aqui si perfecto esta bien docker high 3.0 ahora en esta carpeta que esta aqui vamos a decir este señor me deja no no me deja en esta version este es windows entonces hago lo siguiente sencillo en la barra de direcciones que esta aca arriba le va a dar click un poquito en la misma barra pero que no seleccione ninguna letra de tal forma que seleccione todos los elementos y escriba cmd y le da enter y me va a abrir entonces una terminal shell de cmd en esa carpeta que he escogido y aqui vamos a escribir lo siguiente docker compose deja y se lo escribo aca entonces mejor lo copio un momento lo copio de aqui y para que usted lo vea mejor aca va a copiar esto exactamente asi docker compose op-d le das enter por favor y te va nuevamente al docker de estos y confirma que tenga los tres habilitados a poner el comando claro como lo puedo perfecto dice Fernanda voy a ver para ver que paso en el comando y te digo que paso que salio vamos a ver un pequeño un momento a ver falto el op falto op despues de compose op up dale flecha arriba dale flecha arriba flechita arriba para que te vuelva para que te coloque el comando y tu le dices nada mas entonces devuelve con flecha a la izquierda espacio y dale enter ahora si espera un momento listo vete ahora a tu docker listo perfecto claro que no se que paso inicialmente ahora a lo siguiente para no entrarle mucho comando y vamos directamente aqui vallese por favor aqui al que dice high server dele click a high server y ahora por favor dele click ahora aqui hay un menu vaya donde dice exec de ejecutar a mi particularmente no me gusta esta shell me gusta mas coloque la palabra bash esa shell no me gusta mucho coloque bash para cambiar de shell me gusta mas esa esa shell no me gusta entonces vamos listo bash bash ahora del siguiente comando del comando high enter tiene que aparecerle ahora un pron llamado beeline que es el el driver que conecta hacia high aparece beeline a todos beeline ahi esta ahora vamos a conectarnos a la base de datos como nos conectamos a la base de datos tiene que ir al siguiente comando slash connect un momento aqui slash connect y entonces le da jdbc dos puntos high dos cero dos punto slash slash localhost asi que mejor hagamos lo siguiente le agrego este comando mejor en la carpeta compartida para que no tenga que escribirlo dos punto diez mil diez mil aqui espera un momento y lo coloco en la carpeta compartida este comando si de admiracion perfecto si de admiracion si quiere lo voy a colocar en la carpeta compartida mejor para que no este copiando eso porque voy a hacer esto porque dentro de talent talent puede hacer muchas cosas con base de datos lo unico que no hay un componente directo para crear una base de datos, entonces voy a crear aqui una base de datos espere un momentico y lo subo aqui en talent en la carpeta expresiones que habiamos usado ya esta voy a la carpeta compartida aca y la voy a copiar mejor de ahi a ver seria one drive aqui tengo tv4 expresiones copia el comando y lo pega directamente aca en la terminal deberia permitir copiarlo perfecto ese es el comando si esta mal colocalo en edge ah perdon no tiene enter que pena no tiene no tiene usuario al final te va a aparecer un prompt que es la linea de conexion hacia el motor vete por favor ahi si quiere escribe ahi one drive que seguramente ya lo has usado ahi te aparece un momentico ya voy a tu pantalla listo estas ahi entre expresiones si esta mal es fernando copia de la ultima linea la vas a pegar en el shell exactamente ahi click derecho paste ahi listo enter no tiene usuario enter y tampoco tiene paso entonces enter y ahi estamos conectados listo entonces ahora veamos un par de comandos si digame ah quien me hablo Beatriz si y vamos a ver que paso vamos a ver porque el comando no funciono vamos a ver ah primero dele hay enter y va a aparecer un prompt que dice beeline espera un momento por favor listo perfecto ahora copia la linea osea arriba tiene ya el comando listo copielo por favor donde dice ah donde dice conect jdbc dale flecha arriba parece que le coge el comando flecha arriba para ver no no un momento no no salio salio salio dele hay nuevamente sabe porque no le funciono porque mando mil ira diez mil esta escuchando por el puerto diez mil permítame yo le intento a ver un momento yo se lo copio para ver eso dele hay ahi asi dele enter y voy a intentar copiar este comando aqui pero un momento le intento copiar este comando seria este de aqui y lo voy a pegar aca el problema es que era diez mil ahora si por limita de un cero nada mas listo seguimos entonces a ver vamos a dar los siguientes comandos entonces vamos aqui a hacer ah yo si estaba buscando y dije cari si listo si gracias ah perdido primer comando dele el siguiente deben terminar en punto y coma los comandos select curren underscore database deberia devolverle punto y coma deberia devolverle el nombre curren aqui que pena de curren curren asi actual base de ahi le confirmo entonces confirmo aqui para ver espere para ver en que me equivoque en el comando creo que era curren me parecio que era curren el comando dejai confirmo para ver ah listo el comando necesita terminar con parentesis creo que es mejor estrategia que lo haga en uno pad para poder copiar y pegar porque no deja aqui ahi asi confirmo para ver aqui me devolvio ahora si perfecto ahi esta en la base datos default el comando es con listo ahora si llevamos de rapide que estamos un poquito atrasados vamos entonces a hacer lo siguiente vamos a crear nuestro propio base datos create database axa para conectarse axa le da use axa recuerda de terminar en punto y coma si no sale vamos a ver vamos a ver vamos a ver vamos a ver dale un select curren database ah select curren ah porque tienes data listo cambio entonces espera un momento a ver data ah si porque que si no tuviese conectado ahi esta bien conectado perfecto vamos a hacer los siguientes pasos entonces dame gracias a ti listo voy a salir de aqui creamos la base datos recuerda de terminar en punto y coma use axa vamos a crear aqui una tablita sencilla create table create table aqui la ventaja del meta store es que puedes usar la sintaxis de de postgres y tambien una sintaxis de ya por ejemplo voy a colocar aqui empleados abro parentesi de aqui voy a crear aqui identificación de tipo integer y voy a colocar aqui nombres integer aqui que vena integer nombres bar chart de 60 tambien puede ver usados stream punto y coma y aqui aplicas exactamente ya lo que sabes de base de datos vamos a insertar aqui un registro insert quinto empleados values abro aca y le digo este señor como es entero necesita comida simple 92 y el nombre suyo si usted quiere John aqui y termina con punti com si o si usted quiere si al final lo que necesito nada mas es esta base de datos si quiere yo hago lo demas para que lo vea creo que ahi me va a mostrar nada mas necesito que cree la base de datos listo entonces permiteme yo creo la tablita aca porque la tabla la vamos a crear ya directamente aqui lo que necesitaban nada mas era crear la base de datos pero permiteme hacer un ejemplo aqui y voy a insertar entonces voy a crear la tabla crear la tabla copiar listo copiar creo la tablita aqui si señor si señor y no tenemos y en realidad tengo poca memoria osea con el docker tengo menos memoria que la que tenia anteriormente si señor efectivamente recordara que normalmente cuando yo tengo una base de datos normalmente los procesos de actualizacion no hay mas que todo hay procesos de insertion creo que no me creo la tabla que fue voy a darle aqui show tables para que me muestra las tablas show tables punto y coma si empleados ah me equivoque yo para me equivoque yo fue empleados si efectivamente y creo que bueno ya Alejandro lo tiene nota que ahi te aparece un mac reduce cierto significa que para insertar esta utilizando mac reduce sobre el nodo de de clusters de hadut entonces si me voy a este nodo ahi esta ahi esta exactamente si me voy al nodo este voy a buscar el nodo el cluster en el en el browser un momento a ver voy a ver aqui browser file system y note que aqui tiene ya un propietario hype de dos carpetas opt y ten indicando entonces confirmando que en realidad tiene que subir de ax al root hay que subir de nivel y van a notar entonces que ahi creo unas carpetas el usuario hype que es donde tiene almacenado los datos como tal ah bueno eso es un interesante el como depende de la tabla de como se definen hype entonces para esas tablas vamos a subir para adelantarnos esa pregunta deja la abierta y te la respondo ahora cuando creemos la tabla aca con el hype vamos entonces aca listo lo unico que necesitaba era crear al final la tabla perdon la base de datos y confirmamos aqui que ya me esta insertando en en el en la maquina virtual del cluster dejado aqui no voy a hacer mas nada entonces me voy a meter aca con el talent big data voy a cerrar todos estos señores de aqui bueno perdon deja uno abierto porque voy a copiar esta conexion de aqui no mentira en este ejemplo pequeñito no en este ejemplo pequeñito para que usted entienda como se hace eso aqui bueno listo entonces voy a crear una subcarpeta en axa que se llame hype perfecto y vamos entonces aqui en hype vamos aqui crear job por favor crear job dentro de la carpeta de hype coloque aqui job creacion tabla hype listo voy aqui donde dice finish y voy a hacer entonces lo siguiente este ejemplo voy a tratar de combinar varios porque el tiempo no nos esta dando vamos entonces vamos a crear una conexion que no la hemos hecho a una base de datos hype es una base de datos siendo que utiliza la tecnologia de big data para progresar sus datos pero es una base de datos entonces para hacer conexiones hacia base de datos me voy aqui donde dice debe connection click derecho crear conexion vamos a llamarla entonces axa por costumbre es mas costumbre mía por experiencia los nombres de conexion de base de datos le doy el nombre de base de datos y coloco dentro de parentesis el motor que la tiene esto por experiencia que tengo desde algunos procesos que he tenido que a veces me tengo dos bases de datos con igual nombre pero a veces me pierdo de ahí a que motor me estoy refiriendo entonces para costumbre por buena practica mía le coloco axa parentesis hype le coloco el nombre de base de datos y dentro de parentesis le coloco el motor en el que esta vemos la key next por favor y alto seguido lo que va a hacer es que vas a buscar aqui donde dice debe tie el driver de conexion hacia la base de datos que necesitas en este caso expande y me interesa el que se llama hype aqui hay un pequeño bug con esta pequeña bueno no login no tiene servidores localhost porque aunque esta en el contenedor recordara que el contenedor tiene la misma hype de la máquina en que este entonces queda localhost el puerto queda igual lo unico diferente es que voy a conectarme no a base de datos default sino a base de datos que se llama axa como tu lo hayas llamado tienes que bajar el scroll para que te de la conexion dale un text connection aqui por favor ok este exportar como el contexto lo que hace es que te crea las variables y te las porta como contextos recuerda que los contextos son las variables de entorno cuat y de produccion que ya hicimos una el dia antes de ayer aqui dele finish no va a ser mas nada finish no no le porte porque no vamos a crear contextos perfecto listo ahora si quiere traerse expanda por favor la conexion que creo de axa y ahi le va a aparecer las estructuras que pertenecen a esa base de datos en este caso te va a mostrar sinonimo si hay tablas y vistas los que crearon la tabla y la quieren ver para ver de este lado vamos a hacer lo siguiente aunque no la haya creado hagamos toda la misma prueba por defecto cuando yo creo la conexion no me trae las los objetos de esa base de datos me toca hacer lo siguiente conectase dele click por favor a la conexion click derecho ahora y digale donde dice extraer esquema aqui le pregunta si desea filtrar algun tipo de objetos nada mas le va a mostrar la herramienta tablas, vistas y sonodibus dele next aqui aqui expanda por favor y le van a aparecer los objetos lo que aparece vacio es porque no crearon la tabla pero entonces si deseamos exportar esa tabla dele click aqui en axa para poder seleccionar todos los objetos le da next finish y este señor ya le va a traer aqui todos los objetos que pertenecen a esa tabla ok eso funciona exactamente igual independiente del motor MySQL, Postgres, Oracle SQL Server por defecto la herramienta no te hace la conexion pero tienes que hacer de forma manual extraer los diferentes elementos que quieres de esa base de datos eso porque lo hacen de esa manera porque hay veces que base de datos tiene muchos componentes o muchos objetos y te puede demorar mucho entonces lo ideal es que crees la conexion y exportes o traiga los objetos que tu quieras manejar en la conexion como tal vamos entonces a hacer lo siguiente ahora vamos a crear aqui un tepre job aqui en el job un tepre job no, no hay problema deje la tabla, ahora cuando creemos la tabla aqui en el job hace lo mismo ahora para que le devuelva la tabla que vamos a crear en el job no hay problema esa practica la hacemos ahora cuando ejecutemos este job tengo aqui un tepre job por favor y al igual que con HDFS hay un tehy connection tehy connection conecta el tepre job con el tehy connection listo ahora vamos a configurar el tehy connection si tu quieres puedes volver a configurar todo nuevamente pero como ya tenemos la configuracion y que se encuentra en el repositorio tienes que irte a property type y le vas a decir ahora que no vas a construirla sino que vas a tomar una configuracion que esta en el repositorio le das aqui repositorio te cambia entonces aqui listo dale click ahi en el mas mas que aparece y escoge la conexion de hay que esta habilitada aqui la escojo y doy ok con esta distribucion no hay mucho problema porque al fin y al cabo quien maneja la conexion con hadut es hay y no en este caso esta en big data entonces lo dejo ahi con eso esa configuracion agrego un tepos job y voy a colocar aqui un tehy close como buena practica para cerrar la conexion porque si no puede quedar abierta y ocuparte memoria esa conexion que no lo vas a usar pero quedo abierta entonces lo configuras con la conexion que vas a cerrar perfecto listo entonces agreguemos los siguientes componentes ahora vamos agregar aqui un tehy create table y acto seguido vamos agregar aqui un tehy row tehy row y se me escapo agrego un tehy row generator listo son los componentes que vamos a utilizar entonces conecta el tehy row generator ya te explico para que sirve eso con el tehy row vas a conectar el tehy create con un sub job diferente entonces click derecho disparador con sub job ok hacia el tehy row generator ahi tendria 4 sub jobs el del tehy pre job el del tehy create table el del tehy row generator y el del tehy post job vamos la primera confesion del tehy create table entonces vamos a darle doble click listo doble click a ese tehy create voy a hacer una tallita sencilla entonces en primer lugar voy a decirle que ya tengo una conexion prestalecida use conexion existente y la escojo tehy connection nombre de tabla por favor entre comillas dobles coloquele clientes si estamos le coloque clientes ahi perfecto clientes en el action on table hay varias opciones entre las opciones que aparecen nada mas hay dos una que es crear tabla el problema de crear tabla es que si la tabla esta creada ya va a salir un error entonces si este job lo voy a ejecutar ene veces lo mejor es que crea tabla si no existe para evitar es el mismo problema que teniamos con el con el del cluster de hadoop cuando creamos el archivo en el output habia que sobre escribirlo si lo ejecutaba varias veces bien y este señor le permite a usted que hacer en el formato de tabla permite hacer varias cosas o varios formatos dele click por favor en los formatos que estan prestablecidos ahi y notara que hay diferentes formatos el primer formato que aparece es el de text file text file indicaria en que los datos se van a guardar en texto plano en el por ende al estar en el texto plano ahi pues yo creeria que la unica ventaja que vas a poder hacer ahi es que es legible tu puede hacer consultas ese ql ahi y vas a entender porque esta en plano pero el problema que vas a tener con un text file es que no hay ningun tipo de compresion entonces como no hay comprension vas a ocupar mas espacio el rendimiento va a ser mas lento y evidentemente vas a consumir mucho mas espacio porque ni siquiera haces comprension de los archivos los archivos no se guardan comprimidos listo ese text file yo diria que es posible usarlo siempre cuando tu tengas mucho espacio y donde quizas el rendimiento de las consultas no requiera unos tiempos de respuesta bastante bajos porque la ventaja va a tener es que el rendimiento va a ser muy lento despues sigue ahi le aparece uno que se llama sequence files ese sequence files es propio de jadut ahora este jadut va a guardar los datos comprimidos y recordaras un poquito el dia de ayer cuando guardamos un archivo comprimido que tu lo abrias y ese archivo estaba en binario no entendias lo que ibas a hacer ahora al guardarlo de esta manera jadut lo prepara para que se ejecute tambien en forma paralela pero creo que la ventaja que vas a tener es que es dependiente de jadut significa entonces en que para poder reutilizar esto en una infra infraestructura diferente tiene que estar casada con jadut pensar en cambiar de a un synapse a un mr aunque mr usa jadut pensar de pronto en un s3 por ejemplo ahi si vos tenes inconvenientes despues sigue dos en particular que dice rcfile y orcfile basicamente son los mismos formatos la diferencia es que orcfile es mucho mas eficiente que el rcfile te preguntaras si es mas eficiente porque nada mas dejan orcfile porque el problema que tienes es que hay una incompatibilidad con esos dos formatos entonces quizas hay sistemas que ya lo tienes con rcfile y quisieras mantenerlo entonces por eso se mantiene los dos ahora una característica que tiene rcfile que tiene uno que se llama y que creo que mis calculos no me fallan porque me parecio ver un job una vez que me reuní con alguien que trabajaba para ustedes es muy parecido a ese señor que se llama parket que esta ahi abajo el formato parket quizas lo has escuchado que aclaro ese formato la idea del formato no es nueva eso venia antes ese formato corresponde a un tipo de base de datos que se llama tipo columnar que favorece las operaciones que tu vayas a hacer eso por ejemplo en el caso de colombia yo te habia comentado el dia de ayer que hay una empresa que es un supermercado en que tiene varias sucursales por ciudad osea toda colombia seguramente en mexico debe haber alguna muy parecida aca se llama super tiendas olimpica entonces esos señores tienen demasiado dinero pero bastante dinero y ellos mantienen entonces varias en una misma ciudad puede haber varias sucursales aunque ellos tienen ahora una una pelea fuerte con una competencia dura que llaman aqui en colombia supermercados de bajo costo entonces hay una tendencia en que ya estan vendiendo mucho menos porque esos supermercados tambien la idea es ocupar toda colombia pero bueno depende de eso ese ors files es mas tipo columnar aqui coloco un ejemplo muy sencillo de pronto para que lo tengas en cuenta suponte que tu tengas aca sucursal columna sucursal tenga por si te algo ventas aca colocamos estas dos tengas aqui sucursal x ventas 12 tal sucursal y ventas fueron 3 14 z 15 o te lo voy a colocar para que sea mucho mas sencillo de entender voy a colocar todos en sucursal x para que me quede mejor el ejemplo si a ti te preguntaran te dijeran o te pidieran que sacaras el total de ventas que tienes al momento de la sucursal x tu podias hacerlo con ese ql o lo que uno llama con tecnologia tradicional seria un select listo puedes agrupar pero el agrupar es un sum de la columna ventas lo que pasa es que internamente lo que hace el sql es que tendria que sacar registro por registro e ir sumando yo podria mejorar esto por ejemplo haciendo particiones las particiones velo como si fuese una carpeta imaginate que yo crea una partición por sucursal imaginate que cada sucursal se guarda a nivel de una secundaria por una carpeta diferente cuando tu haces un group by por la sucursal ya el sabe que todo lo que esta en la carpeta por si necesita algo x son de la sucursal x es mas eficiente a la hora de hacer los calculos pero todavia me quedo en que me toca sacar registro por registro e ir sumando la idea esta de columnar que en realidad no es nueva es que no lo guarde en ese columna sucursal imaginate que esto lo guardo en un solo archivo sucursal sucursal y aqui guardo nada mas x y aca en ventas guardo los valores 12, 14 y 15 que diferencia hay que cuando ahora tu vas a hacer la sumatoria de las ventas yo en realidad nada mas traigo este archivo que es la columna ventas y voy sumando efectivamente si quiera hacer un join habia que hacer un join de este archivo practicamente con quizas este archivo que seria otra columna cada columna se guarda en archivos diferentes pero la ventaja que tengo es que como solamente saco un solo registro de esa columna sumar eso y hacer operacion de matematica pues eso la diferencia con la tradicional pues es abismal a nivel de tiempo de respuestas entonces ese archivo orsl te guarda en formato formato aclaro del sequence files hacia el parquet perdon hacia el storas te guarda en binario parquet si no estoy mal te la guarda en ahora reviso para ver que ahora no recuerdo como te la guarda aqui en hide pero aclaro que parquet tambien se puede usar en otros motores no solamente de hide es un formato de archivo y que es usado por diferentes motores de baseados abro te lo guarda en binario estoy seguro input y output format ese que esta ahi al igual que el storas eso te lo coloca si tu quieres definir un formato especial de almacenamiento es si tu defines el formato no tomas un formato convencional yo particularmente nunca metido eso porque es desgastante normalmente ya estos formatos que estan ya estan ha sido testeado y funcionan bien y por ultimo tendrias el parquet que es el que te mencione que esta en colunar entonces tu tienes que definir como vas a guardar los datos en este caso en particular quiero que sea text file y esta base de datos esta tabla perdon no va a tener particiones no voy a crear particiones porque la cantidad de registros que voy a almacenar es elevadamente pequeño listo entonces eso es lo que hace ahi este row generator para que este te genera filas cuantas la que tu quieras para que sirve eso aparte de probar algunas cosas como la que voy a hacer ahora que voy a generar unos aleatoriamente voy a generar unos filas para hacerlas almacenadas en la tabla este row generator es muy bueno cuando quieres hacer pruebas de estres por ejemplo tu quieres un sistema y quisieras saber cual la eficiencia de ese sistema entonces tu haces una prueba de estres entonces empiezas a insertar una cantidad de registros y miras como se comporta con esos registros despues haces una proyeccion y esa proyeccion matematica te va a definir cuanta memoria, cuanto recursos necesitas minimo para atender a en usuarios entonces este row generator es muy bueno para hacer esas pruebas de estres vayase vamos a conferir asi el row generator por favor row generator y vamos a agregar dos columnas la primera columna la va a llamar por favor identificacion todo en minuscula y la segunda la va a llamar nombres el tipo de datos define lo string y por favor ahora en las funciones que estan aqui porque esto se viene aleatoriamente dele click en la primera funcion de el campo identificacion y va a buscar uno que se llama perdon que pena hay algo que guarde, que genere un código espere lo busco por aca que se me escapo el nombre de row generator momento por favor a listo busquelo en numeric ahi aparece numeric no se si le aparece numeric ah no aparece que raro que no aparezca perdon cambia el tipo de datos ya se porque no aparece el tipo de datos cambia al integer mejor para generar un consecutivo cambia al integer ese es el problema integer y aqui escoge uno que se llama numeric sequence que ya lo hemos usado anteriormente numeric sequence y eso te va a generar un aleatorio ahi 1,2,3,4,5,6,7,8,9 numeric sequence aquí he escogido que no era y aqui lo puedes confiar recuerda que esto lo hicimos en el dia de ayer cuando obtuvimos los tres primeros productos menos vendidos y en el nombre busquen uno que se llama talent data generator get first name ahi no se porque le di enter listo get first name quedaria mas o menos aqui el primero es integer numeric sequence y el segundo es de tipo string talent data generator get first name el valor numerico perdon no lo escuche el cual integer el primero es integer si no el numeric de 1,9 no deje lo que lo ahi va de uno en uno pero el a partir de note lo siguiente que aqui le va a pasar numero de filas que va a generar esa 100 no la genera porque demora mucho insertando entonces vamos a generar solamente 20 y nada mas cambia ese number row para que genere 20 listo ok aqui y entonces se me escapo algo en el create table que no defini el esquema osea las columnas que voy a definir entonces vaya nuevamente al create table editar esquema y agregue dos columnas una columna que se llama identificador de tipo entero y la otra columna se llama nombre de tipo string hay muchisimas gracias porque si despues no no era compatible integer muchas gracias se me habia escapado perfecto aqui esta data generator aca la llamo identificacion pero bueno no importa haga lo siguiente ahora ya para finalizar este ejemplo vallase aqui a vamos a cambiar el nombre de esta fila porque me interesa este nombre muy importante vamos entonces a cambiar esta conexion de tegro generator al tehai la vamos a llamar clientes listo entonces accedemos al tehai row le decimos que vamos a usar una conexion existente tehai connection y este tehai row funciona especificando una sentencia SQL hay dos formas de insertar datos en high una es esa forma y la otra es a traves de un cargue de un archivo en este caso voy a hacer entonces la primera forma que es insertandola con una sentencia SQL entonces aqui donde dice query por favor vamos a definir la sentencia SQL esto es sumamente engorroso la dejo por si acaso de pronto te toca hacerlo alguna vez pero quizas la otra forma es mucho mas sencilla para esto voy a hacer lo siguiente ahi donde esta el query te va a quedar de esta forma voy a copiarla aca te va a quedar comilla doble, comilla doble dentro de esas comillas doble vamos a definir la sentencia SQL con la cual yo quiero insertar valores en este caso insert int empleados abro parentesis y ahi termino la sentencia inicial del SQL quedaria insert int empleados perdon no se llama empleados se llama clientes que pena la tala la llame fue clientes no empleados la de empleados fue la anterior no porque ahora voy a pegar en en tiempo de ejecución los valores ah si perdon perdon que pena gracias aqui le voy a dar aqui un mas para concatenar el valor y aqui es muy importante como llamaste la conexion del T-Rogenerator hacia el T-Hiro con el mismo nombre y con esto sensible yo lo llame clientes quedaria entonces clientes punto nombre de la variable con que viene del T-Rogenerator yo la llame inicialmente la primera la llame identificación entonces para hacer referencia me quedaria de esta forma punto identificación y de esa manera cada vez que entre una fila voy a tomar por modo de ejecución el valor ese mas abro comillas dobles coma y aqui me toca abrir una comilla simple para que pueda quedar mas clientes punto nombres mas abro comilla comilla simple y termina asi vea que esto es sumamente engorroso pero quizas alguna vez pueda superar algún problema con eso ahi estoy creando una sentencia dinamica vamos con la comilla simple porque como es textual es texto el bar chart entonces hay que necesariamente mandarle comillas simple voy a pegarla aca asi que a ver que aquí hay todo la pego aqui cuando termines por favor manda a ejecutar el job confirma que el job que vayas a ejecutar es el que el que necesitas voy a ir de aqui a ver si no tengo algún error de bueno ahi empezo ya creo la tabla esta intentando insertar esta demorando si claro ahi esta demorando para insertar pero ya inserto la primera fila ahi esta que esta aqui si desea la coloco en la carpeta compartida Beatriz creo que salio error este para ver Beatriz para ver que error tiene en la ejecucion me parecio que vi un error dice el valor del parametro no existe ah listo dele cancel ahi un momento vayase al teja y close que es donde aparece el error y se le olvido se le olvido colocar la conexion que va a cerrar entonces cierre ahi aca en el component list le da click en el combo boss y escoge la conexion de high que va a cerrar listo intenta ejecutar nuevamente por favor ah porque tiene poca demoria como tenemos el continuo la maquina virtual y ahora estamos ejecutando con listo por eso que esta demorando empezo la conexion listo empezo a insertar va a ver si sale algun error recuerde que por lo mismo recurso que tenemos esta demorando para insertar espere para ver si pasa el dos listo ahi inserto el primero dejelo ahi ejecutando por favor quien no le funciono listo quien no le funciono vamos a ver voy contigo Fernanda que sale un error ahi vamos a ver es un error de compilacion ok vayase al code para ver que le muestre exactamente donde esta en el code ah vayase vayase al designer code al codigo ah si si listo ah todavia no cerra el lado verdad hay que serle dele click en code vamos a ver ahi esta el punto rojo que esta marcando dele click en el punto rojo exactamente el lado derecho ah dice que esa variable no existe como le llamo usted nombre o nombres entonces entra al terror generator vayase al designer nuevamente vayase al terror generator ese que esta ahi nombres listo dele en T y cambie nombre por nombres vuelve a ejecutar nuevamente a ver ah dele cancel ahi vayase al T high close que esta marcando error ahi doble click escoge ahi la conexion que va cerrada que no la configuro y vuelve a ejecutar nuevamente a ver ahora si listo ya creo esta insertando espere un momento a ver porque esta demorando mucho hay pocos recursos no deberia porque vamos a ver no no deberia vamos a ver un momento voy a revisar un momento el caso el mio para ver voy a consultar como esta mi tabla mi base de datos a ver entonces voy por aca voy a darle estoy en que en AXA no se si sele casterisco frompientes no no no dejo de insertarlo en blanco me muestras su yo para ver un momento quien fue jorge el que me dijo alejano voy contigo entonces alejano vamos a ver que paso ah te falta ahi lo que hace que te falta el punto y coma dale punto y coma ahi en favor agregale el punto y coma porque no lo no no no punto y coma porque ahi concatiendo ahi listo dale flecha ahi arriba coloco nuevamente el select lo que hace es que ahi te concateno los dos select nuevamente select casterisco entonces ahi con punto y coma exactamente enter ahi si esta manate solamente perfecto listo esa es una forma vamos entonces a la segunda eh vamos a hacer entonces el break de los 20 minuticos o las 12 30 hacemos los 20 minutos y estamos entonces en 20 minuticos ok listo ok ok ok ok ok ok ok Thank you. Hello again. We are back, are we connected? Yes, we are connected, or if there is audio, can you hear me? All right. Perfect, thank you very much. All right, then we create with the tool such that the only thing that does not allow or does not have a component that allows you to create database, although it is possible that you can, through an SQL pattern, I show it to you, I mentioned it on the first day, but if you want, for example, to create with the tool, sorry, I'm with Alejandro's, it's not mine, now it's mine. We can make an SQL pattern that generates the database, but hey, we won't have time to do that part. Let's look at the table, how would we do to look at the table? First of all, take into account that some of us had already created the employee table and we have created a new table. So, to be able to view the new table, we are going to do the same thing again. We select the connection to Hive. It gives you extract scheme. Next. Expand, please, there is Axa. And there you see new customers, which is the one you have. Please choose it. Next. Finish. And two tables should appear to you. To another, only one table will appear. How do we do now to process those data, for example, that I want to read with the tool? To use then tables that are defined and perform operations of some job, do the following, please. We are going to create a new job in Hive. Create job. Call it job. Read. Underscore data. Underscore table. Underscore Hive. Here finish. And very simply. It is located in the Axa Hive connection metadata. Expand the tables. Take the table that you are going to read, which in this case is customers. And release it in the canvas. By default, an ELT High Input appears. Wait a moment, if this man leaves me this component, I do not remember. Perfect. One moment, done. I'm going here to Telok Row. And it links with Telok Row, one moment here. No, it's with... Wait a moment, I do not know if I used the... Oh, I'm going, one moment. If I used the right component. No. I think... Let me confirm, because I have that ELT. And I think the component is not... ELT Input. But T-High Input. Let me check it for a moment, Telok Row. I already got to where this moment associated the problem. I'm going here to the main. I think it also works for me, I do not remember this part here. Let's see. Yes. I also test it with the other one, which is ELT Input. I think it gives me the same. Telok Row. I link with... No, it has to be with a shooter, then. No, it will not accept that component, I do not remember what it is for. The component, of course. This is one of the cases that failed, then. The tool to select is the most appropriate. The component is T-High Input, the one that will select. And then it connects it to a Telok Row. Who was telling me that I did not create the table? Who was it? I remember. Brenda, I'm going there, then. Well, let's see. Ah, but it's blocked. No, I'm seeing. How many rows did you send to insert? Twenty. Or... Wait, that takes time. Go to the left side. Where it says AXA High of the metadata. Right click. Give it to extract the scheme for a moment. Give it Next, please. Expand AXA. And there it has clients. I think that's it. Then select, please. Give it Next. And it ends with Finish. That is the table that had to be created. To confirm, go to your T-High Create Table. One moment. To T-High Create Table. And let's see the name of the table that created T-High Create Table. That one that is there. In the middle. In the canvas. That one that is there. Client, perfect. Now, do the following to confirm if the data was stored correctly. Go then to Hive. And it will create a new job there in Hive. Which is to read data. There it has it. Ready. Then take clients. And release them in the canvas. But change there to T-High Input. Add a Tello Grow. And connect clients. With Tello Grow. And proceed to execute then the job. Ready. Proceed to execute it. Here it is. There it goes. If there it has the data. What makes me weird is. There you sent 20, right? 20 data. There it is. What is out of order. Yes, there are 20. Go up to read a little more. Yes, go up. Yes, there are 20. There it is. Yes. What happens is that I had not updated the connection. To see the table that was created. That's why I didn't. Yes, I had created it. But it was necessary to update. Well, let's go. Yes. Because by default the tool does not update. The changes that there are. It does not update. Of the new sockets that are in the data. You have to update. Well, let's create now. And let's see the other way. Of how we would do to insert data. In a table. For that, then. Let's create another job. Please, if we are talking about hype. And this man. I'm going to call him. Job. Under score sales. Sales. Products. By genre. Sales. Products. By genre. Let's go then. To mix a bit of. Big data. Of progress. With storage in hype. At the end it gives you finish. Then. Of hype. You can copy. In the previous hype. Copy the tepryok that serves me. The tepryok. Copy. Paste it here. And look for a. In the. The hadut. Look for a. TH. HDFS connection. To paste it there too. And reuse it. This HDFS connection. OK. Copy. And paste it here. Perfect. And I connect it. In the same tepryok. With the tehy connection. I copy the tepos. I close the connection. Of the hype. That you have it here. Ready. This would be the original structure. Then. Copy. And I'm going to paste it here. In. Perfect. This one here. And this one here. Those are the elements that I need now. The what? The tehy connection. Yes. I had had that. If you don't have it. Add it please. We had done that in the previous one. Add a tepos. And a tehyclose. Remember that tehyclose. Will show the connections that the job has. And you have to specify here. The connection that is going to close. Otherwise it will be a compilation error. That is not the past. It is the same because it takes the configuration. Maybe you ask yourself. You start to ask yourself. There is no way that I. Don't always have to copy and paste this. The same. Well, in the version of the Talent Studio. The commercial. They have what is called a Joplex. A Joplex is a set of components. That is involved in a job. So I paste that Joplex. And I could have a Joplex. That I have the pre-job and the tepos-job. So there. The only thing I do is paste the job. And I don't have to copy and paste. Otherwise I already have everything in one part. And I can reuse it many times. I hope I have time to show you a little bit of that part. Well then. I need the following components. I need an HDFS input. Input. I need a new component. Here a T-Aggregator Row. I'm going to do the following. Here a T-High Create Table. No lie. It makes more sense. The T-High. Makes more sense here in the T-Pre-Job. The Create Table. It makes much more sense. I'm going to put it down. I'm going to connect it here. On Component OK. It makes more sense. In the T-Pre-Job. And I'm going to finish here. To upload these data. An HDFS Output. And I'm going to finish with a component. That is called T-High Low At. It would be the components that I'm going to have here. HDFS Input. T-Aggregator Row. T-HDFS Output. Perfect. Ready. Well. Now then. We are going to configure the T-High Create Table first. We are going to use an existing connection. And the name of the table. We are going to call it. We are going to call it. Under score by. Under score genre. Sales. Under score by. Under score genre. In the Action Table. I'm going to tell you then. That create the table if it doesn't exist. If you are going to get a little high. You have to investigate a little. The partitions if necessary. Create partitions. But the interesting thing is that the tool allows you to configure that. And the. Scheme. I'm going to take it from what they were down here. So. So as not to do it twice. I configure it down here. And then I export it. And I import it up here. I'm going to do the following now. Let's go. And we connect. To the HDImpute. We connect it to the T-Aggregator Row. And the T-Aggregator Row. We connect it to the HDFS Output. Perfect. There. Double click. In the top part. Double click. Up there. In the header. I'll tell you where. For the moment. If you double click here in the header. He's going to put you. Give him another double click. I'm not going to leave. That you lost the. You lost this one here. This is the one that remains. Double click. Again. Up here. Ready. So. Let's go to the HDImpute. To configure it. We say to use existing connection. HDFS Connection. Take as a reference. The file that is called. Let's connect here. That is called. Supermarket. Sales. And I'm going to check that supermarket. If it's separated by what. If by comma. Or by dot com. But if by comma. By dot com. I'm going to check. To see what I forgot. Separated by comma. And they have header. Ok. So. I tell you in the input. I tell you. Well. Text file. Separator. Is. Comma. And the header is. One. Then. I'm going to look for the scheme. That surely I have it there. Temporal. I'm going to import it. Temporal. It must have a supermarket. Out there. I think we had read it already. This supermarket. XML. Perfect. Ready. Let's go to the aggregator row. Well. Since I want the sales of products by genre. Then. Let's go to the aggregator row. Let's edit the scheme. And let's go then. Gender to the right side. And product line. I do this in this way. It is to keep the names. So. It makes it easier for me to take the names. And the same type. Than adding the new ones. But. If I want. I can add it here with the plus. And let's go there. Total also. For this side. I do it just for that. To keep the names. The same names of output in the file. It makes it much easier for me. Ok. Then we group by. Gender. And by product line. Yes. Yes. Of course. Yes. Of course. Fernanda Lisbe. I already connected. Let's see. Go to. Edit the HFC input scheme. If you are kind. There where it is. Go to import. And surely. In the temporary folder. It has to have. An XML of supermarket. The last one it has. Perfect. Ok. In the separator then. Of field. It is a comma. Not point and comma. And the header. It is one. Because it has a header. Perfect. Let's go then. To the t-aggregator room. And delete the scheme. Go to the right side. Because it makes it easier for me to configure. To keep the same names. Go to gender. Product line. To the right. Ready. Product line. And total. Which is a little lower. Ok. Ready. Now let's go to the following. Let's define the operation. The operation as it is total. Give it a click here. And the total change appears. And the function. Is sum. Ignore the nulls. Because I don't remember if there are nulls. Yes. Please. Ignore the nulls. And there you don't have to do anything else. Let's go to the HF output. Let's say that we are going to use an existing connection. Let's go here to HF connection. And ready. And we are going to choose a file. To later change the name. So I'm going to call it. Sales. Under score. By. Under score. Gender. Well, here I am progressing with Big Data. In which. Process. The data that I have. And I send it an output file. To the Hadoop Cluster. Initially what I did was that. Remember that the Create Table. We didn't manage to configure the. The. Scheme. Because the scheme depends on the structure of the output file. So. Since I have the structure of the output file. I'm going to edit the scheme in the. In the output. And export the scheme you have there. Call it. Sales. Under score. By. Gender. XML. You always have to use the XML. Because then you don't read it. Ok. I export it initially. And now I'm going to import it in the Create Table. So the table will remain. With the same scheme. Import. And sales by gender. And there I have the scheme. What I don't like about how it turned out. Was that it has the first in capital letters. I don't know. As usual. I'm going to leave it like that in the middle. Well. Let's continue then. Let's go here. Where it says. Well. We are going to. That the subjobs are different. I'm going to connect then. The subjobs of the HDF input. With a subjobs of the Teja and Loa. Remember. To do the subjobs. The first component of the subjobs. Connects it with the first component of the second subjobs. Keep in mind. That here. I don't know if I put it. Because by default. The high index file. Wait comma. It escaped me. So. In the HDF opus. Please. Place comma. As separator. And it escaped me. That includes headers. Perfect. It's there. We are almost there. Perfect. So. Let's configure. The T. In the output. Of comma. Perfect. No problem. Well. Here. As suddenly. In the opus. We can execute it several times. Please. Place it there. Over white. Here. As a curious thing. If the guy. In the opus. If the guy. Had chosen. As sequence files. The table. It has to be of sequence type. Because. Otherwise. They are not compatible. Let's go to Teja and Loa. Let's tell it. Use existing connection. Perfect. There. This Teja and Loa. It has two ways to load. If you go in the Loa action. The Loa appears. And if the second option. Choose insert. Practically. It comes out. The same menu. That I had now. With the Teja and Loa. So. I'm interested in. How to do it with the Loa. This Loa. It has to be much faster. Because what it's going to load. Is a file. Directly. It's not going to be a SQL sentence. If not. It's going to be a bulk. To load. The records. To the table. So. Let's go here. The PAD. The PAD. Look at the following. Down here. There's a local. If I click this local. It's going to look for the file. That references here. In the location. That is on this side. That is to say. That if the local. I leave it here. In reality. It would be looking. The local. The file. That I place here. In the container. But I want the file. To be in Hadoop. So. I'm going to click this local. That is here. I am going to copy. The file. The route would be. This output. Is here. I'm going to copy the route. Output. That will be the file. For the Lua. Copy. And I paste it. In the Tejai. Lua. In the Failpad. In the Failpad. Of the Tejai. Lua. And the table. Let's call it. I'm going to copy the name. For. no problem, I copy the name and paste it here, just in case I have to save it in case of doubt, who takes it? Ok, ok, well, I'm going to try, I think everything is fine here, I'm going to try to run to see if there is no error, this should create the table and load the data that is in the output output file, I'm going to give it a run here to see what comes out, it is starting the process of bin data with my reduce, it created and supposedly there is no error, I'm going to see if it created the table, there are some that came out in error, not me, I'm going to see my first review here with me, I'm going to see, I'm going to extract them again, here it is, I think the table is sold, perfect, I'm going to consult it quickly here, if there is no error, there is no error, select asterisk from sales or under the core genero and the problem is that it inserted it to me but in a single column, wait a moment to see, I have run the errors, I have an error, I think with the, with the comma, let it load, ah no, what happens is that yes, yes, here I had a problem because the escape character of the table by default was in point and comma, change the escape character of the table please to escape this part and there was the problem, I'm going to try to run it again and there should be a problem with the separation characters, I thought that by default it was comma and in reality it is point and comma, I see that there are some that have errors, I'm going to ready, apparently ready, let's see no, I got the same error, ah, no, here is a problem, the problem I have is that, let's see, what is the problem I have now, the problem is that the table is already created, I will not create it again and the table has by default, I had, sorry, by default the separator point and comma, so it is easier for me because it is already created, I will not create it again, it is easier for me to change here in the output so that it is point and comma, the separator, I thought the separator was by default comma, then point and comma, let's see now yes, run again, I see that you have an error there, I do not know if you have overwrite in the output, you check to see if you have it overwrite and I try to run again and now yes, if the problem was that it was already created then the separator is point and comma, let's see, here it did not work, notice that the response time was superior, well, what did I do, I don't know, what a shame, I interrupted you, I'm going with you for a moment then, well, let's see what it says there, let's see, in the third line where it says Java file no phone, it did not find the file, it seems to me that go to hfimp if the configuration is wrong, of course, the problem is that our next one, I would be looking for that file in the root of the Hadoop closet, exactly, go there, if you want, but wait a moment, that is for the output or input, a moment, a moment, I left, I left, let me connect in an iterative way to be able to, a moment please, close the window for a moment that I left, a moment, close the window please, no, that input has to be, it is supermarket, then go back to the input, there you have it, sorry, go back to the, there, perfect, go to AXA and there it is supermarket, exactly, it is the entrance, ok, the output, please, the output, yes, that output is fine, let's go to Teja and Loa to see, to confirm, and it's fine, run to see. Well, there came out a small warning, I don't know, it already exists, well, it's over, if you want, do the following, let's do all the following to confirm the data then, that I did it over there, it was through the console, ready, let's do then, read data, ok, those who have already finished, please add a new job to read the table, remember that you have to refresh the scheme and then make an input and a telorow, ready, let's see, let's go to the output, please, to the output, ready, that's fine, let's go to Teja and Loa, remove the local, please, remove the local because it was looking for it there, the local chulito, because it was looking for it by default in the container and it is not there, try to execute again to see, ready, it's over, then, let's leave it there still, that we are going to do, we are going to consult it with the tool, to consult it with the tool, first please update the connection to the data base of Hi, how would it be, I go here to the Axa and update, extract scheme, next, next, Axa here, and here it was already, we selected 20 geniuses, if you don't have it, please select it, ah ok, let's see, let's see, it can't recognize, table not phone, I think it says, a little more to the right, yes, exactly, table not phone, sales by genre, ready, go to the Teja and create table for a moment, Teja and create table, copy in case that name comes from there, directly copy it, and go to Teja and load it, paste it there then, try to execute again to see, no there it says, table not phone, sales... ah, there, there, there, there, surely that is it, go to Teja and create table, And now, try to execute, yes, what happened, I tried to create the table, but I couldn't because the scheme was missing, and when I referenced it, it was created. Perfect, now do the next job, a new job in Hive that we are going to read, yes please, do that, it will be able to extract the scheme. Next, expand there AXA, choose sales in Hive, I already created it like this, next, finish, ready, then I was already in that part, create now a new job called job, read, job, read, sales table, nothing else, sales under core Hive. Here, finish, ready. Well, and then how do you do the sales table, I release it on this side, and remember that this is high input, I place a teloc row, and I send it to run. Well, here it is clear that with the tables created, and after you progress with Big Data, then what comes is pure SQL, or any component that you want to use, here it is, perfect, there it is. If anyone does not show data, please let me know. I do not know Alejandro, is there an error? Oh no, but it is Alejandro, sorry, what comes, what does it tell me? There was an error, right? Oh no, let's read the truth, then let's go to the next one, first delete this high input 2, because now, good question, because then it escaped me. First, update the connection you have of the Hive metadata, how will it be? Go to the connection and let it extract the scheme. Extract the scheme, I'll do it, extract the scheme, next, expand there please, next, finish. Now, take the sales table, expand tables, there are tables, there it expands, and sales, release it here. Now, the way you were going to do it, it also came out, but this is faster, why? Because here it already has the table, it already has the configuration of the connection to the Hive, you do not have to do it again. Give it a telocrow, give it a telocrow and send it to run, then. It executed the previous one, you have to run reading data, Alejandro, are you running the previous one? Open now, read data, no, it executed the previous one too, close and open again, close that job. Save it, sorry, save it, the engineer applies, close and open again, yes, perfect. Ready, then, we made the example with Hadut, we made the example with Hive, and actually the example with Sparse, this Open Source tool does not allow me, but I'm going to show you how easy it is to configure it in the proprietary tool. In the proprietary tool, I'm going to close here for a moment, notice that the jobs you have have the same structure, Basic Room, Debut, Advanced, Target and Memory Room, right? The jobs you create. Now, the jobs you create in the talent big data proprietary tool, this one that is here, is now going to add a new component called Spark Configuration. That Spark Configuration tool in the first place, you define where your Spark cluster is going to be. You configure it initially, and now, wait a moment, there you configure it. Spark Job Moment Talent, ready, I left it to see if I can find the graphic. Let's see, I can't find a graphic. Well, there you configure it, sorry, this configuration is done immediately in the job, and what the job is going to do is generate all the code you have, the job of the components that you have or that you have configured, it sends them and converts them to Spark in Java, and sends them to run against the cluster that you have defined. Why the example doesn't say it? Because the tool doesn't allow it. But in this case, it is connecting to the AWS MR cluster, and what it does then is that, here, let's see if it shows me the job. It shows here the job, this job that is here, which is a conventional job, the only thing we are going to configure is that you are going to tell it that you are going to run it against Spark, and it will automatically generate the code and it will make the Spark there. That's the only thing it does, it's actually very simple. You don't worry about Spark, you don't worry about the job, you do it conventionally, and in the end it sends it to run against the cluster. That would be the way to run it against Spark, I apologize because the tool doesn't allow me that part. And as a new thing, within the latest versions that the talent has, it already comes with components from machine learning. So it also saves you a lot from the machine learning processes, that normally one gets married with Python, but normally one gets married with Python because the Python ecosystem for machine learning is much larger than the machine learning ecosystem that it has for Java. It doesn't mean that Java doesn't exist, but rather that the machine learning in Python is much more mature. So to not start projects from scratch, one does it with Python. But now here, in the new versions that the talent has, it adds some components to be able to analyze the data through machine learning and with this it generates some descriptive or predictive patterns, as you want to do it. So it saves you a lot of work. These components, I don't understand much about the license part, I understand that the licenses are handled in the following way. You buy the talent studio and in the end, if you want a big data component or a machine learning component, what you do in the end is that you pay talent to enable you in the repository to update the components in the license that you have. That is the way it is working. Allow me to give an example with the version of the talent studio that does not come with support to enable that talent studio. But I'm going to show you some different things. Allow me, now I'm going to share my screen. The one of my team, not the one of... Give me a moment, this is my team. Wait a moment, ready. Here I have downloads, here I have talent studio. Ready, this is the commercial version. Wait for me, it's opening on the other screen. I'll try to pass it here. Look at the following. First, what does it start to change? It starts to change in the way the tool works. In the sense that the Open Source tool is designed more for personal projects, but I could adapt it to group projects. And this is designed for group projects. So, in the Open Source tool, I connected to a local repository, that is, a folder where I was going to save the different jobs that I was doing. In this case, what this tool is going to do is that you have to define a project. By defining a project, you associate that project with a Git repository. I don't know, they got married with Git. Although Git is the most used repository by Git developers, but I don't know if that was the decision of why they got Git at the end. But you connect to a repository in which all the people who belong to the same project are going to connect to the same repository. And that is the way they are going to share the different jobs. Here, by default, this part is already configured. So, here I say Open. Here, this version is a hybrid version, in which the authentication is done by the TMS that is in the cloud. How do I do it? In the TMS, I generate a key, and that key is the one that will allow me to log in and be able to open this talent studio application at a local level. So, how do you manage the versions of this man? Well, he manages the following way. Suppose you have a project. Well, here it tells me to wait five days. I'm going to create ... here are two types of jobs now. A job that is called Standard and a Job Lab. I'm not showing it here, for the question they asked me about how they manage the versions. Although I have it ... I could configure something in the TMS and we can wait there. So, I have little left for the evaluation that has to be done in the end. Here are two types of, let's say, jobs. One called Job and one Job Lab. The Job Lab is to reuse components within a job. So, imagine where I can use a Job Lab. Note that I, in most of the jobs I did, I always copied a pre-job and a post-job. With some basic elements that I was going to need. So, I can make a Job Lab. That Job Lab already has the pre-job and the post-job. And what I do is add that Job Lab to a particular job. In short, that Job Lab is what makes it have a set of components that prevents me from copying and pasting. It automatically makes me copy and paste. That's what a Job Lab does in the end. In the Standard, look at the interface, it is very similar. Well, graphically, there is a little thing at the level of shape, but in the end it is the same. Let's go here to Standard. Let's create a Standard Job. Let's put Job Example here. It opens the same bed. Very, very similar. Ready. So, I'm going to create a metadata here. I hope it's good. I already have a metadata here. I'm going to take this metadata. I'm going to take this Free file. The same idea. I'm going to add the Teglo Roam here. And here I connect this man with this man here. So, ok. The metadata concept will be achieved in all the talents, first of all. Note that here there may be some metadata elements that are in the OpenBit data that are not here. For example, here Hadoop does not appear. Not there. Why does Hadoop not appear? The Hadoop file that I have does not have that part. But when you buy or acquire the Big Data license, Hadoop will appear. There are the different elements that are there. In other words, in the end it is a matter of license that they want to sell their product. The question is that you buy more in a few words. So, look at the following. Imagine that here I have this Job that is here. Ready. Ready. That Job is there. I'm going to try something new. And I'm going to create what one calls a ... What is it called? When I make a partition in a KIP, I make a different branch. I make a fork in the branch. I make a fork in the branch. But I'm going to try something, but I don't want to leave the original. So I go to this man and I tell him here. Open in another version. I don't know. Here I open in another version. And here is where he charges life. The version that I'm going to read. The Major, the Minor. I'm going to create a new version. I'm going to upload the new version to 0.2. I'm going to finish it here. And I start where I left in version 1. So this version we are going to assume that I see the change. And I'm going to put a theme here. I put the theme here. I connect the theme here. Out here. Ready. I'm going to give it here and save. And now I have two versions. So if I'm wrong, I can open another version. And I can open the one here. See how the one was left here. And I can open the last one, which would be the two. And I can start from the version that I want. So that's how the versions work. So these versions are saved locally. But in the end you would have to do a push. A push that you do it automatically here. You put the comic manager here. The comic message, sorry. Here is the push. And you can see that when the other members of your group do a pull. Then what that's going to do is take the last changes you have. Obviously all the good practices that you have at the level of software development are applied. And all the good practices that you have at the level of using version control. But here it makes it very simple. Here, for example, the documentation that is generating you. For example, I tell you here add documentation. I think here, sorry. I go here and I tell you. Generate html doc, html documentation. Finish here. I think here it generates it in the folder. And this in the end what it does is that it generates some files that describe me. Well, I'm going to do it here. Generate all the documentation jobs for a moment there. It depends on what you want. I mean, what functionality? No, by default that comes already. No, that comes integrated into the talent studio. In any version it is. The only thing you have is that it is your power to define and clear the repository where your jobs are going to be. Particularly because I am married to Github. Remember that Github is a Git service. So I get married to Github and there I create my projects and I relate them when I'm working in a group. That's what generates all the documentation for this part. I don't know if. Yes, tell me. No, it can be public and private. Just let me show you something here. Where do you do that? Remember that I told you that in the end the tool is integrated, it is hybrid and it is going to integrate with a tool that is the TMC. In the TMC you are going to create as many projects as you have to develop. So every time you have a new project, in the end what you do is that it comes here. I'll show you a little bit of the TMC. This was what we used for the talent data preparation and for the talent data storage. But we didn't see the talent more console. Wait a moment and load. On the other hand, while it loads here. Here, if the good practice at the level of documentation is important because you have a tool called the talent data catalog. So in the future, to do the part of the life cycle or lineage of the data, that is, where the data starts, what changes there are. Normally, I could do it with the power center and several ETVs. But since I bought the talent studio, I would believe that it will integrate its talent studio, the jobs, with the talent data catalog. Therefore, it is vital that the names of variables are well documented. Any documentation that can, in such a way that when someone recovers it already in the talent data catalog, they can understand what is done internally in the job. Well, here I go to the TMC, which is this one here. Let's see in project. Here I have the test project that I am connected and I tell you the following. This is the URL of the repository that I am connected. So what you're going to do here is just create a new project with the name you want and here you put the URL of the repository here. And that's it, there you integrate them. And it does all the part of the push, the pull, it will do it automatically. Well, that's it, here are many more things, but hey, it doesn't give time. I don't know if we start with the part of the case study. Here I have two case studies actually. There is a case study that it seems to me that it will not give us time, we have practically two hours. I think I'll wait a moment and show you the case study that I have prepared. I think we have to change it because it will not give us time. Either we cut it or I make one that is simpler. Wait a moment and I show you the case study here. I think I lost the case study. I don't know if it's going to take a little break of 10 minutes, but it will allow me to tell you that my son is calling me. It is not customary for him to call me, so I want to answer him in case he says something that is happening. Give me 10 minutes and I'll come then. Well, I'm back. Fortunately, everything is fine. I don't know if you are listening, are you there? Yes, well, that's it. I had shared a case study to solve here in class, but it didn't give time. This is the case study. Let's read it for a moment to see if you suddenly think it is very complicated because of the time we have, practically only two hours. It says the following. The idea is to simulate a kind of data lake, the simulation. So the description says the following. As the explosive growth of music streaming platforms such as Spotify and Apple Music, a large volume of data is generated associated with the profiles of bands and musical artists. Millions of users interact daily with these profiles, waiting for recommendations and searches in real time. To support this demand, the Rockbrand music platform wanted to migrate the 12 billion profiles of artists currently managing a system of scalable and high-performance rigdata. To carry out initial tests in its traditional infrastructure, the response times for simple consultations took more than three hours. Remember that in the end, Big Data is for cost analysis. I wanted to give you this time at a maximum of five minutes to go to the users. So here is placed an initial configuration in which you are going to create a folder in the Big Data tab called case study and we are going to create three subfolders. This is a folder that resembles the three folders that you handle in the data lake. Which is the bronze folder, silver and gold. Here it gives you recommendations to use peyotips for each of the jobs you are going to do. And here are the different activities that you have to do. First you are going to download the S3 files. Then you are going to put them in the Hadoop's host, and then you are going to resolve these jobs that are here. For the time being, it will not give you time. There are eight activities that are here and this one is prepared for practically four hours and we have half. So I propose for a matter of time, let's make one that is much simpler than the one I was going to do in class. If you want, we do it together and present it, I don't know if we all do it and present it then at the end. Or if you want, we do it separately, I don't know what you think. It is this, it is to make a data warehouse in Hype. This is much easier to solve. What do you prefer? Do we all do it or do we do it individually? Let's do it together then, perfect. For this, please, what are we going to do? Create a document there in the browser, I don't know if it's Word. Open Word there so that it resolves each point and at each point it will add a screen. Ok, that's the first thing you have to do. No, the tone machine has Ophi installed, then in its machine, in its machine and there it is taking screens. Ready, I'm going to locate myself in the machine, ready, click, close all. So there. Well, the first thing then is we are going to create a folder. Ok, I think we already have that file, please confirm it if we don't do it. Confirm within the files that you have in the Hadoop Cluster if you have one called team underscore nba. Ok, this one that is here, I am going to confirm to see. Confirm please if you have it. If you don't have it then to avoid, I'm going to do the following, I'm going to upload that file in the shared folder. Wait a moment please, I download it because it is in AWS. So that you have it and we can start from there, AWS. I'm going to upload it, it's called team nba, this one that is here. Look, verify. It doesn't have it, so let's do the following. I'm going to download, I'm going to look for it for a moment and I'm going to upload it. Well, I just put it in the shared folder. And who was it that didn't have it? Fernanda was it? Was it Fernanda? Ok. So download it initially from the shared folder. The others please wait for me for a moment. Wait a moment please while I review here. Perfect, I hope I lost the share window. Wait a moment please. Ok, now yes. Ok, did you download it? Yes, you downloaded it. Perfect, let's see if you have it in the browser, in the Hadoop cluster in the interface. And look, there is a button that says upload file. Look if you can upload it so you don't have to do the job. Do it manually then. Confirm if you uploaded it please. Ok, perfect, I uploaded it right? Perfect, I did it. Now yes, let's go then. First point, let's create a subfolder called case studio. Case studio, folder case underscore studio. And remember that at the level of what is data warehouse, a set of dimensions is defined. The dimensions can be in stars or in a snowflake. We are going to make then two dimensions, practically two tables in stars. For this, they will be mounted in HAI. We are going to create then the first case studio. If anyone stays please tell me. The first case studio, we are going to call it job dimension players. Job dimension players. And copy the pre-job and post-job. The last job we did, we had the one from HAI with which we created the table, the last table. I'm going to look for it here, which would be this one. Job sell product by genre. And we copy the pre-job and post-job. We copy this pre-job. And we copy this post-job. Copy list. It is asked that the names of the dimensions are in Spanish. Then in the THAI create table, we are going to create a table called players. Players. And add a scheme of three columns. Erase the columns that I had previously there. And add the following columns. We are going to put a full type identifier. Identifier. We are going to put a full type. Add a new column called name. This is going to be of type stream. Add a new column called team. And it will be of type stream, only three. We are going to give it here, ok. And then we go to the following. Now yes, we are going to make an HDFS input. We are going to make a theme that we are going to map. The table has all the data of team. I have not explained. Team has the data of all the games that the NBA has in a year. I do not remember if it was 2010 or 2012. You will notice that the players will appear NBS. Then we are going to do the following. We are going to add here a new component that we had not seen. That is called Tejunic row to eliminate duplicates. Teunic with Q at the end, row. This is going to send to an HDFS output. And it ends up in a HLWA to load the data in the table. Well, let's connect then. Connect the HF input to the theme. The theme to Tejunic. Tejunic, here call it names. The output between the theme and Tejunic names. Unique players. And unites Tejunic with the THF output of the Unique. In other words, those who filtered the repeated ones will not add it again. Perfect. I hope then some are configuring. Perfect, ready. Then we are going to initially configure the HDFS input. This one that is here. As the HF input, what I want to read is the file called team NDA. Then please do the following. We are going to copy a metadata so that the scheme is easier for us. If there are some that have already downloaded it, those who do not have it downloaded, go to their Hadood cluster and please download the file to get the metadata. Download. And then it will create a metadata of the Limiter file that points towards that file that we download now. I'm going to call it here team NDA. And I think it's separated by a comma, I don't know, I have to check to see. I'm going to look for it. It must be in downloads. There it is, team NDA. Separated by comma, indeed. Separated by comma. And refresh. Team NDA. Team NDA. Yes, indeed, you have to mark it in header. And there it is. Perfect, ready. So then give it here if you tell me who is talking to me. Alejandro, I'm going to go to you, Alejandro. I don't know if you have it there. Wait a moment please. Yes, download it please. Click there. It just has the name there. Give it download. There it is on the left. There is the download. And now if you point it towards it. Brenda, I'm with you. Brenda, yes. Let's see. Give it there in refresh for a moment. No, it's weird. Give it back for a moment. Give it back. Give it... Give it next again to see. Wait a moment to see there. This is really weird here. What happened? Give it cancel for a moment. I'll open it again. To see if it was that. Give it to team NDA. Browse there. Ready. Give it to team NDA again. One moment, one moment. It's that the file is empty. It's in zero. Because it's in zero. Go to the folder for a moment. You were the one who downloaded the shared folder, right? Go to the shared folder for a moment to see. If you want. Go to the shared folder. If it was that I uploaded it wrong. Give it download up there. And I check to see if it has data in the shared folder. Because... Yes, it has data. This is to see how it looks now. Ready. Open it to see. Go to downloads. Now if it has data. You have to upload it again. But let's go here in the team. Let's go again. Yes, because it is in zero. You have to realize that it is in zero. Now upload it. Then take team again. Team NDA. Now yes. Next. Separated by comma and they have header. Give it to Sexhear. If you want to put... Perfect. Give it to refresh. There is a small problem. What happens is that I add one more when I click it. Give it. Put one there. One. Put the number one there. Give it again to refresh. Now yes. Give it to Next. Please. We give it to Next here. And right here. We take the button that allows us to export. Which is the penultimate. And I'm going to put it as usual. Temporal. And I'm going to call it Team NDA. XML. NDA. XML. Finish. Release. Release. Yes, because they have header that is empty. Well. Now we are going to confirm the HDFS input. First. Import the Team NDA scheme. It already has it. OK. Second. Configure the existing connection. Third. Refer to the Team NDA file. Where it says file name. Search it please. Team NDA. There it is. And the field separator is comma. And the header is one. Remember. I repeat again. Import the Team NDA scheme. Second. Refer to the file. AXA Team NDA. Third. Change field separator from point comma to comma. And tell it that it has a header. Act then. Ready. As we are going to configure the theme. And in the theme what we are going to do is simply make a column filter. To the theme you are going to take the following fields. One moment. I'm going to take. Player ID. I release it on this side. And when I release the first one I can expand here. It takes player. And it takes team. Three fields that are practically united. Now in the case of Haydn does not handle primary keys. Conventionally as we handle them in. Transitional database. But here when you are going to export to a database. For example. If you put here key. And you are going to send it to a database connection. It is what is going to try is that it is going to create this as a primary key. But Haydn does not handle primary keys. We call here OK. Yes. And we go here where it says Tejunik row. And we are going to configure the Tejunik row. Here it configures those elements in which it wants to eliminate the duplicates. It turns out that the player ID is going to appear n times. So there. It is mentioned in the section that says key attribute. The other section does not apply because player ID is whole. And the sensitive case only applies if it is textual. So what would I do there? I would only let the player ID pass once. If it is repeated, it does not let them pass. Ready. There is nothing else here. I'm going to the HDFS output. I say existing connection. Here I make sure that the field separator is point and comma. Because the one on the table is point and comma. I'm going to check the one on the table that is point and comma. Yes. Point and comma. Of the table. We are not going to change there. Here what I am going to reference is the name that I want to give practically. So I choose the connection first. And then I'm going to choose. Any name to then change it. So. And here I'm going to change it. And I'm going to call players CSV. players.csv Yes, just in case we make a mistake. Yes, it is true. Let's go here. Just in case we make a mistake. Please copy the name of the file. The output to paste it here in the Teja and Loat. I'm going to copy it here. I'm going to include header. Thank you. Say include header. Perfect. So include header. We are missing Teja and Loat. Teja and Loat says use existing connection. I choose the connection. The path will paste the output output of the HDFS. And the name of the table must coincide with the name that you create in the Teja and Loat. I think I call it players. Yes, players. And I paste it here. Please then join the two sub jobs with a sub job. Ok. And we have to test if the first point does not work then. Perfect, ready. Well, let's try it then. Make sure that the one who reads it does the job. I'm going to run to say there is no error. The output of the HDFS. Well, now you have to check that this table has data. You have two ways. Or you do a job. That lists the table. You know how it would be. It would be to update the connection. Extract and do a job. This is one way. The other way is to do the SELE directly in the console of the container. So, look at the following. If it worked well, take a screen. Place. First point. This screen and the screen that solves that has data. Or you do it with a SQL query. Or you do it with a job. If it is with a SQL query, you go here to the container. And you are going to put SELECT. Asterix. From players. And you take the screen. That's it. Ready. Here. Ok. Perfect then. I'm going with Beatriz. And the others already know what to do. I'm going with you Beatriz. One moment. While the others are placing. Let's see. Ok. Give it. Cancel the same moment. Go down please. Go down a little. Go down the job. Ok. In that text there is CLOS. Give it a moment. No. It is in the text HILOA. Give it a click in the text HILOA please. There he forgot to choose the existing connection. There is the empty combo. It says COMPON ELEASE. It did not choose the connection. Ok. Perfect. Now try to run to see. Ok. It is starting to run. Remember. It would be two screens. The job screen. And the screen that shows you the data. Of the table you created. The table or the consult. Ready. Ok. I'm going. Give me a moment. To finish with Beatriz. Beatriz. You already. Give him a cell from players there. Please you. Who spoke to me? Alejandro. Yes. I'm going with you for example. Select Asterix from players. Point comma. Ok. There it would have. I'm going with Alejandro then. Take the two screens please. In the file. Ok. Go then again to your job. Show me your output. Perfect. There you have it. Ok. In case of doubt. Go. Edit the SDC scheme. Put a moment there. Perfect. Ok. In case of doubt. Go to your. To your. Cluster. Leave your moment. And it should have the player file there. Go to browser. Give it F5 there. It's not there. I don't think so. Let's go again. Let's go again. Let's go again. To the. To the. To the job. That's weird. Go to the high loader for a moment. This is weird because the file doesn't have it. Go again to see what happens. Show me again. The cluster. In the browser. To see the moment. I didn't see the player file. It was there. You don't know it's not there. Ok. Go again to the job. Ok. That's it. Show me again. Show me again the job. Ok. Now check the table for a moment please. But you're going to have the nulls initially. And then you're going to have. Ok. Click there. Go. Execute. Yes. That. The null is still sending it. How so? Show me. Now yes. Show me the file. How did it stay in Hadoop for a moment. In the browser. It's at zero. Do you see it? It's at zero. It's at zero. Do you see it? Let's go again to the job. Go to the Unicron for a moment. Ah, I know. Go to the Tmac for a moment. There's the problem. Ah, no, no. There's the problem. There it is. Player ID. Ok. No, it's fine. Wait a moment. No, no, no. No, no. There's a problem. It seems like. Yes, do it again. No, it's fine. It's fine. Ok. Give it ok there. Go again to the Unicron. Go to edit scheme for a moment. Edit scheme. There it is. Give it ok. And go to the THF output at the end. Oh, it's interesting. Let me tell you that I didn't see the error. Let me tell you. I'll see. Well, let's do the following. In this case, I'm going to test this theme here. And I'm going to put a telor row here. And tell me. Can't you see it or don't you have it? Ah, then. Connect and give it. Use AXA. In. In Dock. It seems to be connected to the default database. Use AXA.com. And then it gives. Be a player to see. Let's execute it for a moment, Alejandro. If you don't wait a moment. Let's execute it for now. Let's execute it. Let's see. Why are you saving that data? Well, the data goes there. I mean, there are the data. I mean, no. If it happens. I'm going back here. What was it? It was here. Here. F5. But he deleted it, right? Tabla la crea. But this man. It seems. Players. F5. Alright. Well, let's do the engineering. Let's see. Let's remove this component from here. I'm going to remove this other one. And I'm going to check that at this point there is data. I mean, because suddenly the line can arrive. But with the empty data that is null. Data is coming there. So. I'm going to create another HDFSUP here. In case suddenly there was some configuration that we did not see. Let's connect it here. Ready. Use existing connection. I already copied the name. And this would be ready. Axa, players, text file. Edit scheme here. This scheme here. Point and comma. Because this man was with a point. But you say comma. It fits. As you have comma here. And the table is created. You have to put here. Comma then. Include header. Ready. Let's see now. The other would be to delete the table. To be able to change the separator. But since the table is created. The separator by default was comma. Let's see here. It would be here. Indeed, Alejandro. It was the small comma that we had there. Ready. Let's take the screens. I think it was. Thank you. Sometimes you do not realize those errors. Sometimes you do not realize. I made a mistake in mine. Who told me? Beatriz. Was it you who did not ... It was perfect. Then the first point is ready. Who was that? Ah, Fer. This is the one I said. I thought it was. Ready, let's see. Ah, no, it is not connected. Let's see. Go to your container, please. If you are going to talk to the stock docker. There is the one. The little whale. Give hype there. Hi. And you have to reconnect. Let me see if you have something up there. I do not know if they have the connection up there. That one that connects with slash. Or you copy it. In the folder to share. Share. Go there, ready. Expression. Enter expressions. Copy the connection you have there. That one. Paste it, please, there. No, with right click. No, right click. You have to right click. Ready. Paste there. Enter. Ready. Enter. Enter. Give it. Use. Use space AXA that would be the database. Space AXA dot com. And go straight. So give it select asterisk from players to see. It separates. And sometimes. From. Players. Dot com. There it is. What it does is that you were. Is that I think you were connected to the default database. So it was not there. So. Screen. Two screens. The first screen is that of the job. And the second screen is that it checks that the data is there. We continue. Ok. Well. Let's see. Who spoke to me? Brenda. Or Beatriz. Brenda. Let's see how Brenda moves. Let me. And we solve the problem. Please go to. To the job. Now. As it happened to us with Alejandro. Go to the Teja and Create Table moment. To check Teja and Create Table. Look to see the separator that has in the Teja and Create Table. Double click. And there it is separated by comma. Effectively what it has. And then as it separated by comma. Go to the HDFS output. And I would have to separate that file by comma. So that's where it says field separator. I would have to see comma because it had to be the same as the table. Please execute it again. Perfect. Go now to the Docker desktop. Give it. Up. Enter. There are going to appear the nulls but in the end they should appear with data. There are the nulls. Done. No, in the Word document. Place a first point and place the two images. So that in the end they send it to me by email that file. Well then we go with the next point. Which is to create the dimension time. So for this. I leave this open to copy the pre-yog and the post-yog. So I'm going back to Casio Studio and I'm going to create a new job here. I'm going to call it Job. Perfect. Alejandro. Done. Beatriz. I'm going to my screen now. Well then I'm going from here to Casio Studio and I'm going to create a new job. Job. Underscore. Dimension. Underscore. Time. Done. I'm going to copy the pre-yog. With all the elements it has. And I'm going to copy the post-yog. And finally I copy the input. Let the input be the same. Input. Copy here. And here. Perfect. Done. Yes, I need the input. Wait a moment and I'll review the file. This team. Let's see how it is. Freelance. Clients. Team, team, team. Moment. Wait a moment please. Yes, I need the input. I'm going to help here. A T-Map. A T-Unit. Ok. A T-Unit. And I finish with another. Lie. Better here. A T-Unit back here. More efficient here. A T-Map. Nothing else. And a T-HDF-C output. And a T-High-Low. It would be in those components. Done. Let's proceed to connect the elements. The T-HDF-Input we connect with the. With the T-Unit-Rob. The T-Unit-Rob. We connect it with the Units with the T-Map. And we connect the T-Map with the HDF-C output that is here. I'm going to call it here. Output. Formatted. Time. Perfect. Done. Remember that at the data warehouse level. Normally one makes a time dimension. And that time dimension takes out the different times from the data. So it generates a. A key that we call a synthetic. Some of it depends on the author. There are authors that are different. It connects the two sub-jobs. Or a sub-jobs. As we did last time. A sub-jobs. Let's configure the table first. Remember that the character. Of the table separation with the character of the output. By default here I have it with point and comma. But there are some that have it with comma. So everyone decides how to do it. The table is going to be called times. And in the blur scheme that it has. And we are going to add some columns. Some columns then. The columns are the following. Identifier. Of whole type. Identifier. Whole type. Month. Of whole type. Month. Whole type. Year. But it is going to have a problem with the year. So I put annuality. Whole type. And I put now. Month. Trimester. Whole type. And finally, name of the month. Name of the month. Stream type. There are five fields. Identifier. Month. Annuality. And trimester. All those four that I mentioned. Whole type. And the name of the month. Defines it. Stream type. It gives it here ok. If the impulse took it from the previous job. There is nothing more to do. And we are going to configure then the Tejunik row. And here what it is going to do is that. Wait. What impulse did I take? What a shame. I took the sales impulse. It is the one of players. I think I am the input. It is this input here. I copied. It was the different job. I paste here. I connect here. And it is going to eliminate the duplicates of dates. So. It stayed the same. What was it that I took the same? One moment. Ok. This has that it did not synchronize me. It left me the previous one. So I'm going to eliminate all these that are here. I'm going to eliminate them. Because I was wrong. So. Ready. And I pass all these here. Now yes. Ok. I was wrong. So here you have to filter. The dates. Act then. Well, let's hope there are some that are still. Configuring. Well, those who are already. There are some that are still configured. Please. Connect the two subjobs that I escaped now with 11 subjobs. Ok. There are some that are still configuring some things. With. Sorry. Connect the HDF input with the Teja and Lua with a subjoke. And the date. Yes sir. The date. Nothing more the date. I want to filter the dates that are duplicates. Yes. Only from there. Let's go then. Yes. No. One moment. Who brings me, right? Yes. Let's go then. We are in. Where is it? It is in the Tejunic Road. Pass all. In the Tejunic Road you have to pass all. Exactly. You must accept. Now. What is there. And now. Yes. Go to Tejunic and nothing more. Cool. Date. Perfect. Ready. Well, let's do the following. We leave it here. We continue now between one hour while we have lunch. And stand up so that some finish some things. So we return in one hour and we finish so that I can send that by mail. So good luck then. Yes. Good afternoon again. I hope you already have a good time in your lunch. If we are connected. Perfect. We are almost finishing then. All ready. We are going to continue. With the second point of the study case. Which comes now. We already filter. We remove the duplicates of the dates. And now each date must have a specific code. Since the dates are unique. There will be no dates repeated there by the Tejunic Road that is dedicated to that. Let's go to the theme at some point. The theme. We are going to configure the theme. And we are going to define a sequence that will place us each date. Which is unique with a unique identifier. For this part then. We are going to define a new variable here. Of full type. That we are going to call identifier. Identifier. And now I could then with sequences. Which is an option that has the talent. Which we already did before. Let's go then to the expression. And we look for where it says talent in numeric. There is an option that says sequence. Which is the last. And there it specifies the name of the sequence. Where it starts. And with what increment. It would start in one with an increment of one then. I'm not going to make any changes. Sequence is called. It is the last option. It gives you double click and it comes out automatically. Perfect. Perfect. Okay. I need now then format the dates. The dates that are here. Go to the entry elements. That here is the date. Here it specifies the format of the date. In which it is DDMMJJJ. But now it's my turn then. Take out the year. Take out the number of the month. Take out the quarter. Then we are going to do it the following way. We are going to create a new variable. Entire type. And we are going to call it then annuality. For the problem of the year that we have. Annuality. And we are going to take out the year from the date it has as an entry. For this then we are going to look for a function. That is called. Go to Talent Date. The functions that are grouped in the Talent Date category. There is already an option that is called. Get Part of Date. It's called like that. The function is called Get Part of Date. Double click on that function then. And the function is telling you what modifiers you should send. Depending on what you want to take out. As I want to take out the year. I'm going to send you year in capital. I can copy it from here. The same. Of the help that is here. And where it says, Date of Weeb. I replace it by year. What do I want to get? Then. I'm going to erase the example that is there. Which begins from the T. To the parenthesis. To the first parenthesis that closes. And I would stay comma. Parenthesis that closes nothing else. That's how it would stay. Comma and parenthesis that closes. y busco en dentro de la variable de entrada busco la que dice road dos date le doy doble click y me aparece justamente donde está el cursor y ahí sacaría el año perfecto le okey voy a sacar ahora el número del mes entonces para el número de mes voy a crear nueva variable voy a usar la misma función talent day get part of day es más creo que me sale más rápido que copie la expresión de la variable anterior y la pegue acá abajo sale más rápido y lo único que voy a cambiar es donde dice gear voy a colocar mom en inglés y en la expresión de la del año y pegarlo acá en la nueva variable que volverla configurar nuevamente a esto le damos okey vamos a cambiar el tipo sí dígame el tipo de datos sería entero primero porque la tal en devuelve un entero y el nombre sería mes me piden ahora el cuartel y para sacar el cuartel voy a hacer una función ya bastante antigua entonces voy a crear una nueva variable y voy a copiar la misma expresión del mes la copio y la pego en la expresión de acá vamos a ver dele hay más allá arriba más un momento un momento a ver qué pasa vuelvo a abrir nuevamente el tema no sé qué pasaba listo entonces para esto hacemos lo siguiente la función cuál sería vamos a restarle uno a la fech al mes que estoy sacando menos uno o copie brenda en su caso copie la expresión del mes en el talent day copia el anterior listo perfecto restele uno restele uno encierre entre paréntesis divida entre cuatro y sume le uno y esto saca esto me da el trimestre por ejemplo si tengo 11 entre cuatro entre cuatro daría dos sí no acuerdo si la función es entre tres o entre cuatro por un momento en la busco la función de se calcula la función entonces no sé si la función es para ver 11 entre cuatro más uno no daría de quedar cuánto tenés es vamos a ver en 53 que pena entre tres no entre cuatro entre tres más un si entre tres más un esta función no sé si la estoy en el momento de buscarla apuntar rápidamente aquí a la ya dame la función a partir del mes que me del trimestre momento que no sé si me está dando es trimestre cuarto trimestre si señor esto sí está bien y listo sí entre tres entonces listo si perfecto ok y faltaría sacar aquí sería entero y sería aquí trimestre y creo que nada me falta el nombre del mes agrega aquí una nueva función pero aquí sí nos toca hacer una diferente porque la función está que par no tiene para obtener el nombre del mes entonces entre a la expresión por favor y va a buscar dentro de tal en date una función que se llama forma de y esta forma de este forma de forma de forma de entonces aquí en forma de donde está el formato que está ye ye ye vas a mandar como formato y 4 m en mayúsculas que indique que quiero el nombre del mes m m m m 4 m en mayúsculas y en la opción que dice my day mandale como parámetro la variable que se llama road day la borra si tú haces el cursor en donde quieres le das doble clic a la ir creo que ya tenemos este punto aquí casi listo vamos a la que ok y antes de enviarlo de salida a perdón el nombre va a ser aquí nombre mes nombre mes se llama la variable y para ver el orden voy a ver cómo creer la tabla porque tengo que dar la misma orden la tabla está creada primero identificador número de mes anualidad trimestre y nomes el mismo orden entonces sería de esta manera mandaría primero va identificador la segunda columna va mes tercera anualidad cuarta trimestre y quinta nombre del mes y de nuevamente el orden identificador mes anualidad trimestre y nombre del mes porque lo coloque así porque como voy a mandarla para que cargue el orden de los columnas tiene que ser igual a como definir la tabla y mande otro elemento aquí que se me escapó en la tabla que lo agrego ahora es sumamente importante que es la fecha para poder hacer un join ahí con esa fecha que se me olvidó de regar la tabla sería entonces identificador mes anualidad trimestre nombre el mes y date date como último campo entonces perfecto listo vamos a darle aquí ok ok agregue por favor en el texay create table agregue una nueva columna que se me escapó que era en el esquema agregue una nueva columna que se llame fecha y es de tipo date el tipo es tipo date ok bueno configuremos entonces fecha tipo de ahí ya nos falta el thdfs output entonces configurémoslo usar conexión existente listo entonces vamos al nombre archivo busque un nombre archivo que ya esté después lo llamamos en aksa el nombre archivo lo va a llamar tiempos.sv listo perfecto en el hay create table texay create table agregue un nuevo elemento que sería llámelo fecha de tipo date fecha de tipo date tipo date nada más fue ahí se estamos ahora en el output listo vamos en el output estamos confiando el output y el output sería entonces el nombre lo mande hacia aksa tiempos.sv le doy que sobrescriba y confirme que su separador de fila coincida con el separador que tiene en el create table yo por defecto tengo punto y coma y acá lo dejé en punto y coma y le dice que incluye perfecto entonces copie por favor la el nombre archivo del output para colocarlo con el texay load copiar vete a tu texay load en el file bueno usar conexión existente recuerde colocar aquí el nombre la conexión en el path y el nombre a tala se llama tiempos perdón se ve que venga vamos no vamos a configurar ya el texay load pegue por favor el path de la salida del output que sería aksa tiempos.sv y el nombre a tablas se llama tiempos bueno aquí creo que no hay que hacer más nada voy a probar ejecutar para ver si de pronto no tengo ningún tipo de error bien al parecer no hubo ningún error voy a ejecutar acá select asterisco frontiempos a ver bueno ahí están con los nombres noviembre listo voy a ver quién tiene problemas lo que les salió bien por favor recuerde punto número 2 un print screen del job y un print screen de la salida alejandro voy a ver qué pasó contigo a ver vamos a ver cuando ese es un error de compilación entonces para lo más seguro vete al si está en el texay load parece que hay una comilla doble que parece que leí para ver mira al inicio colocaste dos comillas dobles quítale una por favor ok eso creo que es el error ejecuta para ver perfecto dale un select asterisco por favor a la a la tabla tiempo y deberías tener los datos allá parecer fernanda creo que tiene un error voy a ver para ver bueno vamos a ver ese error de compilación vayase ok vayase al co para que lo marque le marque exactamente donde sacó que problema que tiene con su intercom no sé no sé por qué bueno vayase el punto rojo que tenemos ahí que le marca un error de compilación dice si quiere dele click acá en el en el rojito que tiene la izquierda si le coloca el mouse ahí le da click ahí de ese que tiene no puede convertir entero a string a seguramente el valor de la variable la colocó string vayase al tema y la la trimestre es entera pero espera un momento que aquí hay un problema cuando lo hago de aquí en entero y ahora enter de ley por favor ahora el trimestre de la salida o sea del lado derecho tiene que convertirlo también a entero en la parte de abajo están los mismos nombres de arriba que lo cambia ahí dice string y cambia intero dele para ver ejecutar por el creo que pronto colocate es colocate sobre escribir al té al loco de pronto que saca que se ha ido a loco en la acción dale sobre escribir porque parece que como que está intentando en el caso tuyo fernando a darse la catérica no era como con jaca con jorge en la que está rico tu fernanda ahora en la en la por favor en ahí en la acción jorge darle o sobre escribir ejecuta nuevamente para ver dale se la que está rico por favor fron tiempos escribe que él se colocan aparte abajo hay un pequeño error ahí vamos a ver dale que ir un momento ahí no el rollo de ejecución de beta el designer momento jorge qué pena contigo fernando te lo tiene bien voy con jorge entonces voy contigo ahora a ver cerca de y vete un momentico al tejai crédito por un momento le doy click ahí un momento a tu editar esquema ahí no sé por qué hubo un problema ahí ese tipo está bien pero el tipo de antes o sea el tipo que está ahí tenía que estar de ahí no sé por qué creo que lo cambiaste fue directamente en el debe tai si lo cambia el debe tai no te cambia el tipo de llave entonces ahora lo que no sé si creó la tabla entonces vuelve a ejecutar ahora se vuelve a ejecutar para ver no creo que yo me lo espero un momento y me conecto porque pero deja que termine un momento haz lo siguiente espérame y mira para ver si puede ver a mí me conecto interactivo para ver una configuración mejor ah ok aquí está un problema y creo que el inconveniente que tiene es que este campo no deja que sea no que se llame de y porque parece que es para la reservada un momento no no creo que vamos a ver para ver si es eso si deis lo tenía como para la reservada entonces hay y entonces ahí tenía el problema bueno ya está copiando vamos a ver tiempo sería tiempo tiempos creo que se llamaba tiempo perfecto listo copia si ahí tienes un problema con la última null de a tu momento yo no soy inconveniente ahí vete por favor ese no lo necesitamos ahora vete a tu a tu tema un momento a tu tema listo ahí está bien ok dale ok un momento ahí vete a tu hdfs output un momento y dale editar ahí ahí está bien también permítame yo tomarlo con todo el momento a ver y este es el hdfs que está acá si está bien vamos a hacer lo siguiente voy a borrar la tabla un momento drop table para que lo acabe nuevamente a ver si el problema sigue siendo ese perfecto listo vamos a ver entonces vamos a ejecutar nuevamente ese job tuyo está bien todo no lo veo nada extraño vamos a ver si la volve a borrar nuevamente pensé que estaba el cdk ahí que raro ah no no alcanzamos a ver verdad que sí vamos a ver si de pronto espera que termine está en nulo a los demás no salió nulo verdad yo a mí no no recuerdo que confirmó para ver yo no ah no pero es que yo también a un momento ah espera un momento vamos a correr a ver a ver porque está nulo es que todos tenemos nulo vamos a correr un momento que sin eso es vital para hacer la tabla de hechos no no creo que sea por el nombre porque es por posición del de los datos que no sé yo no no no no revisé si yo tenía también salió nulo entonces vamos a ver a a ti se salió ah ok bueno ahora vamos a buscar el caso tuyo para ver porque a ti sí y a nosotros no no sé te haces confirmar porque cerré aquí el doc y este docker tiene un pequeño problema en esta versión de windows que cuando cierro la ventana de forma bruta no me la abre más ah pero es un momento ah en el caso tuyo un momento a ver fernanda es porque a ti sí y al demás no que voy a entrar a tu ventana para ver fernanda no en realidad a ti te falta una campo fernanda que es la fecha el último campo 10 5 son 6 si vamos a vamos a comprobar tu yo que un momento y el te hay que ir aquí debería tener si aquí falta un campo creería que es momento a ver dele un descrae la tabla por favor y mire qué tipo de datos lo le apareció que tengo un problema acá dele des haga lo siguiente váyase al váyase si es tan amable al al contenedor y coloque lo siguiente des des en este caso sería tiempos.com no la fecha está bien este tipo date si creo que va a ser el problema es que yo creo que haga lo siguiente para ver cómo esto es del siguiente select current con the record date el así para ver creo que esto con no recuerdo si es con el así para ver current date para ver qué formatos tiene por defecto año mes día entonces voy a ver este day y este day está en día mes año por favor aquí en el data pattern este del del tema cambiela el orden aquí para que sea dd m m y y dd guión m m mayúscula dd ok vamos a dar aquí yes vuelvo a ejecutar yo haría un docker sec docker docker And now, in the last ones, if I add them in all of them. Oh, well, then, that error is already a moment. So there is a problem that you have to format that date. The problem that we had then was that the date, the format of the date that I am sending is not the same format that the problem that is causing already has. But for a moment there, I do something here, a moment, please, this is here in documents, just a moment, please. Hey, I connect here, I think I have it here, I have already seen it. Well, it is clear that the format of the date does not like the date, then I have to define a different format. Ready to copy. Wait a minute. Select a 30 of them. Okay, let's do something then. Let's turn that date into a stream, better. Wait a moment, I'm thinking right. What happens is that I don't know if this format, as it is entering me in this way, when I pass it through here I lose the format completely. I'm going to run it again to see what it is giving me, how it is saving those data. Can you tell us please that you sent it as data? Okay, and the last one because it didn't work, let's see what happened. Wait a moment, let's see, I'm going to see the original file to see what's going on. In what format is the original file? Wait a moment. Ah, the original, it's a bit messy, so there's no problem. Here we have a problem, that is, the problem is in format, so that's it, I understand. So, let's do the following, let's do the following then, let's go to the input, the input, let's edit the input-input scheme and we are going to change the format from here in, the format we are going to read it then here in yy-mmdd. Okay, let's see if I changed the unit, they all change immediately. Yes, I think so, yes, they all change. And in the theme, let's see. Yes, then let's do that. If you want, please give a delete to the data in the table, give it delete from, delete from times and run again to see. Ah, no, this command doesn't leave me with delete, it leaves me with, wait a moment, where is the command? But hey, if it executed it, take the screens there, this man to save it is not with delete. Well, I'm going to do a drop table better and run it again, give it a drop table, times, of speed because of the time that it is no longer consuming, delete it and run it again. And run everything again then, in this case I also run it again. And that conversion was strange then. Perfect, I think it's over, now if it's going to be a select, I'll select it. Well, in my case, I'm still null, I don't know why. DDD, okay, I don't know if I'm going to be able to relate to what it was. Well, I don't know, if the dates came out, we are going to be null, we are going to see what happened then. Ah, of course, edit the scheme, let's go then, the format here would be, we don't change it here, right? We are going to change it here then, let's see, here it would be, yymmdd, I don't know if, and this man, the dbtie has to be here date, I don't know why it appeared when it was here, here it has to be date, date, date and in this format, I don't know why I changed it there, delete the table again to see, because if not, it will not create with the changes. And ok, and we run again to see, you have to delete the table because if the change later does not affect, it does not take into account the change. Effectively, of course, now we are going to see, Beatriz, now we are going to see, let's go to the changes with you, Beatriz, to see them first. First change, let's go to the HDFS input, let's check the changes, go to HDFS input and verify that the format is yymmdd, in the scheme, perfect, yymmdd, enlarge a little more to confirm that it is well written, perfect, ok, then go to the test high create table, the one above, the create table, that one that is there, and give it to edit the scheme, please. Change there, that dbtie, I don't know why it changed, it must be date, not time-stan, that time-stans that it has next to the last row, it appears dbtie, in the column dbtie, time-stan, change it to date, I don't know why it changed to time-stan there, and now change the format to that one that is there, change the format there to yymmdd, yymmdd, ok, now go to the docker, and give it drop, space, table, times, I will execute the joe again if it is so kind, I don't think it needs anything there, I don't see anything there that it needs, execute to see, we are going to leave up to that second point, please save the document and send it to me that mail that I sent out there, please, I confirm it when I get there, I sent it by checking the mail, save the document up to point number 2, what they have already finished, go to the docker again, there it is, thank you very much, it was an interesting course, because you helped me a lot, that's why working with people who know how to do it is extremely interesting, well, there I sent you the mail so that you can send me that document that you worked on, they are two points that are going to have nothing else, that has to send me, yes, tell me, of course, of course, yes, of course, send it to me, but send it to me separately, please, so that later you confuse me, this is what we did now, perfect, ready, good question, good question, so look what it's going to be, it goes to where the talent is installed, which is the program file, one moment, let's see if I left it there, tost bd, and here there is a subfolder called workspace, enter workspace, and here is the project called local project, so imagine that you changed the project to project axa, in the end what you are going to do nothing else to have all the copy is to copy everything that is here within the name of your project and there it automatically recreates everything, look here, compress this folder, which is the important thing, and the content of that folder is the one that is going to paste in the project that you defined, by default local project is created, but everything that is inside is pasted into the local project and automatically you have all the exercises that we did there, yes, that too without needing the tools, exactly, well, here then, let me know when you send it, I will confirm it, please, the email, close it to have a copy of the exercises that we did, so if you want to send it, close your email and when you have the tool you can again recover those examples that we did in class, what you see send me by email is the doc document where it has point number 1 and point number 2, which is the valuable one, the compressed one is to have a copy of the example that we did, call me in your house, here I got González Puentes and Pesquera Rodríguez, I already got it ready, I sent it here through the chat, there in that email you can write to me for any questions, you are going to write to me for the good practices and any questions you have, please write to me there, here I got Sánchez, Sánchez Rosas Beatriz, yes, I also got it, Jimena arrived and I got Jiménez Ramos and Rosales Trejo, perfect, I think they all sent it, right? I think they all sent it, well, without a doubt, I did not make a mistake in the introduction when I said that it was a transfer of knowledge of this account that many of you helped me in some problems and I really loved having worked with you, I wish you the best, any questions write me, I am willing to if you have any questions about the topic of such or what things write to me and if I have the opportunity to continue the knowledge, I will gladly share it with you, see you then, see you then, it has been a pleasure, I wish you the best, happy rest of the day then, happy weekend and have a great time then, yes, tell me, Muniz has not arrived, Muniz, where did you send it? It has not arrived yet, did you just send it or did you send it? González Fuentes, Pesquera Rodríguez, Sánchez Rosas, Sánchez Rosas sent it to me, ah, he sent me another question, Jiménez Ramos, no, it has not arrived, did you send it to John Jaime? Yes, let's see if I have it, I don't think I have it, in Spain I don't think I have it, no, send it back again to see, sometimes it takes a while, but share the screen, please, to see the name of the email, let's see if I'm going, yes, let's see, send it back, please, yes, ah, ready, yes, what a strange question, how strange, I don't know why it's strange, because they were ordered, I gave it F5 and he put it in the third, that is, he inserted it and it happened twice, not twice, well, yes, it has already been confirmed, well, I wish you the best, great group, have a great time,
on 2025-01-27
Visit the Talend Big Data Integration y Ecosistema de Talend course recordings page