48:57
2024-09-30 11:03:24
30:21
2024-09-30 12:02:29
3:29
2024-09-30 12:34:41
1:04
2024-09-30 12:43:50
1:22
2024-09-30 13:06:34
5:52
2024-09-30 13:08:57
5:02
2024-09-30 13:30:59
12:33
2024-09-30 13:46:10
49:55
2024-09-30 15:00:01
6:21
2024-10-08 11:02:02
8:16
2024-10-08 12:05:49
3:03
2024-10-08 12:26:15
Visit the Talend Open Studio para ESB / Data Quality course recordings page
United Arab Emirates - Talend Open Studio for ESB
WEBVTT--> ¿Vale? Bueno, muy buenas tardes --> nuevamente. Sà tenemos audio. Sà --> me están escuchando. OK, listo. --> Continuamos todavÃa. Persisten --> los problemas a nivel del --> servidor de las máquinas --> virtuales. No se pudo corregir --> mucho durante esta hora, --> pues prácticamente quedamos --> exactamente igual. Esperemos --> que el dÃa de mañana, mañana --> sÃ, tenemos clase o es el --> miércoles. Ah, no recuerdo. --> Podamos entonces solucionar un --> par de inconvenientes. Seguimos --> entonces para vean mi pantalla --> del por favor para continuar --> con los ejemplos. Retomo un --> poco. En la última sesión, --> el último ejemplo que hicimos --> es que tenÃamos eh dos --> componentes en este caso, el --> test filter row y el test --> filter column. El test filter --> row pues aunque es muy básico --> a nivel de comparación o de --> pronto puede ser un poco --> complejo cuando hay muchas --> sentencias a comparar con y y --> con or. Ahà puede haber unos --> inconvenientes. Entonces hay --> un componente en el cual me --> permite hacer las dos cosas --> que hace el test filter row, --> el test filter column. Existe --> un componente que se llama el --> temat, que es un componente --> sumamente importante en la --> arquitectura de talent, que --> me permite hacer muchas cosas --> en un solo componente. Entonces --> en este mismo eh este mismo --> job que está aquÃ, vamos a --> hacer lo siguiente entonces. --> Vamos aquà a de irse aquà --> en ploy y vamos a tomar --> nuevamente este que está --> aquà y vamos a soltarlo de --> este lado, ¿Viste? Como un --> debe input y lo van a --> colocar acá en la parte de --> abajo, los que puedan --> conectarse con todo la disculpa --> al caso, lo colocan acá --> abajo. Listo. Vamos a hacer --> este mismo ejercicio, pero --> ahora eh utilizando un --> componente de tipo temat. --> Para que filtre las column, --> eh filtre las filas y filtre --> las columnas. Entonces, vamos --> aquÃ, agregué entonces un --> employee. Tome la eh la tabla --> que se llama employee, suelte --> la key al canvas. Es --> importante entender que eh --> cuando suelte un componente --> en el canvas, es importante --> independiente si es un --> JSON, un XML, al final todos --> los componentes aplican. Es --> decir que cuando todos los --> los componentes entran al --> canvas eh automáticamente --> pues se trabajan de la misma --> forma. Anda lo mismo si es --> una tabla, si es digamos un --> JSON, al final puedo aplicar --> los mismos componentes. --> Entonces, vamos a buscar --> aquà un componente que se --> llama temap y llevemos esto --> a un telorow. Este telorow --> serÃan estos tres elementos --> que son los que tengo aquÃ. --> Haga por favor la unión --> de los componentes, fila, aquà --> me vaya aquÃ, suelte aquà al --> temap, y el temap lo suelta --> al telorow. --> Ahora, necesariamente para --> hacer una conexión de un temap --> hacia cualquier salida, --> necesariamente me toca --> especificar el nombre de la --> salida. Entonces, voy a --> colocar aquà salida, porque --> aquà me aparece que ya hay --> un componente dentro del --> telorow que se llama salida. --> Entonces, salida, voy a --> colocarla aquÃ, salida --> formateada, voy a llamarla --> asÃ. SÃ, porque no puede haber --> dos dos label en el mismo --> yo con el mismo nombre. Vamos --> aquÃ, OK, y listo. --> Note algo particular, note --> que esta vez le aparece --> entonces un punto o un signo --> de admiración en rojo. --> Cuando ese signo de --> admiración le coloque o se --> coloque sobre algún componente --> de talent, indica que hay un --> error de configuración o le --> falta configurar o hay un --> problema en la configuración --> de ese elemento. Normalmente --> ese sÃmbolo en rojo aparece --> cuando falta algo por --> configurar. Y en esta parte --> me hace falta por configurar --> el temap. --> Démole entonces --> no sé si espero un momentico, --> espero a José que ya se está --> conectando, le hizo José. --> Vamos bien, perfecto. --> Ahora José, por favor, entra --> la configuración del temap. --> Démosle doble clic a este --> temap. --> Y listo. ¿Cómo se hace en --> las columnas? Entonces note --> la configuración de su temap. --> Del lado izquierdo tiene las --> columnas que entran y del lado --> derecho tiene las columnas --> que deben salir. Entonces --> simplemente lo que va a hacer --> es que va a tomar la columna --> de izquierdo y va a llevar al --> derecho las columnas que --> ustedes sean. ¿Cómo lo hacemos --> de la siguiente forma? Aquà --> por unas cuestiones que puede --> tener unos problemas a veces, --> te aconsejo que del lado --> derecho amplÃes el alto de --> la salida para que sea más --> sencillo. O sea, te ubicas en --> la parte de abajo y aquà te --> aparece un icono que se --> convierte en flecha para --> hacerlo más grande. Hazlo un --> poquito más grande porque a --> veces puede tener problemas. --> Entonces ahora de este lado --> vamos a hacer lo siguiente. --> Seleccione first name --> y acto seguido city y --> country. --> Y ahora lo que seleccionó --> clic sostenido y lo suelta --> del lado derecho. Y ahà --> has hecho entonces un filtro --> de columnas. Solamente las --> columnas que están del lado --> derecho son las que se --> mostrarán. Perfecto. Estoy --> viendo a Jasmine. Listo, --> suéltalo del lado derecho. --> Perfecto, listo. --> Ahora, ¿cómo hacemos un --> filtro, un te filter row? --> ¿Cómo filtramos filas? Bueno, --> aquà para el filtro de filas --> me toca entonces codificar y --> cuando me toca codificar, me --> toca codificar en el lenguaje --> de la herramienta que serÃa --> Java. Para este caso entonces --> note que del lado izquierdo --> existe una pequeña flecha. --> Expanda esa flecha, por --> favor, y se le abre un área --> de texto, un text área. --> Le clic en la flecha y se le --> va a expandir ahora va a tomar --> los elementos que desea filtar --> y los va a soltar en ese text --> área, es decir, mire lo --> siguiente. MartÃn, la --> máquina. SÃ, se reinició. Ah, --> sÃ, aquà me están --> preguntando casualmente. Un --> Listo, perfecto, ya la hice. --> Bueno, ahora, ¿cómo hacemos el --> filtro a nivel de lo que es de --> este componente que se llama --> temat? Entonces, va a --> seleccionar las columnas que --> quiere filtrar. En este caso --> quiero filtrar por country. --> Entonces, tome country y lo --> va a soltar aquà en este --> text área acá arribita. --> Listo, entonces, vamos a lo --> siguiente. Aquà como esto es --> Java, no podrÃa, aunque --> depende mucho de la versión --> que esté de Java, no podrÃa --> hacer, esto lo voy a lo voy --> a mostrar aquà en este --> acá, no podrÃa hacer esto, --> igual Canada, porque ahà no --> estoy comprando a nivel de lo --> el contenido de la variable, --> si no estoy comprando a nivel --> del objeto. Entonces, aquà --> para poder comparar esto, me --> tocarÃa hacer la siguiente --> función. Hay veces que --> hay veces que se la muestra --> y serÃa, le doy aquà punto --> equals. Abro paréntesis y me --> quedarÃa de esta manera. Como --> esto Java es sensible a --> mayúscula y minúscula. Esa --> serÃa la sentencia inicial --> que deberÃa agregar. Después --> del road country, le doy punto --> equals que es la forma de Java --> para poder comparar una --> variable string con un valor. --> Debe quedar exactamente igual --> como punto equals, abro --> paréntesis, comilla doble --> Canada. PermÃtame y yo lo --> agrego aquÃ. Yo creo que --> cuando doy punto aquÃ, no, --> no me sale la ayuda y --> veces que sale. Equals y me --> quedarÃa aquà como Canada y --> cierro --> Equals Canada. Ahora, recordamos --> entonces que sean de Canadá y --> de la ciudad de Cálgari. --> ¿Cómo serÃa entonces? Voy a --> hacer lo siguiente, como --> aquà viene un I, un I en --> Java es asÃ, es decir, un --> I en Java es doble --> aspersand, I. Entonces, le --> agrego que esté doble aspersand --> aquÃ. Espacio, doble aspersand, --> deja un espacio. Y ahora voy --> a soltar la ciudad city aquÃ. --> Ahà me sobrescribió el --> Ah, un momento, que fue que --> me sobrescribió, me parece --> a mà que cuando tenÃa el --> doble aspersand, le estoy --> dando city a este lado. --> Ahora sÃ, lo cogió, no sé qué --> está pasando. Me quedarÃa --> esto de esta manera. --> Me quedarÃa asà la sentencia --> porque esto es con Java, --> listo, entonces me quedarÃa --> asÃ, row city punto equals --> punto equals y aquà le --> quedarÃa un bloco Calgary. --> Perdón, quedarÃa asÃ. Si --> desea puedo compartir esta --> sentencia. Ah, sÃ, bueno, si --> se llama rodo, el problema --> es que no se llama exactamente --> igual. Aquà me quedarÃa --> punto equals. Equals, abro --> comilla, listo, y serÃa --> Calgary. Si desea comparto --> esto por aquÃ, por el chat de --> por el chat del team, ahà --> compartà cómo me quedarÃa. --> Al final me quedó de esta --> manera. Voy a copiarla --> directamente para que vean --> textualmente cómo me quedó. --> SÃ, es la misma esta que está --> aquÃ. SÃ, es la misma. --> QuedarÃa row country punto --> equals, abro comillas, doble --> Canadá y city. --> Si ya la tienes, si ya --> agregaste, por favor, bueno, --> tú ya no ejecutes, por favor. --> Dale, entonces, si --> terminaste de agregar esto, --> si no, espera un momento más. --> Dale, por favor, OK. --> Te pide que si desea --> propagarlo, propagar los --> cambios y darte que --> automáticamente cuando diste se --> te quita, le haciendo la --> admiración en rojo, se te --> quita, ¿por qué? Porque ya has --> hecho la configuración. --> Eh, Jasmine, ¿le --> agregaste ya? Para ver el --> caso tuyo. Ah, sÃ, va bien. --> Perfecto. Ahora aparta el --> row dos punto city. Ahora --> colócale punto equals, punto --> equals, equals, abro comilla, --> abro comilla, listo, comilla --> doble, Calgary con C --> mayúscula, Calgary, listo, --> dale OK. --> Dale OK a la configuración del --> componente. --> Ya lo terminaste de --> configurar. OK. --> Terminamos con el OK y --> listo. Ahora vamos a hacer --> lo siguiente. En algunos casos --> cuando estás a nivel de lo --> que es testing o developer, --> hay veces que nada más quieres --> probar una parte de tu --> componente, ¿OK? Entonces, como --> cuando quieres probar una parte --> de componentes, pues puedes --> hacer lo siguiente. Quiero --> ahora, mire, ejecutar este --> subyacht y no ejecutar este --> subyacht de acá arriba. --> Entonces, ¿cómo puedo hacer? --> Vete al primer componente --> donde inicia el subyacht, --> ese de aquÃ, le da clic --> derecho y le dice que --> desactive el subyacht entero, --> world subyacht. --> Desactivar subyacht entero --> y esto lo que hace es que --> desactiva este subyacht para --> probar entonces el subyacht --> siguiente. Si todo está --> listo, por favor, vuelve a --> ejecutar y deberÃa nada más --> ejecutar el subyacht con cinco --> filas, debe ser la --> respuesta. --> Ahà estamos, las ocho filas --> de entrada y salen cinco filas --> que fue lo esperado. --> Vamos a ver si. --> SÃ. --> Desactivarlo. --> Listo, bien, estaba asÃ, --> en un momento estaba asÃ, --> activar eso, está asÃ. --> Búscate el primer componente --> donde inicia el subyacht, --> que debe ser employee. Le da --> clic derecho a ese componente --> y hay una opción entre muchas --> es eh está desactivar solamente --> el componente y está --> desactivar el job completo, --> o sea, world subyacht. --> Le das ahà y se desactiva --> completamente. --> Eso lo hacemos normalmente a --> nivel de developer o de --> development o de testing para --> probar solamente una pequeña --> parte del componente que --> estoy haciendo. --> Y ahora sÃ, vuelve a --> ejecutar. --> Ok, listo, gracias por --> preguntar. --> Vuelve a ejecutar y deberÃa --> entonces aparecerte cinco --> filas nada más. --> Ocho de entrada, ocho que --> entran y cinco y tres que se --> filta para un total de cinco --> de salida. --> Bueno, cinco que se filta, --> perdón, tres. --> Tres no cumplen la condición. --> Listo, sigamos entonces aquà --> esto es como es mucho tema, --> me toca a tomar un job para --> hacer muchos ejemplos. --> Ya vimos la manera entonces --> en la cual eh yo puedo --> desactivar entonces un --> subyacht. --> Antes de agregar algo, --> vamos a ver cómo hacemos --> esto para formatear alguna --> salida. --> Porque aquà estoy tomando la --> misma salida de entrada y --> solamente he hecho unos filtros. --> Pero qué tal si quisiera hacer --> un cambio. --> ¿Cómo serÃa? --> Bueno, el tema me sirve para --> hacer cambios. --> Vamos a hacer un cambio muy --> sencillo. --> Entra nuevamente al tema y --> vamos a suponer que te --> piden ahora que la salida --> no sea el nombre, sino sea --> el nombre completo. --> ¿Qué es el nombre completo? --> El nombre completo es la unión --> del primer nombre con el --> segundo, no, eso, con el --> apellido. --> Cuando vas a formatear algo, --> es decir, vas a cambiar la --> entrada por equio, por --> yermotivo, por el caso de --> este, quiero, por ejemplo, --> formatear uniendo dos --> campos. --> Entonces, el tema te funciona --> a nivel muy básico. --> Entonces, ¿cómo hacemos el --> tema? --> Para poder formatear, el --> tema se apoya de --> variables. --> ¿Cuáles son las variables? --> En la sección del medio --> encontrarás algo que dice bar, --> ¿Verdad? --> En esa bar voy a definir las --> variables que quiero tomar --> para formatear. --> Entonces, ¿Aquà qué puedo --> hacer? --> Dale clic aquà en el más --> para que te agregue una --> nueva variable. --> Voy a hacer este mismo --> ejemplo de dos formas. --> Harlo también de dos formas --> de, digamos, de llegar a lo --> mismo y tú decÃas al final --> ¿Cuál te gusta más? --> Entonces, mira lo siguiente. --> Deseo unir first name con --> last name. --> Entonces, una forma que --> puede hacer es lo siguiente. --> Tomo los dos columnas que --> quiero operar. --> Este señor que está aquÃ, --> la quiero operar. --> La selecciono con control y --> clic en cada una de ellas --> cuando eso he tenido. --> Y la suelto en la --> expresión de la variable. --> Suelto aquÃ. --> La suelto en la expresión --> de la variable. --> Ahora, voy a entrar a la --> configuración de la variable. --> Entonces, cuando das clic --> aquà en la expresión, te --> aparece al final un menú --> hamburguesita ahà de un --> botón con un menú --> hamburguesa ahÃ. --> Dale clic ahà a ese botón --> y te va a aparecer un --> text area. --> Ahora, toma primero. --> Aquà me quedo al revés. --> Voy a tomar el first name. --> Voy a cortarlo de aquÃ. --> Lo voy a colocar al --> principio. --> Y lo que va a hacer es una --> función sencilla en Java. --> Para concatenar en Java, --> lo voy a dar aquà un más. --> Abro comillas doble, --> espacio en blanco, --> cierro comillas doble, más. --> Bueno, te lo muestro acá --> en el notepad. --> ¿Cómo te quedarÃa? --> QuedarÃa de esta forma. --> Voy a bajar un poquito --> aquÃ. --> QuedarÃa road doll --> first names más, --> abro comillas, dejo aquà --> un espacio en blanco --> para no unir los dos --> elementos, --> cierro comillas doble, más. --> Toda esta parte de --> scripting, configuración, --> al final termina haciendo --> con el lenguaje Java, --> porque la herramienta está --> basada en Java. --> Más, comillas doble, --> espacio, comillas doble, --> más. --> Si terminaste de hacer esto, --> entonces le das aquà OK --> y dale, por ejemplo, --> un nombre a la variable, --> ponla acá donde hice --> un nombre a la variable, --> colócalo como nombre --> underscore completo. --> Nombre underscore completo. --> Ernesto, se te reinició la --> máquina, estoy viendo que --> están fallando las máquinas. --> Nombre underscore completo. --> Ya te explico en otro, --> en otro ejemplo, --> esta parte del tipo string, --> en este caso nos sirve --> ese tipo. --> La otra forma de hacer lo --> mismo. --> Mira cómo es la otra forma, --> decide al final cuál es la --> que más te guste. --> Vete aquà donde está --> nuevamente en el más --> y dale para agregar una --> nueva variable. --> Hale clic en el más de las --> variables para agregar una --> nueva. --> Y ahora vea la configuración --> en la expresión, --> dale clic en el menú, --> en el botón hamburguesa que --> está ahÃ. --> Y nota que aquà al lado del --> text area te aparece un --> table donde están los nombres --> de las columnas. --> Entonces, ¿qué vas a hacer? --> Toma los nombres de columnas --> que necesite, cómo le das --> doble clic, por ejemplo, --> false name, le doy doble --> clic y me aparece de este --> lado. --> Formateo, le doy aquà más --> comillas simple, comillas --> simple, más y después doy --> doble clic al last name. --> Aquà lo que vas a hacer es que --> puedes seleccionar las --> variables en la medida que --> pues las vas necesitando. --> Y las más, creo que esta --> forma me parece un poco más --> sencilla o más rápida, no --> sé, bueno, al final depende --> mucho. --> Vamos a darle aquà clic en --> OK. --> Y si quieres, cambia entonces --> el nombre, nombre completo, --> aquà lo voy a colocar entonces --> donde record uno, porque no --> puedo tener entonces dos --> variables con el mismo nombre. --> Listo, mire lo que quiero --> ahora, quiero que mostrar el --> nombre completo, pero quiero --> quitar el false name. --> Entonces, o lo siguiente, --> estos elementos que están --> aquÃ, si yo le doy clic acá --> arriba, que el más, y el igual, --> el, el, este señor que es el, --> una X de eliminar, esto es lo --> que elimina en la salida. --> Entonces, si yo doy clic aquÃ, --> elimino toda esta salida --> acá. Para eliminar un elemento --> de la salida, te selecciona --> la salida aquÃ, la selecciona --> de este lado, y vas a ver --> que en la, bueno, tampoco --> era necesario seleccionarla, --> ahà me pasé, no era --> seleccionarlo. Acá elige la --> columna que quieres eliminar --> en la parte de abajo, en la --> parte inferior derecha, --> selecciona la columna que --> quieres eliminar, y ahora si --> le das clic aquà en el X, --> en el X de acá abajo, el X --> el que te elimina columnas --> que estén en una salida, el --> X de acá arriba lo que te --> elimina es la salida completa. --> Entonces, ¿por qué les decÃa --> a algunos en que este G lo --> aumentara a lo máximo? Por --> ejemplo, este G lo tengo yo --> de esta forma, mira acá un --> momento para ver qué error --> puede haber. El problema que --> tengo es que a veces cuando el --> G está muy pequeño ahà y lo --> suelto, lo suelto sobre un --> elemento, ya te cuenta que --> aquà tengo dos variables, --> aquà me va a causar un error. --> Por eso es que cuando vayas --> a agregar variable, creo que --> la mejor técnica para evitar --> que se unan varias columnas --> es la siguiente, es que abras --> este G y lo más que puedas --> aquÃ, listo, y ahora tomas --> una variable de acá y la --> sueltas aquÃ, la sueltas --> aquà y la sueltas acá bajito, --> en el espacio en blanco. --> Si deseas cambiar el orden, --> acá en la parte de abajo, aquà --> está un mayor y un menor, si --> tú quieres puedes subir y --> bajar las columnas que tú --> quieras, por ejemplo, voy a --> subir nombre completo para que --> quede al principio, y voy a --> subir country para que quede --> segundo. Entonces, aquà puedes --> formatear el orden en las --> cuales quieres que aparezcan --> las columnas. --> Listo, entonces, aquà he hecho --> una parte de filtrar columnas, --> filtrar filas y he formateado --> algunas columnas. Vamos a darle --> aquÃ, OK. --> Y si quiere, podemos --> ejecutar, entonces, a ver, --> deberÃa tener una salida un --> poco diferente. --> Ahà tengo, aquà tengo Nancy --> Edwards, James Peacock, no --> sé, Margaret Park, y ahà --> también, ya se hace el --> formateo de las columnas como --> tal. Perfecto, continuo, sé --> que hay algunos que tienen --> inconvenientes, pero bueno, --> aquÃ, trateamos de soltar, --> de dar lo más que podamos. --> Listo, seguimos entonces, --> por favor, haga lo siguiente --> ahora. Váyase aquà donde dice --> Implogy, este Implogy que --> tenemos aquÃ, y ahora en el --> primer componente que es --> Activastes, dale click aquÃ, --> digamos que ya hiciste la --> prueba, sabes que te funcionó --> y desea ejecutar todo en --> conjunto. Dale click derecho --> aquÃ, y dale activar su --> job entero, y te activa el --> su job nuevamente. Listo, --> entonces, eh, prestemos --> atención a lo siguiente ahora, --> nota que ya yo te definà esta --> parte de lo que es su job, --> y los su jobs por defecto --> se ejecutan en esta versión, --> se ejecutan de manera --> secuencial. Pero yo podÃa, por --> defecto, el primer su job que --> se ejecuta, eh, va a ser el --> primer, digamos, el primero --> que que creaste. Y en el --> orden en que vayas creando --> su job, se van ejecutando de --> esa forma. Pero algunas veces --> tú deseas condicionar los --> su jobs que se ejecutan en --> un orden especÃfico. Por --> ejemplo, vamos a suponer en --> que ahora, si yo intento --> ejecutar esto por defecto, --> intentará ejecutar este su job --> primero, y después este su --> job de segundo, por el orden --> en que yo adicione los --> componentes. Y ese orden es --> difÃcil que lo puedas cambiar, --> digamos, a nivel, a lo menos --> que borre los componentes, y --> lo vuelvas a agregar. Una --> forma es que yo, entonces, --> encadene los su jobs de la --> forma en la cual yo quiero --> que los ejecutes. Por --> ejemplo, supongamos que yo --> quisiese que ejecutara este --> su job primero, y después que --> ejecutara este que está acá. --> Entonces, ¿cómo se hace? ¿Cómo --> enlazas su jobs que están --> dentro de un job? La forma --> de hacerlo es de la siguiente --> manera. Te vas al primer --> componente del su job que --> quieres que ejecute, en este --> caso quiero el segundo, le --> da clic derecho, te vas donde --> dice disparador o trigger, --> te puede darse de pronto en --> inglés. Y aquà voy a explicar --> inicialmente dos --> disparadores. Un disparador que --> dice on su job okay, o el --> otro disparador que dice on --> su job error. Entonces, ¿qué --> quiere decir? Que si yo cojo --> el disparador on su job okay, --> si ese su job se ejecuta de --> manera correcta, procede a --> ejecutar el job que está --> concatenado. Si escojo on --> su job error y me conecto --> con el segundo su job, lo que --> hace es que si hay un error, --> se ejecute el su job --> siguiente. Eso es lo que --> trata de decir ese --> disparador. Entonces, vamos a --> acuerdar el disparador on --> su job okay. No sé si nos --> sale, disparador on su job --> okay. Y enlázalo con el --> primer elemento, el su job --> siguiente. No sé si --> disminuyes esta parte aquÃ, --> aquÃ, para que sea más --> fácil, para que sea más --> fácil. --> Aquà está, esperate que se --> me perdió ahora este señor --> acá. Se me perdió el su --> job que serÃa el de base de --> datos. --> Perdón, era filter file, --> ¿verdad? Este de aquÃ. --> Perfecto. --> Perfecto. Procedemos a --> ejecutar entonces ya después de --> este señor que está acá, voy --> a ejecutar esta ronda aquÃ, --> cualquier ronda puede ser --> válido. Y nota entonces que --> cambia el orden. Primero --> ejecutarÃa el de abajo, que --> es donde estoy diciendo que --> inicia, y acto seguido --> ejecutarÃa el de arriba. --> Perfecto. Entonces, esta es la --> forma en la cual tú puedes --> condicionar cuando defines una --> ejecución secuencial de su job, --> cuál viene primero, cuál viene --> segundo, cuál viene tercero. --> Y los triggers te van a --> permitir disparar cuando el --> su job esté de forma correcta --> o si por el contrario hay un --> error en la ejecución del --> su job. Perfecto. Listo, es --> un su job error funciona --> exactamente igual, la única --> diferencia es que si hay un --> error en la ejecución del --> su job, pues se ejecuta el --> su job al cual está --> conectado. Es la única --> diferencia de un su job OK, --> perdón, el su job OK --> coincide exactamente con el --> su job error. Listo. Bueno, --> sigamos entonces. Vamos a --> cerrar todos estos señores --> que están aquà y vamos a --> agregar entonces otro job --> para hacer otro ejemplo. Y --> asà vamos entonces empapando --> un poco con la herramienta. --> Vamos clic derecho y vamos a --> crear un nuevo job y lo voy a --> llamar Jot Migración Base --> Underscore Datos. --> Jot Migración Base de Datos --> se va a llamar el nuevo job. --> Jot Migración Base de Datos. --> Voy a migrar entonces una --> tabla que tengo en este caso --> en MySQL la voy a migrar al --> motor Postgres. Esa es la --> idea que tengo con este nuevo --> job. Esto tenemos el nuevo --> job. Para hacer esto entonces --> hay que iniciar de esta --> forma. Por favor, abra en --> virtual el PGAcmin. Váyase y --> busque la aplicación que se --> llama PGAcmin que es el --> administrador de base de datos --> de Postgres. Por favor. Listo --> entonces ¿Qué vamos a hacer? --> Vamos a migrar los datos que --> están. Alguna tabla que están --> en Chinut de MySQL. Vamos a --> migrarlas hacia un motor, --> alguna base de datos que vamos --> a tener ahora en Postgres. Es --> un elemento muy común que se --> hace cuando deseo migrar --> pues a nivel de tabla porque --> a nivel de de funcionalidad --> digamos por si bien son --> almacenados pues si no lo --> hace la herramienta como tal --> y ya está ya. Esperamos que --> cargue el PGAcmin. Alguno ya --> le está cargando. Listo, --> creo que la mayorÃa. Váyase --> donde dice server, por favor, --> amplÃe server. Y ahà le --> pregunta ¿Cuál es la clave? --> La clave es root, mismo de --> raÃz en inglés, todo en --> minúscula, root. Y le da --> clic para que salve y no --> nos vuelva a preguntar ese --> clave nuevamente, root. Root --> de raÃz en inglés. Root de --> raÃz en inglés. Catalina, ¿Sà --> tuviste error o veo que hay --> alguna pantalla diferente? --> Vamos a ver. Ah, listo. No, --> dale click ahÃ, dale close. --> Cierrate ahÃ. Del lado de --> server, server, expande el --> la adición de server en esta --> flechita. Del lado izquierdo. --> Expande esa flechita y sÃ, --> listo. Colócale root de --> raÃz en inglés. Y le dice --> que salve el password para que --> no nos vuelva a preguntar más. --> ¿OK? Bien listo. Ahora, ¿Por --> qué nos conectamos a este --> administrador? Porque una de --> las cosas que no tiene el --> señor Talen a nivel de --> componentes es la creación de --> una base de datos. Aunque yo --> podÃa ejecutar una sentencia --> SQL de Talen hacia un --> motor, pues carece de --> sentido malgastar un --> componente para solamente --> crear una base de datos. --> ¿No? Porque creo que de pronto --> bueno, también depende mucho --> de lo que vayas a hacer al --> final. Por favor, vete a la --> sección donde dice database si --> quieres las expandes. Ahà --> nada más de una base de datos --> que es la base de datos de --> diccionario de datos de --> Poggres, que es Poggres. --> Vaya entonces, váyase aquà --> donde dice database. --> Nuevamente clic derecho en --> database. Y entonces te sale --> la opción que dice create. --> Database. Y solamente la --> vamos a llamar Chinook --> porque es exactamente como la --> tenemos en MySQL. Chinook --> con doble o. --> Y ya posteriormente le das --> entonces safe. --> Y listo, ya te crea la base --> de datos ahÃ. En este caso --> se llama Chinook, no hicimos --> ninguna configuración --> adicional. Ya después de haber --> terminado la configuración --> de la base de datos, por favor --> ahora vete nuevamente a tu --> talent. --> Y te sitúas, por favor, en la --> sección de metadata. Vamos a --> hacer una conexión ahora hacia --> la base de datos que se llama --> Chinook, pero que está en --> Poggres. Por ende, qué --> hacemos? Como es una conexión --> a base de datos, buscamos en --> metadata la opción de --> connection. Te damos aquà --> click. --> Vamos a darle aquà en crear --> conexión, crear conexión y la --> vamos a llamar exactamente igual --> como tenemos la base de datos --> Chinook, pero abro paréntesis --> y le coloco Poggres. --> Indicando en que esa base de --> datos está en Poggres. Le damos --> entonces next. --> Y normalmente cuando uno hace --> todos los dÃas lo mismo, ya --> empieza a tener memoria. --> Llegamos por reflejo ya. --> Ahora aquÃ, cuál es el tipo? --> Bueno, primero selecciono el --> tipo de motor que me voy a --> conectar. Expando aquà donde --> dice DBTi y deberÃa escoger --> ahora Poggres. --> Poggres SQL, aquà está. --> Bien, el usuario por defecto --> DBA de Poggres se llama --> Poggres. En el SQL te lo --> mando por aquà el nombre --> aquà en el chat por si acaso --> de pronto no lo alcanzas a --> ver. Se llama Poggres, el --> usuario por defecto DBA que --> se crea. La contraseña es --> root, que fue la misma que --> nos accedimos ahora. El --> servidor es 127.0.0.1 --> porque está a nivel local. --> Ahà pude haber colocado ya --> sea una URL o pude haber --> colocado una IP como es --> este caso. Si es una base --> de datos que tienes en la --> nube, simplemente vas a --> colocar la URL y te va a --> conectar eh te va a conectar --> el talent a cualquier base --> de datos. Y la base de datos --> se llama Chinute. Para el --> caso muy particular de Poggres --> que asà como el de Oracle, --> ellos manejan el concepto de --> lo que se llaman esquemas, --> aunque un esquema para --> Poggres es diferente para un --> esquema en Oracle. Ahà donde --> dice esquema no va a --> colocar nada, por defecto, --> no colocar nada, indicarÃa --> que el esquema que se va --> a conectar es el esquema --> público. Donde dice esquema, --> ahà no lo va a colocar nada, --> pero si tienes un esquema --> dentro de una base de datos --> de Poggres, entonces ahà --> colocas el nombre del esquema --> que te quiere conectar. --> Como nos vamos a conectar por --> defecto hacia el público, --> dale entonces Test Connection, --> dejamos ese esquema en --> blanco. ¿Qué va a hacer esto? --> Me va a descargar los --> drivers de conexión, pues lo --> hará solamente una sola vez --> y me agrega esos drivers --> como tal a la instalación del --> talent y dele entonces aquà --> OK, a mà no ha pasado ningún --> error, listo, entonces le --> damos aquà Finish. Listo, --> entonces vamos a migrar las --> siguientes tablas, vamos a --> migrar la tabla que se llama, --> váyase a Chinut, pero de --> MySQL. Vamos a migrar --> primero la tabla customer. --> Si vamos acá en customer, --> ¿Qué vamos a hacer entonces? --> Tome customer, lo selecciona --> y lo suelta en el canvas. --> Y aquà entonces, ese customer --> va a ser de entrada porque voy --> a leer tanto la configuración --> que tiene a nivel de esquema --> como los datos, entonces queda --> por defecto como TDB input. --> Te va a aparecer el customer --> ahÃ. Listo, acto seguido a --> hacer lo siguiente. Como lo --> que voy a crear es una nueva --> tabla porque voy a hacer una --> migración. No voy a --> sobreescribir datos o --> actualizar datos de una tabla --> a otra, sino que quiero que --> se cree una tabla nueva y --> que se tomen los datos de --> la entrada que tiene. --> Entonces, lo que voy a hacer --> es claro que aquà esta base --> de datos va a estar vacÃa. --> Entonces, mira lo que voy a --> hacer para hacer la migración. --> Voy a tomar la conexión --> hacia Postgres y la voy a --> soltar de este lado con una --> pequeña diferencia. Va a --> ser de salida porque voy a --> crear un nuevo elemento. --> Entonces, en vez de donde dice --> DB input que está por --> defecto, es como TDB --> output Postgres. --> Y le doy aquà OK. --> Claro, perfecto, perfecto. --> Perfectamente, listo. --> Busca la conexión de la --> conexión a Postgres, que es --> esta chinú. Y esta conexión --> las sueltas del lado del --> canvas. Con una pequeña --> diferencia, como vas a hacer --> cambios ahà en esa base de --> datos, vamos a escoger la --> opción TDB output. Le das --> OK. Nota ahora a nivel --> gráfico que las flechas son --> iguales. No son iguales, --> perdón. La entrada va a --> quedar en el medio y la --> entrada es normalmente --> moradita y la salida es --> verdecita. Pero a nivel de --> posición. Listo. Le hacemos --> preguntas. Listo. Eh la --> primera eh la entrada va a --> quedar en todo el centro y --> la salida va a quedar en el --> la de acá arriba en la --> parte de arriba. O si tú lo --> que quieres hacer es una --> migración donde quede todo --> exactamente igual. Puedes --> hacer lo siguiente. Puedes --> conectar directamente la --> entrada con la salida. Si de --> pronto tú quieres formatear, --> cambiando, quisieras --> cambiarle el nombre de la --> columna, agregar nuevas --> columnas. Pues en el medio --> tendrÃas que colocar por --> ejemplo un tipo tema. Donde --> tú puedas formatear, agregar --> o quitar lo que tú quieras. --> Ahora hacemos entonces ese --> ejemplo. Vamos a ver cómo --> nos va con esta parte. --> Supongamos que quiera --> migrar todo exactamente --> igual. Y vamos entonces --> tomamos este elemento que --> está aquÃ. Particularmente --> a mà me gusta de esta --> forma. Clique aquÃ, fila, --> voy aquà a May y suelto y --> conecto acá. O puede ir desde --> la, desde esa flechita --> naranja que sale al inicio y --> la puedes conectar. Perfecto. --> Vamos un momento a ver la --> configuración y recordar la --> configuración de una --> conexión de bases de datos --> de entrada. Dale doble clic --> aquà a customer. Listo. Y --> recordarás que aquà al --> final lo que hace es un --> select. Este select tú lo --> puedes cambiar si tú --> deseas de pronto. Si tú --> quieres cambiar, listo. Pero --> me interesa aquà nuevamente --> recuerden que cuando yo --> tengo un componente de --> entrada que tiene estructura, --> todos van a tener este --> editar esquema. O sea, --> dale clic en editar esquema --> que está aquÃ. Dele --> change to build property. --> Ese que está aquÃ. Change. --> Y aquà te va a mostrar la --> estructura de entrada de esa --> tabla. Importante entender --> estos elementos aquÃ. A ver --> si trato de ampliar este --> diseño de acá. Lo he visto. --> Voy a ampliarlo aquÃ. --> Miren lo siguiente. Aquà --> tengo columna. Columna cómo --> la está llamando Java. --> DB column cómo viene de la --> base de datos. Esta es Java. --> Este columna es Java. Este --> DB column es cómo viene la --> base de datos. Pero yo puedo --> hacer los cambios aquà a --> nivel de Java. Ahora, aquà --> tengo dos tipos. Un tipo y --> un DB type. Este tipo es --> el que mapea Java porque --> normalmente que es una --> conversión del tipo de entrada --> con que viene desde la base --> de datos con un tipo de datos --> que tenga Java. Por ejemplo, --> de la base de datos viene INT --> y Java lo tomó como INT. --> Pero, por ejemplo, el --> varchar como tal, Java lo --> tomó como un string. Porque --> para manejar, digamos, cadena --> de caracteres, la base de --> datos utiliza varchar y el --> señor Java utiliza string. --> Listo. Esto es para --> entender un poco cómo, --> digamos, es la entrada. Vamos --> a darle aquà OK. --> Váyanse ahora a la salida --> en chinut, doble clic para --> ver la configuración. --> Y ojo a lo siguiente. En --> teorÃa, cuando yo conecto --> una entrada con un elemento de --> salida, en la mayor parte de --> las veces se sincroniza la --> entrada con la salida. --> Pero puede haber casos en que --> por error de la herramienta --> o por algún bug que tenga, --> no se hizo de forma correcta. --> Entonces, este señor, como al --> final va hacia una base de --> datos, también tiene un esquema. --> Por ejemplo, vamos aquà a --> editar el esquema a ver si lo --> conectó. --> Y aquà si hubo una conexión --> directa de la entrada --> con la salida. --> Aclaro que hay veces que --> haya unos pequeños errores. --> Ojalá que no salgan para --> ver en el caso real cómo --> hacÃamos para resolverlo. --> Bueno, solamente era para --> indicar esa parte ahÃ, nada más --> que la entrada, normalmente se --> sincroniza con la salida. --> Estamos aquà entonces, ok, y --> hacemos un par de cositas ahora. --> Listo. --> Como lo que hicimos fue tomar --> la conexión de la base de datos --> y no tomamos una conexión hacia --> una tabla, note ahora que aquà --> hay un elemento que se llama, --> bueno, tengo el host, --> la caracterÃstica de confirmación --> hacia la base de datos, pero tengo --> una sesión que dice table, ese --> table está vacÃo. --> ¿Por qué está vacÃo? Porque recuerden que yo --> todo hizo, fue lo que hice, fue tomar la conexión --> y no una tabla como tal. --> Entonces, vamos a hacer lo siguiente. --> Ahà donde está el table, colóquele --> el nombre y ahora en español --> llámelo artistas. --> Recuerde que como esto, Java tiene que estar --> entre las comillas dobles, porque va a ser un --> string de Java. --> Artista, --> llámela artista. --> Seguido, situése ahora --> donde dice el action on table --> que está debajo del table. --> Ese action on table por defecto --> está en default. --> Significa en que no va a hacer --> nada. --> Entonces, este action --> on table, cuando yo lo que es, --> yo voy a crear la tabla --> para que diga a Talyn, créame la --> tabla, entonces me toca modificarlo. --> Si ya la tabla está creada, --> lo dejo tal cual como está. --> Porque él no hace nada. --> Pero si la tabla no está creada, entonces --> amplÃa aquà --> ese combo box y tienes diferentes --> opciones. --> Una opción dice, elimine la tabla --> primero y después la creas. --> Otra opción te dice nada más --> crear la tabla. --> Otra opción, crear la tabla si no existe. --> Otra opción es --> eliminar la tabla si existe y crear. --> Porque esta es la opción, porque hay --> motores, como el caso de --> MySQL, si mi calcru no --> se falla, en los cuales tú intentas --> eliminar una tabla que no existe y te --> manda un error. --> Y está la otra opción que dice limpiar --> tabla, que serÃa al final un delete. --> Y está el truncate table. --> Recordarás que a nivel de base de datos --> yo tengo la opción de delete --> y la opción de truncar. --> Entonces truncar, si tú quieres borrar todos los datos, --> la mejor opción es que eso es un truncate --> porque lo que hace eso es --> lo que limpia al final son lo que --> llaman algunos marcas de agua, o sea --> muchas estadÃsticas que te quedan de esa tabla. --> Entonces el truncate table te borra --> todas las estadÃsticas de esa tabla, a diferencia --> del delete. --> Para esta opción vamos a hacer lo siguiente. --> Vamos a decirle al señor que cree la tabla --> si no existe. --> Significa en que la primera --> vez que no está la tabla creada --> se crearÃa --> y la segunda vez intento --> ejecutar este job, pues no crearÃa esa --> tabla como tal. --> Vamos ahora con el action on --> data. --> Este action on data lo que va a --> definir es la sentencia --> dml que se va a ejecutar --> en esta salida. --> Entonces date cuenta que tengo lo siguiente. --> Insert, --> update, insert or update, --> update o insert --> o borrar. --> ¿Qué quiere decir eso entonces? --> En que si yo coloco --> insert, los registros que van --> a llegar a esa salida --> significa que se van a insertar. --> Si la tabla ya tiene ya de primaria --> y tú intentas ejecutar dos veces este --> job, la segunda vez sale un error --> porque vas a intentar insertar registros --> cuya ya de primaria ya está. --> Ahora mira el caso, --> si yo cojo en vez de insert coloco --> update --> y los registros no están adicionados --> pues voy a tener un problema porque no puedo --> autorizar algo que no está hecho. --> Y lo demás, insert or update --> or update insert lo que define es un orden. --> ¿En qué va a hacer? ¿Qué va a hacer? --> Si tú coloco la opción insert or update --> lo primero que va a hacer es que va a intentar --> insertar. Si el registro --> ya está, actualiza. --> Si cojo update --> o insert primero actualiza --> y después si no, si el registro no está --> inserta. Eso es para --> grandes cantidades de datos en que tú sepas en --> lo que vas a agregar o lo que vas a actualizar. --> Entonces ahà al nivel de tiempo de respuesta --> cuando va a insertar o actualizar, es --> recomendable que entienda los datos y que --> definas en qué orden debes hacerlo primero. --> Si tú sabes que la mayor parte del registro que tú estás --> haciendo es un prove day, mejor coge --> update o insert porque es más rápido. --> Porque si lo coge al revés va a intentar --> insertar y después va a intentar actualizar. --> Entonces ahà vas a tener un problema. --> Deja nada más aquà insert, --> nada más el listo ya se nos está acabando --> prácticamente el tiempo. Vamos a ejecutar --> ahora para ver este job para ver si nos sale --> la tabla, a ejecutar. --> Ejecutamos entonces a ver --> ese job. --> Pendiente de que el ejecute --> el job correcto porque recuerde que hay un pequeño --> bug que entonces se ejecuta el --> anterior y listo. --> Perfecto. --> Ahà me dice que --> migró 59 filas --> en un tiempo de --> 2.36 segundos. --> En el caso --> particular mÃo entonces. --> Si ya terminó puede --> confirmar si todo está correcto --> de dos formas. --> Esperamos que algunos todavÃa están ejecutando. --> Si ya está correcto váyase al --> page admin si te desea. --> Le da aquà un refresh. --> Que el refresh aquà es clic derecho --> aquà hay una opción que dice --> refresh sobre la base de datos. --> Y a donde dice --> esquemas. --> Váyase a public y tables --> y ahà debe aparecer la tabla --> migrada. --> Le da clic derecho a la tabla y le dice --> ver datos. --> Y deberÃan aparecer --> las 59 filas --> que en teorÃa migró. --> Ahà es listo clic derecho --> nuevamente Catalina clic derecho --> en artista. --> Y ahà está view o --> edit data view busca la opción view --> o edit data y dale all --> row por favor. --> Clic ahà y ahà te ve --> aparecer. --> Listo ahà te aparece. --> El caso de Julio vamos a ver --> listo Julio. --> Exactamente Julio --> por ahà es all row y ahà tenemos --> el proceso de migración. --> Listo. --> Bueno quizás no necesitas esto --> para mirarlo ahora si lo queremos ver de --> talent. Voy a ver talent en un momento. --> Y recuerda vete a la --> conexión de --> Postgres y recuerda --> que por defecto yo no me traigo el --> esquema aunque tampoco estaba creado --> en el momento de la conexión. --> Dale clic derecho ahora a la --> conexión de Postgres y dile --> está el esquema. --> Que ya lo habÃamos hecho con MySQL. --> Dale --> next aquÃ. --> Te va a aparecer --> Span de Chinut. --> Vete al esquema public --> y ahà está artista. --> Dale clic en publico en artista como --> tú quieras. --> Y ahà te va a traer --> esa tabla como tal. --> Finish. --> Y aquà te aparece esa tabla --> que no estaba anteriormente. --> Bueno jóvenes. --> Nos vemos el dÃa de mañana. --> Esperamos que esta noche asocié --> los problemas técnicos. --> Ahà pido nuevamente disculpas. --> Pues espero que --> haya aprovechado cualquier duda que --> tenga. Me la hace saber. --> Y mañana continuamos con muchos --> temas que nos faltan con respecto a esto. --> Pero mañana creo --> que la mitad del tiempo lo voy a hacer. --> La mitad de la clase va a ser para --> talent integration. --> Tratar de hacer los ejemplos la mayor cantidad --> posible. Y después sigo con --> el talent ISB porque si no no nos alcanza --> entonces. Ahà vemos mañana cómo nos organizamos --> entonces. Les deseo --> pues un feliz resto de dÃa. --> Y nos conectamos el dÃa de --> mañana a las nueve horas México --> diez horas Colombia. --> Ha sido un placer y nos vemos entonces el dÃa de --> mañana. --> Julio estaba levantando la mano. --> Acasualmente le estaba preguntando a --> le pregunté a --> Jimena. --> Y me dice que no yo. --> Mañana hay clases y me dice no yo en el miércoles porque --> es festivo en México. Entonces el festivo --> es mañana o es el --> miércoles? Sà yo le entendà eso a ella --> y me dijeron que era Marte. No, --> seguramente fue que se confundió ella. --> Entonces mañana no tenemos clases entonces. --> Nos seguiremos el dÃa miércoles. --> Cierra y nada --> y esto se guarda automáticamente en el --> programa. --> Eso. Que pase muy bien --> listo. Bueno, feliz. --> Espero que mañana descanse que es lo principal --> y descanse con sus seres queridos. --> Porque es lo que nos queda entonces. --> Bueno, mañana pues nos vemos el dÃa --> miércoles. Que pase muy buena tarde --> igualmente. Muy buena.