Está en la página 1de 75

Taller Infosphere

DataStage
Equivida 2016
Agenda
• Introducción a Infosphere Data Stage
• Creación de Un Job
• Revisión Ejecución de un Job
• Tipos de Joins
• Creación de un Job más Complejo
• Creación de una Malla de Procesos
Agenda
• Introducción a Infosphere Data Stage
• Creación de Un Job
• Revisión Ejecución de un Job
• Tipos de Joins
• Creación de un Job más Complejo
• Creación de una Malla de Procesos
Introducción a Infosphere DataStage
• Que es?
• Herramienta de ETL (Extraer, Transformar, Cargar)
• Extrae datos desde fuentes variadas: relacional, secuencial
• Transforma los datos: Lógica de negocio, ordenamiento, filtrado, uniones
• Carga los datos a destinos variados: secuencial, relacional
• Como lo hace?
• Provee de capacidades de integración con alta performance
por medio de tecnologías de procesamiento paralelo
• Administración de ambientes de desarrollo y producción
• Importa, exporta, crea y administra metadata utilizada en Jobs
• Calendariza, ejecuta y monitorea la ejecución de Jobs
• Creación de mallas de procesos
Introducción a Infosphere DataStage
• Quién lo usa?
• Desarrolladores técnicos
• Herramienta para proyectos de integración
• Data Warehouse
• Data Marts
• CDI
• Migración de Sistemas
• Import/Export de Fuentes externas: Entes Regulatorios
Introducción a Infosphere DataStage
• Ejemplo de un Job
Agenda
• Introducción a Infosphere Data Stage
• Creación de Un Job
• Revisión Ejecución de un Job
• Tipos de Joins
• Creación de un Job más Complejo
• Creación de una Malla de Procesos
Creación de Un Job
• Ingresando a DataStage Designer
Creación de Un Job
• Selección del Tipo de Job

• Parallel: Para desarrollo con


capacidades de Paralelismo
(siempre)
• Sequence: Para mallas de
proceso
• Server: Casos particulares de
procesamiento secuencial
Creación de Un Job
• Drag& Drop de Objetos
Creación de Un Job
• Link del Flujo de Datos

• Click con botón derecho en


objeto inicial
• Sin soltar, arrastrar hasta objeto
final
Creación de Un Job
• Configurando la Entrada
Creación de Un Job
• Creando la Metadata
Creación de un Jon
• Revisando Configuración
Creación de Un Job
• Revisando Configuración
Creación de Un Job
• Aplicando una Transformación Simple
• Primero, Drag&Drop del Campo Producto
Creación de Un Job
• Configurando la Salida

• La metadata de campos se
hereda
Creación de Un Job
• Compilando el Job
• Si solicita grabar, indique SI y dele un nombre

Compilar
Creación de un Job
• Ejecutando el Job

Ejecutar
Creación de Un Job
• Revisando Resultado en Designer

• Verde, Flujo ejecutado correctamente


• Rojo, Flujo fallido
• Azul, Flujo en Ejecución
• Amarillo, Flujo en Espera
Agenda
• Introducción a Infosphere Data Stage
• Creación de Un Job
• Revisión Ejecución de un Job
• Tipos de Joins
• Creación de un Job más Complejo
• Creación de una Malla de Procesos
Revisión Ejecución de Un Job
• Abriendo Director
Revisión Ejecución de Un Job
• Revisando Resultado en Director

Status
Schedule
Log
Revisión Ejecución de Un Job
• Revisando Resultado en Director
Revisión Ejecución de Un Job
• Tipo de Información en Director
Revisión Ejecución de Un Job
• Abriendo el Monitor
Agenda
• Introducción a Infosphere Data Stage
• Creación de Un Job
• Revisión Ejecución de un Job
• Tipos de Joins
• Creación de un Job más Complejo
• Creación de una Malla de Procesos
Tipos de Joins
•Join, Lookup y Merge combinan dos o mas entradas
de acuerdo a valores de campos “llaves” definidas por el
usuario.

• Difieren en:
• Uso de memoria
• Tratamiento de registros sin matching
• Requerimientos de entrada (sort, desduplicación)

• Se discuten en los siguientes slides


Tipos de Joins
• No todos los links son iguales!
• Los links se distinguen entre:
- Entrada Primaria (Framework puerto 0)
- Secundario – en algunos casos "Referencia" (otros puertos)
• Convenciones:
Joins Lookup Merge

Primary Input: port 0 Left Source Master


Secondary Input(s): ports 1,… Right LU Table(s) Update(s)

Tip:
Chequee el tab de "Input Ordering" para asegurarse que
el link Primario sea el primero en la lista
Tipos de Joins
• Trasfondo
• Usemos un simple caso, entrada óptima:
• dos links: “izquierdo" primario, “derecho" secundario
• ordenado por llave (“Account"),
• sin duplicados en la llave

Link Izquiero (primario) Link Derecho (secundario)


CustNumber Account Account Fees
1776 Brokerage Brokerage Yes
1789 Checking Savings No
Tipos de Joins
• JOIN
Cuatro Tipos:
• Inner
• Left Outer
• Right Outer
• Full Outer

• 2 links de entrada ordenados, 1 link de salida


• “izquierdo" primario, “derecha" secundario
• Pre-orden hace “liviano” el join: pocos registros
requeridos en RAM
Tipos de Joins
• Inner Join
• Transfiere registros de ambos links siempre y cuando las
llaves contengan la misma llave
• Ambas entradas son tratadas de forma simétrica

En nuestro ejemplo, la salida sería :

CustNumber Account Fees


1776 Brokerage No
Misma salida en lookup/reject y merge/drop
Tipos de Joins
• Left Outer Join
• Transfiere todos los valores del link izquierdo y transfiere los
valores del link derecho cuando existe un match en la columna
llave.
CustNumber Account Fees
1789 Checking
String vacio
1776 Brokerage Yes
Misma Salida en lookup/continue y merge/keep

TIP: Se puede hacer lookup si:


- Izquierdo es la Fuente
- Derecho es la Tabla LU
Tipos de Joins
• Lookup usando Join/LeftOuter

Asegúrese que el link primario es listado primero


Tipos de Joins
• Right Outer Join
• Transfiere todos los valores del link derecho y sólo los valores
del link izquierdo cuando las llaves hacen match.
CustNumber Account Fees
1776 Brokerage Yes
0 Savings No
Entero 0

TIP: Se puede hacer lookup si:


- Derecho es la fuente
- Izquierdo es la LU
Tipos de Joins
• Full Outer Join
• Transfiere registros de ambas entradas cuando
hacen match
• Tambien transfiere cuando no hacen match.
• Crea nuevos campos con nuevos nombres!

CustNumber leftRec_Account rightRec_Account Fees


1789 Checking
1776 Brokerage Brokerage Yes
0 Savings No
Tipos de Joins
• Stage de LookUp
Combina:
• Un link fuente, llamado primario (0), con
• uno o mas links no duplicados, en "referencia"
ports de entrada (>0)
Fuente Una o mas LUTs • No requiere orden previo
• Permite multiples llaves y LUTs
• Manejo de excepciones flexibles
para registros sin match
0 1 2

0 1
Lookup

Output Reject
Tipos de Joins
• Si no se encuentra la referencia
• Si una llave de un registro primario no se encuentra
disponible en la LUT, se puede hacer lo siguiente:
– fail: se reporta el error y la Stage genera un fallo para abortar el job.
Este es el default.
– drop: el registro que no hizo match es eliminado
– continue: El registro de entrada es transferido y los valores dependientes
de la LUT son enviados en Nulos. OJO CON NULOS.
– output: el registro de entrada que falla el lookup es transferido a un
segundo link de salida llamado de “rechazo”

• No existe opción de capturar los registro no usados de una


tabla LU.
– Esto no es un problema!
– Compare esto con la Stage de Merge
Tipos de Joins
• Uso Stage LookUp
• Usa un campo como índice para buscar en otra tabla que normalmente
contiene otros campos relacionados.
• Sigue el modelo de tabla “en memoria”.
LUT
Indice Valor Asociado

Campo Llave: state_code […]


“TX” SC South Carolina
SD South Dakota
TN Tennessee
TX Texas
UT Utah
VT Vermont
[…]
Tipos de Joins
• Guia de Uso Stage LookUp

• LUTs debes ser suficientemente pequeñas para caber


completas en memoria, de lo contrario podrian haber
problemas de performance
• En MPP Ud debe particionar las LUTs usando el modo
entire o bien particionándolas exactamente de la misma
forma que el link primario (a veces funciona!)
• En SMP, no existe una duplicación física de la LUT
Tipos de Joins
• Editor de Stage
Tipos de Joins
• Opciones en LookUp 4 opciones:
– Fail [default]
"If Not Found" =
– Drop
Fuente sin matching
Duplicados? – Continue
– Output (link de rechazo)
Tipos de Joins
• Acciones con una LUT
Opción "Continue" :

CustNumber Account Fees


1789 Checking
1776 Brokerage Yes
Misma salida que join/leftouter y merge/keep

Opción "Output" :

Salida Rechazo
CustNumber Account Fees CustNumber Account
1776 Brokerage Yes 1789 Checking
Igual a join/inner y merge/drop No Encontrados
Tipos de Joins
• Stage de Merge
Maestro 1 o mas updates
• Permite llaves compuestas
• Multiples links de update
• Updates no encontrados
1 2
pueden ser capturados
0
• Liviana
0 1 2
Merge

Salida Rechazo
Tipos de Joins
• Stage de Merge
• Combina
• 1 link maestro ordenado y sin duplicados
• 1 o mas links ordenados de update.
• Pre ordenar hace a la stage más liviana, dado que menos
registros necesitan permanecer en memoria.
• Modelo Maestro Update:
• El registro maestro y uno o mas updates son unidos si poseen el
mismo valor de llave.
• Registros maestros no encontrados pueden:
• transferirse (default)
• eliminarse
• Registros de update no encontrados pueden ser capturados en
links de rechazos.
Tipos de Joins
• Editor Stage Merge

No encontrados maestros
Dos opciones:
– Keep [default]
– Drop
(no se puede capturar en
rechazo)
Tipos de Joins
• Stage Merge
Maestros no Encontrados = Keep

CustNumber Account Fees


1789 Checking
1776 Brokerage Yes
• Igual que leftouterjoin y lookup/continue

Maestros no Encontrados = Drop

CustNumber Account Fees


1776 Brokerage Yes
• Igual que innerjoin y lookup/reject

Ambos obtienen mismo link de rechazo de update


Account Fees
Savings No
Tipos de Joins
• Resumen Tipos de Joins

Joins Lookup Merge


Model RDBMS-style relational Source - in RAM LU Table Master -Update(s)
Memory usage light heavy light
# and names of Inputs 1 Left, N rights 1 Source, N LU Tables 1 Master, N Update(s)
Mandatory Input Sort all inputs no all inputs
Duplicates in primary input OK (x-product) OK Warning!
Duplicates in secondary input(s) OK (x-product) Warning! OK only when N = 1
Options on unmatched primary NONE [fail] | continue | drop | reject [keep] | drop
Options on unmatched secondary NONE NONE capture in reject set(s)
On match, secondary entries are reusable reusable consumed
# Outputs 1 1 out, (1 reject) 1 out, (N rejects)
Captured in reject set(s) Nothing (N/A) unmatched primary entries unmatched secondary entries
Agenda
• Introducción a Infosphere Data Stage
• Creación de Un Job
• Revisión Ejecución de un Job
• Tipos de Joins
• Creación de un Job más Complejo
• Creación de una Malla de Procesos
Creación de un Job mas Complejo
• Arrastre Objetos DB2 Connector
Creación de un Job mas Complejo
• Arrastre Objeto Sequential File
Creación de un Job mas Complejo
• Arrastre Objeto LookUp y Cree los Flujos (Links)
Creación de un Job mas Complejo
• Configure Fuente Principal
Creación de un Job mas Complejo
• Configure Fuente Principal

select cod_cobertura, txt_desc_completa, cod_producto from dsodb.coberturaida


Creación de un Job mas Complejo
• Configure Fuente Principal, ingrese metadata
Creación de un Job mas Complejo
• Revise Configuración
Creación de un Job mas Complejo
• Repita Pasos para Entrada Secundaria
• No olvide agregar la metadata (Columns)
• Revise con “View Data”

Select cod_producto, txt_desc_completa from dsodb.productoida


Creación de un Job mas Complejo
• Configure LookUp
• Arrastre cod_producto
• De Ok en la advertencia
que aparecerá
Creación de un Job mas Complejo
• Arrastre y Cree los campos de Salida

Aparecerá advertencia,
Indique que Si
Creación de un Job mas Complejo
• Configure la Salida
Creación de un Job mas Complejo
• Configure la Salida

Modifique el formato
si desea
Creación de un Job mas Complejo
• Compile, ejecute y revise resultados como hizo en el job
anterior.
• Fallo? Que Paso?
Creación de un Job mas Complejo
• Recuerde las propiedades del LookUp

Cambie a Continue, Vuelva a Compilar y Ejecutar


Creación de un Job mas Complejo
• Revise el Resultado
Agenda
• Introducción a Infosphere Data Stage
• Creación de Un Job
• Revisión Ejecución de un Job
• Tipos de Joins
• Creación de un Job más Complejo
• Creación de una Malla de Procesos
Creación de una Malla de Procesos
• El tipo de Job Sequencer es aquel en el cual se
implementan las mallas de procesos que coordinarán la
ejecución de jobs
• Es una implementación gráfica del flujo de Jobs que
permite secuenciar o paralelizar la ejecución de éstos
• Sequencer además permite:
• Control de Condiciones de Término de los Jobs
• Retomar la ejecución de la malla
• Envio de Información con Resultado de Ejecución
Creación de una Malla de Procesos
• Ejemplo
Creación de una Malla de Procesos
• Cree un Nuevo Job de Tipo Sequencer, arrastre sus jobs
Creación de una Malla de Procesos
• Cree el Flujo entre los dos Jobs y abra con doble click el
primero

Run: Ejecuta
Reset then Run: Si se ha caído, lo deja en estado
ejecutable y vuelve a ejecutarlo
Validate Only: Ejecuta una revisión de acceso
solamente
Reset Only: Solo ejecuta un reseteo para dejarlo
en estado ejecutable en caso que se hubiese
caído previamente
Creación de una Malla de Procesos
• Revise los Triggers

Incondicional
Si termina Bien
Si termina Mal
Si Tiene Warnings
Un estado definido por usuario
Una rutina que evalua cualquier cosa
En otro caso (OtherWise)
Creación de una Malla de Procesos
• Compile, Ejecute y Vea Resultado

Las Secuencias no muestran colores, debe ir al Director


Creación de una Malla de Procesos
• Revisando en Director

Se aprecia la ejecución de cada Job y la Malla


Creación de una Malla de Procesos
• Revisión de Log en Director

Se aprecia la ejecución de cada Job y su status de finalización

También podría gustarte