Hiển thị các bài đăng có nhãn SSIS. Hiển thị tất cả bài đăng
Hiển thị các bài đăng có nhãn SSIS. Hiển thị tất cả bài đăng

SSIS con filas duplicadas - Cómo evitarlas en Excel u otro formato

Introducción de como evitar filas duplicadas usando SSIS

En este nuevo artículo mostraremos cómo eliminar filas duplicadas de Excel utilizando SSIS. Para logarlo, utilizaremos un componente externo denominado SSIS Package from Melissa Data.

Requisitos


  1. SQL Server Integration Services (que se instala con SQL Server)
  2. El instalador del paquete de Melissa 
  3. SSDT instalado


Presentación de Melissa Data


Dicho componente incluye varias Tareas de SSIS entre las cuales se tienen las siguientes:


  1. MatchUp es la tarea que se utilizará en este ejemplo. Se usa para eliminar datos duplicados.
  2. El componente Contact Verify valida la información de contacto verificando que la dirección sea válid, que sea coherente la ciudad y estado, valida el correo electrónico, si existen palabras raras o sospechosas y mucho más.
  3. El Fuzzy Match compara datos de acuerdo a diferentes algoritmos de comparación como ser el algoritmo de Jaro, N-Gram, MDKeyboard y muchos más.
  4. El Generalized Cleanser se usa para estandarizar datos respecto a mayúsculas, minúsculas, abreviaciones y mucho más.
  5. GlobalVerify se usa para verificar las direcciones internacionales en más de 240 países. Traduce caracteres en caracteres nativos. Incluye la latitud y longitud a geocódigos internacionales de direcciones postales.
  6. IPlocator permite obtener la latitud, longitud, ciudad, país de acuerdo con el IP.
  7. Personator es una tarea que sirve para verificar que la dirección, correo electrónico y teléfono coinciden.
  8. Profiler nos permite analizar los datos y verificar que tengan la calidad como para entrar a un almacén de datos conocido también como un Data Warehouse.
  9. Property se usa cuando necesitamos ver información sobre una propiedad de parcela. Nos muestra su precio, metros cuadrados, hipotecas y dimensiones.
  10. SmartMover se aplica a Canadá y EE.UU. se aplica para gente que se traslada de dirección.

Detectar datos duplicados

En el instalador de Melissa Data para SSIS, se tienen interesantes ejemplos de cada componente. En esta ocasión, mostraremos el ejemplo MatchUp para detectar datos duplicados.

En el instalador de Melissa vaya al ejemplo de MatchUp. En mi caso, el ejemplo está en la siguiente dirección abra el archivo MatchUp.sln:


 El ejemplo utiliza un Data Flow. Realice un doble clic en la tarea:
Luego de hacer doble click veremos en la página de Data Flow  que incluye un archivo de texto que es el Input. El MatchUp es el que realizará la tarea de ordenar los datos similares e identificará los datos que son duplicados:



Se tiene el siguiente archivo de texto con 500 filas:
En el Matchcode se selecciona los datos que se analizarán si son duplicados y son la dirección (address), apellido (last name), first name (nombre):

 La página de Field Mapping se usa para indicar el tipo de columna de acuerdo con los tipos de dato de Melissa Data para que entienda que tipo de información contiene:

La sección de Options mostrará datos importantes MD_DupCount contará los datos duplicados. 



Survivorship/Pass Though mostrará los tipos de datos, precisión, el largo de las cadenas:

 Los datos duplicados serán detectados rápidamente por la herramienta y la columna MD DupeCount contará los duplicados existentes los datos serán agrupados según las columnas con datos comunes:


Si ejecutamos el paquete, un archivo txt se generará con los datos agrupados.


El presente ejemplo hizo el análisis de datos duplicados usando un archivo de texto. Sin embargo, se pueden verificar datos duplicados de diferentes tipos de datos incluyendo MS Excel.

Conclusiones

Melissa Data incluye importantes herramientas que ayudan a detectar datos duplicados, malas direcciones, datos basura y mucho más.


Referencias




Libro gratuito en formato PDF sobre SSIS (SQL Server Integration Services)


El presente libro es una compilación de artículos del paladín tecnológico sobre SSIS.

El libro es totalmente gratis. SQL Server Integration Service en su forma actual ya funciona desde SQL 2005.

Descargar libro

SSIS es una tecnología extremadamente poderosa, pero poco comprendida y explotada no solo en latinoamérica y España sino a nivel mundial.

El objetivo de este pequeño libro o revista es que la gente le vaya perdiendo el miedo.

Paso de parámetros vía linea de comandos en SSIS


En SQL Server Integration Services (SSIS), mucha gente aprende, pero le cuesta llegar a poder recibir parámetros. En este ejemplo voy a copiar datos de una tabla origen a una tabla destino especificando el ID como parámetro. Luego voy a llamar al paquete desde el cmd (la línea de comandos y pasarle el parámetro).

Para este ejemplo, estoy usando la base de datos adventureworks, pero usted puede adaptar el ejemplo a cualquier tabla de cualquier base de datos. 

El paquete es un simple Data Flow y dentro del Data Flow se tiene un OLE DB Source y un OLE DB Destination:





Vamos a tener una variable con el valor del ID a especificar y la otra variable contendrá la expresión con la sentencia..



La expresión adjuntará la consulta a un parámetro. En este caso la consulta es la siguiente:
"SELECT [BusinessEntityID]       ,[NationalIDNumber]       
FROM [HumanResources].[Employee] 
where [BusinessEntityID]= "+ @[User::Variable1]

Donde User Variable es la otra variable que contiene el ID. Estamos mostrando el BusinessEntityID y el NationalIDNumber de la tabla Employee cuyo BusinessEntityID es igual a una variable.


En el source hay que utilizar, SQL command from variable para recibir variables en los comandos. Es decir que el comando o la sentencia select permita recibir parámetros. Para eso se usa una variable.


El resto es crear la tabla destino. 


Finalmente, para ejecutar el paquete en la línea de comandos le vamos a pasar el valor de 9 al parámetro creado. Hay que tener extremado cuidado con las mayúsculas y minúsculas. Esta línea de comandos es extremadamente sencilla.

dtexec /F "c:\script2\Package.dtsx" /set \package.variables[Variable1].Value;9