Categorías
Donaciones

Todo el contenido es gratuito y en beneficio de la comunidad. Puedes reconocer el esfuerzo con una donación si lo deseas.

Inserte aquí su publicidad

Hoy surgió esta necesidad. Trabajando en un conjunto de funciones de búsqueda difusa, pero así online (no en modo batch, para eso ya tenemos DQS), vimos que la forma en la que están implementados los algoritmos típicos, como Jaro-Winkler o Jaccard, en las funciones de Master Data Service era especialmente eficiente. Así, haciendo uso de la función “mdq.Similarity” se obtiene una búsqueda para usar en un procedimiento almacenado con un resultado bastante apañado. El problemilla estaba en querer usarlo en una instancia sin MDS instalado, ni ganas de instalarlo, ya que siendo SQL Server 2008 R2, aun siendo factible, no es especialmente fácil de mantener.

Empleamos la vía rápida. Tomar un script del assembly (de los de botón derecho + create script) y de la función de una instancia 2012 y crearlo en la instancia 2008 R2, y hete aquí que funciona. ¿Soportado? No creo. ¿Buena idea? No lo sé aún. Pero el caso es que funciona y, bueno, habrá que probar a ver cómo va.

CREATE ASSEMBLY [Microsoft.MasterDataServices.DataQuality]
FROM 0x4D5A90000300000004000000FFF ....--> lo corto por razones estéticas
WITH PERMISSION_SET = SAFE

GO

--Cambiar el esquema de "mdq" a otro
CREATE FUNCTION [dbo].[Similarity](@input1 [nvarchar](4000), @input2 [nvarchar](4000), @method [tinyint], @containmentBias [float], @minScoreHint [float])
RETURNS [float] WITH EXECUTE AS CALLER, RETURNS NULL ON NULL INPUT
AS 
EXTERNAL NAME [Microsoft.MasterDataServices.DataQuality].[Microsoft.MasterDataServices.DataQuality.SqlClr].[Similarity]

GO

Un link con más info sobre estas funciones de búsqueda difusa en MDS: http://sqlblog.com/blogs/jamie_thomson/archive/2009/11/09/fuzzy-logic-and-regex-come-to-t-sql-in-sql-server-2008-r2-available-now.aspx

Deja un comentario


Uso de cookies

Este sitio web utiliza cookies para que usted tenga la mejor experiencia de usuario. Si continúa navegando está dando su consentimiento para la aceptación de las mencionadas cookies y la aceptación de nuestra política de cookies, pinche el enlace para mayor información.plugin cookies

ACEPTAR
Aviso de cookies