9:39
2024-05-29 10:14:10
4:49
2024-05-29 10:29:56
5:42
2024-05-29 10:36:28
2:45
2024-05-29 10:43:46
1:00:16
2024-05-29 10:48:22
3:26
2024-05-29 12:18:04
5:22
2024-05-29 12:24:11
1:43
2024-05-29 12:33:10
55:30
2024-05-29 12:36:17
47:02
2024-05-29 14:57:58
2:18:28
2024-05-30 09:31:42
32:39
2024-05-30 13:09:57
24:21
2024-05-30 15:06:50
18:09
2024-05-30 15:44:33
3:56:30
2024-05-31 09:51:34
4:23:53
2024-06-05 09:12:19
28:23
2024-06-06 10:52:48
12:29
2024-06-06 11:32:59
3:47
2024-06-06 11:48:14
1:36
2024-06-06 12:03:40
54:36
2024-06-06 12:09:30
1:24:03
2024-06-06 13:32:03
13:43
2024-06-06 15:42:24
18:06
2024-06-07 09:07:48
9:43
2024-06-07 09:33:41
2:49:27
2024-06-07 09:49:42
3:47
2024-06-11 09:19:48
5:51
2024-06-11 09:25:13
1:53
2024-06-11 10:21:33
7:58
2024-06-11 10:26:29
2:48
2024-06-11 13:27:27
43:31
2024-06-11 13:50:56
2:46:00
2024-06-12 09:14:49
20:20
2024-06-12 13:22:18
29:54
2024-06-12 15:00:28
WEBVTT--> Ok, perfecto. Entonces, como esta máquina es la máquina inicial, esta máquina no tiene --> los yo que hicimos entre ayer y hoy. Entonces, lo que voy a hacer es que voy a descargar --> una copia que hice del proyecto. Bueno, para hacer una copia de seguridad de un proyecto --> de talent, simplemente toma la carpeta del proyecto, la comprime y sobrescribe ese proyecto --> en la carpeta del workspace. Entonces, no es nada el otro mundo. --> Esto voy a descargar. Este fue el día de ayer. Un momento, por favor. Ese demora para cargar. --> Espera, ahí te confirmo para ver. Tengo ocho conectados. --> El momento en que no pueda descargar la... --> Tengo un problema para descargar, no sé por qué no me voy a descargar. --> Perfecto, no sé qué pasaba aquí. Entonces, el bacá que hice, el bacá simplemente --> fue tomar la carpeta del nombre del proyecto, me llevé todos los yo que creé y listo. --> Entonces, sería tomar esta carpeta y colocarla en la ubicación del workspace de la herramienta, --> que sería entonces dos, estudio, workspace y pego aquí. Casualmente tiene el mismo --> nombre. Un momento mientras termine de copiar todo. --> Debería recuperar todos los yo de ese de ese bacá que hice el día de ayer. --> Bueno, ya hicimos la copia, ¿verdad? Del job de duplicación. Por favor, --> accedan al pejamín si son tan amables. Mientras voy cargando aquí. --> Abre la herramienta pejamín, por favor. Yo también la voy abriendo a este lado. --> Dígame. --> Listo, dele clic derecho editar, pero tiene que si el yo que está abierto tiene que cerrarlo, --> porque no le permite cambiar el nombre. Tendría que cerrar el job. El de la canva se lo --> cierra y ya después si le permite cambiar, por ejemplo, el nombre. Permítame y lo hago --> aquí entonces. Ok. Entonces sería lo siguiente. Este sería el de duplicación, este que está --> aquí. Entonces copy, lo copio inicialmente. Copio. Lo voy a pegar el sí, dígame. Listo, --> paste, listo. Listo, aquí está. Lo selecciono, le doy clic derecho sin abrirlo acá en el --> canva y le digo editar propiedades. Y aquí me permite ahora sí cambiar este copy a B2. --> Ok, perfecto. Listo, finish aquí. Gracias a usted. Listo, finish aquí y cambia el nombre. --> Entonces retomo nuevamente lo que vamos a hacer. Vamos a utilizar una función del motor de --> base de datos para que nos genere la secuencia. Para eso, por favor, acceda a su pejamín. --> Y en el caso particular mío que está base de datos, si no está, no saqué copia de base --> de datos. Aunque tampoco me perdí de mucho aquí. Listo, voy a crear aquí una base de --> datos que es la llamada Chinook. Save. Listo, entonces haga lo siguiente. Ya estamos ubicados --> en el pejamín. Entonces, aquí donde dice esquema, el esquema por defecto que estamos --> usando es public, hay una sección que dice sequence, esta que está acá. Aclaro --> que por encima de utilizar una secuencia, lo que quiero es que vea cómo hacemos para integrar --> funcionalidades desde el motor de base de datos con la herramienta de talent. Para este --> caso lo voy a integrar con una secuencia. Entonces vaya a la sección de sequence, --> le da clic derecho y vamos a crear entonces secuencias. Dice crear sequence. Vamos a darle --> entonces nombre. Esta es artistas, ¿verdad? El de artistas y efectivamente vamos a llamarla --> artistas. Y en definición, para ver el cambio, dígale que incrementen 1 y que empiece en 1000. --> Para que no empiece en 1, sino empiece en 1000. Clip derecho en sequence, crea una --> secuencia, nombre artista y en la definición le coloca incremento de 1 y que inicia en 1000. --> Y al todo seguido pues le da safe para que guarde entonces la secuencia. Ahora, --> váyase a la herramienta del talent y vamos a hacer las configuraciones necesarias entonces. --> Primero, aquí me sale un error porque este talent no tiene agregados los YARs de los --> drivers de conexión. Entonces voy a instalar estos drives aprovechando de que hay algunos --> que todavía no han terminado la secuencia. Y este artista que está acá, voy a agregarle --> el YAR de conexión y listos. Acepto todo aquí. Ahora, lo primero que vamos a hacer, --> accedamos a la confesión del tema. Borre la variable que crea la secuencia. ¿Cómo la hace? --> Selecciona la variable y acá el menú, dígame por favor, dígame. ¿Sí? ¿Quién me ve? Liliana, --> sí. Sí, hace dos equipos. Un momento, a ver. Sí, ahí veo un error, lo que es que no me ha --> dejado conectar. Listo, ya está sellando. Y por favor, cuando borre la variable, no se elimina --> la conexión, elimina la conexión de entrada aquí que dice var identificador y debería --> que darle el tema como está aquí. Un momento, que todavía no me ha dejado conectar. No sé --> por qué estoy conectando. Veo la interfaz, pero no le veo. Un momento, por favor. Aquí --> veo la pantalla pequeña. Ahí es el nombre que le colocó artista, ¿Verdad? En la primera --> opción. Y en la otra, en la otra parte que colocó uno y mil. Sí, pero un momento, --> que estoy intentando conectarme, pero muéstrame nuevamente, por favor, si está mal ahí en su --> pan. Ah, no, por un momento, por un momento, que se me. Listo. Listo. Ah, ok. Lo que pasa --> es que, bueno, pudo ver este error, lo que pasa es que ya teníamos una tabla llamada --> artistas. Entonces, está en el mismo workspace de nombres. Por favor, váyase a general, --> por favor, si está amable, a la nombre general y cambie el nombre y si a alguno --> le pasó, general, artistas, cambie ese nombre a artista o de secuencia. Sí, --> ese fue el problema. A mí no me salió ese error porque no tenía tal artista. Por favor, --> hagamos un pequeño cambio aquí. Vamos a cambiarle el nombre a la secuencia. Llámela --> artistas underscore secuencia. Cambie, si ya la creó, modifique el nombre. Artista --> underscore secuencia. Por favor, underscore secuencia en el nombre. Ahí está el nombre, --> ahí donde dice general, donde dice general, estaba en general. Colóquelo en el name que está ahí, --> underscore, underscore o si no, pégelo o cópilo, he pegado artistas secuencia. Entonces, --> si desea, de pronto tiene problemas con el underscore para colocarlo. Coloque ahí secuencia, --> por favor, para cambiarle que no sea igual al nombre a tabla. Ok, salve para ver si tiene --> ahora. El problema es que como las secuencias y el nombre de tabla están en el mismo workspace, --> no aceptaba los nombres duplicados para la tabla y en este caso para la secuencia. --> Ese fue el error que nos pasó. Listo. Ok, vamos entonces, sigamos. Listo, entonces, --> aquí lo cambio, perfecto. Cerré algo. Ah, pensé que era la mía entonces. Ok. Listo, --> voy a darle aquí F5 para ver si hizo el cambio. Parece que ese cambio no lo vi reflejado aquí. --> Properties, secuencia. Listo, ahora sí no sé qué había pasado. Listo, vamos entonces ahora --> acá. En la configuración del talent, por favor, haga lo siguiente. En el tema, --> borre la variable que no carece de sentido porque no la vamos a usar. Y en la salida, --> borre la variable que estaba anteriormente que marcaba, que era var, identificador. Entonces, --> le queda la configuración de esta forma. Listo, acto seguido. Vamos entonces a utilizar esa --> secuencia. ¿Cómo hacemos? Vamos a lo siguiente. Váyase a donde dice artista. Dígame. Dele --> cancelar y si le dice. Dele salir un momentito. ¿Quién me abrió? Un momento. Listo, ya la vi. --> Un momento, un momento, un momento. Dele entonces. En cancel. Dele ok. Vuelve a abrir --> nuevamente. Ahora que listo. Ahora acceda al nombre variable y lo borra. Ahí, dele click. --> Borra ese nombre variable. Le da enter después. Dele suprimir si usted quiere. Suprimir --> mejor. Seleccione todo. Vuelve a seleccionar todo. Listo. Suprimir. Enter. Perfecto. Listo. Así es --> la configuración. Perfecto. Perfecto. Gracias. Listo. Entonces, vamos a lo siguiente. Vaya a --> la salida que es la conexión hacia la base de datos. Y hay una opción que dice --> advance setting. Por favor, dele click que queda en la parte de abajo. O sea, --> cuando usted da doble click para las propiedades, le aparece basic y advance. --> Vaya donde dice advance. En advance vamos a adicionar una columna. Dele aquí donde dice más. --> Y explico entonces un par de parámetros que podía hacer aquí con este advance setting. --> Simplemente a modo informativo. Si se da cuenta, hay una opción que dice commit cada --> cuánto. Entonces, por defecto, las variables de salida en talent tienen un commit cada mil --> filas. Es decir, que cada mil registros él hace commit. Si usted quiere, puede cambiar, --> pero cuando la cantidad de datos que usted va a exportar o migrar hacia una base de datos es --> grande, si hace un commit que es muy frecuente, va a tener un problema de tiempo de respuesta. --> Recuerde que lo que hace el commit es tener, inicialmente cuando tú haces un proceso de --> eso queda en memoria principal. Solamente se refleja en memoria secundaria cuando tú haces --> commit. O sea, que están de memoria principal, yo puedo hacer un rollback. Pero si ya hice --> commit, no puedo hacer un rollback. Entonces, en este caso, la cantidad de registros que --> tenemos es muy poca. Da lo mismo la configuración porque terminada la ejecución va a ser un --> commit. Y ahora vamos entonces a la configuración de las columnas adicionales. Lo que deseo --> agregar es una columna para que tome la configuración específicamente de la --> secuencia. En call name haga lo siguiente, vamos a cambiar ese call name, puede ser cualquier --> nombre, pero en este caso vamos a llamarlo identificador. Normalmente por estándar, --> uno le coloca a esa variable el mismo nombre de la variable que va a reemplazar. En este --> caso quiero reemplazar la variable identificador, por eso llamo a la variable identificador, --> o sea la columna en la tabla. Todo seguido le aparece la expresión SQL. Entonces, --> en esta expresión SQL ya depende netamente del motor a donde te vas a conectar. Por defecto, --> ahí te aparece now. Now es una función en Postgres que lo que te devuelve es la fecha --> del sistema. O sea, la fecha donde está instalada el motor de base datos. ¿Qué vamos --> a hacer aquí? En este now expression vamos a ejecutar la siguiente expresión para Postgres, --> que es la siguiente. Vamos a llamar la función nextVal, ya la coloco en grande y dentro de --> paréntesis, encerrado entre comillas simple, coloque el nombre de la secuencia que le dio, --> exactamente. Artista, secuencia la llame yo. Lo coloco ahora aquí en grande para que lo --> quede. Ya lo coloco acá. Artista te queda nextVal, artista, secuencia. Por evitar, --> aunque yo creo que Postgres a nivel de Windows no tiene este problema, por favor, este --> netVal, la V colóquela en minúscula, por favor. De pronto quizás va a tener un --> problema con Linux, pero con Microsoft no creo que haya este problema, pero para seguir --> el estándar la función en nextVal en minúscula, por favor. Y coloque exactamente entre --> comillas simple el nombre de la secuencia. De esta manera es que llamo a un nuevo número --> a esa secuencia, en este caso sobre Postgres, el que agregamos exactamente, efectivamente, --> en el p-hacme, exactamente, el nombre de la secuencia que agregó yo. Que para mi --> caso yo la llamé, hay algunos que la llamaron un poco diferente, para mi caso yo la --> llamé artista underscore secuencia. Hay algunos que lo llamaron secuencia underscore --> artista, entonces tiene que verificar cómo fue el nombre que le colocó. --> Artista, ah, muchas gracias, sí señor, me faltó la S, sí señor, porque se llamaba, --> mi secuencia llamaba artista secuencia, sí señor, efectivamente, así es. Iba a salir --> un error porque no iba a encontrar la secuencia. Artista secuencias, entonces voy --> a copiar este señor y voy a sobre escribirlo acá para que me quede la configuración entonces. --> Voy por acá y me queda de esta forma. Muchas gracias. Y aquí viene, ¿qué vas a hacer con eso? --> Entonces, al final debes especificar la columna que vas a referenciar. En este caso vamos a --> referenciar la columna de identificador y con esa columna referenciada entonces la posición --> es sumamente importante. Si el valor de la variable que está aquí, tú lo que vas a --> hacer es colocarlo antes, colocarlo después o colocarlo o lo vas a reemplazar. Me explico --> de esta forma. Usted acasa de ver esta pantalla mía, la que estoy mostrando ahora, sí, --> el Notepad más sí, sí la acasa de ver. Mira lo siguiente, al final lo que hace la herramienta --> talent es generar una secuencia, una sentencia secuela de tipo insert, que quedaría más o --> menos de esta forma. Insert into, abre paréntesis, identificador, coma, nombre, --> values y especifica los valores que tenga. Entonces, por defecto anteriormente tomaba el --> valor de la secuencia que estaba en talent. Por ejemplo, aquí mandaba un uno y mandaba --> un nombre cualquiera aquí, x y z. Al agregar este elemento que está aquí, la configuración, --> si yo digo que la variable que voy a agregar la voy a colocar antes significa que al final --> esa variable, supongamos que se llama también x y z, la colocaría aquí, es decir, la --> adicionaría en el insert. Al final agregarías para este caso en particular donde la salida --> tiene dos columnas, agregarías una columna nueva en el insert. Y si usas replace, --> perdón, after lo que harías sería colocarla después. Y si colocas replace lo que haces es --> que reemplazas el valor de esto que está aquí por la función que se llama nextVal, --> que sería más o menos así, nextVal. Y aquí tendría, bueno acá tengo el nombre, --> me quedaría de esta forma. Entonces tú acá con esta funcionalidad puedes agregar nuevas --> filas para insertar en la tabla en particular, ya sea antes o después de una columna de --> referencia o simplemente reemplazas el valor de una columna, por ejemplo en este caso por --> una función más específicamente de pogres. Entonces si vamos por este lado lo que debería --> usar yo aquí es que me reemplace. ¿Y por qué lo reemplazo? Porque esa columna no tiene --> ningún valor de entrada. Entonces como no tiene valor de entrada voy a reemplazarlo por --> la función nextVal. Bueno aquí creo ya no hay que hacer mandada, por defecto aquí está la --> primera columna que hay identificador, vamos a guardar y vamos a ejecutar el job. En el caso --> de mi job como la tabla no la tengo creada, porque perdí el backup, voy a hacer un pequeño --> cambio acá en la salida. Voy a decir que me creé la tabla. Usted no haga esto porque ya --> tenía esta tabla creada desde el día de ayer, pero yo como la máquina virtual es nueva no --> tengo eso que hice el día de ayer. Entonces voy a ejecutar aquí y veamos para ver si nos sale --> algún error. Listo, voy viendo aquí las pantallas para ver si sale algún tipo de error. --> Bien aquí salió un error acá, vamos a ver. Ahí salió algo. Veo el caso de Alberto, --> te veo aquí un error, voy a entrar a tu máquina Alberto para ver. Alberto, al parecer estás --> ejecutando el job anterior Alberto. Si te das cuenta en el room te aparece el nombre del job --> anterior, por favor, cierra ese job y vuelve a abrir el de versión 2 y vuelve a ejecutar, --> por favor. Ana Lilia, veo que también sale un error, voy a conectarme para ver qué pasó ahí. --> Lo mismo, estás ejecutando, si te das cuenta en el room te aparece el nombre del --> último job que ejecutó. Cierra por favor el job y vuelve a abrir el de versión 2 e inicia --> la ejecución. Ok, aquí tengo un par de errores, vamos a ver, es por el tipo de datos. --> Voy a verificar el esquema. --> Sí, claro como no, ya la muestro. Avances, settings, quedaría de esta forma. Aquí me tomó --> varchar, aquí debió tomar por defecto entero, revisa para ver si tiene aquí entero. --> Ah, perdón, es porque me apareció a mí así ahora. Sí, creo que la cambió después que agregue la --> variable. Vamos a lo siguiente, deja la borra y lo vuelvo a crear nuevamente para ver si fue. --> La primera vez creo que te apareció diferente, ¿verdad? Creo que tú no tienes la tatay, --> entonces te quedaría más o menos de esta forma. Bueno, aquí colocamos integer si en --> caso que te aparezca, pero no te aparece. ¿Y a ti qué te haría? Bueno, entonces, listo. --> Intenta ejecutar para ver, intenta ejecutar para ver. --> Estoy, el caso de Ana Lilia, tienes un error. Muéstrame por favor la confesión --> del artista, por favor. La salida, por favor, si eres tan amable. --> La de Postgres, la salida. Listo, dale doble clic por favor, dale doble clic en artista, --> ese dale doble clic. Vete, avances, settings. Y el problema es que el nombre de la secuencia --> tiene que ir entre comillas simple. Entonces, después del paréntesis que abre, abre comillas --> simple y antes de que cierras, cierras con comillas simple. Enter, dale enter. Ahí está bien, --> sí, porque eso ya es de Java, porque sería un extreme. Ejecuta para ver. Veo que Mauricio --> tiene un listo. Confirma por favor la salida, debería empezar en mil. Voy a tu máquina, --> Mauricio, que veo que tienes un error. El mismo Mauricio, en el caso tuyo, --> está ejecutando el joc anterior. Por favor, cierra el joc que tienes actualmente y lo --> que ya le funcionó, por favor, consulte su tabla de artista y debería tener entonces una --> secuencia que debería empezar en mil. Ok, ya voy para allá. Mauricio, dale ok por favor ahí. Veo --> cuál error. Dale doble clic en el tema, que te aparece el error, doble clic. Borra la --> variable var identificador que tienes ahí. En la salida, por favor. La seleccione y da --> suprimir, suprimir, enter, suprimir. ¿Qué pasó ahí? Suprimir. Selecciona, dale clic en --> el nombre, suprimir, enter, dale ok por favor y vuelves a ejecutar nuevamente. Un momento, --> por favor, mientras reviso aquí. Alguien me dijo que tenía un error. Perfecto, listo. --> Ah, listo. Lo ha listo. Vete nuevamente a artistas, Mauricio. Ahí el problema es que --> no reemplazaste, sino lo colocaste before o after. Entonces intentó crear una columna --> nueva. Vete a la advanced setting. Voy a mostrar aquí lo de Mauricio, de pronto algunos lo tienen --> igual. Vete al advanced setting, por favor. Y ahí en el advance, no en el base, en el --> advance, dale clic en el advance, por favor. Ahí es donde dice posición antes. Ahí es lo que --> estabas agregando una nueva columna. Cambia esa posición por reemplazar. Donde dice posición, --> tienes antes. Ahí tienes que reemplazar porque si no te agrega una nueva columna a la tabla. --> Dale a reemplazar y le das enter y vuelve a ejecutar nuevamente. Enter y vuelve a ejecutar --> nuevamente el job para ver. Perfecto, revisa por favor la salida. ¿Quién me decía por ahí que --> tenía un errorcito por ahí que le había cambiado la interfaz? ¿Quién fue el que me dijo --> por ahí? Gerardo. Ahora sí te veo, Gerardo. Hoy sí te veo. Bueno, vete nuevamente. Listo. --> Ah, no, listo. Entonces, ahí agrega, por favor, Gerardo, agrega un, en el edit una column, --> dale, adicione una nueva columna. Por favor, dale clic ahí. En el name, colócale el mismo --> nombre, la columna identificador. Dale doble clic y cambia call name y deja las comillas --> dobles, colócale identificador. Listo, perfecto. Ahora, ese atatay creo que aparece --> después que lo ejecuto la primera vez me aparece a mí. Dale doble clic y entonces, --> en ese call expression y coloca la función next val entre comillas doble, ok? No le pierdas --> comillas doble, comillas doble. Abre paréntesis, después del val, abre paréntesis, comillas simple, --> nombre la secuencia, comillas simple para cerrar la que abrí y cierra paréntesis. La posición, --> dile que vas a reemplazarla, no vas a agregar algo, ni antes ni después. Dale --> replace, dale enter por favor y ejecutas. ¿La de qué? La del tema. No, la del comil que era --> informativo. Ahí es lo que está diciendo es que cada mil filas va a ser un comil, --> pero tú puedes cambiar eso. Pero como la cantidad de filas es menor, no hay problema. Dale --> doble clic al tema. Ah bueno, ejecuta para ver si ya. Perfecto, está igual, está perfecto. --> Dale ok, por favor. Ejecuta. Mientras se ejecuta, alguien más no le funcionó. Creo --> que Antonio, Antonio. Listo, vete a Dejanme por favor y confirma para ver los nombres. --> Se llama artistas, secuencia con cubo. Listo, vamos acá. Vas a copiar, si quieres copiar el --> nombre, no sé. Vamos a ver cómo lo tienes acá. En properties, dale properties y ahí puedes --> copiar el nombre. Listo, vayamos entonces a la configuración que tienes del talent. Vete --> a no sé si reemplazas la línea, el nombre con el que copiaste. Parece que no lo copió, no. --> Ah, listo, sí, sí, lo copió. Ejecuta para ver nuevamente. Dale enter, por favor. Ejecuta. --> Listo, ahora por favor confirma si te guardó de los datos del mil. Bueno, creo que a todos --> no funcionó ya. Retomo nuevamente. ¿Quién me habla de Ileana B. Pareada? Listo, --> estoy viendo en su pantalla. Te empezó la secuencia desde uno, ¿Verdad? Muéstrame por --> favor artistas, secuencia. En la secuencia que tienes ahí, arribita, artistas, secuencia, --> de clic derecho, propiedades. Aquí en artistas, de clic derecho, propiedades. Ahí está, --> propiedades, propiedades. Ahí está, ese es el propiedad. Vete a definición. Vete --> a definición. ¿Qué creo yo? Ah, no, que creo yo no, que estoy seguro yo. Dale --> close por favor. Close. Baja en los datos, baja el scroll, el scroll y deberías --> tener por allá abajo. Ahí tienes con cien. ¿En cuánto empezaba la tuya? Baja hasta --> el final para ver. Ahí está, lo que pasa es que adicionamos muchos datos. Es decir, --> ese yo lo ejecutamos varias veces que te adicionó y en realidad lo que hicimos --> fue agregar nuevas filas. Pero ahí está el mil. ¿Te acuerdas que el día de ayer --> ejecutamos varias veces ese yo, verdad? Entonces te agregó esas filas y ahora cuando --> ejecutaste nuevamente este yo, te empezó a agregar desde el mil. Sí, pero sí está --> bien. Sí está bien. Ah, perdón, perdón. ¿Quién me, quién, quién era? Liliana. Sí, --> entonces. Ah, perdón. Vete al pobre un momento. Ah, perdón, qué pena. Hay un --> error. Doble clic para ver. En el tema, dese cuenta que el error inicia en el --> tema. Doble clic. La variable varientificador, por favor, elimínala porque no existe. --> Clic, eliminar, dele suprimir ahí. No, no, no, dele cancel, dele cancel un momento. --> Era eliminar el nombre. Cancel. OK. Y vuelve a abrir el tema. Vuelve a abrir el --> tema. Acceda al nombre de la variable. --> Suprimir ahí y le da enter después. Enter, listo. Dele OK, por favor. --> Y ejecute. Lo que pasa es que estaba buscando esa variable que no existía. --> OK, déle ejecutar y listo. Veamos para ver entonces. OK, vaya ese --> artista de un momento. Muéstreme el advance seti. --> Advance seti. Ese, el primero dice name. Name. Ese identificador va entre comillas --> doble porque es propio del, de una variable stream de Java. Entonces, --> encélelo entre comillas doble. Listo, enter. Ejecute. Ahora sí, revise, --> por favor, la base de datos en Poggres. Ah, dele clic derecho artista y digale --> que desea ver los datos y debería empezar en mil y está. Y le empieza. --> Muésteme su secuencia, por favor. --> Ah, no, aclaro. Permítame. Y de pronto hay algunos que se me confundieron aquí. --> Voy a tomar su pantalla. Un momento. Déjelo ahí donde está. --> Un momento, por favor. Y me conecto para ver si es posible. --> Pero esta conexión parece que no está funcionando. --> No, no me deja pasarla acá. --> Bueno, resulta que quizás le aparecen los códigos 1 o 2. --> Pero esos códigos que aparecen es porque ya habíamos ejecutado el job. --> Para comprobar efectivamente que ese job no funciona de forma correcta, --> haga lo siguiente entonces. Váyase a la configuración de la salida de --> artista. Y aquí donde dice action table, dele un truncate table para que --> todos los datos que tiene. --> Porque teníamos datos de la ejecución del día anterior, del día de ayer. --> Ponga truncate table, dele doble clic. --> Y donde en el action table de esa configuración en el basic. --> Cambie, donde estaba default, cambia truncate table. --> Eso que haría borraría los registros y agregaría estos nuevos acá. --> Ejecute nuevamente para ver. --> Y ya debería solamente ver los registros que inician en mil, --> porque lo que estaban anteriormente con 1, 2, 3, --> fue lo que generó con el talent generator. --> Con la secuencia que hicimos. --> Vuelvan a consultar nuevamente y debería empezar entonces en mil. --> Ah, bueno, buena sorpresión. --> Sí, empezaría en el por donde se quedó el caso suyo. --> Veo ciento de usted colocó cien mil. --> De pronto colocó dos diez mil, si no. --> Exactamente, empezaría donde estaba la secuencia. --> Bueno, de esto muchas cosas. --> Pero me toca avanzar entonces, porque estamos un poco atrasados. --> Avancemos con el join. --> Ahí aquí van a quedar un par de dudas, voy a tratar de resolverla --> cuando sean bit data, porque aquí hay mucho tema que quedar --> y nos falta ahora la parte del join. --> Vamos a hacer un nuevo job. --> Vamos a dejar este job un momento quieto, porque estamos un poco atrasados --> y hay que hacer un caso de estudio que es evalúable. --> Entonces vamos a hacer un join que lo necesitamos para el caso de estudio. --> Vamos a hacer lo siguiente, vamos a crear aquí un nuevo job. --> Por favor, dejemos. --> Y agregamos un nuevo job que lo vamos a hallar. --> Job, join. --> Fuentes, datos. --> Vamos a llamar job, join, fuentes, datos. --> Voy a obviar el propósito para hacer un poco más rápido. --> Agregamos un nuevo job llamado job, join, fuentes de datos. --> Le damos finish. --> Voy a cerrar el job anterior. --> Y vamos a hacer lo siguiente ahora. --> Vayamos a la base de datos de Chinook que tenemos en MySQL. --> Y vamos a tener las siguientes fuentes de entrada. --> Vamos a tener entonces la fuente de entrada que se llama track, --> que es pista o canción. --> Track. --> Vamos a tener de entrada Yenre --> para hacer un join de track con Yenre. --> Y terminamos con album. --> ¿Qué pasa? --> En que track hace referencia a la tabla Yenre --> y track hace referencia a la tabla album. --> Deseo ahora mostrar los nombres de pista, --> el nombre del album y el nombre del género. --> Pero por la parte normalización de bases de datos, --> separamos eso en diferentes tablas --> y me toca unir para poder sacar la información. --> Esa teoría básica estoy seguro que ya la sabe entonces. --> Para hacer un join, --> aclaremos que ya habíamos dicho que puedo hacer el join --> con cualquier fuente de entrada de este lado. --> Simplemente lo que hago aquí es unirla, --> me da lo mismo si es un JSON, --> si es un XML, lo que ustedes seen. --> En este caso en particular son tablas --> que apuntan hacia la base de datos de Chinook. --> Y para hacer un join, --> usamos nuevamente el componente tmap. --> Este componente tmap, entonces, --> ¿qué hacemos? Lo siguiente. --> Vamos a unir cada uno de los elementos. --> Entonces vamos a unir entonces este track, --> lo unimos con una flecha main hacia el tmap, --> y agregamos todos los elementos --> que queremos unir al tema. --> Claro que nuevamente da lo mismo --> si la entrada es un JSON, un XML, --> se hace exactamente lo mismo. --> Sí, son de MySQL todas tres, --> en este caso en particular. --> Son las tres de MySQL, sí señor. --> Así es. --> Dígame, estoy yo señor. --> Así efectivamente como usted dice. --> De cualquier fuente que está aquí --> en la metadata de este lado. --> Lea lo mismo de qué base de datos --> pertenece, si es JSON, XML, --> así es. --> Aquí la configuración, --> el problema es la configuración al final. --> Mire lo siguiente ahora. --> Por cuestión de estandarización, --> vamos a llamar cada una de las filas --> esta igual al nombre de la tabla. --> En este caso row 1, --> voy a cambiar el nombre para que sea track, --> y me sea más fácil saber hacer el join. --> Voy a cambiar row 2 por genre. --> Y voy a cambiar álbum --> por este que está aquí, --> el row 3 por álbum. --> Exactamente lo mismo. --> Siendo que me parece este más, --> un poco más versátil. --> Podíamos hacer la discusión más --> en flexibilidad, pero al final --> el T-Join podría ser mucho más --> eficiente para grandes volúmenes --> de datos, posiblemente. --> Pero este señor tiene unos --> elementos de configuración --> que no tiene el T-Join. --> Bueno, vamos entonces a la --> configuración esta entonces. --> Vamos aquí entonces al tema. --> Y recordará entonces --> teoría básica de un join. --> Cuando yo tengo un join --> entre N tablas, al final lo que --> usted hace es un producto cartesiano. --> Ese producto cartesiano --> le va a dar entonces --> un número de filas igual a la cantidad, --> a la multiplicación de un elemento. --> Me explico de esta forma. --> Si entonces yo tengo aquí, --> voy aquí a abrir un. --> Un momento y abro aquí, --> porque esto es primordial para --> entender las diferentes --> configuraciones que hay. --> Crear aquí un nuevo diorama. --> Entonces sí. --> Listo. --> Entonces vamos a lo siguiente. --> Primer lugar. --> Teoría básica de base de datos. --> En primer lugar, tengo aquí --> una tabla. --> En este caso voy a llamarla trap --> y tengo otra tabla que en este --> caso sería Genre. --> Voy a colocar solamente dos --> para que sea más sencillo. --> Significa que cuando yo quiero --> unir esas tablas. --> Se hace siempre un producto --> cartesiano. --> Es decir, entonces si este señor --> tiene mil registros. --> Y este señor de este lado --> tiene otros mil registros. --> El producto cartesiano de estos --> dos me vendría dando entonces --> la multiplicación del número de --> registros de uno por el de --> otro sería entonces. --> Serían 3 0 y 3 0. --> Significa entonces que al final --> tú vas a procesar un millón --> de filas. --> Que es lo que internamente se --> hace? --> Pues lo que hace normalmente un --> motor es que sube a memoria --> principal esas filas. --> Y en memoria principal hace la --> unión por valor. --> Recordará que normalmente estas --> tablas están unidas por un --> foreign key. --> Entonces, ese elemento de --> unión de foreign key --> verificó si el dato de una --> coincide con el otro y --> significa entonces que uno y --> muestro ese señor que está --> ahí. --> Eso es lo que hace. --> Por ende, cuando tú tienes un --> join tienes que tener en --> cuenta que el problema tuyo --> quizás no es a nivel de --> procesamiento porque el --> procesamiento que se hace es --> comparar las columnas del --> foreign key para ver si son --> iguales y mostrar ese valor. --> El problema al final tuyo --> puede ser un problema netamente --> de memoria. --> Porque las tablas son muy --> grandes entonces hay que subir --> eso a memoria principal y --> quizás tienes poca memoria. --> Al tener poca memoria se --> hace swapping. --> ¿Qué es swapping? --> Bajar los bloques de memoria --> que tienes que uno está --> usando ahí arriba en memoria --> principal y lo bajas a --> memoria secundaria. --> Y ese proceso de hacer swapping --> es lo que te demora a ti en --> la consulta. --> Entonces, mira cómo va a --> funcionar la herramienta para --> que pienses si en realidad --> tiene sentido hacer un join --> con la herramienta. --> Es muy importante que entiendas --> ventaja y de ventaja y ver --> para ver si tendría mucho --> sentido. --> Al final, ¿qué pasa? --> Bueno, si yo hago este join a --> nivel de base de datos, --> voy a pintar aquí una base --> de datos aquí. --> Hago el sele casterico front --> y recordará que hay dos --> sintaxis a nivel de join. --> Join que puedo hacer --> directamente en el front, --> donde puedo colocar las --> paradas claves join, left --> join, outer join y hay --> algunos que tienen full --> outer join. --> O tú lo haces en el --> where. --> En el where que haces --> y compara las filas, las --> columnas que normalmente son --> foreign key. --> Cuando tú haces un join --> directamente en base de datos --> es supremamente eficiente --> comparado con lo que va a --> ser ahora. --> ¿Por qué es eficiente un --> join a nivel de base de --> datos? --> Porque la base de datos se --> prepara con unas estadísticas --> internas para saber cuál --> es la mínima cantidad de --> datos que va a subir a --> memoria principal para que --> ese join demore menos --> tiempo. --> Eso en primer lugar. --> ¿Alguien iba a comentar algo? --> Bueno. --> ¿Cómo funciona la --> herramienta ahora? --> Te aclaro que sería cualquier --> herramienta de TL que tendrías --> en el mercado. --> Entonces si das cuenta, esta --> herramienta que tiene al --> final tiene lo siguiente. --> Permíteme y muestro la --> configuración que está. --> Se me perdió aquí. --> Aquí la tengo. --> Al final tú terminas haciendo --> lo siguiente. --> Terminas tomando como --> fuente de entrada la tabla. --> ¿Cierto? --> Las N tablas que tienes --> aquí. --> Y lo que hace este señor es --> traerse algo muy parecido a --> la base de datos, pero vamos a --> ver la pequeña diferencia que --> hay. --> Traerse todos los registros --> que están en esa tabla y --> subir la memoria principal. --> Algo muy parecido a lo que --> hace la base de datos con la --> pequeña diferencia es que la --> base de datos a partir de --> ciertas técnicas de indexado, --> de algoritmos que tiene, --> busca en que la cantidad de --> datos que va a subir a --> memoria principal para hacer --> el join sea la mínima. --> Mientras que acá voy a --> traerme todos los registros. --> No sé si me va entiendo la --> idea. --> Listo. --> Digamos que hasta el momento --> pues va ganando la base --> de datos, ¿Cierto? --> Porque la base de datos va --> a intentar hacer lo más --> eficiente ese join por lo que --> he explicado anteriormente. --> Ahora, hay algo que tiene la --> base de datos que no vas a --> poder conseguir con estas --> herramientas. --> Y principalmente si tienes --> grandes cantidades de datos --> que vas a procesar. --> Es la siguiente. --> Miremos gráficamente qué va --> a pasar aquí. --> Listo, entonces voy a --> ir nuevamente aquí a esto que --> está a este lado. --> Entonces, voy a colocarte la --> herramienta que puede ser --> cualquiera. --> Te voy a colocar aquí ETL de --> forma general. --> Este ETL, el software de --> ETL, no siempre va a estar en --> la misma ubicación que tiene --> la base de datos. --> Por ende, posiblemente tú --> tengas lo siguiente configurado. --> Tengas aquí un switch. --> O sea, un dispositivo de --> red que interconecta la --> máquina donde vas a --> ejecutar el proceso ETL. --> Con el que está en la base --> de datos. --> Por ende, como este ETL para --> hacer el joint tiene que --> recuperar todos los datos. --> Significa en que va a hacer un --> select asterisco front a la --> tabla. --> O sea, va a hacer un full --> scan a la tabla. --> Y hay que hablar ese full --> scan porque ese full scan --> puede demorar. --> Hace un full scan a esta --> tabla. --> Y viaja por la red los --> registros. --> Ya está, va a tener otro --> problema de seguridad porque --> te van a viajar. --> Bueno, asumimos que estás --> en la misma red. --> Quizás ahí no es necesario --> de pronto hacer una --> escritación. --> Pero te voy a mostrar un caso --> diferente. --> Es cierto. --> Entonces, si fijas, ya ahora --> el ETL, o sea, hacer el joint --> te va a demorar más tiempo --> porque tiene que traer todos --> los registros que están --> quizás en una máquina --> completamente diferente, --> pasarlos por la red y --> subirlo a memoria principal. --> Y cuando los tengo a --> memoria principal, dependiendo --> de cómo lo tengas configurado --> en el talent, --> específicamente, porque aquí --> soy claro en que no sé cómo, --> qué configuraciones tiene --> cada uno de los ETL. --> Pero el talent tiene algunas --> específicas. --> Entonces, si comparas hacer el --> joint con el directamente --> en la base de datos, --> con el ETL, va ganando la base --> de datos. --> Primero, porque el performance --> está, digamos, está --> preparada para que el --> desempeño sea lo más alto --> para hacer el joint. --> Segundo, porque los registros --> que él va a utilizar de --> subir a memoria están --> en la misma máquina. --> En cambio, que quizás ese --> ETL no está. --> Ahora te la pongo --> todavía más complicada. --> Suponte que esta base de --> datos no está en tu red local --> si no la tienes en la nube. --> Entonces, significa que aquí --> vas a tener una nube --> de conexión a Internet, --> que ahora sí te puede --> complicar la parte de seguridad. --> Es decir, entonces, aquí --> tengo el clavo aquí. --> Entonces, este ETL, suponte --> que está en una ubicación --> diferente donde tienes esta --> base de datos. --> Entonces, significa ahora que --> ahora el proceso tuyo va --> a tener varios inconvenientes --> ahora. --> Acá, pues, tu ancho de banda --> no había ningún problema --> porque estaba en la misma --> red. --> Ahora el ancho de banda depende --> de muchos factores, entre --> eso el tráfico de Internet. --> Tienes otro problema a nivel --> de seguridad. --> Entonces, esos datos te van --> a viajar en plano quizás --> de este punto al punto --> donde tienes el ETL. --> O sea, habría que pensar --> para ver qué hago ahí --> si los encripto y si los --> encripto, entonces va a ser --> un poco más lento porque --> me toca encriptarlo del --> lado de la fuente y --> ese encriptarlo del lado --> del origen, es decir, --> del lado del destino. --> Entonces, ahí a donde quiero --> llegar es que quizás, --> partiendo de las desventadas --> que puedes tener, --> usando una herramienta ETL, --> quizás sea mejor, --> por lo menos a nivel de --> performance, que tú el --> el join no lo hagas --> con la herramienta, --> sino que directamente --> generes una sentencia --> SQL, por ejemplo, --> este trac que está aquí, --> si no voy a las propiedades, --> aquí me muestra el --> Entonces, haga el join aquí --> y el join, esa sentencia SQL --> la ejecuta contra el motor --> de base de datos, --> el motor hace el join --> y te devuelve el join, --> por lo menos a nivel de --> performance vas a hacer --> más eficiente, --> ahí vas a tener un problema --> quizás de seguridad si no --> estás en la misma red. --> Eso es más que todo --> a nivel informativo --> para que lo tengas en --> cuenta porque el join, --> si la cantidad de datos --> es muy alta, --> te puede costar mucho. --> Listo, entonces vamos a --> de todo modo hay que explicar --> cómo hacemos el join --> con la herramienta, --> yo creo que ya pues la --> mayoría pues por la --> experiencia que tenemos --> seguramente ya sabemos --> cómo lo hacemos a nivel --> de SQL. --> Vamos entonces --> las diferentes confusiones --> de la herramienta. --> Vamos aquí, --> ahora sí voy al tema --> nuevamente --> y hacer el join, --> ah bueno, se me escapaba --> y qué ventaja tendría --> de hacerlo, --> como todo en la vida, --> siempre tendría ventaja --> y de ventaja, --> qué ventaja tendría de hacerlo --> con una herramienta tele, --> porque te permite formatear --> los datos de una manera --> muy sencilla, --> quizás de pronto --> directamente con la base --> de datos de ese formateo --> sale más complicado, --> entonces --> podías combinar los dos --> mundos, --> o sea tomar las ventajas --> de cada mundo --> y hacer una solución --> un poco más eficiente, --> está claro que esto es --> cuando tienes una gran --> cantidad de datos --> que puede tener problemas. --> Entonces mire lo siguiente aquí, --> cómo estamos, --> aquí está el track --> y este track voy a hacer --> join con género --> y con artista. --> La columna que une --> el track --> con género --> se llama Genre ID. --> Entonces cómo vamos a hacer, --> selecciona Genre ID aquí, --> clic sostenido --> y ojo, --> lo sueltas --> en la misma línea --> en que está el Genre ID --> y posiblemente --> si no lo ubicas bien --> te agrego una nueva columna --> y si agrego una nueva columna --> va a tener un problema, --> lo suelto aquí. --> Vea, en este caso --> me agrego una nueva columna, --> lo suelte mal. --> Me tocaría borrar nuevamente --> esta columna, --> lo borro acá abajo --> y nuevamente hago --> el proceso de join. --> Ahora sí lo suelto ahí --> y ahora sí está ahí. --> Acto seguido, --> pues hacer lo mismo --> con album. --> ¿Cuál es la columna que los une? --> Entonces tiene album ID. --> Sería este album ID --> lo suena aquí. --> Vea que gráficamente --> esto es mucho más sencillo, --> si se va a comparar la ventaja, --> tirarle la sentencia SQL, --> pues quizás allá sea --> un poco más complejo. --> Y además que --> hacer un join --> con un herramienta de TL --> pues no te obliga a saber SQL, --> pero normalmente el que tiene el perfil --> a nivel de integrador de datos --> pues debería poder tener --> conciertos básicos en SQL, --> sí señor. --> Ahora vamos a hacer --> esa conversión de, --> vamos a entender --> esa conversión de left auto join. --> cuando usted se conecta, --> cada una anote que aquí --> aparece como si fuera --> una pequeña chupetica aquí, --> le da doble clic aquí --> y ahí está diferentes formas --> de hacer ese join. --> Primero, --> el look at model, --> por favor dele clic aquí, --> aquí simplemente es informativo, --> no en realidad --> esta herramienta bastante amplia --> y la cantidad de horas nos da --> y también perdimos el primer día. --> Sigamos entonces, --> mira por defecto está --> left once, --> ese que está ahí verdad, --> cargar una vez, --> qué significa eso, --> eso es lo que significa --> es lo siguiente, --> como decía acá, --> no sé quién, --> muy amablemente me comentó --> que este track es el principal --> y estas serían las dependencias --> como tal de ese join, --> digámoslo de esa forma, --> este es left once que es lo que hace. --> En primer lugar, --> la herramienta funciona --> de la siguiente forma, --> se carga todos los datos del track, --> o sea, --> hace un full scan de track, --> un select asterisco from track, --> hay pocas palabras, --> y carga los datos de memoria principal --> donde esté el talent instalado, --> pero la pequeña diferencia está --> con estas dependencias que están aquí, --> si este Genre está configurado --> como left once, --> significa que también --> se va a traer todos los registros --> de Genre, --> de la tabla Genre, --> si por el contrario, --> está reglado a each row, --> ese que está ahí, --> ojo a lo siguiente, --> significa que por cada fila --> que vaya a buscar en el track, --> va a la base de datos y consulta, --> o sea, --> si tú tienes cien registros, --> cien registros, --> significa que haría cien consultas --> para género, --> para buscar el nombre del género, --> por ejemplo, --> hacia la base de datos, --> que si es eficiente, --> no, --> lo que pasa es que, --> tienes que pensarlo también --> de otro punto de vista, --> es que si tú tienes muchos datos --> y tú cargas todo de memoria principal, --> quizás no tengas memoria, --> y te puede salir un error de --> overflow de memoria, --> este digamos que te ayuda --> en problema de memoria, --> quizás, --> el mejor podría ser el último, --> que es Caché, --> que es Caché, --> ese señor Caché que hace, --> trae no todos los registros de Genre, --> sino trae un grupo, --> va pasando fila por fila --> que está buscando en el track, --> digamos que el track va a buscar --> el nombre del género, --> o sea, la pista busca el nombre del género, --> entonces, --> cuando llega la primera fila, --> él busca en la Caché, --> que tiene guardada, --> para ver si encuentra la, --> la correlación, --> si no la encuentra, --> pide nuevos registros --> allá a la base de datos, --> y así va cargando, --> hasta que cargue todo --> a la base de datos, --> quizás, de memoria principal, --> ese serían los modelos, --> pues normalmente, --> eso depende mucho más a nivel de eficiencia, --> pero, --> deje el que está por defecto, --> que es, --> lo at once que está aquí, --> si señor, --> si señor, --> efectivamente, --> y quizás, --> algo particular, --> fíjense que esa parte de rendimiento, --> es una, --> un requerimiento no funcional, --> y requerimiento no funcional, --> es mucho, --> eficiencia, --> confiabilidad, --> seguridad, --> y hay una cosa muy particular, --> una aplicación no puede tener todos, --> muchas veces, --> usted sacrifica una cosa --> por tener otra, --> por ejemplo, --> si tú quieres hacer una aplicación --> muy segura, --> eso te sacrifica mucho rendimiento, --> entonces, --> es, --> es saber al final, --> dependiendo de lo que tú deseas, --> que configuro, --> y cómo lo configuro, --> pero efectivamente, --> su lectura es, --> sacrifico, --> eh, --> rendimiento, --> digamos, --> gano, --> espacio a nivel de memoria, --> digamos, --> si el equipo donde lo voy a ejecutar, --> tengo poca memoria. --> Vamos con la, --> con la siguiente, --> esta, --> importante también, --> esta es, --> bueno, --> quizás es, --> esta es el nivel de eficiencia, --> y esta sí es el nivel de los datos que vas a producir. --> Entonces, --> si ustedes expanden aquí, --> en el Match Model, --> hay cuatro, --> Match Model, --> expanden, --> por favor, --> el primero, --> All Rows, --> significa que te devuelve el producto cartesiano, --> es decir, --> eh, --> ya había dibujado esta parte, --> si yo tengo en Track mil registros, --> y en Genre mil registros, --> significa que me va a devolver un millón de registros, --> que si tenga sentido eso, --> pues poco, --> no sé en realidad, --> cuál sería el objetivo de agregar eso, --> en pocas palabras, --> no está haciendo Join, --> te devuelve el producto cartesiano, --> para qué, --> no, --> no lo he visto todavía la funcionalidad. --> El que viene, --> es el siguiente, --> ¿cuál viene, por favor? --> Me dice, --> el que viene es Unique y Fars, --> Unique Mac y Fars Match, --> muy parecidos, --> pero no iguales, --> listo, --> lo explico, --> como ingenieros, --> a veces aprendemos mejor con un ejemplo, --> imagina lo siguiente entonces, --> usted tiene las siguientes tablas, --> tiene la tabla clientes, --> y aquí tiene identificador, --> y va a colocar aquí nombre cualquiera, --> nombre, --> identificador 1, --> nombre X, --> identificador 2, --> nombre Y, --> e identificador 3, --> nombre Z, --> listo, --> entonces, --> tiene la tabla de pedidos, --> donde tiene código de pedido, --> código pedido, --> tiene, --> cliente que pillo, --> o sea, --> identificador cliente, --> va a colocar aquí de forma sencilla, --> y de cliente, --> y de cliente, --> y voy a colocar aquí, --> que tiene aquí fecha de pedido, --> todo lo que puede tener aquí, --> fecha de pedido, --> entonces voy a colocar aquí, --> código de pedido 10, --> el cliente que lo hizo fue el número 1, --> en la fecha X, --> el pedido 11, --> en el cliente lo hizo el mismo 1, --> y la fecha fue Y, --> tengo el código 12, --> que lo hizo el señor 2, --> y la fecha fue Z, --> y al 3 no le voy a colocar nada. --> Entonces, cuando hacemos un join, --> un join de la tabla, --> el que hace usted al nivel de base de datos, --> va a funcionar diferente al unique, --> y al first, --> porque cuando usted hace el join, --> te va a devolver entonces, --> te devuelve, --> todos estos registros, --> te devolvería entonces al final, --> tres registros, --> ¿sí? --> ¿sí? --> Uno para este, uno para este sí, --> efectivamente. --> Ahora lo siguiente, --> si hacemos el primero, --> que es unique match, --> hace lo siguiente, --> aquí está este señor, --> en relación a identificador, --> con esta tabla, --> entonces, --> este señor busca todas las, --> todas las conexiones que hay, --> encuentra la primera, --> al encontrar la primera, --> no sigue buscando, --> significa que aquí solamente mostraría, --> vamos a suponer que yo quiero mostrar, --> cliente, --> y quiero mostrar código de pedido, --> al encontrar la primera, --> significa que este señor me devuelve, --> uno, --> y me devuelve el código de pedido 10, --> no me devuelve 11, --> sigue con el dos, --> ya encontró el primero, --> sigue con el dos, --> el dos lo encuentra entonces, --> el dos, --> al tener el dos, --> se da cuenta que hay uno, --> el dos, --> solamente hay uno, --> aquí marca 12, --> y el tres, --> no encuentra relación, --> y solamente me trae esos registros, --> por ende, --> este no es igual a, --> al que usted hace a nivel de base de datos, --> porque hace datos todos los registros que coincidan, --> te lo devuelve, --> cuando tú haces el join, --> y, --> y cómo funciona el first match, --> la única, --> esto lo haría el unique, --> el first es muy parecido, --> la única diferencia es, --> que tomado la columna, --> la tabla que tienes como principal, --> que en este caso tenemos, --> tenemos, --> track, --> si te das cuenta, --> al tres, --> no tiene ningún pedido, --> cierto, --> no tiene ningún pedido acá, --> pero que hace él, --> te devuelve, --> tres, --> y te devuelve aquí, --> un null, --> es como si hiciera, --> es como si hiciese, --> un left outer join, --> es eso, --> como si hiciera un left outer join, --> el segundo, --> te, --> sí, --> te muestra primero, --> te muestra primero nada más, --> te mostraría nada más el primero, --> es decir, --> mira, --> a mí lo siguiente, --> si yo agrego, --> da lo mismo la cantidad de pedidos --> que yo agregué para el cliente número uno, --> al final, --> si yo uso unit, --> o uso first, --> siempre me va a colocar el primero, --> o sea, --> me va a devolver a lo máximo un registro, --> no me devuelve más, --> entonces, --> la pregunta del millón que uno se hace, --> esto para qué sirve, --> esto sirve, --> reemplaza la función exist, --> exist, --> no sé si recordarás, --> exist, --> entonces, --> mira lo siguiente, --> supongamos que tú quieres saber --> todos los clientes que te hayan hecho un pedido, --> no te importa, --> por lo menos uno, --> por lo menos uno, --> entonces, --> tú cómo haces esto, --> normalmente tú lo haces en esta forma, --> select asterisco from clientes, --> una forma puede ser, --> la que no debería ser, --> porque en este caso quieres, --> solamente si por lo menos has hecho un pedido, --> haces aquí un in, --> select, --> perdón, --> haces acá, --> identificador, --> identificador, --> in, --> bueno, --> una forma, --> qué diferente forma de hacerlo, --> te voy a decir la peor, --> te voy a decir la peor, --> que no sea anidado, --> si no se ha correlacionado, --> por ejemplo, --> ¿cómo lo correlaciono? --> significa de esta forma, --> entonces le doy aquí un from, --> from pedidos, --> acá le pongo un c acá, --> y acá le digo, --> where, --> esta es la peor, --> c.identificador, --> identificador, --> sea igual a, --> voy a colocar aquí, --> p.identificador cliente, --> esta es la peor, --> porque por cada fila que esté en el outer query, --> este de acá afuera, --> se ejecuta este join, --> ese subquery que está acá adentro, --> ese es el peor, --> pero esto, --> normalmente se reemplaza de esta forma, --> es la siguiente, --> es, --> colocamos aquí un exis, --> select, --> aquí puedes colocar un literal, --> y dices esta forma, --> sí, quedaría esta forma, --> ¿qué diferencia hay? --> en que con el primero que encuentre, --> cuando esto sea verdadero, --> él suelta ahí, --> y no sigue ejecutando el subquery, --> y devuelve el valor, --> entonces, --> cuando quieres hacer este exis, --> para eso que te sirve el first unit, --> o sea, --> eso, --> first unit, --> lo que te hace es que te reemplaza un exis, --> al final, --> es lo que te hace, --> y la otra es, --> la última que es la, --> bueno, --> la que tradicionalmente usamos, --> es la tradicional, --> sería esta, --> la otra sería all match, --> que sí trabajaría, --> en este caso, --> pues, --> si volvemos nuevamente, --> a la conjunto de datos, --> aquí me devolvería, --> los pedidos, --> para el cliente uno, --> me devolvería, --> como tiene cuatro, --> me devolvería uno, --> uno, --> once, --> bueno, --> aquí serían cuatro registros, --> es clásico, --> exactamente, --> este es el clásico, --> este es el clásico, --> entonces, --> es para que lo tengas en cuenta, --> normalmente, --> pues, --> si tú vas a usar lo clásico, --> tu configuración, --> debería ser la siguiente, --> deberías configurar, --> un momento, --> listo, --> sería all match, --> y acá tienes, --> entonces, --> sobre esto tienes, --> entonces, --> lo siguiente, --> el popular inner join, --> y el left outer join, --> sobre uno, --> entonces, --> si no quieres, --> sacar lo que, --> es decir, --> el left outer join, --> me daría, --> entre track y genre, --> todas las tracks que no tienen un género, --> por ejemplo, --> pero en este caso, --> vamos a usar entonces, --> inner join, --> y por favor, --> entonces, --> toma la misma configuración, --> para, --> los demás elementos, --> si, --> es que, --> en realidad, --> si tú quieres hacer un outer join, --> un left outer join, --> no es necesario el left, --> porque si haces un first, --> si haces un first, --> él te va a traer lo que no coincida, --> te acuerdas cuando te coloque el first acá, --> este first que te devolvía, --> este, --> que no estaba en pedidos, --> lo que pasa es que ese left está, --> es cuando tengas all match, --> entonces, --> tú tienes un, --> o un all match, --> y quieres, --> o un left outer join, --> porque así como está, --> así como está, --> es decir, --> le peco nuevamente de pronto, --> porque no creo que haya la duda, --> así como está, --> si yo coloco inner join aquí, --> es decir, --> si yo coloco aquí, --> inner join, --> el 3 no me lo devuelve, --> en este conjunto de datos, --> el 3 no lo devuelve, --> pero si quiero que el 3 me lo devuelve, --> me tocaría hacer un left outer join, --> con all match, --> ya es más de lo que, --> lo que desees hacer. --> Listo, --> ya después de esa, --> de esa parte teórica, --> vamos nuevamente, --> y configuramos, --> Listo, entonces, --> vamos a hacer lo siguiente, --> vamos a ir aquí, --> ok, --> vamos a mandar esto, --> hacia un, --> tlok row, --> aquí tenía unas cosas pensadas, --> para unir, --> por una cuestión de tiempo, --> vamos a mandarlo a un tlok row, --> unimos entonces, --> el tema, --> con el tlok row, --> la voy a llamar entonces, --> salida join, --> underscore join, --> y por favor, --> solamente va a mostrar tres columnas, --> el nombre de la pista, --> el nombre del género, --> y el nombre del álbum, --> por favor, --> a suelta cada una de este lado, --> y aquí tengo, --> perdón, --> el título del álbum, --> no hay nombre, --> sino título del álbum, --> ok, que pedo, --> lo hice rápido, --> de la, --> de la relación trap, --> de la fuente trap, --> vamos a llevar el name, --> aquí cogí yo fue el álbum, --> ven, --> yo cogí fue algo malo aquí, --> voy a borrar aquí, --> de trap me llevo el name, --> de género me llevo el name, --> y de álbum me llevo el título, --> voy a cambiar el orden aquí, --> fíjate como tengo dos columnas iguales, --> de como, --> hacia la misma salida, --> de aquí te colocó, --> un sufijo, --> entonces voy a colocar aquí, --> voy a cambiar el nombre, --> hacia pista, --> o canción, --> como tú quieras llamarlo, --> acá lo voy a, --> el name del género, --> lo voy a cambiar a género, --> para que se vea mucho mejor, --> y el título lo coloco en español, --> hacia título, --> por favor, --> si eres tan amable, --> ejecuta saber, --> y debería hacer el teletrello entonces, --> ahí te voy a mostrar el número de filas que entra, --> el número de filas que sale, --> bueno aquí, --> es el download, --> ejecuta ahí, --> y un poco de sorpresa, --> tema, --> claro como, --> claro que me, --> que me estaba probando para ver, --> ahí está la relación, --> listo, --> el track, --> el track del name, --> lo llame pista, --> o si querés llámalo canción, --> en alguno, --> ah como dice, --> ok, --> pero un momento, --> te verifico, --> quien me habló por ahí, --> quien me estaba comentando, --> Gerardo voy contigo, --> Gerardo entonces, --> listo, --> lo que pasa es que, --> lo que quiero sacar es el nombre de salida, --> entonces, --> el nombre de salida, --> lo cambia en la parte de abajo, --> veis en la parte de abajo, --> donde dice salida.yo, --> y está name, --> abajo, --> abajo, --> abajo un poco, --> la baja, --> listo, --> y ahí cambia, --> pista, --> bueno canción, --> como quieras, --> enter, --> o pista como tú quieras, --> ese es, --> el otro sería género, --> ese sería título, --> ah, --> album list, --> album list, --> y ejecuta por favor, --> ah ok, --> listo, --> vamos a ver, --> veis mi pantalla, --> quiero cambiar el nombre de salida acá, --> donde lo cambias, --> acá en la parte de abajo, --> le das doble clic acá abajo, --> clic perdón, --> nada más, --> clic, --> y cambias el nombre ahí, --> si acasaste a ver, --> Antonio te veo que tienes un error, --> voy a ver para verlo, --> eh, --> voy, --> quien me está hablando, --> para verificar su pantalla, --> Mauricio, --> voy contigo, --> ah listo Mauricio, --> ah listo Mauricio, --> primero, --> estoy en tu pantalla, --> llévate el name, --> de, --> de track, --> que es el primero, --> llévatelo a salida del join, --> toma, --> listo, --> dele, --> vamos a cambiarlo, --> dale ok por favor, --> dale ok, --> y en la flecha que dice Row 1, --> dale clic en Row 1, --> clic en Row 1, --> en Row 1, --> dale nuevamente clic, --> y ahora cambia a track, --> Row 2, --> entonces, --> cambielo a Genre, --> por favor, --> Row 3, --> cambielo a album, --> ahora si, --> debe aparecer, --> listo, --> entonces ahora, --> lleve el name de track, --> hacia la salida, --> sueltelo acá en el join, --> expanda, --> perfecto, --> expanda, --> listo, --> y ahora lleve el name, --> de, --> de género, --> está en la parte de abajo, --> abajito, --> es, --> lo suelta a este lado, --> y lleve el title, --> hacia la salida, --> por favor, --> los nombres, --> lo puede cambiar en la parte de abajo, --> de la salida del join, --> no, --> ese no, --> es la salida, --> baje, --> a donde dice salida, --> hay acá abajito, --> aquí, --> cambia el nombre, --> dele clic, --> a cada uno de ellos, --> y puede cambiarlo, --> ese sería clic, --> nada más, --> solamente un solo clic, --> darle, --> ahí sería canción, --> o pista, --> como quiera llamarla, --> en algunas partes la pista, --> es pista de baile, --> no, --> bien, --> acá sería, --> ahí sería género, --> y el title sería título, --> y lo ejecuta para ver, --> ah, --> Antonio, --> te veo un error, --> voy para allá, --> no veo que error tienes a ver, --> vamos a ver, --> dale ok, --> por favor, --> dale ok, --> vete a tu tema un momento, --> baja un momento, --> por favor, --> qué te pasó, --> dale, --> ejecutar un momento, --> ah, --> hay un problema, --> mira lo siguiente, --> mira mi pantalla un momento, --> fíjate que el title que tiene es acá, --> este title, --> dale click un momento, --> este title, --> si te fijas, --> el tipo de datos es string, --> verdad, --> este es un error muy común --> cuando hago el map, --> si te fijas aquí, --> verdad, --> string, --> ahora, --> en la salida, --> dale click, --> click en la salida, --> acá en la salida, --> tú tienes, --> cambias el tipo de datos entero, --> ahí tiene que ser string, --> dale aquí click, --> y cambias al tipo string, --> porque intenta convertir un string entero, --> no lo puede hacer, --> cambia y string, --> dale ok, --> y ejecuta, --> dale ok, --> vamos a ver, --> vete al code, --> para ver si hay algún error parecido, --> vete al code, --> acá, --> mira, --> donde dice code, --> dale click aquí, --> vete a ver como de pronto, --> espera un momento, --> a que veas si demora para cargar el código, --> y vamos para ver si de pronto tienes algún error de compilación ahí, --> ops, --> ops, --> qué pasó aquí, --> eh, --> no, --> creo que no te lo va a mostrar, --> eh, --> a ver, --> no, --> no, --> un momento, --> no, --> creo que no lo vas a poder ejecutar, --> es algo que pasó, --> nuevamente entra al code, --> por favor, --> dale ok, --> y entra nuevamente al code, --> a ver, --> yo este error, --> no sé, --> es que la pantalla de tu vida, --> tengo un problema de conexión, --> para poder la ver desde este lado, --> bueno, --> hacemos así, --> eh, --> mire en este caso, --> yo este caso nada más lo he visto con esta máquina virtual, --> yo en realidad no lo he visto, --> cuando he utilizado la herramienta, --> es decir, --> vete un momento, --> clica el designer, --> por favor, --> Antonio, --> designer, --> Antonio tiene los componentes conectados, --> y en teoría, --> esos componentes generan un código, --> el problema es que la herramienta no alcanzó a generar el código, --> esto fue un error que vi muy común, --> en los proyectos del semestre, --> del curso pasado, --> esto, --> no sé si es la herramienta, --> o la máquina virtual, --> que hay un error entre ellos dos, --> no sé, --> pero si el código no genera, --> no podemos ejecutarlo, --> entonces, --> haz lo siguiente, --> cópiate todo el job, --> dale clic derecho ahí, --> dale clic derecho, --> no, --> pero en los componentes, --> copia los componentes, --> clic derecho, --> creo que te deja copiar, --> copiar, --> creo que te deja copiar esto, --> crea un nuevo job, --> con el nombre que tú quieras, --> hay un momento, --> y vamos para ver si nos genera el código, --> si ese código no genera, --> cómo se puede ejecutar, --> crear el job, --> listo, --> llámalo a cualquiera, --> yo con uno, --> yo, --> listo, --> déjalo ahí, --> porque para la opción de tiempo, --> intenta ahora pegar el job, --> dale paste ahí, --> listo, --> dale guardar un momento, --> si él está amable, --> e intenta llegar al code, --> por haber ahora, --> si no lo genera, --> ese código, --> está difícil recuperarlo, --> cuando, --> claro que es un error que, --> que he visto nada más, --> en esta, --> en la ejecución de estas, --> de este software, --> en estas máquinas, --> no lo he visto en otros, --> bueno, --> de morales, --> Antonio, --> el error no es tuyo, --> ahí fue un error, --> entre la herramienta, --> y el sistema operativo, --> no sé qué pasó ahí, --> para cuestión de adelantarnos, --> si quieres, --> al final, --> te doy una copia de seguridad, --> de los jobs que hacemos, --> para de pronto, --> no pierdas, --> no perdamos el ritmo, --> ahí qué pena, --> ahí fue, --> discúlpame ahí, --> ya es la herramienta, --> bueno señores, --> vamos, --> sigamos con otros ejemplos, --> ay, --> ya son las doce, --> si no está cogiendo el tiempo, --> yo creo que, --> voy a, --> voy a, --> hacer lo que llaman acá, --> en un tutti frutti, --> aquí, --> tutti frutti, --> cuando una bebida acá, --> que usted le echa una cantidad de frutas, --> entonces usted no sabe qué sabe tutti frutti, --> si sabe a, --> a banano, --> a piña, --> una cantidad de cosas acá, --> entonces voy a mezclar, --> acá se llama igualito, --> voy a tener que mezclar, --> las dos teorías, --> para hacer el ejemplo que viene, --> es decir, --> la teoría del Talent SB, --> que no sé si me da tiempo de poder montar, --> pero para que entienda, --> por lo menos, --> para qué funciona, --> si le interesa, --> al final cómo funciona, --> muy amablemente, --> y tiene tiempo libre, --> nos podemos reunir al final del curso, --> yo le explico los ejemplos ahí, --> pero le voy a decir cómo funciona, --> este Talent SB, --> y ese Talent SB me va a permitir hacer el siguiente ejemplo, --> sobre el, --> el Talent Data Integration, --> entonces, --> imaginen lo siguiente, --> usted, --> tiene, --> un software, --> una aplicación, --> voy a colocar aquí, --> aplicación, --> una aplicación, --> y esta aplicación, --> como mencioné, --> en, --> en la teoría, --> normalmente, --> un software hoy en día, --> se conecta, --> a muchos servicios, --> vamos a suponer entonces, --> que esa aplicación, --> como el caso de Colombia, --> cuando usted, --> por ejemplo, --> usted como empresa, --> quiere pagarle, --> a sus empleadores, --> perdón, --> a sus empleados, --> le quiere pagar a sus empleados, --> a través del banco, --> usted lo que hace, --> es que le sube un archivo CSV, --> especificando la, --> los datos del empleado, --> y le dice cuanto le va a pagar, --> entonces el banco descuenta, --> ¿cómo hace eso el banco? --> el banco lo que hace, --> es que monta un FTP seguro, --> o sea, --> un SFTP, --> de tal forma, --> que tu aplicación, --> consulta en la base de datos, --> cuanto hay que pagarle, --> y sube un archivo CSV, --> a ese FTP, --> listo, --> pero entonces, --> esa es una forma de comunicación, --> del banco, --> para algo muy particular, --> de ellos, --> para hacer otras relaciones, --> con los bancos en Colombia, --> la mayoría, --> en Colombia, --> se casa, --> con SOAT, --> usted sabe que hace, --> más o menos, --> en la época del 2000, --> más o menos, --> inicia un boom, --> con algo que se llama, --> una arquitectura, --> que se llama SOAT, --> orientada a servicio, --> entonces esos servicios, --> inicialmente, --> tú lo hacía con SOAT, --> un servicio que es, --> véalo como si fuese una función, --> es decir, --> tú ponías una función, --> y alguien llamaba a esa función, --> eso lo hacía con arquitectura SOAT, --> esa arquitectura SOAT, --> vuelve nuevamente, --> en los últimos años, --> a tomar renombre, --> principalmente, --> por arquitectura llamada, --> microservicios, --> entonces, --> hay alguien, --> hay muchas empresas que están, --> que tienden, --> a montar su infraestructura, --> con microservicios, --> es decir, --> no montar todo, --> en una sola parte, --> sino dividir, --> sus servicios, --> en diferentes, --> por ejemplo, --> ya sea contenedores, --> o máquinas virtuales, --> casos, --> famosos, --> el de Netflix, --> Netflix su arquitectura, --> está netamente, --> sobre microservicios, --> donde tiene, --> los diferentes servicios, --> montados, --> en diferentes partes, --> entonces, --> si tú vas a llamar al banco, --> entonces, --> tú lo que haces al final, --> es que, --> montas, --> el banco te monta acá, --> un servicio con SOAT, --> y ahora, --> tu aplicación, --> para poder conectarse, --> ya el mismo software, --> que hacías, --> para conectarte, --> con SFTP, --> ya, --> pues, --> no te va a funcionar, --> porque ya la conexión, --> es diferente, --> entonces, --> prácticamente, --> tú terminas, --> agregando, --> una nueva funcionalidad, --> con un nuevo módulo, --> de este aplicativo, --> para que ahora, --> permita la comunicación, --> con SFTP, --> y comunica la aplicación, --> con SOAT. --> Este SOAT, --> tiene una ventaja, --> pues, --> principalmente, --> porque el SOAT es seguro, --> pesa más, --> es menos flexible, --> es más lento, --> pero al banco, --> le interesa seguridad, --> por encima de eficiencia. --> Entonces, --> el banco quizás, --> hoy en día, --> no se casa, --> con una arquitectura, --> tipo REST, --> que es una que está muy popular, --> hoy en día. --> Entonces, --> ¿qué pasa? --> El banco dice, --> no, REST sí es flexible, --> es rápido, --> pero a mí no me interesa eso, --> a mí lo que me interesa es seguridad. --> Listo, bien, perfecto. --> Quizás, --> de pronto, --> tú, --> te conectas, --> con la aplicación, --> de tus proveedores, --> quizás, --> y los proveedores, --> lo que hacen, --> es que te montan, --> una arquitectura con REST, --> aclararon la diferencia, --> tenemos dos nombres, --> un nombre que es REST, --> que es la arquitectura, --> y RESTful, --> que es la implementación, --> de esa arquitectura. --> Evidentemente, --> los dos están relacionados, --> entre sí. --> Entonces, --> este señor, --> lo que te monta, --> al final, --> con RESTful, --> y este RESTful, --> entonces, --> ahora, --> el código que te funcionaba, --> para este SOA, --> ya no te funciona, --> entonces, --> tiene que hacer, --> una especie de nuevo módulo, --> y te conecta, --> con este RESTful, --> que está aquí. --> Aquí, solamente, --> voy a aclarar algo, --> de conceptos, --> sabe que, --> a veces, --> cada quien, --> a veces, --> le da un nombre diferente. --> Esta RESTful, --> es lo que llaman, --> APIs, --> ¿cierto? --> Pero, --> para algunos, --> yo puedo formar, --> APIs, --> ya sea, --> con SOA, --> o con RESTful. --> Pero, --> hay otro grupo, --> de autores, --> que dice que, --> cuando yo monto, --> algo con SOA, --> lo que son, --> es netamente, --> conceptual. --> Es básicamente, --> como quieres llamar las cosas, --> eso a veces, --> creo que es, --> complicar más, --> lo que ya está, --> complicado en nuestro medio. --> En nuestro medio, --> tenemos muchas frases, --> muchas, --> y que frases que, --> quizás, --> dependiendo del contexto, --> te, --> te dan, --> un significado, --> netamente, --> diferente. --> Listo, --> y aquí, --> te aclaro, --> que puede haber, --> otras formas, --> en las cuales, --> me conecto. --> Quizás, --> piensa de otra forma, --> te conectas, --> por ejemplo, --> con WHITE, --> con QUILT, --> perdón, --> QUILT, --> y QUILT, --> para, --> que quieres manejar, --> con QUILT, --> tu capa, --> de visualización de datos, --> entonces, --> QUILT te dice, --> mira, --> ven acá, --> yo te voy a montar, --> aquí, --> un S3, --> te voy a montar, --> entonces, --> aquí está, --> un S3, --> por aquí. --> Entonces, --> en S3, --> montame, --> los archivos CSV, --> que voy a visualizar, --> entonces, --> tú vas por acá, --> y ya, --> ese bendito código, --> que te funcionaba, --> para todo lo demás, --> tiene que agregar, --> un nuevo módulo, --> un nuevo código, --> para subir esto que está aquí. --> Agrégale, --> ahora, --> otro. --> Hoy en día, --> hay muchas arquitecturas, --> en las cuales, --> tú puedes montar, --> tus aplicaciones. --> Hay la que llama uno, --> Headless, --> perdonen, --> yo tengo un problema, --> de dicción, --> y el inglés, --> no lo pronuncio, --> muy bien. --> Esta que se llama, --> Headless, --> a los gringos, --> todo les pega, --> esta se llama, --> sin cabeza, --> o sea, --> a los gringos, --> les pegan esos nombres, --> uno no le pega, --> en el español, --> los nombres, --> cuando los tomas, --> tan literales. --> Esta arquitectura, --> lo que busca es, --> no hacer una aplicación monolítica, --> sino, --> que yo divida, --> mi aplicación, --> por un lado, --> tengo el backend, --> y por otro lado, --> en una máquina diferente, --> un conteúdo diferente, --> tengo mi frontend. --> Normalmente, --> este backend, --> expone una sapis, --> y este frontend, --> las consume. --> Esto tiene una venta, --> y de venta, --> pues para la principal venta, --> va a tener que, --> a tener tu back, --> de esa forma, --> tu front, --> puede ser una aplicación, --> de stock, --> móvil, --> aplicación web, --> y te va a funcionar --> perfectamente. --> Entonces, --> partiendo de que esto, --> digamos, --> que, --> tiene gran auge, --> yo podría pensar, --> entonces, --> en que te dice tu jefe, --> mira, --> quiero que ahora, --> le agregues a la aplicación, --> nuevas funcionalidades, --> para nuestros clientes. --> Funcionalidades, --> que pueden ser, --> todo lo que se te imagine, --> con Crook. --> Entonces, --> me tocaría codificar, --> con el lenguaje que tú quieras, --> y el framework que tú quieras, --> algunas operaciones, --> Crook aquí, --> para agregarle, --> nuevas funcionalidades. --> Entonces, --> se te empieza, --> a complicar, --> tu arquitectura, --> porque estás, --> digamos, --> integrando, --> muchas arquitecturas, --> que al final, --> no depende, --> netamente, --> de ti. --> Depende, --> de cómo la empresa, --> pues, --> se integra, --> con las demás empresas. --> Y, evidentemente, --> la empresa, --> con que te vas a integrar, --> no te van a cambiar software, --> porque tú, --> de pronto, --> deseas, --> una arquitectura, --> o un stack de, --> de tecnología, --> el que tú quieras. --> Se te complica, --> un poco más. --> Yo, claro, --> que en el caso, --> para mostrarle, --> no sé si en México, --> será igual, --> acá, --> en el caso de Colombia, --> es un, --> algo muy particular. --> En Colombia, --> para trabajar en Colombia, --> te piden, --> una cantidad de conocimiento, --> que tú analizas, --> el sueldo que te paga, --> en Colombia, --> con lo que te pagan, --> en Estados Unidos, --> o en otros países, --> y lo que te piden, --> en Estados Unidos, --> que es mucho menor, --> no en Colombia, --> te piden, --> pero que tú sepas, --> de todo. --> Por eso es que, --> ya yo decidí, --> no trabajar acá, --> porque, --> piden mucho, --> y el, --> el sueldo es muy poco, --> comparado con lo que tú, --> debes saber. --> Pero, --> sacando eso de contexto, --> entonces, --> al final, --> qué, --> qué tiene que ver, --> todo esto que mencioné, --> con el, --> con el Talent SB. --> En pocas palabras, --> tú, --> estas, --> estas aplicaciones, --> quizás, --> las estás conectando, --> a través de, --> de código, --> de un framework que tengas, --> pero al final, --> sería por código. --> Lo que te propone, --> el Talent SB, --> en solución, --> es que reemplaces, --> todos esos códigos, --> y, --> al final, --> todos los integres, --> de modo gráfico, --> con, --> una solución, --> que ellos llaman, --> el SB, --> el Bus de Servicios. --> Entonces, --> significa, --> en que, --> yo esto mismo, --> que lo puedo hacer, --> con cualquier framework, --> tú lo vas a hacer, --> gráficamente, --> así como tengo, --> el Talent Data Integration, --> y tú, --> lo que vas a lanzar, --> componentes de integración, --> hacia los demás servicios, --> que tú quieras. --> Y puedo, --> integrarme, --> con el que yo quiera, --> con el protocolo que yo quiera, --> abro comillas dobles aquí, --> de pronto hay algo, --> que de pronto todavía no está listo. --> Y también, --> puedo, --> crear mi backend, --> con operaciones CRUD. --> Todo esto lo hacemos, --> de forma gráfica. --> Entonces, --> sería lo que llaman, --> algunos, --> un desarrollador ETL. --> Y éste, --> la solución ETL, --> para hacer esto, --> es el Talent SB. --> Este Talent SB, --> te viene integrado, --> en el Talent Studio. --> Quiere decir que, --> tú puedes, --> lanzar, --> servicios, --> y integrar servicios, --> con el Talent Studio. --> Claro que ahí, --> de pronto, --> por el tipo de licencia que tenga, --> de pronto no tenga, --> acceso a los componentes. --> Eso depende, --> directamente, --> de cómo tenga licencia. --> Pero todo esto, --> se integra, --> en el Talent Studio. --> Lo puedes hacer. --> Partiendo de esto, --> entonces, --> voy a hacer un ejemplo, --> de consumo de APIs. --> El consumo de APIs, --> lo voy a hacer, --> para poder consumir, --> y utilizar, --> por ejemplo, --> el API, --> de algún, --> en este caso, --> de ChatGPT. --> Entonces, --> lo que expongo, --> ChatGPT, --> expone una API, --> tipo Redful. --> Y esa API, --> pues, --> la consumimos, --> desde el Talent, --> y esa API, --> me ayuda en esa parte. --> Entonces, --> para qué me puede servir, --> esto en la vía diaria, --> pues, --> la guía de mucho. --> Le presento un caso, --> que estoy trabajando con Paul, --> que es el caso particular, --> en que hay que crear, --> unos modelos de datos, --> en una herramienta de Talent, --> que se llama Stewardship. --> Ese modelo de datos, --> en realidad, --> que es bastante engorroso, --> hacerlo con la herramienta. --> Esa herramienta es, --> sumamente, --> la interfaz gráfica, --> no es intuitiva, --> no es usable, --> aplicación no me gusta mucho. --> Y hacer un modelo de datos, --> eso demora mucho tiempo. --> Entonces, --> partiendo de que ya, --> hay una documentación, --> de las columnas, --> que tenemos los datos. --> Lo que hice con Talent, --> fue lo siguiente, --> consumo el API de ChatGPT, --> le mando un PROM, --> para que con lo que ya, --> las columnas, --> las columnas que ya están identificadas, --> él le diga que me genere un JSON, --> y ese JSON, --> es el que importo, --> a la herramienta, --> y ya en un solo import, --> hago lo que normalmente, --> me demoraba mucho tiempo, --> entre 10, 20, --> media hora, --> quizás, --> a la herramienta, --> y automáticamente me hace eso. --> eso es, --> te ayuda mucho, --> a automatizar, --> tu día a día, --> a usar las herramientas de ya, --> para ser más productivo, --> evidentemente, --> eso, --> objetivamente, --> no podemos negar que, --> usando una herramienta ya, --> bien usada, --> te hace mucho más productivo. --> Entonces, --> el ejemplo que voy a hacer ahora, --> este, --> de consumir una API, --> en este caso, --> el API está montada, --> sobre Redful, --> y cómo haríamos esa parte. --> Entonces, --> voy a mostrar, --> cómo que vamos a hacer, --> vamos, --> voy a mostrar este lado, --> ya, --> vaya hacia el browser, --> por favor, --> y acceda a la siguiente, --> pero un momento, --> que no estoy en la máquina, --> voy acá, --> coloque en el browser, --> o ya le mando, --> ya le mando, --> le mando el API, --> un momento, --> por favor, --> para, --> se la mando por chap, --> voy a usar, --> esta API, --> que es, --> gratuita, --> voy a hacer, --> este es el API, --> este es el endpoint, --> perdón, --> sí, este es el endpoint, --> voy a mandar este endpoint, --> por aquí, --> por el chap, --> es el que vamos a usar, --> ah, --> listo, --> este, --> esto que voy a, --> este ejemplo, --> le va a ayudar, --> a agregar nuevos componentes, --> y a repasar algo, --> que de pronto, --> ah, --> no estamos muy acostumbrados, --> que es utilizar un lenguaje de consulta, --> tipo JSONPAT, --> o XMLPAT, --> eh, --> tenga presente esa API, --> si quiere, --> tome, --> copie esa URL, --> y la pega acá, --> si no puede acceder, --> busque, --> esta página, --> que se llama, --> REST COUNTRIES, --> coloca REST COUNTRIES, --> y le aparece, --> por defecto, --> este, --> REST COUNTRIES, --> REST viene de arquitectura REST, --> y COUNTRIES viene del API, --> lo que ofrece, --> países, --> nombre de países, --> si vas por este lado, --> accede a, --> JSON COUNTRIES, --> y el endpoint, --> que vamos a usar, --> es, --> este que aparece aquí, --> que dice, --> versión 3.1, --> es las ALL, --> ese es el endpoint, --> que vamos a usar, --> coloca el endpoint, --> o ya sea por este lado, --> el que te mande, --> eh, --> para ver este, --> JSON de forma mejor, --> por favor, --> instalate, --> si estás en Chrome, --> o en Edge, --> no sé cómo se llama, --> pero en Chrome, --> puedes tener, --> agrega, --> JSON, --> coloca JSON Formatter, --> y dale, --> eh, --> extension, --> JSON Formatter extension, --> y agrega esa extension, --> al browser, --> para ver mejor, --> el, --> ese JSON, --> y puedes practicar, --> nuevos componentes, --> de talent, --> y practicar, --> JSON Pacto, --> ah, --> lo voy a sincronizar, --> F5, --> y debería mostrar, --> la salida, --> un poco diferente, --> debería ser un poco más pretty, --> la salida, --> vamos a ver, --> sí, --> listo, --> se llama, --> JSON Formatter extension, --> diga, --> sí, --> sí, --> creo que está lento, --> ah, --> listo, --> vamos a buscar, --> el siguiente endpoint, --> voy a conectarme, --> ah, --> perdón, --> le muestro acá mejor, --> en la pantalla mía, --> ok, --> listo, --> entonces, --> en ese, --> res, --> countries, --> casa que esos gratuitos, --> entonces, --> seguramente, --> hay muchos que están, --> eh, --> consumiendo el, --> el API, --> res countries, --> que sería este de aquí, --> si demora un poco, --> para cargar, --> y aquí está, --> un endpoint, --> que dice, --> res countries, --> versión 3.1, --> es la sola, --> ese dale click, --> dale click, --> por favor, --> si está amable, --> eh, --> por favor, --> abre una nueva ventana, --> mientras va cargando, --> una nueva pestaña, --> perdón, --> una nueva pestaña, --> una ventaña, --> una nueva pestaña, --> y busque la siguiente extensión, --> escriba, --> JSON Formatter extension, --> ahí la tiene, --> formatter, --> ahí está, --> extension, --> formatter, --> extension, --> listo, --> eh, --> dele click en la primera opción, --> eh, --> esa que está ahí, --> sí, --> esa es, --> y dele agregar la extensión, --> allá donde dice el botón, --> add a chrome, --> listo, --> agregar extensión, --> esperemos que le agregue, --> listo, --> dele cerrar ahí, --> cierra la ventana, --> no, --> no, --> no sincroniza, --> cierra, --> y dele nuevamente acá, --> en tres puntos, --> dele F5, --> si, --> dele F5, --> creo que tengo problemas de tiempo de respuesta con esta, --> dele F5, --> por favor, --> dele F5, --> entonces ahí, --> eh, --> hay problemas seguramente de tiempo de respuesta, --> dejémoslo ahí, --> vamos a explicarlo entonces ahora sí. --> Primero lo que deseo hacer, --> eh, --> voy a mostrar entonces, --> lo que no le ha cargado, --> acá la tengo, --> listo, --> eso lo que tiene entonces es un JSON Array, --> voy a ampliar esto un poco más, --> para que se vea mejor, --> listo, --> aquí tengo un JSON Array, --> cómo sé que es un JSON Array, --> porque empieza entonces con el símbolo de corchete, --> significa que lo que viene delante es un Array, --> de JSON, --> y ahora quiero hacer lo siguiente, --> ah, --> un poquito lento, --> quiero hacer lo siguiente, --> quiero sacar los nombres de cada país, --> y guardarlo en una tala llamada países, --> en la base de datos, --> de postes, --> en la base de datos de chinús, --> de pogres, --> que tengo un chinú de pogres, --> eso es lo que quiero hacer, --> entonces vamos a ver cómo se hace para consumir un API, --> listo, --> si no lo ha cargado, --> no hay problema, --> lo importante es que lo que me interesa es que tenga el endpoint, --> váyase a su talent, --> y vamos a agregar entonces un nuevo job, --> prior job, --> consumir, --> API, --> y en este claro, --> res, --> porque el SWAT no se consume igual, --> el SWAT, --> me toca hacer, --> los componentes son diferentes, --> le damos aquí Finish, --> listo, --> entonces, --> para consumir un API tipo res, --> hace exactamente lo mismo, --> lo que va a variar es, --> los parámetros de configuración de conexión a esa API, --> por ejemplo, --> esta API no le pide a usted un API key, --> simplemente esa API está expuesta para que cualquiera la consuma, --> son por la cual, --> pues a veces los tiempos de esfuerzo son malos, --> porque muchos a nivel mundial la consumen para hacer algún tipo de prueba, --> el componente para consumir un API, --> ya sea el API de Cloud, --> el API de Charge GPT, --> el API de Gemini, --> el que usted quiera, --> al final te va a dar lo mismo, --> por ejemplo, --> yo estoy consumiendo el API de Talent, --> de algunos servicios de Talent, --> y al final es el mismo, --> va a usar el siguiente componente, --> t-res, --> client, --> este es el componente, --> voy a usar los siguientes elementos, --> voy a agregar los componentes, --> eh, --> noté que voy un poquito más rápido por una cuestión de tiempo, --> eh, --> t-res, client, --> voy a agregar lo siguiente, --> voy a agregar un tema para formatear la salida que me va a llegar, --> de el consumo del API, --> analice lo siguiente ahora, --> eh, --> el API que me va a volver, --> me va a volver, --> este JSON, --> que está aquí, --> entonces, --> yo quiero extraer datos de ese JSON, --> más específicamente, --> yo quiero nada más extraer, --> de cada fila, --> de cada registro, --> perdón, --> quiero extraer el nombre del país, --> entonces, --> quizás carece de sentido, --> porque lo podías pensar hacer, --> tomar una muestra del JSON de qué devuelve, --> y entonces, --> crear un metadata, --> con ese JSON, --> y recordarás que el JSON tiene dos formas, --> cuando, --> cuando lo importo acá en un canva, --> o es input, --> cuando hago un metadata, --> o es input, --> o es output, --> en este caso, --> lo conferiré tipo output, --> pero creo que esa confiración te va a demorar más tiempo, --> mucho más tiempo, --> porque al fin y al cabo, --> tú quieres, --> es una parte del JSON, --> no quieres el JSON completo, --> o sea, --> los datos del JSON completo, --> entonces, --> para extraer datos de un JSON, --> vamos a usar el siguiente componente, --> t-strap, --> de extraer en inglés, --> y ahí, --> vamos a extraer, --> no de XML, --> sino de JSON. --> Seguramente, --> me va a tocar mapear esta salida de aquí, --> y la mapeo con un t-map, --> y ahora, --> debería, --> voy a colocar la salida, --> como la tala no existe, --> voy a tomar la conexión Apocres, --> y la voy a soltar de acá fuera, --> hacia acá, --> perdón, hacia el canvas, --> de tipo output. --> Y me quedaría, --> más o menos así. --> Voy a, --> esto así, --> aquí, --> aquí, --> y aquí. --> Bueno, --> verifico para ver cómo van ustedes acá, --> que no tenían la pantalla, --> listo, --> ahí tienen los componentes. --> Bueno, --> ahora sí, --> configuremos entonces. --> Primero, --> voy a conectar el 3Client --> con este señor de acá, --> response, --> el de, --> perdón, --> ¿te escuché bien? --> ¿Cuál? --> Ah, listo, --> como voy a crear una, --> una tabla que no está, --> no voy a poner tabla, --> sino voy a crear una tabla, --> vete a la conexión de Apocres --> y las sueltas de salida, --> de output, --> en el canvas, --> de tipo output. --> Listo, --> voy a iniciar configurando --> el 3Client, --> vamos a darle doble clic --> al 3Client, --> por favor, --> vamos a configurar --> el 3Client, --> y busque ahora, --> bueno, --> primero instale el componente --> que por defecto no está instalado, --> no lo hace, --> no sé si hacemos --> un pequeño break de 10 minutos --> para buscar un cafecito que, --> acá, --> yo tengo temperaturas --> de 38, --> 39 grados, --> hace calor, --> y acá, --> acá llovió y, --> y tengo frío, --> busca café, --> listo, --> 10 minutos, --> volvemos pues, --> listo, --> muchas gracias. --> Bueno, --> nuevamente, --> continuamos, --> porque nos tomamos algo, --> si estamos conectados, --> sí, --> sí, --> sonido, --> o esperamos un momento más, --> no sé, --> mientras nos ubicamos, --> eh, --> continuamos pues, --> bueno, --> aquí viendo la pantalla, --> Julio y Gerardo, --> tienen que instalar --> el componente, --> por favor, --> eso que parece naranja, --> por favor, --> hay que instalarlo, --> vamos entonces a configurar --> este 3Client, --> ese que está acá, --> entonces, --> este 3Client, --> busque, --> por favor, --> el endpoint, --> que sería este, --> el que se llama --> rest countries com --> w --> v --> 3.1 --> slash --> listo, --> copio, --> la url, --> y esto ya es una cuestión --> más de, --> de estandarización, --> yo puedo colocar el --> endpoint completo aquí, --> de esta forma, --> entre comillas doble, --> o si tú quieres verlo --> un poco más elegante, --> pues, --> la url, --> debería ser el nombre, --> y el relative pack, --> sería, --> la versión --> del endpoint, --> es decir, --> podría hacerlo de esta forma, --> si te quieres, --> te va a funcionar exactamente igual, --> o si quieres, --> te coloca desde --> slash --> v --> 3.1, --> cualquiera de las dos formas es --> válida, --> no te preocupes por eso, --> ya es una cuestión más de --> estándares, --> en teoría, --> se ve un poco más elegante, --> de esta forma, --> es decir, --> tengo la url, --> y tengo --> el relative pack, --> la url, --> sería el nombre completo, --> y el relative pack, --> bueno, --> ahí sí, --> se puede configurar como --> usted quiera, --> o si quiere colocar toda la --> url completa, --> o si quiere, --> la divide en dos partes, --> recordará, --> lo siguiente, --> el método --> HTTP, --> este que está aquí, --> recordará que las --> APIs, --> con RESTful, --> aunque con SOAT, --> también --> usan el protocolo --> HTTP para comunicarte, --> HTTP, --> ofrece --> un conjunto de --> métodos, --> entonces, --> hay que verificar --> en qué --> métodos --> está establecida --> el API, --> recordará entonces, --> a nivel teórico, --> que HTTP --> te ofrece --> los siguientes métodos, --> HTTP, --> te ofrece --> entonces, --> método GET, --> GET significa, --> en que si vas a enviar --> parámetros --> del client al server, --> lo envías en la url, --> esto GET, --> se usa normalmente --> para consultar, --> pero ya para --> insertar, --> actualizar, --> o eliminar, --> pues, --> normalmente, --> usas un POST, --> qué diferencia hay --> con el POST, --> en que cuando envías --> datos --> del client al server, --> pues, --> normalmente, --> los datos van en el body, --> no sé, --> y puedes --> encriptarlo, --> cosa que no podría --> encriptar los datos, --> por ejemplo, --> a nivel de GET, --> en la url, --> tengo entonces, --> a nivel de lo que es --> patch, --> para corregir algún error, --> por ejemplo, --> PUT, --> para actualizar, --> y DELETE, --> para ahorrar un componente, --> entonces, --> cuando tú tienes un Swagger, --> un Swagger, --> el Swagger --> es uno de las --> formas de documentación --> de muchas que hay, --> para documentar --> APIs, --> entonces, --> el Swagger te va a ofrecer, --> a ver si --> encuentro por aquí --> un Swagger, --> no sé, --> por aquí, --> ejemplo, --> a ver si --> encuentro por aquí --> EXAMPLE, --> te va a ofrecer, --> qué tipo de método --> deberías --> usar para poder, --> digamos, --> ejecutar alguna --> función, --> algún API, --> perdón, --> más específicamente, --> al final, --> el API --> y no es una función, --> no encontré, --> para el caso particular --> de esta función --> de Reds, --> al igual que el señor, --> ah, no, --> ahí es diferente, --> esta función --> del señor --> el API --> que tiene montada, --> el API --> está escuchando --> por un método --> tipo GET, --> entonces, --> lo dejas ahí, --> la única diferencia --> es que esta API --> te devuelve un JSON, --> entonces, --> por favor, --> cambia este señor --> a JSON, --> esa API --> no necesita --> ningún API key, --> ningún tipo --> de configuración --> adicional, --> por lo tanto, --> queda hasta aquí. --> Listo, --> hay que hacer más nada. --> Entonces, --> voy a hacer --> lo siguiente ahora --> simplemente para ver --> algo que pueda hacer --> con el MAC --> y que no puede hacer --> con otros componentes. --> El caso del MAC, --> voy a unir este MAC --> con este. --> Uy, --> descargurío, --> ahí sí. --> Vamos a ver, --> entonces, --> ya verifico --> para ver, --> entonces, --> qué raro que no te --> haya descargado, --> a menos que --> sería un problema --> de conexión, --> que lo dudo. --> Listo, --> vamos a ver, --> ¿Quién me habló, --> Julio o Gerardo? --> Y cuando le das, --> vamos a ver, --> pareciese que --> hubiese un problema, --> abre el browser --> un momento ahí. --> No, --> estás conectado, --> no hay problema. --> Hagámosle al ingeniero, --> vamos a reiniciar --> el talent, --> cierra el talent, --> vamos a abrirlo --> para ver, --> raro que se te --> haya quedado ahí, --> dale, --> no salvar, --> no salvar, --> no, --> dale, --> no, --> dale, --> salva, --> dale, --> salva, --> vuelve a abrir --> nuevamente --> para ver. --> Mientras la conexión --> vamos a llamar --> la respuesta --> API mapeada, --> dale, --> ok, --> ya está abierta --> la aplicación, --> dale, --> ok, --> está bien como --> Dale cáncer un momento --> ahí. --> Dale, --> Dale nuevamente, --> abre nuevamente --> para ver. --> Creo que --> quedo --> en memoria, --> en memoria quedó --> montado el talent. --> Dale Prague --> professionistas --> 当 --> ¿Verdad? ¿Verdad? Sí, sí, sí. --> A lo siguiente a que podemos --> hacer varias cosas pero eh que --> te quedó montado el talen. O --> sea, cuando lo hiciste cerrar --> quedó no no bajó de memoria --> todo el el talen que tenía. --> Permítame y hago aquí algo. --> A ver, quisiera seguir a Máquina --> un momento. Ah. Mira si --> ves algún Java por ahí que --> no. Tampoco veo el Java. Aquí --> está. Sí, ya lo vi. Aquí --> está. O sea, tú cerraste y no --> no bajó de memoria el el --> aplicativo. Teníamos a ver un --> momento. Sí. Inténtate --> nuevamente para ver. El error --> que salió es porque no es --> que no puedas ejecutar dos --> instancias del talen sino que --> las dos instancias no pueden --> apuntar al mismo word space. --> O sea, la ubicación donde va --> a agregar los los los job. --> Entonces, los dos estaban --> apuntando al mismo y por eso --> no te no te dejo abrir. --> Pero si dejábamos los dos --> abiertos consumía mucho memoria. --> Sí, dígame. Ah, lo mismo, lo --> que es que no puedo ver. Eh, --> listo. Entonces, un momento. --> Cierra el talen, por favor. --> Vamos a volverlo a abrir. --> Intenta abrirlo nuevamente --> para ver. Julio, abre ahora --> el. Vamos a ver si deja --> abrirlo nuevamente para --> ver. Eh, sería a consumir a --> pires. Sería consumir, --> consumir a pires. Abre el a --> pires. Bueno, mientras este --> Verificamos aquí, eh, ah, le --> comento algo del doble, tres --> clay, ¿Ven tres clay? Un --> momento, por favor. Tres --> clay. Ah, yo creo que sí lo --> lo agregó pero como que no --> actualizó en la interfaz. En --> teoría, menos que lo haya --> estalado mal. Ah, porque --> ¿Qué brócero, en qué --> brócero está abriste esa --> página? En qué brócero --> abriste? Esa, la máquina --> actual, ¿Qué, qué brócero --> está usando tu máquina? --> ¿Crono o está usando cuál? Y --> Crono te permitió habilitar el --> el clipboard para poder copiar --> de una parte a otra, ¿No? No --> te habido. Si tú copias tu --> máquina, no te deja. Acá, --> dale para el momento. Eh, --> copia algo de la máquina --> tuya y pega ahí. Eh, bueno, --> les comento para que vayan --> analizando lo siguiente. Eh, --> por partes, sí, ah, ok, eh, --> ojo, entre comillas doble, --> comillas doble, comillas --> doble, eso va entre comillas --> doble. El caso tuyo, Gerardo, --> ¿Sí, te emocionó? Ya, ya voy, --> ya voy, ya voy. Sí, sí, ya, --> lo que pasa es que ya me --> conecto acá. ¿Qué pasa? Es --> que cuando cerrastes, eh, --> cuando cerrastes el, la, el --> talent te quedó abierto, --> es decir, ¿Por qué? No sé, --> vamos a hacer lo siguiente, --> déjame conectarme, se me --> dé, mira por ahí, aquí está --> el talent, tú cerraste la --> pantalla pero te quedó, te --> cerraste la aplicación pero --> te quedó, eh, arriba. Aquí está. --> Voy a finalizar la tarea. --> Parece que ya. Bueno, eh, yo --> no sé si a usted le habían --> comentado, al grupo completo, --> pues, eh, click entonces, oh, --> creo que había dos instancias --> que. Ah, no, porque ya --> estaba una. Ya, me, me --> tocaba cerrar este señor de --> este momento que pasó --> mira eh habían ah que ya sé --> habían dos montados el que --> ejecutaste es el de último y --> el que estaba anteriormente --> cuando cerraste --> esperemos para ver si te --> monta. Bueno, les comentaba --> lo siguiente, a ver, al --> grupo completo, eh, dentro de --> las políticas de su empresa --> eh los cursos hay que --> colocar una evaluación entonces --> la evaluación en cada curso se --> hace un caso de estudio y --> usted entrega ese caso de --> estudio en ese caso estudio --> tengo que revisarlo yo y y --> mandar la nota de evaluación --> a bueno en este caso aquí me --> corregió a mí y ellos se la --> mandan a a su empresa --> ¿Qué pasaría con los que a --> veces no no les da tiempo --> para entregar porque tiene --> otras actividades la la --> empresa suya lo que hace es --> que tiene que repetir eh --> esos esos casos de estudio --> tiene que hacerlo o sea sí o --> sí tiene que hacerlo --> entonces creo que la manera --> más más fácil es que la haga --> conmigo porque cualquier --> evidentemente tiene poca --> experiencia en la herramienta --> y hay algunas cosas que le --> va le va a ser un poco más --> complejo entonces lo que yo --> propongo es lo siguiente es --> la idea es que salgamos --> exitosos de ese caso de --> estudio ese caso estudio --> tengo que recortar muchas --> cosas porque la idea era --> integrar los dos servicios --> entonces lo que yo propongo --> es que a las dos en punto --> independiente si terminamos o --> terminamos el ejemplo --> iniciamos el caso de estudio --> de tal forma en que tengamos --> por lo menos dos horas y si --> terminamos antes pues --> seguimos con más ejemplos --> no sé si le no sé si tiene --> escucho sugerencias o --> comentarios con respecto a --> esa idea eh cierra por --> favor eh verifica el el job --> Antonio Gerardo perdón --> sí pero hay unas cosas que --> creo que no alcanzamos es --> decir hay un hay un --> decremento del caso de estudio --> que le solicita hacer unas --> búsquedas en su base de --> datos a hacer manipulación y --> formateo de esos datos y --> llevarlo con para que le --> ayude a tomar decisiones --> eso no lo creo que lo --> alcancemos a a dictar --> principalmente nuestro primer --> error fue el el primer día --> eh ese día prácticamente se --> perdió y perdimos como --> una hora inicial aquí con --> el problema de conexión --> entonces no se preocupe eh eh --> adaptamos el caso de estudio --> al al tiempo o sea hay que --> sacar unos requerimientos --> yo de este modo lo voy a --> leer para que tenga una --> visión amplia de lo que --> queríamos hacer pero lo --> recortamos para que nos dé --> tiempo por lo menos --> colocarlo quedó de tiempo --> en en una hora en una hora --> hacerlo y evidentemente --> como tenemos poca --> experiencia puede que nos --> llevar un poquito más de --> una hora una hora treinta --> quizá las dos horas pero --> la idea final es que todos --> lo logremos hacer. Eh bueno --> yo no tengo ningún --> inconveniente con respecto a --> eso lo que es que tendría que --> ser un lunes porque dañamos --> el cronograma del del de las --> actividades yo creo que --> podía proponerlo usted y --> ellos me dicen yo tengo la --> la voluntad no tengo tengo --> la voluntad y tendría que --> ser un lunes porque el --> lunes porque si te recordarás --> que eh tenemos martes, --> miércoles, jueves y --> viernes entonces podíamos --> tomar un lunes para --> recuperar y hacer ejemplos --> por lo menos del talent --> que se ve que es una --> herramienta interesante y --> agregamos nuevos nuevos --> nuevos ejemplos del talent --> que en realidad es la --> herramienta bastante grande y --> en el tiempo no nos va a --> dar. Entonces yo tengo la --> la voluntad, no tengo --> ningún inconveniente, --> propóngalo y cuando ellos me --> lo propongan a mí, yo digo --> no, sí, el lunes X o el --> lunes este lunes no, pero --> el lunes siguiente sí lo --> podría hacer. Sí, porque y --> principalmente estoy también --> de acuerdo porque esta --> herramienta es la que --> principalmente vas a usar allá --> en en la que tienes montada. --> O sea, tienes la versión --> talent estudio, pero --> principalmente usar el talent --> integration en muchas cosas. --> Y que sé que tienen un --> proyecto con un data lake y --> que están montándolo con con --> talent integration algunas --> cosas, otras cosas con data --> abrir, pero bueno, es --> fundamental. Listo, entonces --> el día de hoy podemos --> aplicar lo que usted --> comenta y tengo la --> voluntad, no tengo ningún --> problema, eh por lo menos --> hoy nos concentramos en en --> que en ese caso estudio pues --> todo lo lo logramos hacer. --> Yo no lo veo complicado y --> seguramente con la experiencia --> que usted tiene lo va a hacer. --> Quizás lo complicado es de --> pronto como no tiene mucha --> práctica con la herramienta --> por salir algunos errores que --> de pronto no esperaba. --> Bueno, continúa entonces con --> este ejemplo acá. Eh, por --> favor, en eh, creo que era --> Gerardo, ¿Verdad? Gerardo, --> eh, agrega el endpoint por --> favor ahí. En donde está --> la, donde tienes, por favor, --> la URL, coloca el endpoint que --> mandé, o si lo tienes ya ahí --> en el en el browser, ese que --> está ahí, por favor, --> cópialo. Noto que alguno no --> le dio respondió, quizá --> tengamos un problema de --> tiempo de respuesta ahí, --> bueno, pero veamos para --> verlo. Listo, y cambia el --> por favor a Jason, no XML --> sino que devuelva un --> Jason. Perfecto, listo. No --> hay más nada que confiar ahí. --> Verificamos para ver entonces --> si si por lo menos me --> responde ese API y voy a --> agregar algo aquí entonces. --> Eh, quedamos o algunos ya lo --> hicieron, voy a conectar el --> tema al textrack --> lo voy a llamar salida --> salida, respuesta, API, --> formateado. Ah, OK, perdón. --> Que pena. Salida, respuesta, --> me repite, por favor, que --> pena. Salida, respuesta, --> mapeación. --> Lo que era así, respuesta, --> API, mapeación. Listo, --> perfecto. Si ese a une una del --> y por último una del tema a la --> salida que en este caso tengo --> hacia una conexión de hacia --> datos. Entonces aquí salida y --> lo voy a llamar directamente --> países. Es lo que quiero --> sacar. Muchas veces para --> hacer depuración tú quieres --> tomar esa entrada de datos y --> mostrarla hacer un para --> revisar, ¿Cierto? Resulta que --> esa parte para poder tomar la --> misma entrada y que tenga --> difuncación a diferentes --> salidas no en todos los --> componentes de talent funciona. --> Eh, me explico de esta forma. --> Si tú eh en esa parte de --> fuentes de datos supongamos --> en que tú deseas usar esta --> misma fuente de datos que se --> llama en diferentes partes. --> Entonces directamente yo no --> puedo tomar este trac y --> enfocarlo a tres salidas. --> Ahí lo máximo que podía hacer --> entonces es copiar, o sea, --> tener tres trac, copiar este --> trac tres veces. Entonces uso --> cada uno de ellos, perdón, --> apretón, y aquí está entonces --> coloco tres y lo mando a las --> diferentes salidas que tenga. --> Eso más que todo depende --> después al final de de lo que --> tú quieras hacer. Pero hay --> componentes que si te --> permiten eso, uno de esos, --> este es el señor tema. El --> tema yo puedo colocar aquí un --> telor row y conectar este --> mat hacia una nueva salida y --> esta salida va a llamar test --> respuesta --> entonces ahora la misma entrada --> que está aquí podía mapearla --> hacia acá o hacia acá --> normalmente pues lo hace uno --> para testear. Figuremos --> entonces ahora el tema este que --> está aquí. --> Listo entonces por defecto el --> componente te ofrece tres --> salidas. Te ofrece el --> status quo. Ese status quo es --> la respuesta HTP. Entonces se --> entenderá que si la respuesta --> está en doscientos significa --> que todo fue correcto. Si la --> respuesta está en cuatrocientos --> significa que hay un error. --> Normalmente el error puede ser --> de la URL que tienes mal o de --> que no encuentres el recurso --> y si tienes un quinientos --> normalmente significa que hay --> un error en el server. O sea --> el servidor se equivocó cuando --> ejecutó tu decódigo hubo un --> error y te manda entonces un --> quinientos. El body --> normalmente te trae la --> estructura pero la respuesta --> la respuesta que te da el --> API ya sea en JSON o XML --> porque recuerda que Redful es --> flexible a nivel de respuestas --> yo puedo mandar con Redful --> JSON o XML pero ya queda ya --> digamos que la mayoría te --> manda un JSON. Raro un Redful --> que te manda un XML pero se --> puede. Esa respuesta JSON que --> es la que teníamos de países --> te la devuelve en la columna --> que se llama string. Entonces --> esa string la vas a mandar --> hacia acá en las dos salidas --> hacia aquí y hacia acá. --> Recuerde que las dos --> salidas tenemos simplemente para --> poder testear. Vamos a darle --> aquí OK. Vamos a antes de --> seguir con la configuración me --> preocupa un poco la del tiempo --> de respuesta que tiene porque --> este componente tiene un --> tiempo de respuesta si no estoy --> mal de 30 segundos máximo si --> no responde ahí entonces él --> detiene la ejecución. Voy a --> hacer lo siguiente vamos vamos --> a desactivar este componente --> y lo vemos activar más --> tarde. Desactivamos este --> componente. Desactivamos este --> componente y desactivamos este --> tema y desactivamos este --> salida. Para probar por lo --> menos si me está respondiendo --> el API. Si es activado por --> favor proceda a ejecutar y --> verificamos si nos sale --> algún error. El tema. El --> string. String. String. --> String. Sí señor string. --> Listo. No comprobé si estaba --> ejecutando el el el yo --> correcto. Sí está ejecutando --> yo correcto. Me preocupa el --> tiempo de respuesta. --> Si hay un problema de tiempo --> de respuesta. Vamos a ver. --> No. Respuesta no no fue --> problema de tiempo de --> respuesta fue problema de --> configuración. Creo que el --> problema es un momento por --> favor. He analizado algo. Me --> parece que cuando le dice que --> aceptar a Jason debí usar aquí --> en un momento porque el --> servidor es tipo que esto. Un --> momento por favor. --> Si hay si ese era el error. --> Uy el tiempo de respuesta está --> pésimo. --> Por favor. --> Ah listo para alguno. Eh --> cambien por favor. Eh cambien --> por sí eh hay un eh para --> algunos no sé si están --> ubicados gráficamente --> diferentes pero no sé qué --> pasa. Por favor para evitar --> ese problema del del formato --> cambien el aceptar a Eny. --> Él me me respondió. Mira --> lo que me respondió, me --> respondió eso. El aceptar --> cambió la Eny, me cambió, esto --> fue lo que me devolvió. Jason --> Edito. Y el problema de --> no es error de tu código, es --> problema del API, de --> cepillos de API, esto fue lo --> que me devolvió. Esto fue lo --> que me devolvió. Voy a --> revisar para ver qué errores --> tiene cada uno. Vamos a ver --> entonces. Vamos a ver. ¿Quién --> me habló? Uy la mayoría tiene --> error claro. --> Uy Antonio para ver, la --> mayoría le ha salido error, --> vamos a ver. Eh hay una alta --> probabilidad que da lo que --> hay un momento, ¿OK? Da lo --> que hay ahí. Da lo que hay --> Antonio, por favor. Dale en --> co, aquí en co un momento --> después del último del último --> yo que no se ve este mismo --> error este el este nuevo o --> habíamos creado uno anterior. --> Sí. Sí. Vamos a lo siguiente --> ahora. Crea tu nuevo job ahí --> por favor. Crea tu nuevo --> job. Dale job new ahí. Un --> nombre rápido por favor. Job --> new. Y ahora agregue, agrega --> los componentes para ver, --> agrega, vuélvelo a crear nada --> más, agrega nada más un terres, --> un temat, y un telorro por --> favor. Al cuarto, sube para --> ver el tu error que estoy --> viendo para ver el error el --> el. Vete al room, sube para --> ver qué error salió. Al --> principio a ver. Al principio --> vamos a ver. --> Caray ser que fue. Baja, baja --> hasta la parte baja donde dice --> causado por ahí está, momento --> causado por. Sí, está --> llenado. Eh, abrete el el --> endpoint, ábrelo en tu en tu --> browser, por favor, ejecuta --> el endpoint. Ah no, eh, --> quítale relatí de pad, por --> favor. No, no, está mal --> Aurel. No, quita relatí de --> pad, déjalo vacío, porque --> tiene el Aurel completo en la --> parte de arriba, déjalo --> vacío, quítale eso y ponlo --> comía doble, comía doble --> porque sale lo después. --> Comía doble, comía doble. --> Ejecuta nuevamente para ver. --> Sí, permíteme y y le asegú, --> dile que le diga que le --> respondo mañana, eh, --> especificar las horas porque --> para asegurarlo, ¿Viste? --> Sería para lunes que viene --> pero ya faltaría eso, a --> qué hora y cuantas horas, --> ¿OK? Listo, perfecto, mi --> nombre es Aurel. Listo. --> Gracias. Eh, esperamos para --> ver. Sube para ver. Para ver --> qué error salió. --> Sube, sube, sí, sí, sube, --> no, vale. --> Vamos a seguir también --> nuevamente. Eh, ábrete el --> endpoint, ahora sí, cópete --> el endpoint y pégalo en tu --> browser para ver si si no --> responde el browser, no, no --> nos va a funcionar este --> ejemplo. Vamos a ver, tómate, --> liso, sin las comillas dobles, --> sí, exactamente. Si no --> responde aquí, creo que el --> ejemplo lo vamos a tener que --> hacer --> si respondió. --> Muestre nuevamente para ver, --> eh, bueno, déjalo un momento --> ahí, quizás de pronto me --> fijen el error en alguien --> más, momento, déjalo un --> momento ahí. ¿Quién más tiene --> errores acá? Ah, el caso de --> Mauricio, vaya a ver tu --> error para decir el mismo --> Mauricio. Y me doy cuenta de --> pronto que pudo haber pasado. --> Muéstrame la confusión de --> terrestre ahí un momento. --> Terrestre, la confusión, --> dale doble clic, cambie, --> cambie la satay un momento --> para ver. --> La satay, cámbialo a a a --> Annie, por favor. Sube un --> momento, sube, sube un --> momento, por favor. O sube --> un momento, sube, sube, sube --> el la en el scroll de la --> derecha. Listo. Cambia un --> momento a Annie, por favor. --> Ahí dice, acepta ahí, que tiene --> Jason, cámbialo a Annie. No --> creo, relatie, no creo que --> visamos a ver. --> Y yo estoy, ¿No está --> escuchando? Sí. Sí, vete, --> vete al room. No sé si será --> que subimos el tanado para --> ver, a mí. ¿En cuánto le --> vamos a ver? Vamos a ver, --> vamos. Eh, bueno, el el caso --> mío sí respondió. Listo. Eh, --> eh, vete al room yo, por --> favor. Ejecutalo para ver, --> entonces, con la confesión --> que tienes. Claro, el --> problema, el problema es el --> servidor de de no es, no --> creo que sea de conexión de --> las máquinas. Oiga, mucho. --> Voy a volver a ejecutar el --> mío y mirar tanto para --> ver si si a mí me --> responde, pero todos tenemos --> la misma máquina, la --> misma ubicación. Salió --> bien. --> Bueno, si no, para no perder --> mucho tiempo, entonces, eh, --> voy a compartir el Jason de --> vuelta y trabajamos con el --> Jason y no usamos el API --> porque el API la usamos --> con con con que si responde, --> no tengo problemas de tiempo --> de respuesta con ese señor. --> Sí te respondió. No, eh, --> tenemos problemas de tiempo --> de respuesta. Entonces, no --> puedo perder más tiempo aquí --> listo. Entonces, a mí si me --> respondió, vamos a ver si me --> respondió a mí, por lo --> menos. No, ya no me --> respondió. Entonces, lo que --> voy a hacer es lo siguiente. --> Permítame un momento, --> por favor. Voy a --> compartir un momento, por --> favor. --> Yo creo que ya lo había hecho --> por este lado. --> Momento, por favor. --> Esto voy a compartir por, --> pero no lo voy a compartir --> por una carpeta en la nube. --> Un momento, por favor. Ese --> escritorio de de su máquina, --> por favor. Va el escritorio --> de su máquina. Y creo que --> ahí, ahí hay una carpeta que --> se llama carpeta compartida. --> Confirma si la tiene. --> Mientras hago acá. Listo, ahí --> está una URL, por favor. --> Toma esa URL, cópiala y --> pégala en su browser. --> Listo, voy, hago, ¿Qué voy --> a hacer? Entonces, váyase a --> su --> Listo, entonces, aquí está --> carpeta compartida, por --> favor. Váyase aquí la URL, --> tome esta URL y la copia en --> el browser de tu preferencia. --> Pegar aquí. --> Y aquí está este archivo que --> se llama Países. Por favor, --> decárgese Países. --> En el escritorio vas a --> encontrar una carpeta que se --> llama carpeta compartida. --> Sí, esta que está aquí. Y --> ahí va a encontrar un archivo --> que se llama Aurel. --> Pégale a Aurel en tu browser --> y vas a ver una carpeta que --> compartí. Y dentro de esas --> carpetas, el archivo que --> compartí, está uno que se --> llama Países. Descárgalo --> por favor. Países. --> Sí, voy para ver entonces, --> porque sí. Sí, ¿Quién me, --> quién me, quién me habló? --> Mauricio. Carajo. Qué raro. --> De por eso es que pronto a --> ver. Bueno, dale. No, porque --> ahorita no debería tardar --> tanto si esa tampoco tiene --> tantos archivos. Abre una --> nueva pestaña. A ver, --> espérate un momento, a ver. --> Bueno, ese da dos probabios, --> pero bueno, a ver, sí, sí. --> De repente le voy a comentar --> a Jimena, a estas máquinas. --> Eh, todo lo raro es --> descargar el archivo. --> Entonces, hacemos lo --> siguiente. --> Vamos a cambiar entonces --> este yoco un momento porque --> no nos funcionó, pero --> aclaremos que esa eh con --> contarse a una una API con el --> componente sencillo, --> simplemente logre él y los --> parámetros de configuración. --> Entonces, voy a borrar este --> TRS client y voy a crear un --> metadata de tipo JSON --> que lo voy a llamar Países. --> Y ese metadata va a apuntar --> hacia el archivo de tipo --> input hacia el archivo que --> está en el archivo. --> Eso. --> Puede que demore un poco a --> cargar las es un poco --> extenso el archivo. Lo --> primero que hice fue borrar el --> componente TRS client. --> Después que lo borré, creé --> una metadata. Y la llave País --> exactamente, País. --> Esto démosle nex aquí, no --> sé si todavía alguien no --> lo ha descargado. --> OK, perfecto. --> Claro, ¿Por qué puede ser --> lento leer la metadata? --> Porque la metadata carece de --> sentido que tenga muchos --> registros. --> Entonces, tiene bastante. --> Espero entonces un momento. --> Bueno, al mientras, pero --> pregunto, ¿Y el lunes --> ustedes estarían, pues, --> libres a estas mismas horas, --> ¿Verdad? Sería así. Para --> comentar y pensar cuáles son --> las horas que podría. --> Usted puede ir a esta hora --> de diez, de diez a, de --> nueve a, a cuatro, ¿Verdad? --> A la segunda pregunta. Ya le --> reviso. --> El que viene, el diez, el --> diez, el diez. Si están libres --> a las mismas horas, no. --> Sería así. OK. OK, perfecto. --> Entonces, apliquemos un poco de --> Jason Pat. --> Aquí podría improvisar un poco, --> pero nos quedan cuarenta --> cinco minutos. Estoy con el --> tiempo. Bueno, vamos al --> siguiente. Si se da cuenta, --> el Jason Pat le aparece el --> símbolo peso indicando que --> está en el ruto. Al --> aparecerte el cochete al lado --> del símbolo peso, está --> indicando que está en un --> array de Jason. O sea, el --> Jason es un array completo. --> Entonces, mira lo que quiero --> sacar. Quiero sacar nada más --> common. Entonces, ¿Cuál --> sería el absoluto pat? --> Sería, el absoluto pat --> sería name para poder sacar --> estos dos elementos que están --> aquí. --> Realmente repito. --> Quiero sacar este common. --> Para sacar este common, voy a --> definir como absoluto pat hasta --> aquí. De tal forma en que --> pueda sacar los componentes de --> este item que está acá. --> Fija que el absoluto pat le --> queda de esta forma. --> Y ahora, de aquí, voy a --> sacar. Es más, voy a --> traerme nada más estos dos --> y los pego aquí. --> Por ejemplo, como el --> absoluto pat es name, no --> puedo sacar este CCA2 porque --> no está dentro de name. --> Esto no es ni talent, como --> le decía, ni tampoco es --> Java. Es el lenguaje de --> un resultado. --> Démosle nex aquí. --> Fíjense acá. --> Y ahora, lleve entonces un --> input de países hacia el --> tema. --> Conecte países con el tema. --> Y aquí me va a tocar apurar --> unos componentes que ya --> carecen de sentido. Voy a --> habilitar este tlodrop porque --> ya sé qué es lo que entra. --> Voy a habilitar todos estos --> componentes. --> Que no me salió este ejemplo --> como quería. --> Ya no necesito este test --> JSON porque ya el archivo --> ya viene formateado. --> Este tlodrop tampoco lo --> necesitaría. --> Me quedó... --> Entonces, voy a conectar este --> señor de acá. --> En una salida diferente --> porque las salidas ya no son --> iguales. Ya no vienen del --> terres. --> Quedó así. Vamos en --> lo siguiente. Vamos a ver. --> Queda de esta forma. --> Editar JSON. --> Nex. --> Nex. --> Te quedó el JSON path de esta --> forma. --> Un momento. --> O si me muestras tú. --> Si lo que pasa es que el --> archivo... --> El absolute path sería --> name. Hasta name. --> Lo suelta de este lado. --> Y tomo a los hijos de name --> que sería nada más. --> Necesitamos common y --> official. --> Y lo llevo a los dos acá. --> Listo. Ya Nex. --> Y listo. --> Listo. Entonces aquí. --> Bueno, este ejemplo no salió --> como queríamos. --> Bueno, como pensaba, no me --> salió. --> Voy a ver si con el de chat --> GPT no tenemos problemas. --> Voy a borrar todas estas --> salidas. --> Las que había hecho el test. --> Y el API, esta respuesta --> mapeada, lo voy a quitar. --> Nada más dejó salida. --> Y voy a agregar lo siguiente. --> Voy a agregar esta salida acá. --> Lo que nos quedó al final, ya --> nos quedó fuera de tres --> componentes. --> El de países, el temat, el de --> salida. --> Y el temat quedó de esta --> forma. --> Creé una nueva conexión del --> temat hacia el chinup pogres. --> La llamé salida. --> Tiene que activar, en el --> caso tuyo Julio, activa el --> chinup. --> Derecho activar. --> La llamé salida, la llamé --> salida. --> Y como la tabla no está --> creada, por favor, mira si --> te acuerdas la configuración --> de salida. --> Para crear una tabla. --> Mientras dejo la pantalla --> y ya está así como está. --> Y espero a alguno que todavía --> le falta unas configuraciones --> ahí. --> El de países. --> ¿Quién me habló? --> A ver, para ver. --> Espérate. --> Ah, sí, sí. --> Sí, tienes que crearla --> exactamente. --> Es decir, todavía eso no lo --> he hecho acá. --> Me estaba esperando que --> algunos. --> No sé si vamos. --> Vamos. --> Aquí en chinup la salida --> sería entonces. --> ¿Cómo configura acá? --> Le digo table. --> Sería países. --> Y le digo que en el --> acción table crear tabla, por --> ejemplo, si no existe. --> Que no existe, evidentemente. --> Y ya es la única --> configuración que debo hacer --> y ejecuto para ver y debería --> ya crearme la tabla con las --> columnas de entrada. --> Creo que ejecuté el yo. --> Correcto. --> Listo. --> Ahí tuvo que haber creado la --> tabla. --> A ver qué errores tiene. --> Analil ya voy a ver para --> ver. --> Que retires ahí que te vi que --> salió algo extraño. --> Ah, ya oí. --> Analil. --> Y en el alto entero tienes --> que seguir creando la --> tabla. --> Dale ok, por favor. --> Listo. --> ¿Qué pasó? --> Vuelve a ejecutar solamente --> que des mi perdi. --> ¿Qué salió? --> Me ha ocurrido. --> Dale, dele log, por favor. --> Dale ahí en log. --> Clique ahí en log. --> Tiene el mismo error de. --> Creo que de Gerardo. --> Dale ok. --> Dale ok un momento. --> Dale ok. --> Dale ok. --> Por favor. --> Ahí dice. --> El error principal. --> Dale en co. --> En co. --> Aquí. --> Arribita. --> Arribita. --> Un poco más arriba. --> Ahí está co. --> Debería. --> Ahí está. --> Listo. --> Está bien. --> Dale en designer un --> momento. --> Dale ejecutar nuevamente. --> Nuevamente en log, por --> haber. --> Haga lo siguiente. --> Copyse los componentes --> esos. --> Copyse todo el job. --> Todo su job. --> Clique derecho. --> Copy. --> Cree un nuevo job. --> Job. --> Job new. --> Cree un nuevo. --> Cree un nuevo. --> Cree un nuevo. --> Cree un nuevo. --> Cree un nuevo. --> Cree un nuevo. --> Cree un nuevo. --> Cree un nuevo. --> Cree un nuevo. --> Cree un nuevo. --> Cree un nuevo. --> Cree un nuevo. --> Cree un nuevo. --> Cree un nuevo. --> Cree un nuevo. --> países, enter, ejec, eh, guarde, muéstrame el code nuevamente a ver, no lo quiero generar, --> esto nada pasa aquí, ejecute nuevamente para ver, dele, dele ejecutar, hago lo siguiente, --> creo un nuevo job, creo un nuevo job, y agrego los componentes nuevamente y lo configuramos --> para ver, ah, jale países, salud, agrego un tema, eh, jala países de acá del metadata, --> no, el jason, baje para ver, en el jason está países, lo suelta a este lado y tome la conexión --> hacia el pogre de salida, no, porque la tabla se llama países y las columnas que --> agregaste fueron common y oficial, está bien, mira, atenta cuenta, en mi pantalla, --> al final, mira, al final estás mapeando dos columnas y la tabla es la que se llama, --> la que quería llamarse países, acá, te dio que dar aquí países, así sería la confesión de la --> salida, tabla países y con las columnas common y oficial, eh, tome la salida del pogre, ahí --> está chinu pogre, chinu pogre, la suelta de output, conecta el tema a la salida, --> al de pogre, sí, por estándar, para, vamos con el tema, pase los dos hacia acá, ok, --> ejecute para ver, ah, perdón, va a ir a la salida del chinu, no, la del chinu, esa está bien, --> en la del chinu y déjale que va a crear una nueva, ahí en table colócale países, --> países, sí, si no existe, ejecute para ver, --> no, aquí es un problema, ese es un problema, --> vaya la generación de código un momento para ver, es claro que el error no es, --> no es de configuración, el problema es la herramienta, es raro, yo, esto, --> esto es nada más, lo he visto en estas máquinas virtuales, no he generado el código, --> ahí abajo tiene, pero el código tiene error, ve, --> vamos a ver si nos sigue saliendo a los que nos ha salido el error de este problema del --> código, vamos a probar con un nuevo yo para ver, vamos a hacer lo siguiente ahora, --> vamos a probar, porque hay algunos que no está funcionando la ejecución de los yo, --> vamos a probar nuevamente, vamos a hacer lo siguiente ahora, créese un nuevo yo, --> vamos a conectarnos con ChatGPT un momento, a ver, pero vamos a hacer una pregunta básica, --> ¿Cómo estás? Creé job aquí y voy a colocarle a este job, entonces, voy a colocar el job --> ChatGPT, vamos a hacer una pregunta básica, ya pedí para probar el terrestre client y --> verificar para ver si tenemos todavía inconveniente con lo que no ha generado el código, entonces, --> para conectarnos con el ChatGPT, la URL es la siguiente, primero agregue un terrestre client, --> un momento, un terrestre client, agregue, listo, un tmap, el tema no, vamos a probarlo --> más sencillo, nada más, entonces, agregue un terrestre client y listo, un telok row y un telok row acá, --> agregue, entonces, en el rest client, en el row, la respuesta la va a colocar en el row de --> arriba y si hay error lo va a colocar en el row de abajo, esto lo estoy haciendo rápidamente --> para probar algunos que no están funcionando, algunos elementos del talento, mira lo que hice, --> agregue un terrestre client, un telok row y un telok row, si hay respuesta lo mandé al telok row de arriba --> y si hay error lo mandé al de abajo, voy a copiar la URL en la carpeta compartida, --> no, no, no, como usted quiera, ya gustó usted, ahí sí, gustó usted, un momento y voy a copiarle la URL --> acá en un archivo nuevo, listo, guardar, un momento, listo, pállese en la carpeta compartida --> que la tendría acá en Chrome, le da F5, --> un momento, todavía no ha actualizado acá, un momento, ya actualiza acá, no ha actualizado, --> listo, váyase a OpenAI y hay una sesión que dice URL, ese es el endpoint, --> tome ese endpoint y lo reemplaza donde dice URL en el terrestre client, por favor, --> sería aquí, --> la URL, ahora el caso de esa API escucha por un método tipo POST, entonces cambia el método --> de GET a POST y el content time el recibe un JSON y dígale que acepta cualquier tipo de --> que le devuelva el servidor, déjelo por defecto, entonces hay que hacerle, voy a agregarle un --> PROM aquí, tome por favor lo siguiente ahora, váyase al archivo de configuración en la carpeta --> compartida, el de OpenAI, al momento, descarga este archivo que se llama plantilla.jpt, --> esa de aquí, descarga este archivo y descarga un archivo que se llama, --> no lo veo un momento aquí, ya lo subo, el PROM, perdón, eso está por acá, nada más --> descarga este archivo que se llama plantilla.jpt, aclaro que este ejemplo estoy haciendo para --> probar, bueno, primero el REST client para ver si no tengamos problemas y para ver que --> hay algunos que no le está funcionando las cosas, ese archivo que descargó, déjelo un --> momento por ahí, quieto, ahora vamos a tomar el texto ese que está ahí, agregué que se --> no va a lanzar con el PROM, agregué aquí donde dice JSON, agregué un nuevo metadata por favor, --> lo voy a llamar PROM, PROM PT, aquí en Next, iba a buscar un PROM en el escritorio Dataset y --> está lo que se llama PROM PT, dele todos los registros por favor que está como JSON.txt, --> entonces cambia el filtro porque por defecto está solamente que me muestren los .json y el --> archivo se llama JSON.txt, entonces dale para que me muestren todos los archivos y toma este --> PROM que está aquí, le da Open, le da Next, el absolute pack es el raíz y toma el PROM --> este que está aquí, en ese PROM es el que usted va a colocar lo que usted quiera ahí, --> dele Refresh Preview para ver si le muestra los datos de ese PROM, si ahí está un texto, --> esa es la pregunta que le vamos a hacer a JPT, dele Next aquí, Next, no hay más nada, Finish, --> agregue el PROM que agregó aquí al inicio, como tf.input.json y por último le agregamos --> un tmap para formatear la entrada al JSON, perdón al API. Conecta el tprom al tmap y --> el tmat al trest client, aquí le voy a colocar payload, la del PROM, está en el desktop, --> está en tu escritorio y va a encontrar Dataset, PROM y por favor cuando vayas le quitas el --> filtro asterisco JSON para que te muestre todos, nada más deja como filtro asterisco todos. --> Listo, todavía no, eso no lo ha hecho todavía, listo. Me he pujado el tiempo carajo, me estresó el --> tiempo. Váyase entonces a la pregunta que me hace usted, vámonos a lo siguiente, váyase a su --> escritorio, acá le hizo escritorio desktop, Dataset, PROM, edite el contenido este y entre --> comillas doble en el PROM este, haga la pregunta que usted quiera, al chat GPT, hola, --> qué número jugará hoy en la lotería, vamos a ver si lo damos, que conserve el formato, --> es decir, que el texto que vaya a agregar esté entre comillas que abre, comillas que cierre y --> por último le das guardar, listo, perfecto, el JSON pack, perfecto, quedaría de esta forma --> entonces, que puede que se relaje.