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
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 Estruturados BD XML APIs JMS
:Data_list: _ace_mag_1m.txt :Created: 2005 May UT # Prepared by the U.S. Dept. of Commerce, NOAA, Space Environment Center. # Please send comments and suggestions to # # Magnetometer values are in GSM coordinates. # # Units: Bx, By, Bz, Bt in nT # Units: Latitude degrees +/ # Units: Longitude degrees # Status(S): 0 = nominal data, 1 to 8 = bad data record, 9 = no data # Missing data values: # 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. # Motivação – Dados Semi-Estruturados Metadados 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 MSG XML 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ínioConhecimento Informático Transformation Data Delivery IntegrationLoading Staging Area 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 Extraction Extraction: 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 File Format Definition Language
Solução - Tecnologias File Format Definition Language Web Services XML SWT XML Schema
Solução – Modelo da Linguagem Input File Sectioned File Section Definitions + Field Partioned File Field Definitions + Transformed File Transformation Definitions + Data Delivery File Data Delivery Definitions 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)
Ricardo Raminhos Obrigado!