250 likes | 396 Views
CDD MODULO CDD ORACLE. Mayo 2012. Temario. INDICE. Contexto General Definición de Ambiente Procedimiento de Ejecución Estructura Job Principal Job Principal 1 de 3 Integridad de Reservas Carga Tablas Criticas Reserva Carga Tabla RES (Reservas) Job Principal 2 de 3
E N D
CDDMODULO CDD ORACLE Mayo 2012
Temario INDICE • Contexto General • Definición de Ambiente • Procedimiento de Ejecución • Estructura Job Principal • Job Principal 1 de 3 • Integridad de Reservas • Carga Tablas Criticas Reserva • Carga Tabla RES (Reservas) • Job Principal 2 de 3 • Carga Tablas No Criticas Reserva 1 • Carga Tablas No Criticas Reserva 2 • Job Principal 3 de 3 • Integridad Tabla Ticket (Tkt_Document) • Carga Tabla Tkt_Dcument y Tablas no criticas de Ticket • Otras Funcionalidades • Tablas de Control • CheckList de Diagnostico • Anexo • Preguntas
Contexto General • CDD (Carga Modelo CDD Oracle) Proceso que permite cargar al modelo Oracle CDD, toda la información relacionada a las Reservas y Ticket del Pasajero desde los archivos Planos generados y enviados por GDS SABRES de Forma diaria, Este proceso validad tanto la consistencia y la estructura de la información entregada, como por ejemplo: • No considerara (en el modelo final de carga) las reservas, que le falte información definida primordial para las Carga (Llaves) • En algunos Casos, no considerara información que tenga inconsistencia con los tipos de Datos definido (si se espera un número no puede venir letras, etc.) La idea de esta validaciones, es disponer a los otros proyecto como BPNR (Bajada PNR) de información consistente para sus procesos Info.: Este Proceso esta asociado a distintos modos de carga que permitirán en casos excepcionales, reprocesar, recargar la información para uno o mas periodos según se determine
Contexto General • Tablas Padre Tablas principales de Negocio que permiten mantener la consistencia de la información enviada en los Archivos para Reserva (RES) para Ticket (Tkt_Document), la finalización incorrecta de esta etapa NO permite continuar con el proceso de Carga • Tablas Criticas Conjunto de Tablas definidas por el usuario, con segunda prioridad de carga, con el fin de disponbilizar los datos para otro proyectos), la finalización incorrecta de esta etapa NO permite continuar con el proceso de carga • Tablas No Criticas Conjunto de Tablas definidas por el usuario, con Tercera prioridad de carga, la finalización incorrecta de esta etapa SI permite continuar con el proceso de carga • Archivos Done Archivo enviado por SABRE, que contiene información relacionada con las tablas y cantidad de registros enviados para el proceso de carga diario.
Contexto General • Para desarrollar la solución se utilizó: • DATA STAGE 7.52 Solución implementada mediante Jobs ETL • BASE DATOS Oracle 10g • PARTICIONES SOBRE LAS TABLAS Se acuerda definir una solución con un solo modelo de datos, utilizando particiones para la performance. Se crearán 31 particiones de tipo LIST permitiendo manejar un solo día de carga por partición, permitiendo truncar solo las particiones necesarias. El atributo de carga es parte de la llave de las tablas utilizando índice global que se pueden dejar disponibles una vez truncado la tabla. • STORE PROCEDURE El manejo del truncate para cada partición, se realizara paramétricamente, gatillado desde un job que será capaz de capturar y controlar los resultados de errores del PL Oracle. • JOB CONTROL (Lenguaje de programación del los Job Server) Principalmente para orquestar la llamada de Job y la utilización de ODBC • ODBC Se utiliza ODBC principalmente para administrar las tabla de control en cada uno de los Procesos
Definición de Ambiente • Preparando el Ambiente de ejecución • Actualizar parámetro Servidor Datastage Para poder ejecutar dsjob es necesario poder actualizar siguiente parámetro en ambiente Unix donde reside servidor DataStage: cd `cat /.dshome` . ../dsenv ‘Deja disponible los parámetros de ambiente’ • Creación ODBC (Oracle) Nombre ODBC: ORA_PASS_CDD Base de datos: 57.228.166.91 Server Owner: EXCDD Usuario: SRVCDD Pw: SRVCDD
Definición de Ambiente • Estructura de Carpeta Unix • /dsapp/DSCDD/CNF Carpeta de archivos de configuración (DSParams, ListadoFeeds.cnf) • /dsapp/DSCDD/SHL Carpeta donde se encuentran las Shell para la ejecución del proyecto • /dsdata/DSCDD/DAT Carpeta que tendrá todos los archivos de carga enviados por SABRE • /dsdata/DSCDD/HSH Carpeta donde se generaran los archivos HASH utilizados por el proceso • /dsdata/DSCDD/TMP Carpeta donde se generaran los archivos Temporales utilizados por el sistema
Procedimiento de Ejecución • Configuración: • Validar limpieza de tabla de Control (CTR_CDD) • Configuración de Parámetros de DSParams • Ejecución Shell: Nombre Shell: Ejecuta_DSCDD.sh / Ejecuta_DSCDD_OnDemand.sh Parámetros: FECHA = Fecha a procesar formato YYYYMMDD. ( Sólo se ingresa para proceso on-demand. Proceso batch programado calcula internamente el valor de la fecha de proceso). SERVER = DNS o IP del servidor donde se encuentra el Job. USER = Usuario con permiso de ejecución del Job. PASSWORD = Password del usuario. PROYECTO = Nombre del Proyecto que contiene el Job. JOB = Nombre del Job a ejecutar. MODO = Modo de ejecución <NORMAL|RESET|VALIDATE> PATH_LOG = Path donde se encuentran los logs. PARAMETRO = Parámetro a insertar en el Job. WARN = Numero de Warning permitidos antes del Fatal Error. 0 es Ilimitado. DESTINATARIOS=Direcciones e-mail a quienes se le enviara la información correspondiente. (Para más de un destinatario se separa por coma.)
Procedimiento de Ejecución • Ejecucion Norma y On-Demand En CDD existen dos Shell, una que gatilla los procesos programados (Ejecuta_DSCDD.sh) y otra que gatilla los proceso On-Demand (Ejecuta_DSCDD_OnDemand.sh) • Ejemplo de ejecución Programada (Control-M): ./Ejecuta_DSCDD.sh 57.228.129.28 dscdddscddDSCDD CDD_00_Ejecuta_All NORMAL /dsdata/DSCDD/LOG PS_FECHA_DE_ARCHIVOS_CDD 0 cynthia.rivera@lan.com • Ejemplo de ejecución On-Demand (Manual): ./Ejecuta_DSCDD_OnDemand.sh 20110214 57.228.129.28 dscdddscddDSCDD CDD_00_Ejecuta_All NORMAL /dsdata/DSCDD/LOG PS_FECHA_DE_ARCHIVOS_CDD 0 cynthia.rivera@lan.com La ejecuciones sólo se diferencian en que para el Proceso OnDemand se debe ingresar la Fecha de Proceso (20110214) y en la programada se Calcula. En los Ejemplo de ejecución, en ROJO esta identificado el Job que será ejecutado, en cada modulo existe un Job principal, para CDD es CDD_00_Ejecuta_All
Estructura Job Principal • El Job principal gatillado por Control-M, será analizado en tres Parte • Validación Base de Datos • Validación de Archivos • Integridad de las RESERVA • Carga Tablas criticas • Carga de Tabla RESERVA • Carga Tablas no criticas 1 • Carga Tablas no criticas 2 • Integridad de las Tickets • Carga Tablas de Ticket • Finalización del proceso
Job Principal 1 de 3 • CDD_00_Ejecuta_All (Parte 1 de 3) • Sequence principal que gatilla el proceso que Carga los archivos enviados por SABRES, al Modelo • CDD. El proceso comienza enviado un Correo informando el inicio del proceso, Valida conectividad a la base de Dato (Oracle), valida si vienen informada todas las tablas involucradas en el proceso (.done), valida la Integridad de los datos de la Tabla Padre RES (Tabla de reservas) y Carga las primeras Tabla Critica y la Taba RES • CDD_00_Carga_Tabla_Padre_Critica_JobControl • CDD_00_Carga_Tablas_Criticas_JobControl • CDD_00_Carga_Tablas_Criticas_JobControl_2
Integridad de Reservas • Validación de la Tabla Padre RES (CDD_00_Carga_Tabla_Padre_Critica_JobControl) • Proceso que valida la integridad de las Reservas extraídas desde los Archivo de texto enviado por SABRES, dentro de las validaciones que se realizan se encuentran LARGO, TIPO, NULO, en caso de encontrar alguno de estos errores en los campos definidos como llaves para la Reserva, el registro quedara invalidado, si el error no pertenece a un campo definido como llave, el campo quedara corregido y el PNR quedara valido, y los PNR que no tengan ningún problema en su llave quedaran definidos como Reservas Limpias, todo error encontrado quedara Detalladamente registrado en las tablas de control de Errores, con el numero de registro nombre del campo y cantidad de errores entre otros.
Carga Tablas Criticas Reserva • Sequence Carga Tabla Criticas (CDD_00_Carga_Tablas_Criticas_JobControl) • El sequence CDD_00_Carga_Tablas_Criticas_JobControl es el encargado de orquestar de forma “PARALELA” la carga de las tablas criticas, comienza con el llamado al Job Control (CDD_01_JobControl) para cada tabla, que validara si las cargas ya fueron realizada para no cargar nuevamente el archivo, creara los archivos de control, inicializara el proceso de carga en las tablas de control LAN y CORPORATIVA, llamara a los job de carga según sus parámetros, insertara los registro con errores en la Tabla de Error CDD y actualizara las tabla de control con el Status de la carga, a medida que termina el proceso de carga, se ejecutara las dependencia, que complementaran con información a las tablas de control con el status final del Job.
Carga Tabla RES (Reservas) • Sequence Carga Tabla Criticas (CDD_00_Carga_Tablas_Criticas_JobControl_2) • El sequence CDD_00_Carga_Tablas_Criticas_JobControl_2 es el encargado de orquestar de forma “PARALELA” la carga de las tablas criticas, comienza con el llamado al Job Control (CDD_01_JobControl) para la tabla RES, que validara si la carga ya fue realizada para no cargar nuevamente el archivo, creara el archivo de control, inicializara el proceso de carga en las tablas de control LAN y CORPORATIVA, llamara al job de carga según sus parámetros, insertara los registro con errores en la Tabla de Error CDD y actualizara las tabla de control con el Status de la carga. Terminado el proceso de carga, se ejecuta las dependencia, que complementa con información a las tablas de control con el status final del Job.
Job Principal 2 de 3 • CDD_00_Ejecuta_All (Parte 2 de 3) • Sequence principal que gatilla el proceso que Carga los archivos enviados por SABRES, al Modelo • CDD (Oracle) • Continuando con el proceso de Carga, comenzamos la carga de las tablas no criticas, a la igual que las anteriores , se definieron sequencias que orquestaran el llamado a cada una de ellas, los sequences son: • CDD_00_Carga_Tablas_Res_No_Criticas_JobControl_1 • CDD_00_Carga_Tablas_Res_No_Criticas_JobControl_2
Carga Tablas No Criticas Reserva 1 • Sequence CDD_00_Carga_Tablas_Res_No_Criticas_JobControl_1 (Tablas no criticas) • El sequence CDD_00_Carga_Tablas_Res_No_Criticas_JobControl_1 es el encargado de orquestar de forma “PARALELA” la carga de las tablas NO criticas, comienza con el llamado al Job Control (CDD_01_JobControl) para cada tabla, que validara si las cargas ya fueron realizadas para no cargar nuevamente el archivo, creara los archivos de control, inicializara el proceso de carga en las tablas de control LAN y CORPORATIVA, llamara a los job de carga según sus parámetros, insertara los registro con errores en la Tabla de Error CDD y actualizara las tabla de control con el Status de la carga, a medida que termina el proceso de carga, se ejecutara las dependencia, que complementara con información a las tablas de control con el status final del Job.
Carga Tablas No Criticas Reserva 2 • Sequence CDD_00_Carga_Tablas_Res_No_Criticas_JobControl_2 (Tablas no criticas) • El sequence CDD_00_Carga_Tablas_Res_No_Criticas_JobControl_2 es el encargado de orquestar de forma “PARALELA” la carga de las tablas NO criticas, comienza con el llamado al Job Control (CDD_01_JobControl) para cada tabla, que validara si las cargas ya fueron realizadas para no cargar nuevamente el archivo, creara los archivos de control, inicializara el proceso de carga en las tablas de control LAN y CORPORATIVA, llamara a los job de carga según sus parámetros, insertara los registro con errores en la Tabla de Error CDD y actualizara las tabla de control con el Status de la carga, a medida que termina el proceso de carga, se ejecutara las dependencia, que complementara con información a las tablas de control con el status final del Job. 17
Job Principal 3 de 3 • CDD_00_Ejecuta_All (Parte 3 de 3) Tabla Padres y no Criticas de Ticket • Sequence principal que gatilla el proceso que Carga los archivos enviados por SABRES, al Modelo • CDD (Oracle) • Continuando con el proceso de Carga, comenzamos la carga de las tablas asociadas al los Ticket de las reserva, a la igual que las anteriores , se definieron secuencias que orquestaran el llamado a cada una de ellas, los sequences para Ticket son: • CDD_00_Carga_Tabla_Padre_Tkt • CDD_00_Carga_Tablas_Tkt_No_Criticas_JobControl
Integridad Tabla Ticket (Tkt_Document) • Validación de la tabla Tkt_Document CDD_00_Carga_Tabla_Padre_Tkt (Ticket) • Proceso que valida la integridad de los TICKET extraídas desde los Archivo de texto enviado por SABRES, dentro de las validaciones que se realizan se encuentran LARGO, TIPO, NULO, en caso de encontrar alguno de estos errores en los campos definidos como llaves para los Ticket, el registro quedara invalidado, si el error no pertenece a un campo definido como llave, el campo quedara corregido y el PNR quedara valido, y los PNR que no tengan ningún problema en su llave quedaran definidos como Ticket validos especificando el tipo de llave que se trate (UK, PK) todo error encontrado quedara Detalladamente registrado en las tablas de control de Errores, con el numero de registro nombre del campo y cantidad de errores entre otros.
Carga Tabla Tkt_Dcument y Tablas no criticas de Ticket • Sequence CDD_00_Carga_Tablas_Tkt_No_Criticas_JobControl (Tablas no criticas) • El sequence CDD_00_Carga_Tablas_Tkt_No_Criticas_JobControl es el encargado de orquestar de forma “PARALELA” la carga de las tablas NO criticas, comienza con el llamado al Job Control (CDD_01_JobControl) para cada tabla, que validara si las cargas ya fueron realizadas para no cargar nuevamente el archivo, creara los archivos de control, inicializara el proceso de carga en las tablas de control LAN y CORPORATIVA, llamara a los job de carga según sus parámetros, insertara los registro con errores en la Tabla de Error CDD y actualizara las tabla de control con el Status de la carga, a medida que termina el proceso de carga, se ejecutara las dependencia, que complementara con información a las tablas de control con el status final del Job. 20
Otras Funcionalidades • Otras Funcionalidades La administración de Cada proceso tiene la capacidad de: • Reintentos: (Valor Paramétrico, default 3) de ejecuciones de Jobs una vez detectado la caída de alguno de ellos, si después de los reintentos definidos no logra auto recuperarse se da por abortado el Sistema. • Recuperación: Capacidad de Recuperar sólo los proceso abortados, para lo cual, se debe gatillar la misma Shell de Ejecución. • Adicionalmente la administración del sistema tiene la capacidad de: resetearse, generar mails automáticos dependiendo de cada Job control. • Cada Proceso se registrara las ejecuciones en las tablas de control internas como corporativa.
Tablas de Control • Tabla de Control • Ejemplos de cómo se visualizan los registro procesados en la tablas de control CDD, esta tabla registra para ambos procesos sea este Proceso para el Modelo Oracle y Teradata • CTR_CDD • EJECUTA_PROCESOS
CheckList de Diagnostico • Tips para correcto funcionamiento del sistema • A continuación se detalla los tips de buenas practicas: • Se debe considerar que para una buena ejecución del proceso se debe encontrar 100% compilado y sin errores. Se recomienda que mensualmente se realice una compilación completa del sistema. • Dado el gran volumen de archivos de procesamiento de datos a cargar diariamente , se recomienda contar con al menos un 20% ó 10% de espacio libre en Unix. • Los Administradores de base de datos tanto de ORACLE, deben tener la preocupación de mantener los tablespaces asignados con espacio suficiente. • Se recomienda realizar mantención semanal a las tablas de oracle con el objetivo de mantener los índices actualizados.
Anexo • Otros Job • Todos los Job que cumplan con la siguientes nomenclatura : • CDD_9999_Carga_Nombre_Tabla_00 : Estos Job Fueron creados para realizar el truncado de la tabla , Vía Procedimiento almacenado • CDD_00_Inserta_First_Tabla_Corp_Nombre_Tabla: Estos Job fueron creados para insertar en la tabla de control corporativa el valor “iniciado” al comienzo de cada carga que se estaba ejecutando.
Preguntas • PREGUNTAS ¿ ?