Post on 23-Nov-2015
Lineamientos de Desarrollo y Organizacion en DataStage
REAPRO
Estndares de Desarrollo y Nomenclatura qualitystage-datastageVersIn 1.0
18/02/2014HISTORIA DE CAMBIOSCONTROL DE CONFIGURACIN
Ttulo:Estndares de Desarrollo y Nomenclatura Datastage
Autor:
Fecha:11 de Febrero del 2014
Histrico de Versiones VersinFechaEstadoResponsableDescripcin del Cambio
1.011/02/2014Primera versin del documento: Estndares de Desarrollo y Nomenclatura Quality Stage y Datastage
REAPROEn este documento:
Estndares de Desarrollo y Nomenclatura DatastageFue aprobado por:Nombre
Cargo
Fecha:
:
:Firma
Nombre
Cargo
Fecha:
:
:Firma
Nombre
Cargo
Fecha:
:
:Firma
TABLA DE CONTENIDO6SECCIN1. INTRODUCCIN
61.1Objetivo
61.2Alcance
7SECCIN2. ESTNDARES DE NOMENCLATURA
72.1Organizacin del Repositorio(Archivos Entrada / Salida)
72.2Nomenclatura para los elementos en DataStage
72.2.1Categoras
82.2.2Jobs
92.2.3MetaDatos
92.2.4Stages
152.2.5Rutinas
162.2.6Contenedores
172.2.7Stage Variables
192.2.8Job Sequencial
212.2.9Conectores a Base de Datos
212.2.10Archivos Sequenciales
22SECCIN3. DEFINICIN DE JOBS EN DATASTAGE
223.1Documentacin
223.1.1Descripcin Corta
223.1.2Descripcin general
243.2Diseo del Job
273.3Parametrizacin del Job
293.4Archivos Temporales y Rejectados
303.5Archivos de Salida
31SECCIN4. BUENAS PRCTICAS DE PROGRAMACIN
314.1Recomendaciones para el Desarrollo
344.2Optimizacin del Proceso
INTRODUCCINObjetivo
Dar a conocer los estndares para el desarrollo y nomenclatura de los elementos utilizados para el proceso de extraccin, transformacin y carga de data para la migracin de los sistemas de informacin hacia la BDI utilizando la herramienta IBM Websphere DataStage y Quality Stage.
Alcance
Estos estndares se aplicarn a todos los nuevos desarrollos dentro del software IBM Websphere DataStage y Quality Stage y de las nuevas versiones de los desarrollos actuales.ESTNDARES DE NOMENCLATURAOrganizacin del Repositorio(Archivos Entrada / Salida)Nomenclatura para los elementos en DataStage y QualityStagePor el volumen de informacin que manejan los modelos de informacin se deben crear procesos de carga simples, en la medida de lo posible particionar los procesos y lgicas complejas en partes pequeas utilizando containers de tal manera que los procesos sean entendibles y fciles de documentar.
Las lgicas comunes (Funciones, conversiones, generacin de claves) deben generarse en shared containers y deben almacenarse en el repositorio base de tal manera que sea reutilizable. Estas lgicas tienen un input y un output genrico el cual debe ser usado en los dems procesos.
CategorasPara almacenar los jobs se debe hacer bajo la carpeta de jobs y proceder a crear categoras o subcarpetas de acuerdo al siguiente criterio:
[JOBS]
[TIPO_PROYECTO]
[TIPO_JOBS]
[DESTINO]
[TIPO_TRABAJO]
[JOB]
Dnde: [TIPO_PROYECTO]
Ejemplo: Migracin, BDI. [TIPO_JOBS]Ejemplo:
MAESTRACATALOGOAUXILIAR
RELACION
DETALLE
[DESTINO]Ejemplo:
CAT_TIPO_BENE
CAT_LEY
[TIPO_TRABAJO]Ejemplo:
ETLQUALITY
[JOB]Ejemplo:
TRN_CAT_TIPO_BENE_0001
TRN_CAT_TIPO_BENE_0002
EXT_CAT_LEY_0001INV_CAT_TIPO_BENE_0001
STD_CAT_TIPO_BENE_0001
MFQ_CAT_TIPO_BENE_0001
JobsLa nomenclatura de los Jobs Data Stage es la siguiente:
[ACCION]_ [DESTINO]_[SECUENCIAL]
Solo se usar el secuencial cuando exista ms de un job por tabla.
Donde,
[ACCION] : Acciones :
Job de Extraccin de una fuente a un Stage intermedioEXT
Job de Transformacin de Datos TRN
Job de Carga final loadLOD
Job de actualizacin UPD
Job de Actualizacin e Insercin UPS
Job de Secuencia y control SEQ / SQC
Job Investigate INV
Job Match FrequencyMFQ
Job StandardizeSTD
Ejemplos:
TRN_CAT_TIPO_BENE_0001 TRN_CAT_TIPO_BENE_0002
EXT_CAT_LEY_0001 INV_CAT_TIPO_BENE_0001MetaDatos
Las definiciones de metadata a nivel de estructura, debern almacenarse en el repositorio de datos, tal y como se muestra en el grfico:El nombre de las rutas para las carpetas Table Definitions en Data Stage es la siguiente:1. Para tablas de las BDs orgenes Oracle [BASE_DE_DATOS]/[ESQUEMA]/[ NOMBRE_TABLA]
Ejemplos:
BDPR11G3 /SYSLEGAL11G3 /RCPJ_TAB_TABLAS2. Para tablas de la BDI (destino)
RABDID/DIRECCION/ RABDISYS.AUX_AREA_GEOG3. El nombre de las rutas para las carpetas Table Definitions en Data Stage de los archivos no estructurados, es la siguiente:[ORIGEN_DE_DATOS]/[NOMBRE DEL ARCHIVO].[EXTENSION]
Ejemplos:
SUNAT/Carga_Novedades.txtStagesDentro de cada job se deber nombrar a los stages usando un prefijo por cada stage seguido de una breve descripcin (nombre del archivo / tabla fuente o destino segn corresponda) y finalmente un nmero secuencial (en caso, exista mas de un mismo Stage). Para los containers, shared containers, sequential files, Conectores a BD y HOST, se aplican especificaciones adicionales (ver siguientes apartados).
El detalle de las nomenclaturas de todos los elementos de Data Stage, en el siguiente cuadro a continuacin:
StageGrficoMnemnicoDescripcin
ODBC
odbc_[NOMBRE_ORIGEN]
Stage de conexin ODBC a una base de datos
Oracle Enterprise
ora_[NOMBRE_TABLA]Stage de conexin a Oracle
Stored Procedure
stpr_[NOMBRE PROCEDURE]Stage de conexin y ejecucin de un stored procedure
FTP Enterprise
ftp_[NOMBRE SERVIDOR]Stage para conexin ftp entre servidores.
Sequential file
seqf_NOMBRE_ARCHIVOStage que manipula archivos secuenciales.
Dataset
ds_NOMBRE_DATASETStage que manipula datasets
Copy
cpy_[NOMBRE_STAGE_FUENTE]Stage que realiza la copia de un input
Transformer
trn_[NOMBRE_STAGE_FUENTE]Stage que permite mapeos y transformaciones de datos.
Investigate
Inv_[NOMBRE_STAGE_FUENTE]Stage que permite investigacin de datos.
Match Frecuency
mtcf_[NOMBRE_STAGE_FUENTE]Stage que permite el control directo sobre la disposicin de los datos de frecuencia generados.
Standardize
stnd_[NOMBRE_STAGE_FUENTE]Stage que permite estandarizar datos a partir de la investigacin.
StageGrficoMnemnicoDescripcin
Modify
mdf_[NOMBRE_STAGE_FUENTE]
Stage que permite realizar mapeos y transformacin no complejas como en el Transformer. Consume menos memoria que el anterior stage.
Column generador
cg_[BREVE DESCRIPCION DE CONTENIDO]Stage que genera columnas de acuerdo a las condiciones configuradas
Row generador
rg_[BREVE DESCRIPCION DE CONTENIDO]Stage que genera registros de acuerdo a las condiciones configuradas
Local container
cont_[NombreProceso]
Ejemplo:
cont_ASIGNA_CLAVEStage que organiza dentro de si un grupo de otros stages dentro del canvas del designer.
Lookup
lkp_[STAGE_FUENTE]Stage de bsqueda.
Lookup fileset
lkfs_[STAGE_FUENTE]Stage que permite realizar bsquedas en un fileset.
Join
jn_[NOMBRE_STAGE_DESTINO]Stage que permite realizar el producto cartesiano de dos orgenes de datos.
Merge
mrg_[NOMBRE_STAGE_DESTINO]Stage que permite realizar la unin de dos orgenes de datos.
Funnel
fun_[NOMBRE_STAGE_DESTINO]Stage que realiza la consolidacin de n entradas.
Head
head_[NOMBRE_STAGE_FUENTE]Stage de extraccin de n lneas desde la parte inicial del archivo.
StageGrficoMnemnicoDescripcin
Tail
tail_[NOMBRE_STAGE_FUENTE]Stage de extraccin de n lneas desde la parte final del archivo.
Peek
peek_[NOMBRE_PROCESO]Stage que permite escribir la salida de un proceso directamente en el log.
Links de salida
lnk_[salida_STAGE_FUENTE]
Donde STAGE corresponde a los nombres definidos en el documento.
Links de entrada
link_[entrada_STAGE_DESTINO]
Filter
fil_[NOMBRE-STAGE_FUENTE]Stage que permite realizar filtros de registros a partir de una condicin dada.
Remove duplicates
rmv_[NOMBRE-STAGE_FUENTE]Stage que realiza la eliminacin de registros a partir de una clave determinada.
Sort
srt_[NOMBRE-STAGE_FUENTE]Stage que permite ordenar una entrada de datos.
Agregator
agg_[NOMBRE-STAGE_FUENTE]Stage que permite realizar operaciones de agregacin, tales como, sumatorias, promedios, etc.
Pivot
pvt_[NOMBRE_STAGE_FUENTE]Stage que permite la conversin de registros de columnas a registros.
StageGrficoMnemnicoDescripcin
Change Capture
ccap_[NOMBRE_STAGE_FUENTE]Stage que permite detectar las diferencias encontradas en la tabla
Compare
comp_ [NOMBRE_STAGE_FUENTE]State que permite comparar una columna
Difference
dif_[NOMBRES_STAGES_COMPARADOS]Stage que permite generar diferencias
Surrogate_Key_Generator
skge_[NOMBRE_LLAVE]Stage que genera la llave subrogada
Dentro de cada stage en la pestaa General de las propiedades se debe documentar la funcin o fuente, por ejemplo:
Grfico 5: Documentar la funcin/fuente del StageRutinasLas rutinas son porciones de cdigos que realizan operaciones especializadas, se puede hacer una analoga con una funcin de un lenguaje de programacin cualquiera.
Las rutinas que se construirn se debern almacenar en el repositorio en la siguiente ubicacin:
Las rutinas debern tener el siguiente formato de nombre
rtn_NombreRutina
Donde:rtn : Prefijo para las RutinasNombreRutina: Nombre que indique la funcin bsica de la rutina (no debe contener: espacios en blanco,(_),(-)).Ejemplo:
Grfico 6: Detalle de ubicacin para la creacin de rutinasContenedoresDentro de DataStage existen dos tipos de containers: local y shared container.Local container:
Se almacenan dentro de cada job, y permiten organizar los stages para agrupar y mejorar la distribucin de los stages en el job.
Shared container:
Componentes relacionados de tal manera que pueden realizar operaciones a partir de un input recibido y generar una salida con una estructura definida y se almacenan en el repositorio externo.
Estos componentes deben de estar almacenados en:
Los shared containers debern tener el siguiente formato de nombre: shrd_NombreProceso
Donde:shrd: constante
NombreProceso: Nombre que describa el procedimiento agrupado (no debe contener: espacios en blanco,(_))
Grfico 7: Documentar en caso de tener stage containerStage VariablesLos stages variables se utilizan dentro de los stage Transformer, siendo de suma utilidad su uso como variables locales, haciendo un smil con un procedure de un lenguaje de programacin. Su alcance se circunscribe al Transformer y solamente hacia la parte Output, no es posible asignar un stage variable a un link de input.
Para visualizarlo se deber presionar el botn que mostrar la ventana.
Grfico 9: Botn de mostrar/ocultar Stages VariablesLuego de mostrarse hacer click derecho para abrir la ventana de definicin de variables
Grfico 10: Ventana de definicin de variablesLas variables debern tener el siguiente formato de nombre: var[TIPO_DATO][SECUENCIA]
Donde:var: constante
TIPO_DATO: Tipo de dato que recibe la variable (no debe contener: espacios en blanco,(_))
SECUENCIA: 1,2,3,4,5,6,7 .
Grfico 11: Representacin de una variable
Job SequencialUn Job Sequence proporciona un nivel de granularidad y control que es fcil de administrar, integrando diversas tecnologas de automatizacin de la produccin (tales como la programacin, auditora, captura y registro de errores).
En el momento que se deba desarrollar un Job Sequence para generar una malla de proceso, los stage segn su naturaleza deben ser nombrados de la siguiente forma:
StageEstructura
JOBT_
EXPH_
StageEstructura
EXCO_
NCND_
NOAT_
ROAT_
SEQC_
INIA_FOR
ENDA_FOR
TERM_
WFFA_
UVAR
LINK_
Grfico 12: Nomenclatura de stages de un Job SequenceDEFINICIN DE JOBS EN DATASTAGEDocumentacinLa documentacin de los Jobs se debe realizar de la siguiente manera:Descripcin Corta
Esta descripcin se debe aadir en la ventana de propiedades del job, en la casilla Short Description (Menu Edit->Job Properties).
Grfico 13: Descripcin breve del trabajoLuego se debe colocar en la vista de diseo del job esta descripcin usando el stage Description Annotation como se muestra:
Grfico 14: Vista del diseo del JobDescripcin general
Esta descripcin se debe aadir en la ventana de propiedades del job, en la casilla Full Description (Menu Edit->Job Properties).Siguiendo la siguiente estructura:
APLICATIVO/MODELO: Nombre del aplicativo/Modelo
NOMBRE : Nombre del JOB DESTINO: Nombre de las tablas sobre la cual se realiza el ingreso de registros.
FUENTES: Nombre de las tablas que son fuente para actualizar la tabla afectada.
OBJETIVO: Breve descripcin del objetivo del JOB REPROCESABLE: En esta seccin se define si el proceso creado est preparado para los reprocesos (RERUN) o se debe analizar antes de volverlo a ejecutar, estas observaciones son importantes cuando se realiza el soporte fuera de oficina.
SCHEDULER: Nombre del scheduller donde se alojar el proceso JOB HOST: Nombre del job HOST que ejecuta el proceso/malla ,,VERSIONES:
Versin Desarrollador Proveedor A RESPONSABLE Fecha Descripcin
------------------------------------------------------------------------------------------------------------------------------1 Recurso 1 XXXXX Recurso 2 01/03/2011 CreacinTal como se muestra:
Grfico 15: Descripcin completa del trabajoDiseo del JobParametrizacin del Job
Durante el desarrollo de los Jobs se utilizan parmetros, lo que permite que los valores a utilizar durante la ejecucin del mismo sean dinmicos. Es por esta razn que, aunando los parmetros, se definirn Variables de Entorno con valores por cada uno de los ambientes, de tal manera que los Jobs no necesitarn modificarse en lo mas mnimo, pues sus valores los van a tomar de las variables definidas en el ambiente donde se este ejecutando.
Tenemos parmetros de dos tipos: a. parmetros de conexin a fuentes b. parmetros de ruta en el servidor. La nomenclatura es como sigue:
a. Parmetro de fuente origen: PRM_[DESTINO]
Donde:[DESTINO]:CAT_TIPO_BENE (Nombre de la tabla destino en BDI)b. Parmetro de conexin:
PRM_[TIPO]_CONE
Donde:[TIPO]:Base de datos(Oracle), HOST
c. Parmetros de ruta:PRM_PATH
Donde: [Tipo]:
SHELL_UTIL:Shells genricas.
SHELL: Shells de ejecucin.
TMP: Archivos temporales de trabajo.
REJECT: Archivos de salida que no cumplen con las reglas de trabajo
LOG: Archivos de salida de evidencia de ejecucin
DATA: Archivos de entrada y salida durante el proceso de trabajo.
Actualmente se tienen definidos tres ambientes (proyectos DataStage): Desarrollo, Pruebas y Produccin; en los cuales se definirn las siguientes variables de entorno validas dentro del proyecto:
NNombre variableTipoDescripcin
1NV_ORA_BDBDIStringVariable de la base de datos BDI
2NV_ORA_USBDIStringVariable usuario de la base de datos BDI
3NV_ORA_PWBDIEncryptedContrasea de la base de datos BDI
4NV_ORA_BDOTSStringVariable de la base de datos OTS
5NV_ORA_USOTSStringVariable usuario de la base de datos OTS
6NV_ORA_PWOTSEncryptedContrasea de la base de datos OTS
7NV_PATH_REJECTStringVariable de ubicacin de los archivos rechazados.
8NV_PATH_LOGStringVariable de ubicacin de los archivos resultado de ejecucin.
9
NV_PATH_TMPString Variable de ubicacin de los archivos temporales.
10
NV_PATH_DATAString Variable de ubicacin de los archivos de trabajo.
11
NV_PATH_SHELLString Variable de ubicacin de los scripts utilizados para la ejecucin de los trabajos.
12
NV_PATH_SHELL_UTILString Variable de ubicacin de los scripts genricos utilizados para la ejecucin de los trabajos.
13NV_BD_[SECUENCIAL]StringVariable de base de datos origen identificado con un secuencial de dos dgitos.
14NV_ES_[SECUENCIAL]StringVariable de esquema origen identificado con un secuencial de tres dgitos.
15NV_TB_[SECUENCIAL]StringVariable de tabla origen identificado con un secuencial de cuatro dgitos.
16NV_PK_[SECUENCIAL]StringVariable de ndice origen identificado con un secuencial de dos dgitos.
Inicialmente se estn considerando estas variables de entorno, siendo susceptible de incrementarse el nmero de las mismas de acuerdo a las necesidades de los desarrollos.
Para todas las variables parametrizadas empleadas en los jobs datastage se debe ingresar a las propiedades del job, para agregar la variable de entorno del proyecto y corregir el valor por defecto por $PROJDEF. Para el caso de variables encriptadas escribir 2 veces $PROJDEF en lugar de la contrasea, la cual aparecer enmascarada por ********.
Grfico 18: Agregar parmetros del Job [BASE_DE_DATOS]/[VISTA]/[ESQUEMA].[ NOMBRE_TABLA]
$PROJDEF
$PROJDEF
Estndares de Desarrollo y Nomenclatura Datastage v1.0.doc 3