1 / 26

Concepción de Sistemas de Información

Concepción de Sistemas de Información. Instituto de Computación – Facultad de Ingeniería – Universidad de la República. SEMINARIO. Estudio de modelos y técnicas de workflow en vista a la definición de un proceso para la carga y mantenimiento de data warehouses.

sara-bishop
Download Presentation

Concepción de Sistemas de Información

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Concepción de Sistemas de Información Instituto de Computación – Facultad de Ingeniería – Universidad de la República SEMINARIO Estudio de modelos y técnicas de workflow en vista a la definición de un proceso para la carga y mantenimiento de data warehouses Presentación día 13 con fecha 23/07/2001 Artículo: Efficient Resumption of Interrupted Warehouse Loads Expositor: Pablo Morales

  2. Efficient Resumption of Interrupted Warehouse Loads Wilburt Juan Labio, Janet L. Wiener, Hector Garcia-Molina, Vlad Gorelik • Presentación de una algoritmo (DR) de recuperación ante fallas en el proceso de carga y refresque del data warehouse. • Dos características principales: • 1. No impone un overhead en el tiempo de carga normal • 2. Utiliza únicamente ciertas propiedades básicas de las transformaciones

  3. Idea general y estrategia • Otros Algoritmos: • Rehacer toda la carga • Dividir la entrada en lotes y procesarlos en secuencia • Tomar “snapshots” periódicos del estado del workflow de carga • Dividir el workflow en estados (identificarlos) y guardar resultados intermedios

  4. Idea general y estrategia • Algoritmo DR: • No hay overhead en el proceso de carga normal • No es necesario modificar los procesos de transformación • Quién codifica los elementos de transformación (wrappers, etc) debe declarar si éstos cumplen alguna propiedades simples • Explota la semántica del workflow de carga para ser selectivo al reasumir luego de una falla

  5. Aportes • Presentación del marco que describe los procesos de carga normales y con fallas identificando ciertas propiedades • Presentación del algoritmo DR que filtra tuplas de entrada ASAP • Conclusiones

  6. Proceso de carga normal Ejemplo de carga • Definición: • Secuencia de tuplas: T = [t1..tn] ; con atributos [a1..am]

  7. Proceso de carga normal Representación del workflow de carga con un Grafo Acíclico Dirigido (DAG):

  8. YX YO X Y DAG Notación: X : Componente Y : Componente YX : Parámetro de entrada del componente Y producido por X YO : Parámetro de salida del componente Y YX : Secuencia que instancia el parámetro de entrada YX YO : Secuencia que instancia el parámetro de salida YO Y(...YX...) = YO : Y produce YO procesando YX (y otras secuencias) W : Secuencia que se carga en el warehouse en ausencia de fallas

  9. Proceso de carga con falla • Tipos de fallas: • El algoritmo hace foco en fallas a nivel de sistema y no a nivel lógico • Observación: • Ante cualquier falla de cualquier componente solo un prefijo de la secuencia W es cargado en el warehouse • Datos para re-asumir la carga: • El prefijo de la secuencia de entrada al warehouse W • Procedimientos provistos por los extractors • GetAllReordered(), GetAll(), GetSubSet(), GetSuffix()

  10. Proceso de carga con falla Propiedades para re-asumir la carga: (Same-set(Y )) IfY is an extractor then Same-set(Y ) = true if Y uses GetAll orGetAllReordered during resumption. Otherwise, Same-set(Y ) = true if YX : Same-set(X) and,given the same sets of input tuples, Y produces the same set of output tuples. En general, se deben contestar estas dos preguntas para evitar el re-proceso de tuplas: 1) Para una tupla dada del warehouse, cuales de las tuplas de YX contribuyen a ella. 2) Cuándo es seguro filtrar esas tuplas de YX

  11. Proceso de carga con falla Definición: (Contributes, Contributors) Given transform Y , let Y(...YX…) =YO and Y(…Y’X...) =Y’O . Also let YX = [x1..xi-1 xi xi+1..xn] and Y’X = [x1..xi-1 xi+1..xn]. Contributes(xi,yj ) = true, if yjYO and yjY’O .Otherwise, Contributes(xi,yj ) = false. Contributors(YX, yj ) =T , where IsSubsequence(T , YX) and (xiT : Contributes(xi, yj )) and (xiYX : Contributes(xi,yj )  xiT).

  12. Proceso de carga con falla – Filtrado Seguro Propiedad: map-to-one(YX) Given transform Y with input parameter YX, YX is map-to-one if YX; YO; xi YX: (Y (:::YX:::) = YO)  (yj ; yk YO such that Contributes(xi,yj ) and Contributes(xi,yk) and j  k).

  13. YX ZY X Y Z W Proceso de carga con falla – Filtrado Seguro Definición: Subset-feasible(YX) Given transform Y with input parameter YX, Subset-feasible(YX) = true if Y is the warehouse inserter. Otherwise, Subset-feasible(YX) = true if YX ismap-to-one and ZY : Subset-feasible(ZY ). Otherwise, Subset-feasible(YX) = false. WZ map-to-one map-to-one map-to-one  Subset-feasible(YX)

  14. Proceso de carga con falla – Filtrado Seguro Propiedad: suffix-safe(YX) Given T = [t1::tn], let First(T ) =t1, Last(T ) =tn, and ti T tj if ti is before tj in T or i = j. Given transform Y with input parameter YX, YX is suffix-safe if YX; YO; yj ; yj+1 YO: (Y (:::YX:::) =YO) )(Last(Contributors(YX, yj )) YX First(Contributors(YX,yj+1))). If Contributors(YX, yj ) = [ ] or Contributors(YX, yj+1) = [ ], then YX is not suffix-safe.

  15. X Y V1 V2 V3 YX Proceso de carga con falla – Filtrado Seguro Definición: Prefix-feasible(YX) Given transform Y with input parameter YX, Prefix-feasible(YX) = true if Y is the warehouse inserter. Otherwise, Prefix-feasible(YX) = true if YX issuffix-safe and ZY : Prefix-feasible(ZY ). Otherwise, Prefix-feasible(YX) = false. XV1 XV2 XV3

  16. X Y V1 V2 V3 YX Proceso de carga con falla – Filtrado Seguro Propiedad: in-det-out(Y ) Transform Y is in-det-out if Y produces the same output sequence whenever it processes the same input sequences. XV1 XV2 XV3

  17. X Y V1 V2 V3 YX Proceso de carga con falla – Filtrado Seguro Propiedad: set-to-seq(YX) Given transform Y with input parameter YX, YX is set-to-seq if (Y is in-det-out) and (YX; Y’X : ((YX and Y’X have the same set of tuples) and (all other input parameters of Y receive the same sequence))  Y (:::YX:::) =Y (:::Y’X:::)). XV1 XV2 XV3

  18. Proceso de carga con falla – Filtrado Seguro Definición: Same-seq(YX) IfX is an extractor then Same-seq(YX) = true if X uses the GetAll re-extraction procedure. Otherwise, Same-seq(YX) = true if X is in-det-out and XV : (Same-seq(XV ) or(XV is set-to-seq and Same-set(V ))). Otherwise, Same-seq(YX) = false. Observación: Dado un path desde una fuente hasta un componente Y, para que se cumpla Same-seq(YX) exijo que todos los componentes del path sean in-det-out, y si uno no lo es, entonces exijo que el siguiente sea set-to-seq (más fuerte)

  19. Proceso de carga con falla – Ident. Contribuyentes Objetivo: Identificar las tuplas de una secuencia YX que son contribuyentes a una tupla del warehouse wk Idea: Matchear los atributos que YX y wk tienen en común

  20. Contributors(YX, yj) Match con yj en Attrs(YX)  Attrs(YO) Proceso de carga con falla – Ident. Contribuyentes Propiedades a satisfacer para poder identificar los contribuyentes: no-hidden-contributor(YX) Given transform Y with input parameter YX, no-hidden-contributors(YX) if YX, YO, yj YO, xi  Contributors(YX, yj ), a  (Attrs(YX)  Attrs(YO)): (Y (:::YX:::) = YO)  (xi.a = yj.a). No-hidden-contributor(YX)

  21. Proceso de carga con falla – Ident. Contribuyentes Propiedades a satisfacer para poder identificar los contribuyentes: Definición: CandAttrs(YX,P) Let P be a path from input parameter YX to the warehouse. There are three possibilities for CandAttrs(YX,P): 1. If Y is the warehouse inserter, then CandAttrs(YX, P) =Attrs(YX). 2. If no-hidden-contributors(YX), then CandAttrs(YX; P) = [ ]. 3. Else CandAttrs(YX, P) = CandAttrs(ZY, P’ )  Attrs(YX), where P = [YX ZY ::WI], and P’ is P excluding YX.

  22. Proceso de carga con falla – Ident. Contribuyentes Propiedades a satisfacer para poder identificar los contribuyentes: Propiedad: no-spurious-output(Y ) A transform Y produces no spurious output if  input parameters YX, YX, YO, yj YO : (Y (:::YX:::) = YO)  (Contributors(YX,yj)  [ ]).

  23. Proceso de carga con falla – Ident. Contribuyentes Observaciones: no-hidden-contributor(YX) = Se cumple si todas las tuplas de entrada YX que contribuyen a una tupla de salida yj matchean con yj en Attrs(YX)  Attrs(YO) CandAttrs(YX, P) = Todos los atributos presentes en el path P desde YX al warehouse. Estos atributos identifican a los potenciales contribuyentes de una tupla final wk idAttrs(YX) = Conjunto de atributos utilizados para identificar los contribuyentes de YX a la tupla del warehouse wk. Los contribuyentes serán los que matcheen con wk en idAttrs(YX)

  24. Proceso de carga con falla – Ident. Contribuyentes Por lo tanto: Dados wk y CandAttrs(YX, P) puedo identificar a los potenciales contribuyentes de wk en YX. Dados wk y idAttrsPath(YX, P) puedo identificar a los contribuyentes de wk en YX.

  25. Proceso de carga con falla – Ident. Contribuyentes 1. IdAttrs(YX) = KeyAttrs(YX) if KeyAttrs(YX)  CandAttrs(YX, P) and both Y and Z satisfy the no-spurious-output property. 2. IdAttrs(YX) = KeyAttrs(WZ) if KeyAttrs(WZ)  CandAttrs(YX, P). 3. IdAttrs(YX) = IdAttrs(ZY) if IdAttrs(ZY)  CandAttrs(YX, P).

  26. Proceso de carga con falla – Ident. Contribuyentes Definición: IdAttrsPath(YX,P), IdAttrs(YX) Let P be the only path from YX to the warehouse. There are three possibilities for IdAttrsPath(YX,P) (i.e., IdAttrs(YX)). 1. If (KeyAttrs(YX)  CandAttrs(YX, P) and ZV P : ZV has no spurious output tuples), then (IdAttrsPath(YX, P) = KeyAttrs(YX)). 2. Otherwise, let ZV P but ZV YX. Let P’ be the path from ZV to the warehouse. If (IdAttrsPath(ZV, P’)  [ ] and IdAttrsPath(ZV, P’)  CandAttrs(YX, P)), then (IdAttrsPath(YX,P) = IdAttrsPath(ZV ,P’)). 3. Otherwise IdAttrsPath(YX,P) =[ ].

More Related