Spatial Data Spatial Data WarehouseWarehouse
Por: Camilo Porto
Apresentação Revisando esquema estrela...
limitações Spatial Data Warehouse (SDW)
Um modelo conceitual Estendendo o esquema estrela
Implementação de um SDW Tipos e tabelas MapWarehouse
Avaliação de Performance Conclusões
Revisando o Esquema Estrela Entidades
Tabela de fatos Dimensões Hierarquia de dimensões
Funções de Agregação Soma Média
OLAP Roll-up / Drill down Slice
Revisando o Esquema Estrela
Vendas(quantidade, faturamento), por data, por produto e por fornecedor.
Limitações Vamos descobrir as limitações do esquema
estrela com um Caso de Uso. Supervisão de mortalidade de doenças nos
departamentos de saúde da França (Bimonte 2005)
Dados de mortalidade inclui: Número de mortes registradas Causa da doença Localização da morte Sexo do paciente Grupos de 5-5 anos de idade
Limitações
Deseja-se saber o total de mortes ocorridas (operador de agregação = SQL SUM())
Limitações
Outro Caso de Uso semelhante...
A medida da tabela de fatos é um campo espacial
Qual função de agregação utilizar?
Limitações
Campos espaciais freqüentemente estão presentes em aplicações.
São de grande utilidade no apoio ao processo de tomada de decisão
Maior facilidade de análise Enxergar resultados visualmente
(mapas)
Limitações Como representar campos
geométricos (dimensão espacial) no esquema estrela convencional?
Como representar hierarquias espaciais?
Quais funções de Agregação utilizar em medidas espaciais? Medidas espaciais incluem, também,
atributos não espaciais.
Exemplificando No segundo Caso de Uso, como agregar
a medida Departamento(nome, #hospitais, geometria)? Nome – não se agrega (não há semântica) #hospitais e geometria – usa-se soma e
união Dependência semântica de operadores Uso de soma => uso de união
E se for usado o operador média(#hospitais)??
Limitações
Faz-se necessário Modelar medidas e dimensões como
entidades complexas Vários atributos de vários tipos como uma
única medida/dimensão Dar suporte a dependência semântica de
operadores e atributos
Com modelo relacional... Inviável!
Spatial Data Warehouse
Definição
Data Warehouse que utiliza dimensões, medidas e operadores espaciais
Utiliza API OLAP Espacial (SOLAP) Oferece relatórios gerenciais
espaciais para visualização em formato de mapas
Modelo Conceitual (Bimonte2005)
Entity Schema S = <a1,...,an>, onde ai é um atributo
definido no domínio dom(ai). S.ai é o i-ésimo atributo da entidade S. A(S) é o conjunto dos atributos ai de S =
{a1,...,an}
Exemplo dept<zipcode,name,population,#hospitals,geometry>
Modelo Conceitual Entity Instance
Dado um entity schema S=<ai,...an> Entity Instance ti = <val(ai),...,val(an)>, onde ai
є A(S) e val(ai) є dom(ai) ti.aj é o valor do j-ésimo atributo da instância ti
J(S) é o conjunto de tuplas ti de S.
Exemplo t=<57,”epidemias”,137,5,^geometry>
Modelo Conceitual Hierarchy Schema
SHh = <L, Sinit, ↑>, onde: L={S1,...Sn} conjunto de Entity Schema (níveis) Sinit é um Entity Schema (base da hierarquia) ↑ é uma função de ordenação parcial em {L
Sinit}
Exemplo SH<Lregião, município, ↑> :
Lregião ={região, estado};
município ↑ região ↑ estado
Modelo Conceitual
Hierarchy Instance Uma instância de um Hierarchy Schema
SHh= <L, Sinit, ↑> é um conjunto de tupla ti, tal que: Se ti є J(Si) e Si ↑ Sj, então tj є J(Sj) tal que
ti ↑ tj
Exemplo: Hierarchy Instance
Paraíba
Sertão Cariri Brejo
Municipio1 Municipio2 Municipio3 Municipio4 Municipio5 Municipio6
Modelo Conceitual
Base Cube Schema SBCcb = <S1,...,Sm, Sf, δ>, onde
i,j є [1,...,m,f], Si é um Entity Schema e Si != Sj
i є [1,...,m] existe um Hierarchy Schema SHi = <L, Sinit, ↑>, tal que Si = Sinit
δ é função booleana
Exemplo – Base Cube Schema Conjunto de Entity Schemas, onde cada um
é a base de um Hierachy Schema (Sinit) SBCmortality_base = <
Sdia,
Ssexo,
Sdoencas,
Sdept,
δ>
Modelo Conceitual Base Cube Instance
Dado um SBCbc = <S1,...,Sn, Sf, δ>, um Base Cube Instance é um conjunto tuplas BCc = {<t1
j,...,tnj, fm
j>, j=1...p}, tais que: ti
j є J(Si), e fm
j є J(Sf), e δ(t1
j,...,tmj, fm
j)=1
Em português, um BCc é um conjunto de Entity Instances (medidas e dimensões) cujo valor de δ é avaliado em 1.
Exemplo... (ver Base Cube Schema)
Modelo Conceitual Aggregation Mode
É uma tupla Θ = <Sa, Sb, Φ>, onde Sa é um Entity Schema <a1,...,am> Sb é um Entity Schema <b1,...,bn> Φ é um conjunto de funções de agregação (ad
hoc) Φi
Semanticamente, diz-se que Sb é derivado de Sa, ou seja, a agregação de um conjunto de instâncias de Sa gera uma instância de Sb.
A agregação de um conjunto de val(ai...ak) (k>0) através de uma função Φi irá formar val(bi)
Aggregation Mode Formalmente
j є [1..n], val(bj) = Φi..p(ti.a1,...,ti.ak) Onde,
ti є J(Sa) ar є A(Sa), r=[1..k]. P é o número de instâncias agregadas de Sa
Com isso é possível modelar medidas como entidades complexas, desde que se defina uma função de agregação “semanticamente correta”.
Exemplo: como agregar a entidade depto<população, geometria, #hospitais>?
Exemplo - Aggregation Mode
Modelo Conceitual Cube Schema
É uma tupla SCc = <SBCbc,L,Θf,δ>, onde: SBCcb = <Sb1,...,Sbm, Sf, δ> é um Schema Base
Cube L é um conjunto de Entity Schemas Si tal que
Si є L, existe Sbi є {Sb1,...,Sbm} tal que Sbi ↑ Si ou Sbi = Si, e
Existe Sk є L tal que Sbi ↑ Sk
Θf é um Aggregation Mode <Sf, Saf,Φ> δ é uma função booleana
δ : J(Sb1 x ... x Sbm x Saf → {0,1}
Modelo Conceitual
Cube Instance Uma instância de um Cube Schema SCc
= <SBCbc,L,Θf,δ> é um conjunto de tuplas Cc tal que Cc = {<t1
j,...,tnj, fm
j>, j=1...p}, onde Si є L ti
j є J(Si) fm
j є J(Saf), e δ(t1
j,...,tnj, fm
j) = 1
Base Cube X Cube
Um Cube é um Base Cube após a aplicação da função de agregação. Por exemplo, após um roll-up ou drill-down.
MapWarehouse - Implementação OR de SDW (Sampaio 2006)
Modelo da Aplicação
Trata-se de uma aplicação para auxiliar a gestão da agricultura no estado da Paraíba.
Exibir relatórios de campos agrícolas por tempo, plantação, solo, precipitação e localização.
Esquema Conceitual
Esquema OR
Sobre o MapWarehouse Mapeamento do modelo conceitual em OR Implementado sobre o SGBD Oracle 10g Aplicação 3-camadas
Operacional Aplicação WUI
Visualização de resultados em forma de mapas
Sobre o MapWarehouse
Exemplo base
Iremos nos basear em uma possível consulta: Recupere os campos de milho por micro-
região(região) e por região(micro-região) do estado da Paraíba, durante o mês de maio de 2003.
Realização da consulta em OR(Select a.Location_ref.Microregion_geometry,SDO_AGGR_UNION(MDSYS.SDOAGGRTYPE(a.CropArea_ref.CropArea_geometry,
0.005))From AgroDistributionTable aWhere a.Plantation_ref.Name = ‘corn’ And a.Time_ref.Month = 5 And
a.Time_ref.Year = 2003 Anda.Location_ref.State_name = ‘Paraíba’Group by a.Location_ref.Microregion_geometry)UNION(Select a.Location_ref.Region_geometry,
SDO_AGGR_UNION(MDSYS.SDOAGGRTYPE(a.CropArea_ref.CropArea_geometry,
0.005))From AgroDistributionTable aWhere a.Plantation_ref.Name = ‘corn’ And a.Time_ref.Month = 5 And
a.Time_ref.Year = 2003 Anda.Location_ref.State_name = ‘Paraíba’Group by a.Location_ref.Region_geometry)
Realização de função de Agregação
Agregação por referência (restrição Oracle) Melhora performance
Roll up X Drill Down
Resultado da consultaRoll-Up: de micro-região...
ResultadoRoll-Up: ... para Região
Aspectos de Desempenho
Problema de Desempenho União de Geometrias = tarefa muito
onerosa Exemplo citado
Paraíba 223 municípios 23 micro-regiões 4 regiões 1 estado
Supondo uma média de 50 campos de milho por município, e 30 dias por mês. Campos de milho, por mês = 50*223*30
=334.500 operações de união!
Formulação do Problema
Dada uma consulta espacial, quantas operações de agregação espacial são apropriadas para serem pre-computadas, de forma a atender o requisito de tempo de resposta (5s)(5s)? (Sampaio 2006)
Resolução do Problema
Baseado no mecanismo de agregação pre-computada de Kimball
Pré computa algumas agregações espaciais (extensão da abordagem de Kimball)
Reescreve consulta para utilizar, de forma adequada, as agregações pre-computadas
Exemplo: Esquema Original
Exemplo
Tabela de fatos pré-computada. Derivada da tabela AgroDistributionTable.
Note a semelhança entre os nomes dos atributos das tabelas
Atributo Agregado
Exemplo
Tabela de dimensões pré-computada. Derivada da tabela LocationTable
Ausência dos atributos de municípios.
Exemplo: Reescrevendo a consulta(Select a.Location_ref.Microregion_geometry,SDO_AGGR_UNION(MDSYS.SDOAGGRTYPE(a.CropArea_ref.CropArea_geometry,
0.005))From AgroDistributionTable aWhere a.Plantation_ref.Name = ‘corn’ And a.Time_ref.Month = 5 And
a.Time_ref.Year = 2003 Anda.Location_ref.State_name = ‘Paraíba’Group by a.Location_ref.Microregion_geometry)UNION(Select a.Location_ref.Region_geometry,
SDO_AGGR_UNION(MDSYS.SDOAGGRTYPE(a.CropArea_ref.CropArea_geometry,
0.005))From AgroDistributionTable aWhere a.Plantation_ref.Name = ‘corn’ And a.Time_ref.Month = 5 And
a.Time_ref.Year = 2003 Anda.Location_ref.State_name = ‘Paraíba’Group by a.Location_ref.Region_geometry)
Exemplo: Consulta Reescrita(Select a.Location_ref.Microregion_geometry,SDO_AGGR_UNION(MDSYS.SDOAGGRTYPE(a.CropArea_ref.CropArea_geometry,
0.005))From MicroregionAgroDistributionTable aWhere a.Plantation_ref.Name = ‘corn’ And a.Time_ref.Month = 5 And
a.Time_ref.Year = 2003 Anda.Location_ref.State_name = ‘Paraíba’Group by a.Location_ref.Microregion_geometry)UNION(Select a.Location_ref.Region_geometry,
SDO_AGGR_UNION(MDSYS.SDOAGGRTYPE(a.CropArea_ref.CropArea_geometry,
0.005))From MicroregionAgroDistributionTable aWhere a.Plantation_ref.Name = ‘corn’ And a.Time_ref.Month = 5 And
a.Time_ref.Year = 2003 Anda.Location_ref.State_name = ‘Paraíba’Group by a.Location_ref.Region_geometry)
Avaliação de Desempenho
Algoritmo simples, desde que se preserve os nomes dos atributos das tabelas originais
Ganho considerável de desempenho
Avaliação de Desempenho
Tempo gasto pela consulta (não) utilizando Spatial Logical Optimization (SLO)
Consulta por nº de meses, por ano (série de 1999-2005)
Avaliação de Desempenho
Speed up: (tempo gasto ~SLO / tempo gasto SLO)
Conclusão Inserir medidas e dimensões
espaciais em DW requer uma nova modelagem do DW (hierarquias espaciais, medidas espaciais, dimensões espaciais) em níveis conceitual, lógico e físico
Repensar conceitos das operações OLAP para atender Spatial OLAP (SOLAP).
Referências Bimonte, S., Tchounikine, A., Miquel, M.
Towards a Spatial Multidimensional Model. Proceedings of the Data Warehousing and OLAP Conference (DOLAP’05), 39-46.
Sampaio, M.C., Baptista, C.B., Souza, A.G. Towards a Logical Multidimensional Model for Spatial Data. Proceedings of The Data Warehousing and OLAP Conference (DOLAP’06)
Spatial Data Spatial Data WarehouseWarehouse
Obrigado
Top Related