Extraction and Transformation of Data from Semi-Structured Text
Files Using a Declarative Approach
Ricardo Fortuna Raminhos
Faculdade de Ciências e Tecnologia Universidade Nova de Lisboa
1.
2.
3.
4.
5.
Motivação
Abordagem
Solução
Caso de Estudo
Conclusões e Trabalho Futuro
ETL= Extracção
+ Transformação
+ Carregamento (Loading)
Motivação - O quê?
+ Fontes de Dados Técnicas
+ Metadados e Documentação
Mas...
Novas Fontes de Dados: Informação Semi-Estruturada
Fontes de Dados Simples Ficheiros
Metadados ou Documentação Reduzidos
Motivação – Pressupostos Comuns ao ETL
Abordagem comum ao ETL:
+ Dados EstruturadosBD
XMLAPIs
JMS
:Data_list: 20050430_ace_mag_1m.txt:Created: 2005 May 01 0009 UT# Prepared by the U.S. Dept. of Commerce, NOAA, Space Environment Center.# Please send comments and suggestions to [email protected] # # Magnetometer values are in GSM coordinates.# # Units: Bx, By, Bz, Bt in nT# Units: Latitude degrees +/- 90.0# Units: Longitude degrees 0.0 - 360.0# Status(S): 0 = nominal data, 1 to 8 = bad data record, 9 = no data# Missing data values: -999.9# Source: ACE Satellite - Magnetometer## 1-minute averaged Real-time Interplanetary Magnetic Field Values # # Modified Seconds# UT Date Time Julian of the ---------------- GSM Coordinates ---------------# YR MO DA HHMM Day Day S Bx By Bz Bt Lat. Long.#------------------------------------------------------------------------------------2005 04 30 0000 53490 0 0 8.5 -3.1 -9.9 13.4 -47.5 339.92005 04 30 0001 53490 60 0 8.5 -1.8 -10.3 13.5 -50.0 347.92005 04 30 0002 53490 120 0 7.7 -0.9 -10.9 13.4 -54.4 353.22005 04 30 0003 53490 180 0 6.7 0.5 -11.6 13.4 -60.0 3.92005 04 30 0004 53490 240 0 7.6 -3.3 -9.4 12.6 -48.5 336.52005 04 30 0005 53490 300 0 7.4 -0.5 -10.3 12.7 -54.1 356.32005 04 30 0006 53490 360 0 7.7 -0.9 -10.1 12.7 -52.3 353.32005 04 30 0007 53490 420 0 8.0 -1.2 -9.7 12.6 -50.3 351.52005 04 30 0008 53490 480 0 8.1 -2.0 -9.4 12.6 -48.3 346.22005 04 30 0009 53490 540 0 8.5 -1.9 -9.0 12.6 -46.0 347.42005 04 30 0010 53490 600 0 8.7 -2.2 -8.9 12.6 -44.8 346.1
Motivação – Dados Semi-EstruturadosMetadados sobre o Ficheiro
Metadados sobre os Dados
Dados
Motivação – Fontes de Dados Comuns
Interface
Modelo
Dados
Interface de Acesso aos Dados
Modelo Relacional
Modelo XML
Modelo de Troca de Mensagens
Documentação
Base de Dados
MSGXML
Perito Informático
Perito Domínio
Motivação – Novas Fontes de Dados
Dados????
OK!Sistema SESS
+ Simplicidade de Acesso aos Dados
+ Informação Semi-Estruturada
+ Dificuldade na compreensão do domínio por não especialistas
Como identificar os dados relevantes?
Perito Informático
Perito Domínio
Motivação – Interacção Apropriada?
Interacção Demorada!
Erros de Modelação e Validação Frequentes!
Identificação de dados relevantes
Codificação do processo de extracção
Regras de qualidade de dados
Codificação das regras de qualidade
Informação relevante e formato dos dados
Codificação, Codificação, Codificação
Múltiplas validações e sugestões...
Correções, Correções, Correções...
( )X 100
D I
Abordagem – Divisão do Conhecimento?Conhecimento = Domínio + Informático
Como dividir?
ETL = ETD + IL (Tese)
Conhecimento de Domínio Conhecimento Informático
TransformationData Delivery
Integration Loading StagingArea
Aquisição de dados
Qualidade dos dados
Transformação de formatos
Entrega de informação relevante
Integração de dados de fontes diferentes
Integração de dados temporais
Formatação para carregamento
Execução da rotina de carregamento
ExtractionExtraction:
Dados Normalizados + Qualidade Dados + Metadados Descritivos
ETL Clássico
Abordagem – Como Implementar?
+
-
Abstracção e
Adequação ao
Conhecimento de Domínio
Editor gráfico que permite a anotação sobre os dados através de interacção gráfica
Editor gráfico
Abordagem declarativa
X Código fonte
Solução - Requisitos
+ Interacção Intuitiva
+ Correcção
+ Validação
+ Rastreabilidade
+ Completude
- Modularidade
- Reutilização
- Escalabilidade
- Desempenho
- Tolerância a Falhas
Desenho da Solução
Engenharia da Implementação
Solução - Arquitectura
DSP
DSP
... File RetrieverServidor
DSP
DSP
... File Retriever
Cache
Servidor
DSP
DSP
... File Retriever
FFD Editor
Cache
Servidor
DSP
DSP
... File Retriever
FFD Editor
Cache Metadata Repository
Servidor
DSP
DSP
...
F
File Retriever ETD
FFD Editor
Cache Metadata Repository
Servidor Servidor
DSP
DSP
...
F
F
F
File Retriever ETD
FFD Editor
Data Delivery Interface
Cache Metadata Repository
ILServidor Servidor
X
DSP
DSP
...
F
F
F
XX
File Retriever ETD
FFD Editor
Data Delivery Interface
Cache Metadata Repository
IL
Console
Servidor Servidor
X
DSP
DSP
...
F
F
F
XX
File Format Definition Language
Solução - Tecnologias
File Retriever ETD
FFD Editor
Data Delivery Interface
Cache Metadata Repository
IL
Console
Servidor Servidor
X
DSP
DSP
...
F
F
F
XX
File Format Definition Language
File Retriever ETD
FFD Editor
Data Delivery Interface
Cache Metadata Repository
IL
Console
Servidor Servidor
X
DSP
DSP
...
F
F
F
XX
Web Services
File Retriever ETD
FFD Editor
Data Delivery Interface
Cache Metadata Repository
IL
Console
Servidor Servidor
X
DSP
DSP
...
F
F
F
XX
XML
SWT
XMLXML
Schema
Solução – Modelo da Linguagem
Input File
Sectioned File
Section Definitions
+Field
Partioned File
FieldDefinitions
+Transformed
File
Transformation Definitions
+
Data Delivery File
Data DeliveryDefinitions
Field Partioned File
+
+
Solução – Fluxo do Editor
E
T D
Validação do FFD
Solução – Editor / Extracção
Dividir para conquistar
Seccionamento = Delimitado V Contíguo
Qualidade da estrutura: Regras de Validação
Campos = Singulares V Tabulares
Qualidade de dados = Tipagem + Regras de Validação
Mapeamento interno para expressões regulares
Solução – Editor / Transformação
f() output V f(input) output
input = Campo extraído V Resultado transformação
Biblioteca de transformações (abordagem de plugins)
Tipagem de dados ao nível de cada transformação
Representação clássica como um grafo
Solução – Editor / Entrega de Dados
Interface entre ETD e IL
Definição de raíz versus template pré-definido
= E x Campos Extraídos + T x Resultados Transformação
Tipagem de dados
Caso de Estudo - Conceito
SESS = Space Environment Support System
Dados = Ambiente Espacial (Spaceweather) + Telemetria
Fontes (8) = FTP (2) + HTTP (5) + Web Services (1)
Ficheiros (63) = Ambiente Espacial (62) + Telemetria (1)
Parâmetros (749) = Ambiente Espacial (636) + Telemetria (113)
E funciona?
Sim!
Caso de Estudo - Utilização
4000 Ficheiros descarregados diariamente
140 MB tráfego rede = 40 MB compressão em disco
1 KB <= Tamanho Ficheiro <= 3,5 MB (Telemetria)
Tamanho Médio = 35KB
1 segundo <= Tempo Processamento <= 30 segundos
Tempo Médio = 2 segundos
Caso de Estudo - Estatísticas
E a criação de definições de formatos?
Projecto SEIS (sem Editor Gráfico)
4 meses (1 pessoa)
Projecto SESS
1 + ½ meses (1 pessoa)
62%
Em muitos casos ETD + IL é a melhor abordagem ao ETL
Conclusões e Trabalho Futuro
Extensão das capacidades do Editor
+ Interacção com o utilizador
+ Inteligência
+ Tipos de ficheiros de dados (e.g. HTML)