Descargar la presentación
La descarga está en progreso. Por favor, espere
Publicada porBayardo Nunez Modificado hace 10 años
1
1 Concepción de Sistemas de Información Instituto de Computación – Facultad de Ingeniería – Universidad de la República 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 SEMINARIO Presentación día 13 con fecha 23/07/2001 Artículo:Efficient Resumption of Interrupted Warehouse Loads Expositor:Pablo Morales
2
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
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
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
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
6 Proceso de carga normal Definición: Secuencia de tuplas: T = [t 1..t n ] ; con atributos [a 1..a m ] Ejemplo de carga
7
7 Representación del workflow de carga con un Grafo Acíclico Dirigido (DAG): Proceso de carga normal
8
8 DAG Notación: XY YXYX YOYO X : Componente Y : Componente Y X : Parámetro de entrada del componente Y producido por X Y O : Parámetro de salida del componente Y Y X : Secuencia que instancia el parámetro de entrada Y X Y O : Secuencia que instancia el parámetro de salida Y O Y(... Y X...) = Y O : Y produce Y O procesando Y X (y otras secuencias) W : Secuencia que se carga en el warehouse en ausencia de fallas
9
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
10 Propiedades para re-asumir la carga: 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 Y X contribuyen a ella. 2) Cuándo es seguro filtrar esas tuplas de Y X (Same-set(Y )) If Y is an extractor then Same-set(Y ) = true if Y uses GetAll or GetAllReordered during resumption. Otherwise, Same-set(Y ) = true if Y X : Same-set(X) and, given the same sets of input tuples, Y produces the same set of output tuples. Proceso de carga con falla
11
11 Definición: (Contributes, Contributors) Given transform Y, let Y(... Y X …) = Y O and Y(… Y ’ X...) = Y ’ O. Also let Y X = [x 1..x i-1 x i x i+1..x n ] and Y ’ X = [x 1..x i-1 x i+1..x n ]. Contributes(x i,y j ) = true, if y j Y O and y j Y ’ O.Otherwise, Contributes(xi,yj ) = false. Contributors( Y X, y j ) = T, where IsSubsequence( T, Y X ) and ( x i T : Contributes(x i, y j )) and ( x i Y X : Contributes(x i,y j ) x i T ). Proceso de carga con falla
12
12 Proceso de carga con falla – Filtrado Seguro Propiedad: map-to-one(Y X ) Given transform Y with input parameter Y X, Y X is map-to-one if Y X ; Y O ; x i Y X : (Y (:::Y X :::) = Y O ) ( y j ; y k Y O such that Contributes(x i,y j ) and Contributes(x i,y k ) and j k).
13
13 XY YXYX ZYZY ZW WZWZ map-to-one Subset-feasible(Y X ) Subset-feasible(Y X ) Given transform Y with input parameter Y X, Subset-feasible(Y X ) = true if Y is the warehouse inserter. Otherwise, Subset-feasible(Y X ) = true if Y X is map-to-one and Z Y : Subset-feasible(Z Y ). Otherwise, Subset-feasible(Y X ) = false. Proceso de carga con falla – Filtrado Seguro Definición:
14
14 Proceso de carga con falla – Filtrado Seguro Propiedad: suffix-safe(Y X ) 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 Y X, Y X is suffix-safe if Y X ; Y O ; yj ; yj+1 Y O : (Y (::: Y X :::) = Y O ) )(Last(Contributors(Y X, yj )) Y X First(Contributors(Y X,yj+1))). If Contributors(YX, yj ) = [ ] or Contributors(YX, yj+1) = [ ], then Y X is not suffix-safe.
15
15 XY YXYX V1V2V3 X V1 X V2 X V3 Proceso de carga con falla – Filtrado Seguro Prefix-feasible(Y X ) Given transform Y with input parameter Y X, Prefix-feasible(Y X ) = true if Y is the warehouse inserter. Otherwise, Prefix-feasible(Y X ) = true if Y X is suffix-safe and Z Y : Prefix-feasible( Z Y ). Otherwise, Prefix-feasible(Y X ) = false. Definición:
16
16 XY YXYX V1V2V3 X V1 X V2 X V3 Proceso de carga con falla – Filtrado Seguro in-det-out(Y ) Transform Y is in-det-out if Y produces the same output sequence whenever it processes the same input sequences. Propiedad:
17
17 XY YXYX V1V2V3 X V1 X V2 X V3 Proceso de carga con falla – Filtrado Seguro set-to-seq(Y X ) Given transform Y with input parameter Y X, Y X is set-to-seq if (Y is in-det-out) and ( Y X ; Y ’ X : (( Y X and Y ’ X have the same set of tuples) and (all other input parameters of Y receive the same sequence)) Y (::: Y X :::) =Y (::: Y ’ X :::)). Propiedad:
18
18 Observación: Dado un path desde una fuente hasta un componente Y, para que se cumpla Same-seq(Y X ) 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) Proceso de carga con falla – Filtrado Seguro Same-seq(Y X ) If X is an extractor then Same-seq(Y X ) = true if X uses the GetAll re-extraction procedure. Otherwise, Same-seq(Y X ) = true if X is in-det-out and X V : (Same-seq(X V ) or (X V is set-to-seq and Same-set(V ))). Otherwise, Same-seq(Y X ) = false. Definición:
19
19 Objetivo: Identificar las tuplas de una secuencia Y X que son contribuyentes a una tupla del warehouse w k Idea: Matchear los atributos que Y X y w k tienen en común Proceso de carga con falla – Ident. Contribuyentes
20
20 no-hidden-contributor(Y X ) Given transform Y with input parameter Y X, no-hidden- contributors(Y X ) if Y X, Y O, yj Y O, xi Contributors( Y X, yj ), a (Attrs(Y X ) Attrs(Y O )): (Y (::: Y X :::) = Y O ) (xi.a = yj.a). Propiedades a satisfacer para poder identificar los contribuyentes: Match con y j en Attrs(Y X ) Attrs(Y O ) Contributors( Y X, y j ) No-hidden-contributor(Y X ) Proceso de carga con falla – Ident. Contribuyentes
21
21 Propiedades a satisfacer para poder identificar los contribuyentes: Proceso de carga con falla – Ident. Contribuyentes CandAttrs(Y X,P) Let P be a path from input parameter Y X to the warehouse. There are three possibilities for CandAttrs(Y X, P): 1. If Y is the warehouse inserter, then CandAttrs(Y X, P) =Attrs(Y X ). 2. If no-hidden-contributors(Y X ), then CandAttrs(Y X ; P) = [ ]. 3. Else CandAttrs(Y X, P) = CandAttrs(Z Y, P’ ) Attrs(Y X ), where P = [Y X Z Y ::W I ], and P’ is P excluding Y X. Definición:
22
22 Propiedades a satisfacer para poder identificar los contribuyentes: Proceso de carga con falla – Ident. Contribuyentes no-spurious-output( Y ) A transform Y produces no spurious output if input parameters Y X, Y X, Y O, yj Y O : (Y (::: Y X :::) = Y O ) (Contributors( Y X,yj) [ ]). Propiedad:
23
23 no-hidden-contributor(Y X ) = Se cumple si todas las tuplas de entrada Y X que contribuyen a una tupla de salida y j matchean con y j en Attrs(Y X ) Attrs(Y O ) CandAttrs(Y X, P) = Todos los atributos presentes en el path P desde Y X al warehouse. Estos atributos identifican a los potenciales contribuyentes de una tupla final w k idAttrs(Y X ) = Conjunto de atributos utilizados para identificar los contribuyentes de Y X a la tupla del warehouse w k. Los contribuyentes serán los que matcheen con w k en idAttrs(Y X ) Proceso de carga con falla – Ident. Contribuyentes Observaciones:
24
24 Por lo tanto: Dados w k y CandAttrs(Y X, P) puedo identificar a los potenciales contribuyentes de w k en Y X. Dados w k y idAttrsPath(Y X, P) puedo identificar a los contribuyentes de w k en Y X. Proceso de carga con falla – Ident. Contribuyentes
25
25 1. IdAttrs(Y X ) = KeyAttrs(Y X ) if KeyAttrs(Y X ) CandAttrs(Y X, P) and both Y and Z satisfy the no-spurious-output property. 2. IdAttrs(Y X ) = KeyAttrs(W Z ) if KeyAttrs(W Z ) CandAttrs(Y X, P). 3. IdAttrs(Y X ) = IdAttrs(Z Y ) if IdAttrs(Z Y ) CandAttrs(Y X, P). Proceso de carga con falla – Ident. Contribuyentes
26
26 IdAttrsPath(Y X,P), IdAttrs(Y X ) Let P be the only path from Y X to the warehouse. There are three possibilities for IdAttrsPath(Y X,P) (i.e., IdAttrs(Y X )). 1. If (KeyAttrs(Y X ) CandAttrs(Y X, P) and Z V P : Z V has no spurious output tuples), then (IdAttrsPath(Y X, P) = KeyAttrs(Y X )). 2. Otherwise, let Z V P but Z V Y X. Let P’ be the path from Z V to the warehouse. If (IdAttrsPath(Z V, P’) [ ] and IdAttrsPath(Z V, P’) CandAttrs(Y X, P)), then (IdAttrsPath(Y X,P) = IdAttrsPath(Z V,P’)). 3. Otherwise IdAttrsPath(Y X,P) =[ ]. Definición: Proceso de carga con falla – Ident. Contribuyentes
Presentaciones similares
© 2025 SlidePlayer.es Inc.
All rights reserved.