Limpeza e transformação de dados (SSIS)

Documentos relacionados
Limpeza e transformação de dados

Tarefa Orientada 13 Agrupamento e sumário de dados

BDII SQL Junção Revisão 8

Os dados no MySQL são armazenado em tabelas. Uma tabela é uma colecção de informação relacionada e consiste em colunas e linhas.

Tarefa Orientada 12 Junção Externa, Auto-Junção e União

Bases de Dados 2005/2006. Aula 5

Roteiro 9 - SQL Básico: chave estrangeira, operadores de comparação e operadores booleanos

BD SQL Server. Licenciatura em Engenharia Informática e Computação. Bases de Dados 2003/04

NOME SEXO CPF NASCIMENTO SALARIO

SQL (Structured Query Language)

Data Transformation Services (DTS) por Anderson Ferreira Souza

Programação SQL. Introdução

Esquema da Relação. Modelo Relacional. Instância da Relação. Exemplo. Uma base de dados é uma colecção de uma ou mais relações com nomes distintos

P S I 2. º A N O F 5 M E S T R E / D E T A L H E E P E S Q U I S A. Criar uma relação mestre-detalhe. Pesquisa de informação

Tarefa Orientada 14 Subconsultas

Álgebra Relacional. Conjunto de operações que usa uma ou duas relações como entrada e gera uma relação de saída. Operações básicas:

APROG - Civil. Excel. Técnicas de pesquisa de informação em tabelas. Instituto Superior de Engenharia do Porto

SQL (Structured Querie Language) Escola Secundária de Emídio Navarro 2001/2002 Estruturas, Tratamento e Organização de Dados

Laboratório 1 SQL Server Integration Services

f. Vocês podem selecionar todos os campos indicando-os, ou seja, sem usar * (boa prática) g. Muito relevante na manutenção de BD e de aplicações.

Microsoft Access. No Access, existem vários tipos de objectos: Tabelas. Consultas. Formulários Relatórios Macros Módulos

Best Practices SSIS 2008 for Starters

Tarefa Orientada 15 Manipulação de dados

PROGRAMA. Objectivos Gerais :

SQL Linguagem de Manipulação de Dados. Banco de Dados Profa. Dra. Cristina Dutra de Aguiar Ciferri

Desenvolvimento de uma base de dados. Relação. Modelo lógico: SGBD relacional

Introdução às Bases de Dados

Iniciar o Data Adapter Configuration Wizard. Toolbox Data Duplo clique em OleDbDataAdapter. Botão next na caixa de diálogo

Laboratório 4. Base de Dados II 2008/2009

Tarefa Orientada 11 Junção Interna

Ex.: INSERT INTO tmpautor (CDAUTOR, NMAUTOR) VALUES (1, Renato Araújo )

Projeto de Banco de Dados

Definida pelo American National Standard Institute (ANSI) em 1986

Tarefa Orientada 19 Triggers

BANCO DE DADOS -INTRODUÇÃO AO SQL. Prof. Angelo Augusto Frozza, M.Sc.

Ex.: INSERT INTO tmpautor (CDAUTOR, NMAUTOR) VALUES (1, Renato Araújo )

EXAME DE 1ª ÉPOCA Semestre de Verão 2004/ Junho 2005 duração: 2h30m

MANUAL DO EXCEL. Um campo é um espaço que contém determinada informação (ex: Nome do cliente X, Telefone do Sr. Y)

INSTITUTO SUPERIOR TÉCNICO Administração e Optimização de Bases de Dados

Bases de Dados 2007/2008 Exame

Linguagem SQL Parte I

Tarefa Orientada 16 Vistas

Tarefa Orientada 5 Aplic. Manutenção de Facturas de Clientes

Bases de Dados 2007/2008. Aula 9

SQL Server Data Quality Services. Diogo Rodrigues Cabral (drc2)

Bases de Dados. DML Data Manipulation Language Parte 1

Número: Nome:

4.6. SQL - Structured Query Language

Memória de aula Semanas 15 e 16

BASES DE DADOS I LTSI/2. Universidade da Beira Interior, Departamento de Informática Hugo Pedro Proença, 2010/2011

Prof.: Clayton Maciel Costa

Administração e Optimização de BDs

Banco de Dados. Conversão para o Banco de Dados SisMoura

Programação Básica em STEP 7 Símbolos. SITRAIN Training for Automation and Drives Página 4-1

UNIVERSIDADE FEDERAL DE SANTA MARIA - UFSM COLÉGIO AGRÍCOLA DE FREDERICO WESTPHALEN BANCO DE DADOS II

UNIVERSIDADE DA BEIRA INTERIOR Faculdade de Engenharia Departamento de Informática

Licenciatura em Engenharia Informática Departamento de Engenharia Informática Instituto Superior de Engenharia do Porto

1 Criar uma entity a partir de uma web application que usa a Framework JavaServer Faces (JSF)

Prof. Carlos Majer Aplicações Corporativas UNICID

Programação SQL. INTRODUÇÃO II parte

Banco de Dados. Um momento crucial na organização dos dados é a forma com que cadastramos estes dados, a estrutura de armazenamento que criamos.

Bases de Dados 1º semestre

UFCD 787. Administração de base de dados. Elsa Marisa S. Almeida

Bases de Dados 2008/2009

EXEMPLOS DE COMANDOS NO SQL SERVER

Structured Query Language (SQL) SQL é uma linguagem normalizada (ANSI) para consultas e actualizações de bases de dados relacionais.

Programação SQL. Manipulação de Dados. DML Data Manipulation Language

O que são Bancos de Dados?

Introdução à Manipulação de Dados

Projeto de Banco de Dados: Empresa X

DO BÁSICO AO AVANÇADO PARA MANIPULAÇÃO E OTIMIZAÇÃO DE DADOS. Fábio Roberto Octaviano

Tutorial :: Introdução ao VHDL em ambiente Design Works

Bases de Dados 2007/2008 Exame

SQL92 DDL( RIS, ACTUALIZAÇÕES E VISTAS) DML (QUERIES, SUBQUERIES,JUNÇÕES, E OPERAÇÕES SOBRE CONJUNTOS)

Banco de Dados. Marcio de Carvalho Victorino Exercícios SQL

Índice. Introdução Tutorial 1: O Microsoft Access como Sistema de Gestão de Bases de Dados Relacionais... 35

Trabalhando com conexão ao banco de dados MySQL no Lazarus. Prof. Vitor H. Migoto de Gouvêa Colégio IDESA 2011

1. Assinale as afirmações que são verdadeiras e as que são falsas, corrigindo-as:

Faculdade Pitágoras 16/08/2011. Curso Superior de Tecnologia: Banco de Dados Sistemas para Internet

Faculdade Pitágoras. Curso Superior de Tecnologia: Banco de Dados. Disciplina: Banco de Dados Prof.: Fernando Hadad Zaidan SQL

Consistem num conjunto de apontadores para instâncias especificas de cada relação.

Com criar relatório no Report Services do Microsoft SQL Server 2008 R2 integrado com o

Base de dados I. Uma base de dados é um simples repositório de informação relacionado com um determinado assunto ou finalidade

Sistema de Informação de Licenciamento de Operações de Gestão de Resíduos

EXCEL TABELAS DINÂMICAS

Tarefa Orientada 10 Obter informação a partir de uma tabela

Disciplina de Banco de Dados Parte V

Banco de Dados I Módulo V: Indexação em Banco de Dados. (Aulas 4) Clodis Boscarioli

Prof. Daniela Barreiro Claro

IF685 Gerenciamento de Dados e Informação - Prof. Robson Fidalgo 1

1. FILTRAR OS DADOS ATRAVÉS DE FORMULÁRIO (FILTER BY FORM)

SQL Comandos para Relatórios e Formulários. Laboratório de Bases de Dados Profa. Dra. Cristina Dutra de Aguiar Ciferri

Aplicações - SQL. Banco de Dados: Teoria e Prática. André Santanchè e Luiz Celso Gomes Jr Instituto de Computação UNICAMP Agosto de 2013

1. SQL Instrumental Select Delete Update Insert Group by Having Unnion All...

SQL comando SELECT. SELECT [DISTINCT] <campos> FROM <tabela> [condição] [ ; ] Paulo Damico - MDK Informática Ltda.

Manual de Administração Intranet BNI

Grupo I [6v] Considere o seguinte extracto de um programa de definição de uma calculadora apenas com a função soma de dois valores reais

Transcrição:

SAD: 4º Projecto DW Limpeza e transformação de dados (SSIS) Suponha a operação de junção aproximada, e que pretende utilizar esta operação para detectar registos aproximadamente duplicados de Clientes..A relação Clientes tem o seguinte esquema: Clientes(clId, nome) A chave clid não pode ser utilizada para detectar duplicados aproximados. Consideram-se duplicados aproximados aqueles registos de Clientes cuja distância de edição entre os seus nomes é inferior ou igual a 2. Considere uma função de distância de edição editdist(s1, s2) que aceita como entradas duas cadeias de caracteres s1, s2 e devolve um número inteiro que representa a distância de edição entre as duas cadeias. a) Qual a instrução SQL que devolve os pares de identificadores de Clientes que correspondem a clientes aproximadamente duplicados. b) A transformação LookUp, utilizada no tutorial do SSIS seria útil para especificar a semântica da instrução SQL de a) no SSIS? Justifique. Se não fôr útil, consegue sugerir uma alternativa? Se sim, explique como funcionaria. Nota: Pesquise informação sobre as Integration Services Transformations dentro dos Data Flow Elements no SQL Server 2008 Books Online. c) Experimente a alternativa da alínea b) (se fôr necessária) no projecto de Integration Services que criou na lição 1 do tutorial Creating a Simple ETL Package, substituindo a transformação LookUp na tabela DimCurrency pela nova transformação. Como parameterizaria a nova transformação e qual o significado? 1

a) Select c1.clid clid1, c2.clid clid2 from Clientes c1, Clientes c2 where editdist(c1.nome, c2.nome) <= 2 and c1.nome!= c2.nome b) O operador Lookup não serviria, pois executa um equi-join entre uma tabela de entrada e outro de referência. A alternativa seria: - operador FuzzyLookup ou FuzzyGrouping 2

Significado do Fuzzy Lookup: Join aproximado entre uma tabela e outra de referência. Primeiro, procura os matches exactos c) Parameterização do FuzzyLookup (faz parte da alínea c)) Tab Reference Table : OLE DB Connection Manager: AdventureWorksDW Generate a New index para quê? Reference Table name: DimCurrency Tab Columns : Arrastar CurrencyKey para CurrencyAlternateKey Seleccionar a checkbox de CurrencyKey Available Lookup columns: os campos que queremos usar para detectar os duplicados CurrencyID? CurrencyKey? Tab Advanced : Maximum nb of matches to output per lookup: 1 Similarity threshold: 0.99, por exemplo. Significado do FuzzyGrouping: detecta semelhanças entre os tuplos da tabela de entrada, determinando quais os aproximadamente duplicados através dos valores de cadeias de caracteres. Como funciona? Acrescenta duas colunas à tabela de entrada: _key_in e _key_out À medida que os tuplos de entrada são processados, o Fuzzy Grouping atribui um ID a cada um deles, que é o _key_in. Quando o Fuzzy Grouping agrupa um cjto de linhas como sendo duplicadas, determina qual deve ser a representante. Então, atribui à coluna _Key_out de todas as linhas no grupo o valor do _key_in do representante. Se só quisermos escrever na saída as linhas representantes, podemos filtrar a saída deste operador, seleccionando só as linhas em que _key_in é igual a _key_out 3

c) O fluxo de dados é composto por: OLE DB Source -> FuzzyGrouping -> OLE DB Destination Parameterização do OLE DB Source: Table: DimCurrency Columns: CurrencyKey, CurrencyAlternateKey, CurrencyName Parameterização do FuzzyGrouping: Tab Columns : CurrencyName Similarity Threshold: 0.9 por exemplo Mostrar os resultados para a tabela DimCurrency: Ex: Russian Ruble ~ Russian Ruble(old) ETL(SSIS) Suponha a seguinte tabela com informação sobre os amigos de um determinado utilizador: username friend1 friend 2 ------------------------------------------------------------------------------ Ana Bernardo Maria Bernardo João Manuel Rodrigo Maria Francisco e a transformação destes dados na tabela que se segue: username friend ---------------------------------------------- Ana Bernardo Ana Maria Bernardo Joao Bernardo Manuel Rodrigo Maria Rodrigo Francisco Em que a coluna Friend foi obtida a partir das colunas Friend1 e Friend2. Note-se que são gerados tantos tuplos por Username, quantas as colunas de Friendi na primeira tabela (que são duas neste exemplo). a) Diga se consegue especificar esta operação em SQL. Se a resposta fôr afirmativa, apresente a instrução SQL correspondente. b) Indique se conseguiria especificar esta transformação no SSIS. Em caso afirmativo, indique que transformação de dados do SSIS usaria. Nota: Pesquise informação sobre as Integration Services Transformations dentro dos Data Flow Elements no SQL Server 2008 Books Online. 4

a) Select username, friend1 as friend from friends union select username, friend2 as friend from friends O Resultado podia ou não estar ordenado por username. b) Unpivot: transforma valores de múltiplas colunas para um único registo em múltiplos registos com uma única coluna. Utilização: data flow: OLE DB Source -> Unpivot -> OLE DB Destination parameterização: input column : friend1, friend2 destination column : friend pivot key values : friend1, friend2 5

Ou UnionAll para implementar no SSIS a mesma semântica da alínea a). 1) Dois OLE DBSource, fazendo a projecção username, Friendi 2) UnionAll dos resultados de 1) 3) OLE DBdestination para inserir os resultados numa tabela de saída com esquema username, Friend. 6