24:24
2025-01-27 13:13:59
2:06:12
2025-01-27 13:42:41
3:36:29
2025-01-28 09:08:14
4:33
2025-01-28 13:48:42
55:46
2025-01-28 14:06:51
2:02
2025-01-29 10:22:33
1:02:14
2025-01-29 10:25:14
2:10
2025-01-29 11:38:26
2:26
2025-01-29 12:03:00
1:23:37
2025-01-29 12:05:56
35:40
2025-01-29 15:01:26
1:40:43
2025-01-30 09:07:07
1:08:48
2025-01-30 11:20:20
1:10:50
2025-01-30 13:15:56
3:50:03
2025-01-31 07:20:07
Visit the Talend Big Data Integration y Ecosistema de Talend course recordings page
WEBVTT
-->
¿No? Sí, sí, sí, sí, sí, sí.
-->
Alejandro, nota entonces en el
-->
escritorio, en la parte derecha
-->
vertical, hay un ícono
-->
accesorio que dice TOSBD, el
-->
segundo. Dale doble clic, por
-->
favor. Sale un pequeño
-->
warning. ¿Por qué sale ese
-->
warning ahí? Porque como les
-->
decía en la parte introductoria
-->
del ecosistema de talent, la
-->
versión es open source,
-->
solamente dieron soporte hasta
-->
el año pasado. Entonces, él
-->
está intentando conectarse a un
-->
repositorio que ya no está
-->
activo. Dale OK, por favor,
-->
eso no va a afectar lo que
-->
vamos a hacer. En
-->
características de las
-->
herramientas de talent, sea
-->
talent big data, talent data
-->
integration, talent SB, es
-->
que la interfaz es
-->
compartida, es la misma. Lo
-->
que te va a diferenciar,
-->
siento algunos elementos de
-->
forma, quizá colores o
-->
configuraciones muy
-->
específicas. Y lo otro que
-->
te puede cambiar son los
-->
componentes que puedes
-->
encontrar en la versión
-->
open source y en la versión
-->
propietaria. Eso es lo
-->
único que te va a cambiar,
-->
pero la interfaz sigue
-->
siendo prácticamente la
-->
misma. Voy rápidamente a
-->
explicar cada uno de los
-->
elementos de la interfaz.
-->
Nota que a nivel, esto se
-->
llaman perspectivas. Si tú
-->
quieres, llámalo pestañas.
-->
Aquí tengo una perspectiva
-->
que se llama repositorio.
-->
Esta perspectiva repositorio
-->
está compuesta por un menú.
-->
Primero tienes el job
-->
design. En esa parte es que
-->
vas a definir los
-->
diferentes jobs. Recuerda
-->
que en una herramienta de
-->
STL algunos lo llaman job,
-->
otros lo llaman workflow,
-->
otros lo llaman pipeline.
-->
Básicamente va a definir
-->
los jobs donde va a tener
-->
un conjunto de componentes
-->
para ser procesados y
-->
transformar los datos en
-->
el formato que tú quieras.
-->
Segundo elemento que tú vas
-->
a ver aquí, vas a ver
-->
que hay algo que se llama
-->
contextos. Ese contexto se
-->
asocia a variables de
-->
entorno. Esas variables de
-->
entorno recordará que esas
-->
variables tú las clasificas
-->
en variables de tipo.
-->
Normalmente en un sistema de
-->
desarrollo software las
-->
clasificas en entorno QA,
-->
entorno de producción y hay
-->
algunos que agregan un nuevo
-->
entorno que es un entorno
-->
de nivel o pro desarrollo.
-->
Entonces esas variables de
-->
entorno las puedes hacer y
-->
cómo las maneja la
-->
herramienta a través de
-->
textos.
-->
Si alto seguido está una
-->
parte de código, esa parte de
-->
código que está ahí, lo que
-->
tiene es lo siguiente.
-->
Hay unos códigos que están
-->
prestalecidos que tú puedes
-->
usar. Esos códigos están
-->
escritos en Java.
-->
¿A dónde quiero llegar con
-->
ese código?
-->
Tú puedes agregar código
-->
necesariamente con Java para
-->
usar en este, en algún
-->
componente o algún job.
-->
Yo le soy sincero, yo no
-->
he hecho, nunca me he puesto a,
-->
aunque no es complicado,
-->
claro, nunca me he puesto a
-->
crear código porque al final
-->
yo creo que me desgasto más
-->
en hacer ese código ahí y
-->
darlo en el formato en que
-->
está, en que requiere, que
-->
he definido como un componente
-->
particular de en el job.
-->
Listo.
-->
Pero digamos que tú quieres
-->
usar un código en EBSES,
-->
lo puedes agregar ahí.
-->
Por aquí viene algo
-->
interesante que se llama los
-->
SQL templates.
-->
Y ese SQL templates nota
-->
que hay una carpeta
-->
solamente para clasificar y
-->
cada carpeta tiene diferentes
-->
nombres a nivel de motores
-->
de bases de datos, ¿Cierto?
-->
Ahí tienes, por ejemplo, un
-->
postware, tienes un MySQL,
-->
tienes un Hive.
-->
Eso al final, ¿Para qué es?
-->
Ese templates SQL es para
-->
crear, por ejemplo, un
-->
patrón SQL que tú quieras
-->
ejecutarlo.
-->
Te explico mejor con un
-->
ejemplo práctico.
-->
Me parece mucho mejor.
-->
Permíteme y te muestro
-->
algo aquí que hice hace tiempo
-->
sobre esta herramienta.
-->
Listo, voy por acá.
-->
Un momento, por favor.
-->
Espérate que no lo encuentro.
-->
Ya, se me perdió ese ejemplo.
-->
Sí, aquí lo encontré perfecto.
-->
Este template que está aquí.
-->
Este es un template que hace
-->
lo siguiente.
-->
Hace una consulta SQL sobre
-->
diferentes tablas y al final
-->
hace unos cálculos que van a
-->
ir hacia un data warehouse.
-->
Eso es lo que hace eso que
-->
estoy mostrando aquí.
-->
Y tú pensarás, ¿Por qué no
-->
hiciste eso con componentes
-->
propios del ETL?
-->
Porque en realidad para la
-->
cantidad de tablas era más
-->
eficiente que hubiese hecho
-->
esta codificación y se
-->
ejecutara contra el motor que
-->
si lo hubiese hecho
-->
directamente con la herramienta
-->
ETL.
-->
Entonces, al final, ¿Qué es?
-->
Tú puedes crear unos templates
-->
SQL donde tú vas a escribir
-->
código, velo como un
-->
procedimiento almacenado que
-->
puedes ejecutar contra el
-->
motor de base datos.
-->
¿Y por qué están
-->
diferentes carpetas?
-->
Porque entenderás que cada
-->
motor tiene una sintaxis y
-->
una forma en que puedes
-->
crear y escribir esos
-->
procedimientos almacenados.
-->
Entonces, para eso es que
-->
son esos SQL templates.
-->
Eso es ya muy particular y
-->
muy específico.
-->
Normalmente uno lo hace a
-->
nivel de eficiencia.
-->
Aquí viene algo que vamos a
-->
trabajar que es la parte de
-->
metadata.
-->
Nota que esa metadata hay
-->
muchos tipos de datos.
-->
Entonces, tú como el ETL se
-->
basa en que tú puedas
-->
acceder a fuentes de
-->
datos.
-->
Entonces, tú puedes tomar
-->
esta metadata para tomar,
-->
como su nombre lo dice, la
-->
metadata de los archivos
-->
con que vas a trabajar.
-->
Básicamente, ¿Qué sería la
-->
metadata?
-->
Supongamos que tú tengas un
-->
archivo CSV.
-->
Lo que hace esta metadata es
-->
que te guarda, por ejemplo,
-->
los nombres y el orden que
-->
tienen las columnas en ese
-->
archivo.
-->
Pero lo que hace eso nada
-->
más es guardar esa metadata.
-->
No te guarda los datos del
-->
archivo.
-->
Acto seguido, por aquí
-->
tienes algo que se llama
-->
documentación.
-->
Que esa documentación tú
-->
puede hacer varias cosas.
-->
Puedes, por ejemplo, tener
-->
archivos o manuales de
-->
referencia que puedas
-->
agregar, donde haya algunas
-->
definiciones que te puedan
-->
servir para utilizarte
-->
pronto en el diario de vivir
-->
de tu job.
-->
O en su defecto, en esa
-->
documentación, te van a
-->
quedar, la remedia te permite
-->
cuando tú hagas un job que
-->
te haga una documentación.
-->
Prácticamente lo que te
-->
hace es un archivo HTML que
-->
te explica qué está
-->
haciendo ese job en
-->
particular.
-->
Y por último estaría
-->
pues aquí lo que digamos
-->
que la parte de la
-->
basura, se me escapó el, la,
-->
el bote, llaman a alguno,
-->
bote de basura aquí de donde
-->
van a tener aquí los
-->
elementos que vayan borrando.
-->
Papelera reciclable, claro,
-->
se me escapó el concepto.
-->
Listo, entonces, eso sería
-->
de forma general y voy a ir
-->
explicando.
-->
Inicialmente no voy a
-->
empezar con Big Data porque
-->
claro, en la, en la forma
-->
de que veníamos anteriormente
-->
ya no teníamos una
-->
experiencia sobre una
-->
herramienta que se llama el
-->
Talent Data Integration.
-->
Entonces tú podías ir
-->
directamente a los componentes
-->
de Talent, Talent Big Data y
-->
lo entendías muy
-->
fácilmente, pero entonces
-->
voy a hacer una pequeña
-->
introducción para que
-->
entiendas cómo funciona la
-->
herramienta ETL de Talent.
-->
Esto da lo mismo que uses
-->
Open Big Data, por ejemplo,
-->
Open Data Integration o Open
-->
SB.
-->
Al final el modelo de
-->
funcionamiento es el
-->
mismo.
-->
Para hacer esto entonces
-->
todo me acompaña ahora sí en
-->
lo siguiente.
-->
Voy a ir muy despacio.
-->
Listo, vayamos a y nos
-->
ubicamos en la parte de
-->
repositorio.
-->
Vamos donde dice Job Design,
-->
por favor.
-->
Vamos a darle ahí click
-->
derecho y vamos a crear
-->
aquí un folder.
-->
Te aconsejo como buena
-->
práctica que organizes
-->
tu job dependiendo del
-->
proyecto o digamos varia en
-->
que estás trabajando.
-->
En este caso voy a crear un
-->
job, un folder, perdón.
-->
Crear un folder y lo vamos a
-->
llamar AXA, por favor, AXA.
-->
Listo.
-->
Ahora dentro de AXA vamos a
-->
crear una subcarpeta y esta
-->
lo voy a llamar básicos, o
-->
sea ejemplos básicos.
-->
Vamos a colocar ahí y ya lo
-->
de Big Data lo voy colocando
-->
entonces en algo un poco
-->
diferente, una carpeta
-->
diferente.
-->
Entonces vamos a darle aquí
-->
Finish y lo que he hecho hasta
-->
el momento es crear una
-->
carpeta.
-->
Listo, perfecto.
-->
Ahora se sitúa en la carpeta
-->
básicos, por favor.
-->
Y tan amable.
-->
Y vamos a darle click derecho
-->
por favor ahí y dele
-->
entonces y vamos a darle
-->
crear job, por favor.
-->
Esto es algo que te vas a
-->
conseguir en la mayor parte
-->
de job que es bajo el
-->
ecosistema de talent.
-->
Te pregunta más o menos lo
-->
mismo.
-->
Entonces primero te pregunta
-->
el nombre del job.
-->
Listo.
-->
En este caso vamos a votar
-->
los nombres de job snake case.
-->
Voy a llamar de la siguiente
-->
forma el primer job.
-->
Voy a llamarle job.
-->
Aquí voy a llamar job
-->
underscore transformaciones
-->
underscore básicas.
-->
Sería interesante como buena
-->
práctica en que puedas
-->
completar el propósito del
-->
job y la descripción del job.
-->
Velo del punto de vista en
-->
que aunque tú hagas el job
-->
sabes que ese job tú lo
-->
entiendes pero verlo en que
-->
seguramente pues no siempre
-->
todos vamos a estar en la
-->
misma empresa siempre y
-->
sería bueno entonces para
-->
que documentar el job para
-->
que sea mucho más sensible
-->
pues hacer cualquier
-->
mantenimiento que tenga
-->
sobre ese job como tal.
-->
Propósito del job voy a
-->
colocar aquí explorar los
-->
elementos básicos de la
-->
herramienta de tal en mi data
-->
de la herramienta de explorar
-->
los elementos básicos de la
-->
herramienta de vamos a
-->
colocar aquí como
-->
descripción vamos a colocar
-->
aquí el job leerá leerá
-->
unos archivos de entrada y
-->
salidos formateará formateará
-->
formateará a un archivo de
-->
salida diferente.
-->
Diferente. Esto lo voy a
-->
hacer solamente en este eh en
-->
este job, es decir, eh los
-->
demás yo no voy a agregar
-->
propósito ni descripción
-->
porque me de casta mucho en
-->
el tiempo y en realidad
-->
tengo un poco tiempo para
-->
la cantidad de elementos que
-->
tengo. Si notas ahí te
-->
pregunta otras cositas como el
-->
autor y el bloqueador. Ese
-->
autor y bloqueador en esta
-->
versión carecen un poco de
-->
significado pero ese autor
-->
ese autor que aparece ahí
-->
cuando tengas eh ya el
-->
sistema montado te había
-->
comentado en una clase que
-->
hay eh cuando yo tengo ya
-->
licenciado el talen hay
-->
una herramienta que se
-->
llama el talen MC el Manas
-->
console el Manas console
-->
maneja los usuarios entonces
-->
ahí por defecto como tú te
-->
vas a loguiar con el TMC en
-->
el autor te va a aparecer el
-->
autor que te haya creado el
-->
administrador de talen y en el
-->
bloqueador pasa lo siguiente
-->
el bloqueador que es
-->
normalmente el que crea el
-->
job eh es el que permite
-->
bloquear entonces el
-->
bloqueador que quiere decir
-->
hombre que muchas veces tú
-->
puedes darles permisos a un
-->
grupo de usuario para que
-->
puedan digamos escribir o
-->
modificar el job y hay
-->
algunos que lo puedan
-->
bloquear para eso es que
-->
sirve el bloqueador ese que
-->
está ahí ahora las versiones
-->
son eh netamente internas
-->
estas versiones eh el caso
-->
de la herramienta no no sé
-->
si solamente a modo
-->
informativo notarás entonces
-->
que a nivel de versiones
-->
se manejan algunos manejan
-->
tres números maneja entonces
-->
el número que llaman el
-->
mayor el número que llaman
-->
el minor y el número que
-->
llaman el el patch entonces
-->
si yo tengo por ejemplo
-->
versión diez punto dos punto
-->
tres y paso a diez por
-->
ejemplo a diez punto cuatro
-->
como estoy en el patch el
-->
que subí el patch significa
-->
en que lo que he hecho es
-->
corregir algún error que
-->
tengo si por ejemplo yo
-->
paso de versión ahora a
-->
versión diez punto tres
-->
punto cuatro subí el minor
-->
significa que no es que haya
-->
agregado una nueva
-->
funcionalidad sino pude haber
-->
hecho una refatorización
-->
del código para que sea más
-->
entendible para que sea más
-->
eficiente pero sigue
-->
funcionando y todavía sigue
-->
siendo compatible el problema
-->
tengo con el mayor que es
-->
por ejemplo si yo paso a
-->
once punto tres punto cuatro
-->
hay una característica que
-->
se busca pero el once cuando
-->
yo subo el mayor no hay
-->
garantía de que siga
-->
funcionando con versiones
-->
antiguas eh eh al subir de
-->
versión no significa no no
-->
significa o no es prioridad o
-->
digamos no es garantía si
-->
subo el mayor de que te siga
-->
funcionando el código tuyo
-->
cuando sube la versión son
-->
características eh pasa y
-->
te pongo un ejemplo muy
-->
claro con ah php php que ya
-->
hace rato no trabaja con
-->
php eh php con ocho y con
-->
siete epa me tocó
-->
refactorizar eh reescribir
-->
mucho código para adaptarlo
-->
a la versión ocho porque
-->
hay cosas que no estaban
-->
funcionando bien entonces
-->
por qué porque subió el mayor
-->
entonces esta parte que está
-->
aquí la m minúscula lo que
-->
te hace nada más tengo mayor
-->
y minor entonces la m minúscula
-->
si yo cojo aquí m minúscula
-->
me sube el minor y m
-->
mayúscula me sube el mayor
-->
entonces si yo subo a
-->
versión uno punto cero por
-->
estandarización significa
-->
que he creado la versión la
-->
primera versión estándar ya
-->
el sistema versión ya tú lo
-->
manejas internamente lo que
-->
si es seguro es que la
-->
herramienta eh como es open
-->
source no te permite bajar
-->
los modificarlos si ya lo
-->
subiste si lo subiste al uno
-->
ahí no te deja bajar lo tengo
-->
que ya pues cancelar el yoke
-->
y volverlo a crear nuevamente
-->
por aquí eh el estado eh tú
-->
puedes manejar estado que eh
-->
developer texting y producción
-->
ahí tienes que manejar
-->
internamente cómo vas eh como
-->
tu equipo de trabajo desarrollo
-->
ETL va a manejar esta parte
-->
de texting cuando pasa un
-->
texting a digamos a a cuando
-->
un devolven perdón cuando
-->
un devolven pasa a testing o
-->
sea cua cuando de cua pasa
-->
a producción bueno etcétera
-->
ahí ya la cantidad de cosas
-->
vamos a colocar aquí
-->
development y el pad pues el
-->
pad aquí lo que me está
-->
identificando es donde a nivel
-->
local lo voy a guardar este
-->
archivo ya en la versión
-->
comercial lo que hace este
-->
pack es que te guarda en el
-->
repositorio aquí que tengas
-->
interno eh a nivel local y
-->
te guarda eh repositorio
-->
centralizado que tengas de
-->
aquí listo eso es nada más
-->
la entrada es más que todo
-->
y ahí tienes la información
-->
informativa de esta parte
-->
dale por favor finish
-->
perfecto y se te abre una
-->
nueva perspectiva esta
-->
perspectiva que está aquí en
-->
el centro es lo que uno llama
-->
el canvas en ese canvas es
-->
que vas a colocar los
-->
diferentes componentes del
-->
job como tal de igual forma
-->
se te abre una una una
-->
pestaña una perspectiva en
-->
la parte de abajo que te
-->
va a permitir configurar
-->
ciertos elementos del job y
-->
tienes una perspectiva que
-->
está aquí a la izquierda que
-->
te va a permitir configurar
-->
algunos elementos a nivel de
-->
código de ese job y la
-->
perspectiva que tiene acá
-->
de la parte derecha que son
-->
las paletas son los
-->
diferentes componentes que
-->
vas a que puedes usar
-->
dentro de un job y están
-->
clasificados ve aquí te
-->
clasifica como big data
-->
business intelligent bueno
-->
cloud aclaro que a nivel
-->
comercial te van a aparecer
-->
más de lo que están aquí
-->
en el centro de la
-->
profesional. Bueno vamos a
-->
crear nuestro primer job
-->
para ver para decirle cómo
-->
funciona esta parte. Primero
-->
vamos entonces a definir una
-->
metadata es decir quiero leer
-->
un archivo de entrada y
-->
para leer un archivo de
-->
entrada necesito saber la
-->
estructura del archivo por
-->
si acaso la herramienta está
-->
más pensada los componentes
-->
están pensados para que haga
-->
un procesamiento estructurado
-->
pero si vas a agregar un
-->
procedimiento no estructurado
-->
entonces hay unos componentes
-->
que te van a permitir
-->
codificar por ejemplo leer
-->
datos de un audio leer
-->
datos de un archivo PDF
-->
convertirlo si lo hay
-->
pero las principales
-->
componentes que existen
-->
están pensados para
-->
elementos netamente
-->
estructurados. Esta
-->
metadata que está aquí
-->
entonces hagamos lo
-->
siguiente expande por favor
-->
el menú de metadata si
-->
está más grande. Y ahora
-->
hagamos lo siguiente quiero
-->
leer un archivo en un formato
-->
específico resulta que él te
-->
va a clasificar los archivos
-->
dependiendo del formato en
-->
que lo vas a leer entonces
-->
aquí notarás en que tú
-->
puedes leer tablas de una
-->
base de datos en DB
-->
connection tienes archivos
-->
delimitados tienes archivos
-->
estos archivos delimitados
-->
lo que hace es que delimita
-->
por un ancho por ejemplo yo
-->
quiero delimitar los datos
-->
que van del cero al diez al
-->
carácter diez del once al
-->
veinte y delimita por
-->
digamos un índice o un
-->
espacio los delimitados
-->
son los SV eh estos
-->
posicionales perdón el
-->
delimitado perdón el
-->
delimitado son los SV que
-->
están delimitados por un
-->
carácter los posicionales
-->
son los que te dicen qué
-->
posición de la cero a la
-->
diez del once al veinte y
-->
así sigue sucesivamente
-->
y si te preguntas si hay un
-->
metadata que quiero leer y
-->
no está dentro de esto de
-->
dentro de elementos que
-->
están por defecto tiene
-->
varias opciones una opción
-->
es buscar el repositorio
-->
para ver el repositorio de
-->
talent en las últimas
-->
versiones para ver si le
-->
agregó un metadata de esa
-->
forma o en lo último le
-->
tocaría hacer una
-->
programación me explico
-->
supongamos que quieras
-->
leer un PDF y el PDF no
-->
está aquí entonces podía
-->
ver si existe un componente
-->
que tiene un PDF si el
-->
componente no está en los
-->
que están actualizados
-->
hoy en día lo que puedes
-->
hacer es que creas un
-->
código aquí por ejemplo en
-->
bueno necesariamente en
-->
Java en que tome el
-->
fichero y lea los datos
-->
si no existe la metadata
-->
como el archivo que quiero
-->
leer es un archivo CSV
-->
entonces los archivos
-->
SV se encuentran en
-->
formato que llaman del
-->
limitado este que está
-->
dele clic derecho por
-->
favor a este señor y
-->
coja la opción crear file
-->
delimited y te va a
-->
aparecer un conjunto de
-->
opciones note ahora que
-->
sigue la misma tendencia a
-->
nivel de los elementos de
-->
metadata que son
-->
parecidos al yo te va a
-->
parecer el autor
-->
bloqueador versión etcétera
-->
ya tú tienes que ver
-->
internamente cómo
-->
conjugas esta parte en
-->
los estándares de
-->
desarrollo que tengas ya
-->
en tu empresa pero aquí no
-->
voy a crear ya más
-->
propósito de descripción
-->
ni tampoco voy a crear
-->
versión por una
-->
cuestión netamente de
-->
tiempo aquí voy a llamar
-->
entonces sería buena
-->
práctica que llamaras el
-->
archivo de igual forma
-->
que que el formato en que
-->
está en este caso quiero
-->
leer un archivo que se
-->
llama generos generos
-->
generos generos sería
-->
buena práctica que
-->
colocaras la fecha de
-->
esa versión que tengas en
-->
el mismo nombre o en el
-->
propósito pero bueno no
-->
lo voy a hacer por una
-->
cuestión netamente de
-->
tiempo dejamos solamente
-->
generos y vayamos aquí
-->
donde dicen next bien por
-->
defecto estos metadatos
-->
vienen con una
-->
característica en que van
-->
a buscar esos datos o
-->
esos archivos a nivel
-->
local o a nivel o a
-->
nivel local en el equipo
-->
o en la versión en la
-->
versión comercial puede
-->
hacerlo a nivel de redes
-->
o sea puede tener una
-->
carpeta compartida en la
-->
cual vas a ver en este
-->
caso vamos aquí donde
-->
dice bros y se va entonces
-->
a la carpeta que se llama
-->
en el escritorio recursos
-->
entra a su carpeta de de
-->
tal en mi data entra donde
-->
dice data set y accede a
-->
donde dice ccv note que
-->
ahí está un archivo que
-->
se llama gen repunto ccv
-->
por favor tómelo
-->
de quién me habló Beatriz o
-->
Brenda voy a su máquina
-->
por ah listo en primer
-->
día es donde está voy a voy
-->
a su pantalla ahí primero
-->
vamos a colocar el nombre
-->
del metadata llámelo
-->
generos por favor si están
-->
amables dele next por
-->
favor y ahora váyase a
-->
dice bros por favor ahí
-->
donde dice fichero sitúese
-->
en el escritorio ahí está
-->
recursos tbd la primera
-->
carpeta tbd data set cv y
-->
escoja que no lo cojo dele
-->
nuevamente clic en el segundo
-->
no no no no cojo el clic ahí
-->
listo y dele abrir por
-->
favor bien continúa entonces
-->
eh bueno aquí podía seguir
-->
con los detalles pero hay
-->
detalles que lo voy a
-->
enviar porque pronto por
-->
tiempo bueno aquí solamente
-->
note que aquí hay un
-->
formato porque este formato
-->
hay que tenerlo en cuenta
-->
lo que pasa es que este
-->
formato lo que tiene en
-->
cuenta son los caracteres de
-->
tabulación y de salto de
-->
línea entonces el carácter
-->
de salto de línea a nivel
-->
de lo que es windows es el
-->
mismo que el de unis pero
-->
puede que el de mac el
-->
carácter de salto de línea
-->
sea diferente recordará que
-->
cuando yo tengo un archivo
-->
yo en cada línea tengo un
-->
carácter que hace que
-->
el carácter de salto de
-->
línea para que entienda el
-->
sistema operativo que hay
-->
que bajar entonces aquí la
-->
recomendación es la siguiente
-->
si está trabajando en un
-->
sistema windows o un sistema
-->
unis no hay problema pero
-->
pronto mac sería
-->
recomendable que usaras
-->
aquí mac entonces aquí puedo
-->
usar unis porque el de
-->
unis sigue siendo el mismo
-->
de windows entonces no hay
-->
mucho problema a nivel de
-->
tabulación y salto de línea
-->
aquí me da un preview de
-->
los datos que están vamos
-->
y por aquí están algunas
-->
características que te voy a
-->
dar recomendación en primer
-->
lugar está el sistema de
-->
codificación aquí te
-->
recomendaría que el sistema
-->
de codificación en el caso
-->
de nuestro idioma que es el
-->
español y tiene unos
-->
caracteres especiales ese
-->
ASCII no te va a funcionar
-->
bien cuando es español
-->
porque porque los
-->
caracteres especiales como
-->
la ñ y la tilde te lo
-->
va a marcar con no lo va
-->
a entender entonces yo te
-->
aconsejo en su defecto que
-->
no te va a cambiar si no usas
-->
dos tipos de de codificación
-->
o usen su defecto UTF 8 o en
-->
su defecto Windows 12 52
-->
entonces aquí no hay mucho
-->
problema con el ASCII porque
-->
los datos están en inglés
-->
pero acostúmate a usar UTF
-->
8 mejor y ahora eso como
-->
recomendación no te va a
-->
cambiar y ahora pasa lo
-->
siguiente analiza que el
-->
carácter de separación que
-->
tengo el CSV es coma y por
-->
ejemplo este defecto aquí en
-->
el separador de campo está
-->
punto y coma entonces dale
-->
aquí clic y escoge el
-->
carácter de separación si
-->
no está ahí hay una opción
-->
que dice custom que puedes
-->
escoger el carácter que no
-->
está aquí tengo la coma y
-->
escojo coma por favor. Nota
-->
también que aquí en el preview
-->
que tengo tengo unos
-->
encabezados que dice Jim
-->
Rayde y Ney pero él me
-->
colocó un encabezado que
-->
dice columna cero porque si
-->
sabe que tu archivo tiene
-->
encabezado por favor chulea
-->
aquí donde dice y ya después
-->
que tiene la configuración
-->
dale un refresh y ese
-->
refresh te va a mostrar los
-->
datos con la configuración
-->
correcto no sé si hay
-->
alguien que va a comentar
-->
algo. Ese refresh que está
-->
ahí muy ojo lo siguiente ese
-->
refresh lo que hace ahí
-->
es que toma del archivo
-->
que tiene 50 filas tú puedes
-->
cambiar el preview ese que
-->
tiene ahí ese preview que
-->
está aquí son 50 filas
-->
nada más nada más el archivo
-->
tiene 25 pero viene un preview
-->
por defecto a 50 tú puedes
-->
cambiar eso que está ahí
-->
cómo te afecta el preview ya
-->
te digo que te afecta el
-->
preview esto es lo mismo que
-->
el talent data preparation
-->
ya te digo en qué te
-->
afecta ve entonces ya después
-->
que mira visualmente que
-->
tu archivo está estructurado
-->
de forma correcta vemos que
-->
tenemos dos columnas
-->
estructuradas de forma
-->
correcta vayamos aquí donde
-->
dice next
-->
nota que el archivo es formato
-->
ccv recordará que los ccv
-->
no guardan tipo de datos el
-->
ccv solamente guarda los
-->
datos ahora nota que la
-->
herramienta te está
-->
mostrando aquí la estructura
-->
que es gen raide y ney lo
-->
como como columna pero le
-->
ha colocado un tipo de
-->
datos que es integer y
-->
stream de dónde saca eso
-->
bueno lo que hace eso es
-->
que a partir del preview
-->
que tiene mide a los datos
-->
analiza y proyecta qué tipo
-->
debería ser como el primero
-->
era numérico proyectó para
-->
que sean integer como el
-->
segundo tenía puro texto
-->
entonces proyectó a stream
-->
tienes que tener en cuenta
-->
que esto lo hace el preview
-->
por ende puede haber un
-->
error porque quizás en la
-->
línea cincuenta y uno en la
-->
fila cincuenta y uno hay
-->
una letra entonces lo
-->
clasificó como integer y
-->
en realidad que era una
-->
letra entonces ahí tiene
-->
que estar muy pendiente que
-->
puede haber un error en la
-->
clasificación por la forma
-->
en que él internamente lo
-->
clasifica ese integer y
-->
stream son tipos de datos
-->
de java entonces de aquí
-->
finish y automáticamente
-->
lo que hace es que en la
-->
metadata te crea aquí un
-->
árbol y te muestra el
-->
archivo generado voy a
-->
borrar este que tengo
-->
aquí de ejemplo bueno aquí
-->
tengo uno de que como que
-->
estaba haciendo alguna
-->
prueba y lo dejé ahí bueno
-->
y ya está listo entonces
-->
sigamos la herramienta de
-->
tel está empezada para como
-->
su nombre dice extraer es
-->
decir leer de fuentes de
-->
entrada transformar los
-->
datos y cargarlos a una
-->
fuente diferente o a la
-->
misma fuente en este caso
-->
me piden que quiero leer
-->
como tal los datos de ese
-->
archivo entonces hay
-->
diferentes formas de hacer
-->
lo mismo voy a empezar con
-->
la primera la primera es
-->
la más fácil quiero leer
-->
los datos que están en este
-->
archivo que está géneros
-->
está claro que el tal en no
-->
te guarda en este punto no
-->
te guarda los datos del
-->
archivo lo que te guardas
-->
la metadata o sea pocas
-->
palabras los datos de las
-->
columnas y en qué orden
-->
están toma ahora este
-->
género le da lo selecciona
-->
aquí sostenidos y lo vas a
-->
soltar en el canvas suéltalo
-->
acá y ahí lo que te va a
-->
mostrar son diferentes
-->
componentes con el cual el
-->
tal en detento que puedes
-->
procesar esos datos en la
-->
mayor parte de los casos el
-->
componente que está por
-->
defecto es el componente
-->
ideal para la metadata que
-->
escogiste des cuenta que por
-->
defecto aparece te file
-->
input delímite entonces para
-->
aprendernos algo de tal en
-->
los componentes de tal en la
-->
mayoría empiezan en te te
-->
minúscula de tal en si
-->
tiene el el si contiene la
-->
palabra input significa que
-->
va a ser de entrada así que
-->
que voy a leer si tiene output
-->
significa que es de salida
-->
significa lo siguiente te
-->
file input delímite voy a
-->
leer un archivo de entrada
-->
de tipo ccv y tú dices y
-->
cómo convierto eso un
-->
archivo es decir cómo
-->
escribo un archivo de
-->
salida delímite entonces va
-->
a buscar ya un componente
-->
que es te file output de
-->
límite entonces está muy
-->
parecido el mismo nombre
-->
lo que te va a cambiar es
-->
el input o output en su
-->
efecto como ese es el que
-->
más conviene vamos a darle
-->
aquí ok perfecto
-->
darle clic en el componente
-->
que agregamos y nota que
-->
la perspectiva de abajo
-->
más específicamente en la
-->
pestaña de componente te
-->
da unas pequeñas
-->
características de ese
-->
componente la mayoría de
-->
componentes tienen estas
-->
cinco configuraciones basic
-->
avance dinámica y
-->
documentation vamos a tratar
-->
en no voy a entrar tan en
-->
detalle porque voy a
-->
oprimos de haciendo el
-->
detalle y pierdo mucho
-->
tiempo pero si tiene alguna
-->
duda por favor y me la
-->
avisa yo en pronto en en
-->
otro espacio diferente nos
-->
podemos conectar yo le
-->
explico cualquier cosa listo
-->
aquí tengo un componente
-->
de entrada ahora quiero
-->
formatear este componente
-->
entonces la herramienta
-->
tiene diferentes
-->
componentes para formatear
-->
listo voy a usar voy a
-->
colocar el más usado para
-->
agregar un componente en el
-->
canvas ya ve que la primera
-->
forma es tomar el metadata
-->
y soltarlo aquí para
-->
agregar un componente
-->
diferente ahora voy a
-->
hacerlo de esta manera voy
-->
a escribir el nombre del
-->
componente yo te voy a
-->
entregar a ti una
-->
documentación donde están
-->
los diferentes componentes
-->
de ya de talent creo que
-->
parece carece de sentido en
-->
que yo haga una diapositiva
-->
y te explique componente
-->
por componente porque
-->
perdemos ahí no alcanzamos
-->
las seis horas del día
-->
de hoy para aplicar de
-->
todos los componentes que
-->
tienen entonces te voy a
-->
tratar de colocar los
-->
componentes que más
-->
requieres ahora vamos a
-->
agregar el siguiente cómo
-->
así estando aquí en el
-->
canvas darle clic aquí en
-->
el canvas vamos a buscar
-->
un componente que se
-->
llama tema más de mapeo
-->
entonces empieza con té y
-->
hazte cuenta que te
-->
aparece un menú una lista
-->
incremental de los
-->
componentes que empiezan
-->
con té dale ahora eme y
-->
empieza a colocar los
-->
componentes que empiezan
-->
por té eme una lista
-->
incremental en este caso
-->
me interesa ese tema que
-->
está ahí que estoy
-->
buscando le puede dar enter
-->
o le puede dar clic yo le
-->
di enter y me trae el
-->
componente la otra forma
-->
que tú puedes agregar un
-->
componente entonces aquí
-->
al canvas ya te dije ya
-->
me fui de la metadata
-->
hasta acá ya creé uno
-->
aquí en el centro la otra
-->
sería la siguiente que lo
-->
vamos a buscar en esta
-->
paleta entonces esta
-->
paleta tiene aquí un un
-->
buscador vamos a colocar
-->
lo siguiente vamos a
-->
colocar la palabra loc de
-->
bitácora log log enter
-->
y hace una búsqueda de
-->
loc trajo muchos archivos
-->
entonces por favor
-->
colócale mejor un té loc
-->
colócale té loc mejor
-->
para que eh disminuya la
-->
cantidad de de componentes
-->
que tenía un loc
-->
colócale té loc enter té loc
-->
enter y hay varios
-->
componentes para poder
-->
hacer digamos auditorías
-->
uno de los más usados es
-->
este té loc rob
-->
té loc rob normalmente es
-->
un componente que hago a
-->
nivel de developer o sea
-->
perdón inversión de
-->
desarrollo inversión de
-->
desarrollo en el que estoy
-->
probando y seguramente ya
-->
en versión de producción
-->
ya que después que está
-->
testiado ya quitas esos
-->
té loc rob que utilizaste
-->
para ser mucho más
-->
eficiente tu tu job
-->
entonces a nivel de de de
-->
developer o de del entorno
-->
de developer mientras
-->
desarrollo voy a usar este
-->
té loc rob para probar lo
-->
como los elementos que vaya
-->
agregando en el té loc en el
-->
en el canvas para agregar
-->
este señor toma el té loc
-->
rob clic sostenido y lo
-->
sueltas aquí en la canva
-->
sí sí
-->
me sacó ah ah ya eh porque
-->
hay una etapa hay una
-->
etapa en el entorno
-->
intermedio que es Cuba en
-->
Cuba eh debería reflejar
-->
exactamente lo que está en
-->
producción aclaro la palabra
-->
debería pero en la vida real
-->
no es así en el en la vida
-->
real no están así entonces
-->
en realidad eso me
-->
quedarían en Cuba donde si
-->
hay un error lo replico
-->
en Cuba y verifico para ver
-->
cuál es y ya a nivel de
-->
producción eso no deberían
-->
estar aclaro que esto en
-->
un mundo ideal eh a veces
-->
un mundo ideal no está en
-->
en el en las empresas que yo
-->
he trabajado a veces producción
-->
va va más arriba que Cuba
-->
sí eh en el mundo ideal
-->
sería así pero la pregunta es
-->
interesante porque a veces la
-->
teoría no cuadra con con la
-->
vida real a veces a a a
-->
solo nos tocó un error que
-->
había pero el error era
-->
habitada para un cliente
-->
entonces corrimos el riesgo
-->
de corregirlo en producción
-->
y entonces ahí producción
-->
se nos fue más adelante que
-->
en la vida real en Cuba
-->
¿Por qué? Porque era vital
-->
ese cliente no sabía que
-->
corregir un pequeño problema
-->
ahí la teoría pues no se
-->
aplicó como debería pero a
-->
final no se no se podía
-->
perder el cliente. Listo
-->
entonces ya tenemos los
-->
componentes esto que
-->
necesitamos entonces este
-->
componente de géneros que
-->
está aquí es un componente
-->
de entrada que vale los
-->
datos que tiene el archivo
-->
géneros tema va a mapear
-->
y Telo me va a escribir los
-->
datos entonces en consola
-->
ahora vamos a lo siguiente
-->
ahora vamos a unir este
-->
señor con este tema listo
-->
hay diferentes formas de
-->
unirlo me voy a lo más
-->
básico entonces la primera
-->
forma de unirlo es la
-->
siguiente le da clic derecho
-->
sobre el componente que
-->
vas a unir clic derecho y
-->
aquí te aparecen dos
-->
opciones una opción que
-->
dice fila y disparadores
-->
vamos a coger donde dice
-->
fila escojamos aquí main
-->
te aparece por defecto una
-->
flecha y coloca esa flecha
-->
en el centro del componente
-->
que vas a unir y te aparece
-->
ahí y te conecta ya te lo
-->
hace la unión ahí perdón
-->
aquí se me fue la lista
-->
claro como no listo ya
-->
aquí encontró seta escoja
-->
el componente que voy a
-->
conectar con el con el
-->
otro que sería el género
-->
va a contarlo con el tema
-->
le voy a clic derecho en
-->
géneros y de aparecerme un
-->
menú en el menú voy a
-->
entrarle que se dice fila y
-->
voy a escoger la opción main
-->
me debería ahora crear una
-->
flecha y esa flecha la voy
-->
a conectar al centro del
-->
gráfico o el icon del
-->
componente que doy clic
-->
aquí sí ya vamos entonces
-->
vamos a hacerlo entonces de
-->
esa forma que el nombre la
-->
flecha viene de esta
-->
manera listo ya digo vamos
-->
a unir ahora este tema con
-->
este teló ro entonces vamos
-->
a unirlo de forma diferente
-->
dele clic en el componente
-->
del tema y note que ahí le
-->
aparece una flechita en
-->
naranja hay algunos que le
-->
gustan y parece engorrosa
-->
esta forma pero como esta
-->
flechita aquí y la suelta
-->
en el teló ro ahora hay
-->
unas uniones de componentes
-->
dentro del talent que te
-->
exige que le coloques un
-->
nombre a la conexión
-->
entonces aquí lo que voy a
-->
hacer es lo siguiente
-->
partiendo que el map va a
-->
formatear la salida voy a
-->
colocarle lo siguiente salida
-->
on the record formateada y
-->
eso me ayuda a leer de forma
-->
más transparente el flujo de
-->
mi proceso sería conveniente
-->
en que le llegue a sus
-->
nombres a los diferentes
-->
flujos para que cualquier
-->
persona que lea tu yo pues
-->
lo pueda entender
-->
conecta por favor como tú
-->
quieras y si desea conectan
-->
clic derecho o como
-->
ustedes quieran me gusta más
-->
clic derecho y le doy fila me
-->
parece mucho más sencillo se
-->
llama salida on the record
-->
formateada nota que en el
-->
caso particular de la unión
-->
de géneros con más no te
-->
pidió el nombre pero sería
-->
interesante en que a esos
-->
flujos le diga sus nombres
-->
concretos de lo que hace
-->
entonces en el caso de ese
-->
road uno que está ahí
-->
entonces vamos a cambiarle un
-->
poco el nombre de road uno
-->
cómo se cambia ese road uno
-->
vamos a darle dos clic no
-->
doble clic sino dos clic
-->
primer clic voy a darle clic
-->
en road uno road uno aquí
-->
después le doy otra vez
-->
clic y me abre para cambiar
-->
el nombre no es doble clic
-->
sino dos clic primero un
-->
clic y después el siguiente
-->
clic lo voy a llamar géneros
-->
on the record datos
-->
claro que esta es la
-->
parte básica del talen ya
-->
no me voy a meter con bit
-->
data espero no demorar mucho
-->
con esto pero esto es
-->
primordial para que pueda
-->
entender lo que vamos a
-->
hacer
-->
note otra característica de
-->
la opción de talen es que
-->
cuando tienes un componente
-->
y el componente tiene un
-->
elemento en rojo del lado
-->
derecho como lo notaste ahí
-->
en el tema ese tema que está
-->
ahí significa que hay un
-->
error o hay o todavía no
-->
has configurado el componente
-->
entonces el problema que
-->
tengo aquí ya por experiencia
-->
y como lo conozco es que
-->
todavía no he configurado el
-->
tema por eso me aparece el
-->
rojo entonces el rojo aparece
-->
o porque hay una mala
-->
configuración o porque todavía
-->
no has configurado el
-->
componente si intentamos
-->
ejecutar con ese rojo pues
-->
no va a ser un error
-->
vamos a darle aquí doble
-->
clic por favor
-->
entonces nota el típico
-->
trabajo de mapeo en el
-->
de la entrada como viene de
-->
la fuente esas variables me
-->
van a permitir formatear los
-->
datos como yo quiera estos
-->
ejemplos lo hago más adelante
-->
y acá tengo la salida que
-->
quiero que salga en ese
-->
caso del formateo
-->
nada más quiero que salga lo
-->
siguiente
-->
toma los archivos que ven a
-->
aquí toma estos elementos
-->
que están acá seleccionados
-->
con control todos control
-->
da control y da clic para
-->
selecciones todos y los
-->
sueltas de este lado
-->
nota que aquí no hay ninguna
-->
transformación solamente lo
-->
que quiero hacer es cambiarle
-->
el nombre a las columnas de
-->
salida nota que aquí tengo
-->
los elementos que entra y
-->
acá tengo los elementos que
-->
salen por defecto la salida
-->
viene de los de los
-->
encabezados vendría con los
-->
mismos nombres de entrada
-->
pero yo quiero cambiarlo en
-->
muchas veces o hay veces
-->
que quiere cambiar los
-->
tipos de datos para cambiar
-->
esto vete acá a la parte de
-->
abajo que hay una tablita le
-->
da clic
-->
en la primera columna que
-->
se llama y en re y le das y
-->
la vas a llamar género
-->
perdón lo va a llamar
-->
identificador
-->
acostumbrate a algo en
-->
esta herramienta eso al
-->
final es un table es un
-->
otro table en java porque
-->
no te ha creado con java el
-->
java tiene un problema un
-->
pequeño boque a veces yo
-->
voy a poner clic por afuera
-->
y a veces no se automatiza
-->
el no se actualiza perdón el
-->
dato acostumbrate que cuando
-->
vayas a cambiar algún table
-->
creo que como buena práctica
-->
darle un enter porque hay
-->
veces que no se actualiza
-->
o sea mejor darle enter que
-->
darle clic por afuera y
-->
cambia el segundo elemento a
-->
nombre enter si bueno va a
-->
colocar la mayúscula
-->
colócalo allá como no
-->
no me califico aquí para
-->
considerarlo de perfecto no
-->
hago ninguna transformación
-->
más aquí voy a darle aquí
-->
ok y es bien cuando tú
-->
tienes un yo recordará que
-->
tú lo que hace gráficamente
-->
unes componentes configuras
-->
componentes y el yo que
-->
internamente tiene que generar
-->
un código esa parte es muy
-->
importante para poder detectar
-->
código más rápidamente y
-->
puede hacer más rápido en la
-->
parte de corrección nota que
-->
aquí en la parte de aquí de
-->
abajo aquí hay una pequeña
-->
pestaña que dice designer y
-->
co dale clic aquí en co por
-->
favor antes por favor guarda
-->
si quieres guarda el por si
-->
acaso y aquí lo que está
-->
dando es como transforma esa
-->
unión de componentes en un
-->
código java que va a
-->
ejecutar después aquí abajito
-->
aquí en la parte de abajo del
-->
del canvas está una
-->
pestañita muy pequeña que
-->
dice designer o co si das co
-->
aquí te va a aparecer el
-->
código generado ah listo
-->
acá en el en el disque este
-->
que está acá aunque por
-->
defecto cada vez que tú
-->
ejecutas es él va a guardar
-->
los el yo esto mismo lo
-->
puedes ver acá en la en la
-->
pestaña de acá abajo que
-->
dice visor de código te va a
-->
mostrar lo mismo yo creo que
-->
me parece mucho más sencillo
-->
aquí en co esto es fundamental
-->
cuando hay unos errores
-->
entonces detectarlos más
-->
rápidamente en qué componentes
-->
que está el error y cuál
-->
error está aquí no aparece
-->
ningún punto rojo este no
-->
aparece ningún punto rojo
-->
indica que no hay ningún
-->
error de codificación en el
-->
componente cuando generó
-->
el el el el el el el el
-->
código ¿Cómo hacemos para
-->
ejecutar esto? Bueno, vaya
-->
forma, la primera la voy a
-->
ejecutar, la más sencilla es
-->
te vas en la toolbar y vas a
-->
tener acá un un play que es
-->
símbolo oficial de ejecutar.
-->
Dale aquí ejecutar.
-->
Entonces, al final lo que
-->
ejecutas el código ya va
-->
generado. Listo, aquí lo que
-->
está haciendo entonces es
-->
que este te lo rojo que es
-->
un elemento para visualizar
-->
datos en consola te está
-->
mostrando cuáles son los
-->
datos que trae ese archivo.
-->
Nada del otro mundo.
-->
Ahí aparte de eso te está
-->
mostrando cuántas filas va
-->
leyendo, cuál es el promedio
-->
de lectura de fila para que
-->
tú puedas darte una idea de
-->
cuánto puede demorarte un
-->
job con base a cuántos
-->
datos tienes. Seguimos
-->
por favor. Qué pena que vaya
-->
un poco más rápido porque
-->
es que sé que me va a
-->
quedar corto el tiempo.
-->
Entonces voy a seguir lo
-->
siguiente. En este mismo
-->
yo voy a leer otro archivo,
-->
¿OK? Para esta parte,
-->
entonces, voy a hacer lo
-->
siguiente. Voy a leer un
-->
archivo en formato XML.
-->
Para esta cuestión voy a
-->
voy aquí a file XML, como
-->
sé qué formato XML, clic
-->
derecho y voy a decir crear
-->
file XML. Este archivo lo
-->
voy a llamar empleados. Voy
-->
a dar aquí next. Y como
-->
todo, hay componentes que
-->
tienen características
-->
diferentes. Entonces, aquí
-->
me pregunta, esto pasa mucho
-->
con los JSON y los XML, si
-->
la metadata que voy a hacer
-->
es de entrada o salida. En
-->
este caso es de entrada
-->
porque voy a leer un
-->
archivo. ¿Para qué sería el
-->
de salida? Para crear un
-->
archivo con ese formato.
-->
Pero como lo que voy a
-->
hacer es voy a leer en
-->
XML, entonces voy a coger
-->
XML entrada. Y ahora voy
-->
a buscar en la carpeta de
-->
recursos, subo a la carpeta
-->
de datos y voy entonces a
-->
XML y ahí aparece un
-->
emplodge XML. File XML. ¿Sí
-->
cogiste file XML? Sí, sí.
-->
Sí, ese emplodge que tienes
-->
ahí, sí, exactamente.
-->
Escojamos este emplodge que
-->
está aquí a abrir. Y me
-->
aparece la estructura del
-->
XML. Vamos a darle aquí
-->
y ahora recordarás, no sé si
-->
de pronto lo tienes claro, es
-->
que cuando yo voy a leer un
-->
archivo o cuando voy a leer
-->
un archivo de XML existe
-->
unos lenguajes. En el caso
-->
particular del señor XML
-->
existe un lenguaje que se
-->
llama XML y el del se llama
-->
JSONPAT. En este caso la
-->
herramienta en particular pasa
-->
a lo siguiente con la
-->
herramienta. La herramienta
-->
usa XMLPAT para XML y usa
-->
JSONPAT para leer JSON.
-->
Listo, entonces no voy a
-->
entrar mucho en detalle de
-->
cómo funcionan los lenguajes
-->
de consulta XML y JSONPAT
-->
que son muy parecidos,
-->
pero básicamente velo de
-->
este punto de vista. Para el
-->
señor JSONPAT, este representa
-->
el el el ROOT, o sea, el
-->
ROOT del archivo, mientras
-->
que para el XML lo menciona
-->
como ROOT así, ROOT así.
-->
Entonces, aquí te pregunta,
-->
oye, ¿De dónde el absolute
-->
PACK, XPACK que está aquí,
-->
que es, ¿De dónde vas a
-->
empezar a leer los archivos?
-->
Como este señor es un
-->
ARRAY, el problema que tengo
-->
no lo hago usted ya, es que si
-->
yo uso como absolute PACK el
-->
ROOT y pongo los datos que
-->
quiero leer, el row este que
-->
está aquí, y yo intento
-->
mostrar los datos, o sea,
-->
para que me muestre los
-->
datos, va a tener un problema
-->
en el formato. ¿Por qué?
-->
Mirad a cuenta que el archivo
-->
me lo llevo todo de manera
-->
horizontal. Y lo que pasa es
-->
que hay un ARRAY de XML, o
-->
sea, de elementos de XML, hay
-->
un ARRAY. Entonces, ¿Qué
-->
pasa? Aquí me toca hacer lo
-->
siguiente, que es, en
-->
este caso, que tengo que
-->
leerlo desde el ROOT. O sea,
-->
tiene que coger este ROOT y
-->
cogerlo como el absolute
-->
PACK, o sea, ¿De dónde voy
-->
a empezar a leer los
-->
archivos? Y ahora, vas a
-->
coger todas estas columnas,
-->
le vas a dar, escoge la
-->
primera, presiona SHIFT, y
-->
vas hasta el final para
-->
seleccionar todo. Nuevamente,
-->
la primera, le das SHIFT
-->
aquí a EMAIL, y las sueltas
-->
de este lado. Y le das
-->
aquí un REFRESH, y de
-->
pronto te ha mostrado, y
-->
te muestra la medida para que
-->
veas la diferencia en que te
-->
va a mostrar los datos. Ya
-->
te muestro los datos en el
-->
formato establecido. ¿Qué
-->
pena que le haya explicado
-->
esto tan rápidamente, lo del
-->
XML PACK y lo del JSON
-->
PACK. Es que cuando hagas,
-->
por favor, dele aquí un
-->
REFRESH PREVIEW para que
-->
le muestre y usted pueda
-->
ver visualmente si los
-->
datos, en realidad, están
-->
en el formato adecuado.
-->
Vamos a darle aquí, entonces,
-->
NEXT. Te muestra cómo
-->
quedaría la metadata con
-->
los datos que él interpretó,
-->
a partir del PREVIEW, y le
-->
damos aquí FINISH.
-->
Entonces, vamos aquí en el
-->
mismo job, este que está
-->
aquí, por favor, se va a la
-->
metadata y expande ahora,
-->
suelta, escoge el archivo
-->
creado, selecciona, click
-->
sostenido, y lo suelta
-->
aquí en el canvas. Y le va
-->
a aparecer el más
-->
recomendable que es TEFA
-->
y el INPUT. ¿XML? OK.
-->
Pavel, en este caso, elimina
-->
el el el employee ID,
-->
selecciona ahí de DAS con
-->
SUPRIMIR. O si quieres, hazle
-->
lo siguiente, escoge ROW,
-->
mejor, escoge ROW, Pavel,
-->
escoge ROW, y lo sueltas en
-->
el solute PAP. Suéltalo en
-->
el solute PAP, para ese
-->
sobrescribe. Suéltalo ahí,
-->
ahí, suéltalo. Ahí, listo,
-->
y le das las columnas de
-->
employee, click ahí, shift, y
-->
le das click, ole, declash
-->
shift, baja con el clor,
-->
clíso sostenido ahí, shift
-->
sostenido, hasta el final,
-->
y le das click ahí, perfecto.
-->
Pasa todos a esos ahora a
-->
primero Haz ref介, a bueno,
-->
listo. Haz refresh, si
-->
refresh un momento, por
-->
favor, mientras, listo,
-->
perfecto, ahí lo tienes.
-->
Dale next, dale finish.
-->
Cambia, por favor, el donde
-->
estás ahora en code, cambia la
-->
design exactamente, y ahora
-->
suelta, ese señor lo
-->
suelta de este lado.
-->
Perfecto, lo sueltas ahí.
-->
y OK, agreguemos ahora un
-->
map por favor, un tmap, listo, a un tmap y agrega ahora no un telorode, sino voy a formatearlo a un
-->
archivo diferente de salida, voy a formatearlo a un json. Entonces si lo que vas es a una salida,
-->
ya cuando tú empiezas a acostumbrarte en la herramienta ya sabes cómo debería llamarse el
-->
componente sin necesidad de que lo sepas de memoria. Como lo que voy a crear es un archivo
-->
de salida entonces necesariamente tienes que empezar con tfile. Entonces tienes que empezar
-->
con tfile. Ahora, partiendo de que lo quiero, un archivo de salida json, entonces tiene que
-->
ser tfile json. Te pregunto ahora, es un archivo, como el archivo lo voy a escribir,
-->
tiene que ser de output, entonces escribe output aquí y te empiezas a colocar todo lo que
-->
empiezan por output. Ahora busca el formato en que lo quieras, que sería json, en pocas
-->
palabras, busca un componente, te voy a colocar aquí, que sea este nombre te lo voy
-->
a colocar aquí, sea tfile output porque es de salida, voy a escribirlo y aquí puede ser
-->
json, xml, etcétera, aquí sería json y escoge ese componente como tal. Procede a unir como
-->
hicimos en el joc anterior, en el bejebro anterior, perdón, conecta aquí el tmap y el
-->
tmap conectarlo aquí al tfile. Coloca lo siguiente ahora, si colocas salida donde
-->
formateada, por defecto los nombres tienen que ser únicos en el joc, entonces voy a cambiar el
-->
nombre de salida, underscore archivo, underscore json, pero recuerda que los nombres que coloque
-->
deben ser únicos en el joc, si intento colocar un nombre que ya exista me sale un error
-->
diciéndole de que no podía utilizar ese nombre. En realidad que el talent en la
-->
documentación que tiene no tiene buenas prácticas, o sea, perdón, no tiene un módulo
-->
que diga de buenas prácticas al nivel de nombrado. Tiene que basarse netamente en los
-->
estándares que haya definido a nivel de desarrollo. Ahora, tengo algunos documentos de algunos
-->
proyectos que han hecho de ciertas buenas prácticas de cómo están nombrándolos,
-->
que quizás podría compartirtelos y me escribes a mi correo, al final te digo mi correo y
-->
me escribes y te lo mando los documentos de algunas que yo he seguido y he tomado
-->
algunas cositas de acá, algunas cositas de allá y defino entonces un documento de buenas prácticas.
-->
Esto es perfecto. Solamente para practicar, bueno y aquí sería buena práctica en que
-->
esos nombres no sean genéricos row 1, row 2, entonces solamente lo voy a dar genérico por
-->
cuestión de tiempo, pero para practicar cómo hacemos para cambiarlo. Primero le das clic en
-->
el nombre y después le da otra vez clic y se estabilita para que puedas cambiarlo. Entonces
-->
aquí llámalo empleado. Ya te había dicho, cuando veas el punto rojo en algún componente indica
-->
o un error de configuración o falta de configuración, en este caso es falta de
-->
configuración con el tmap. Vamos aquí el tmap. Aquí te recomiendo lo siguiente,
-->
cuando vayas a mapear de aquí para acá, trata de ampliar un poco más esto que está
-->
aquí porque a veces se te colapsan todos en un mismo, todos los elementos de entradas
-->
te colapsan en un solo elemento. Entonces como buena práctica creo que aquí amplía acá
-->
y nada más lleva por favor tres columnas, las que tú quieras. En este caso voy a
-->
llevarme las tres primeras. Employee, voy a seleccionar con control y con clic. Employee,
-->
last name, first name y las voy a soltar de este lado nada más.
-->
Vamos aquí entonces. Y pasa lo siguiente, ¿para qué hizo esto de esta forma? Muy importante.
-->
En este caso tengo un job, pero note lo siguiente, tengo una división y estos
-->
colores me lo están indicando en que estos tres componentes que están aquí no están
-->
integrados con estos componentes de acá. ¿Qué es lo que está pasando internamente?
-->
Que en realidad ese job está dividido en dos subjobs. Si los componentes que tú tienes no están
-->
unidos, cada componente se ejecuta como un subjobs diferente. Si me decís, va ahí, va conmigo.
-->
Buena pregunta, que es lo que vamos a resolver ahora. Por defecto la herramienta no lo ejecuta
-->
en paralelo. La herramienta lo ejecuta, abro comillas doble, en la forma en que usted
-->
lo agregó. Partiendo del hecho en que yo agregué el primer subjob, este que está aquí,
-->
me ejecutaría este subjob primero y después me ejecutaría este subjob de acá.
-->
Aclaro que si vas a hacer esto con subjob, es mala práctica hacerlo de esta forma,
-->
porque una persona que lea el subjob no sabe en realidad cuál empieza,
-->
porque yo fácilmente pude haber colocado este señor de primero,
-->
pero en realidad no fue el primero que agregué. Entonces, pero bueno,
-->
así como está, está divido en dos subjobs. A nivel pragmático que viene siendo eso,
-->
como esto se ejecuta con Java, prácticamente muy rápidamente te lo voy a decir qué es lo
-->
que está pasando. En este caso, listo, aquí voy a crear aquí un diagram. A la pregunta,
-->
que creo que fue la que me hizo bueno, que está bien la pregunta y la resuelvo de esta forma,
-->
es si los subjobs no se ejecutan en paralelo, técnicamente lo que está pasando es lo
-->
siguiente. Tú tienes un procesador y el procesador está dividido por varios core,
-->
verdad? Cada core lo que hace es que ejecuta un hilo de un proceso en particular. El
-->
proceso velo como el job cuando lo ejecuto. Entonces, voy a colocar aquí este cuadro aquí,
-->
que no me salió tan buena la imagen aquí. Significa lo siguiente, que yo aquí tengo,
-->
por ejemplo, un core 1. Aquí tengo core 1, duplicar aquí, tengo el core 2. Recuerden que
-->
los procesadores hoy en día pues tiene varios core. Tengo un sola pastilla, tengo un procesador
-->
y ese procesador está compuesto por varios core. Y a nivel de servidores, tú puedes tener
-->
varios procesadores y cada procesador tiene un core diferente, duplicar aquí. Entonces,
-->
yo tengo un subjob 1, un subjob 1 y tengo un subjob 2. ¿Por qué tengo dos subjobs? Porque
-->
dos están unidos. Si están unidos, notará que él va solamente a reventar con un solo
-->
color muchas veces. Mire lo siguiente ahora. Si no se ejecutan en paralelo, significa
-->
entonces que cuando yo ejecute, va a tomar el core que esté ocioso, o sea que esté sin hacer
-->
nada. Primero ejecutaría el subjob 1, cuando termine el subjob 1, ejecutaría el subjob 2.
-->
O sea que los tiempos de respuesta ahí te van a demorar más tiempo. Eso depende porque muchas
-->
veces quisiera que se ejecutara uno primero y después el otro. Si se ejecutan en paralelo,
-->
entonces significa en que él va a intentar buscar, intentar porque muchas veces no lo
-->
va a intentar buscar o ejecutar este subjob en el core 1 y este subjob en el core 2. Y ahí se
-->
ejecutan de forma paralela, dando tiempos de respuesta mejores. Por defecto, por defecto,
-->
esto al final viene siendo Java lo que estoy mencionando, por defecto, por defecto la
-->
herramienta lo ejecuta primero uno y después ejecuta el otro. Es decir, no lo ejecuta en
-->
paralelo, por favor.
-->
Epa, fue muy rápido porque hay pocos registros y el formateo es. Entonces para que usted
-->
vea esto, haga lo siguiente, busque un componente que se llama T-sleep de sueño,
-->
slip slip de slip de slip que aparece como un relojito aquí para detener un
-->
poquito este yoke aquí de slip. Conecte el telo row
-->
con ese slip
-->
conecte el telo row con slip. Dele doble clic al slip para ver la
-->
configuración doble clic y te debe aparecer acá abajo la configuración
-->
aquí me está diciendo que por defecto estaba usando en segundos un segundo
-->
entonces vamos a ejecutar este yoke que está aquí
-->
note que ahora estoy ejecutando el primer yoke y todavía el segundo yoke
-->
no ha empezado a ejecutar debería entonces por la teoría de la herramienta
-->
cuando termine el de arriba seguir con el de abajo en términos pragmáticos
-->
cuando ejecuté está usando un treac un hilo de ejecución el treac va a
-->
intentar ejecutarlo sobre un solo cor
-->
efectivamente vea que lo ejecutó y terminó ahí entonces. Déjelo un segundo
-->
porque son 25 registros me está demorando 25 segundos ahí. Comprobado
-->
de forma secuencial y normalmente en el orden en que tú hayas agregado los
-->
subyokes. El caso de pavel tienes un error voy a ver qué error tienes
-->
a ver un momento y carga
-->
darle error
-->
vete a tu co un momento a tu co y sería bueno para ver aquí co para ver si
-->
hay un error. Nota que hay unos puntos rojos esos puntos rojos que hay un
-->
error de compilación en el yoke dale clic en alguno de los puntos rojos al
-->
parecer tienes un error en el vete al design en un momento
-->
nuevamente
-->
ahí está en realidad el error ahí está. Pavel mira lo siguiente lo que
-->
pasa es que hay n n columnas que están mapeando o sea tienes siete
-->
columnas que están mapeando una sola entonces hay un error de
-->
compilación ahí haz lo siguiente selecciona del lado derecho selecciona
-->
las dos filas esa fila listo que está aquí y ahora en la parte inferior del
-->
lado derecho vas a tener un más y un x entonces dale x
-->
listo ahora haz lo siguiente vete del lado derecho y amplía mejor la
-->
salida verticalmente para que sea verticalmente
-->
para que sea porque eso pasa porque es muy pequeño ahí cógelo ahí ahí sale
-->
cuando vas a la puntica y sale a veces listo perfecto ahora selecciona las
-->
columnas que quieras migrar pasa cuatro si tú quieres cuatro
-->
date cuenta que ahora estoy mapeando uno a uno y el bueno que estamos
-->
viendo de 7 a 1 dale ok ahora leyes y ahora sí vuelve a ejecutar para ver
-->
ahí entonces estamos ejecutando de forma secuencial para que pueda ejecutar el
-->
segundo tiempo que terminar entonces el subyoke del primero si tú deseas
-->
ejecutarlo de forma paralela te vas en la configuración del acá en la en la
-->
perspectiva de acá abajo te vas en la configuración del yo de la
-->
perspectiva entonces cuál sería sería la primera pestaña que tiene igual
-->
nombre del yo que dice trabajo yo transforme básica talidad clic aquí
-->
en la primera pestaña de la perspectiva de abajo
-->
aquí hay algo que dice extra y ve que tiene multitreat multitreate es a nivel
-->
de programación un triad y el triad va a intentar ejecutarse en un core si yo
-->
tengo dos trias significa que va a intentar buscar dos core para
-->
ejecutarse chulea por favor el multitreat
-->
y haz la ejecución nuevamente ahora con el cambio cuando cuando tú ejecutes el
-->
automáticamente y date cuenta que ahora te ejecuta de forma
-->
paralela esto ya tú tienes que entender que yo lo puedes hacer de otra
-->
forma que yo no lo haces si a buena pregunta lo que pasa es que quizás
-->
un subyoke dependa del otro por ejemplo quizás usted haga una
-->
transformación para generar un archivo y ese archivo lo necesita en
-->
segundo subyoke entonces no podría ejecutarlo multitreat porque quizás
-->
cuando lo ejecuta todavía el archivo no está listo al final depende como todo
-->
el sistema depende liso no sé si hacemos el pequeño break de 20
-->
minuticos y volvemos