34
ESTÁNDARES DE DESARROLLO Y NOMENCLATURA QUALITYSTAGE-DATASTAGE VERSIÓN 1.0

Estandares de Desarrollo y Nomenclatura DataStage

Embed Size (px)

Citation preview

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