Dela via


Fuzzy-grupperingsomvandling

gäller för:SQL Server SSIS Integration Runtime i Azure Data Factory

Fuzzy Grouping-omvandlingen utför datarensningsuppgifter genom att identifiera rader med data som sannolikt kommer att vara dubbletter och välja en kanonisk rad med data som ska användas för att standardisera data.

Anmärkning

Mer detaljerad information om fuzzy-grupperingstransformeringen, inklusive prestanda- och minnesbegränsningar, finns i white paper, Fuzzy Lookup och Fuzzy Grouping i SQL Server Integration Services 2005.

Fuzzy Grouping-omvandlingen kräver en anslutning till en instans av SQL Server för att skapa de tillfälliga SQL Server-tabeller som transformeringsalgoritmen kräver för att utföra sitt arbete. Anslutningen måste matcha en användare som har behörighet att skapa tabeller i databasen.

För att konfigurera omvandlingen måste du välja de indatakolumner som ska användas för att identifiera dubbletter, och du måste välja typen av matchning - fuzzy eller exakt - för varje kolumn. En exakt matchning garanterar att endast rader som har identiska värden i kolumnen grupperas. Exakt matchning kan tillämpas på kolumner av alla Integration Services-datatyper förutom DT_TEXT, DT_NTEXT och DT_IMAGE. En fuzzy match grupperar rader som har ungefär samma värden. Metoden för ungefärlig matchning av data baseras på en användarspecifik likhetspoäng. Endast kolumner med datatyperna DT_WSTR och DT_STR kan användas i fuzzy-matchning. Mer information finns i Integration Services-datatyper.

Transformeringsutdata innehåller alla indatakolumner, en eller flera kolumner med standardiserade data och en kolumn som innehåller likhetspoängen. Poängen är ett decimalvärde mellan 0 och 1. Den kanoniska raden har en poäng på 1. Andra rader i den fuzzy gruppen har poäng som anger hur väl raden matchar den kanoniska raden. Ju närmare poängen är 1, desto mer liknar raden den kanoniska. Om den fuzzy gruppen innehåller rader som är exakta dubbletter av den kanoniska raden, dessa rader har också en poäng på 1. Transformeringen tar inte bort dubblettrader. den grupperar dem genom att skapa en nyckel som relaterar den kanoniska raden till liknande rader.

Omvandlingen genererar en utdatarad för varje indatarad med följande ytterligare kolumner:

  • _key_in, en kolumn som unikt identifierar varje rad.

  • _key_out, en kolumn som identifierar en grupp med dubblettuppsättning. Kolumnen _key_out har värdet av kolumnen _key_in i den kanoniska dataraden. Rader med samma värde i _key_out ingår i samma grupp. Värdet _key_out för en grupp motsvarar värdet för _key_in i den kanoniska dataraden.

  • _score, ett värde mellan 0 och 1 som anger likheten mellan indataraden och den kanoniska raden.

Det här är standardkolumnnamnen och du kan konfigurera fuzzy-grupperingstransformeringen så att den använder andra namn. Utdata ger också en likhetspoäng för varje kolumn som deltar i en fuzzy-gruppering.

Fuzzy Grouping-omvandlingen innehåller två funktioner för att anpassa den gruppering den utför: tokenavgränsare och likhetströskel. Omvandlingen ger en standarduppsättning avgränsare som används för att tokenisera data, men du kan lägga till nya avgränsare som förbättrar tokeniseringen av dina data.

Likhetströskelvärdet anger hur strikt omvandlingen identifierar dubbletter. Likhetströsklarna kan anges på komponent- och kolumnnivåerna. Tröskelvärdet för likhet på kolumnnivå är endast tillgängligt för kolumner som utför en fuzzy-matchning. Likhetsintervallet är 0 till 1. Ju närmare 1 tröskelvärdet är, desto mer lika måste raderna och kolumnerna vara för att kvalificeras som dubbletter. Du anger likhetströskelvärdet mellan rader och kolumner genom att ange egenskapen MinSimilarity på komponent- och kolumnnivåerna. För att uppfylla likheterna som anges på komponentnivå måste alla rader ha en likhet mellan alla kolumner som är större än eller lika med likhetströskelvärdet som anges på komponentnivå.

Fuzzy Grouping-transformeringen beräknar interna mått på likhet och rader som är mindre lika än värdet som anges i MinSimilarity grupperas inte.

För att identifiera ett likhetströskelvärde som fungerar för dina data kan du behöva tillämpa fuzzy-grupperingstransformeringen flera gånger med olika tröskelvärden för minsta likhet. Vid körning innehåller poängkolumnerna i transformationsutmatningen likhetspoängen för varje rad i en grupp. Du kan använda dessa värden för att identifiera likhetströskelvärdet som är lämpligt för dina data. Om du vill öka likheten bör du ange MinSimilarity till ett värde som är större än värdet i poängkolumnerna.

Du kan anpassa den gruppering som omvandlingen utför genom att ange egenskaperna för kolumnerna i fuzzy Grouping-transformeringsindata. Egenskapen FuzzyComparisonFlags anger till exempel hur omvandlingen jämför strängdata i en kolumn, och egenskapen ExactFuzzy anger om omvandlingen utför en fuzzy-matchning eller en exakt matchning.

Mängden minne som fuzzy Grouping-omvandlingen använder kan konfigureras genom att ange den anpassade egenskapen MaxMemoryUsage. Du kan ange antalet megabyte (MB) eller använda värdet 0 för att tillåta omvandlingen att använda en dynamisk mängd minne baserat på dess behov och det tillgängliga fysiska minnet. Den anpassade egenskapen MaxMemoryUsage kan uppdateras genom ett egenskapsuttryck när paketet laddas. Mer information finns i Uttryck för Integration Services (SSIS), Använd egenskapsuttryck i paket, och Anpassade Transformeringsegenskaper.

Den här omvandlingen har en indata och en utdata. Det stöder inte felutdata.

Radjämförelse

När du konfigurerar fuzzy-grupperingstransformeringen kan du ange den jämförelsealgoritm som omvandlingen använder för att jämföra rader i transformeringsindata. Om du anger egenskapen Uttömmande till true jämför transformeringen varje rad i indata med varannan rad i indata. Den här jämförelsealgoritmen kan ge mer exakta resultat, men det kommer sannolikt att göra att omvandlingen går långsammare om inte antalet rader i indata är litet. För att undvika prestandaproblem rekommenderar vi att du anger egenskapen Uttömmande till true endast under paketutvecklingen.

Temporära tabeller och index

Vid körning skapar fuzzy-grupperingstransformeringen temporära objekt som tabeller och index, potentiellt av betydande storlek, i SQL Server-databasen som omvandlingen ansluter till. Storleken på tabellerna och indexen är proportionella mot antalet rader i transformeringsindata och antalet token som skapats av fuzzy-grupperingstransformeringen.

Transformeringen förfrågar även de tillfälliga tabellerna. Du bör därför överväga att ansluta fuzzy-grupperingstransformeringen till en instans av SQL Server som inte är produktion, särskilt om produktionsservern har begränsat diskutrymme.

Prestandan för den här omvandlingen kan förbättras om de tabeller och index som används finns på den lokala datorn.

Konfiguration av fuzzy-grupperingstransformeringen

Du kan ange egenskaper via SSIS Designer eller programmatiskt.

Om du vill ha mer information om de egenskaper som du kan ange i dialogrutan Avancerad redigerare eller programmatiskt klickar du på något av följande avsnitt:

Om du vill ha mer information om hur du anger egenskaper för den här uppgiften klickar du på något av följande avsnitt:

Fuzzy Grouping Transformation Editor (fliken Anslutningshantering)

Använd fliken Anslutningshanteraren i dialogrutan Fuzzy Grouping Transformation Editor för att välja en befintlig anslutning eller skapa en ny.

Anmärkning

Servern som anges av anslutningen måste köra SQL Server. Fuzzy-grupperingstransformeringen skapar temporära dataobjekt i tempdb som kan vara lika stora som de fullständiga indata till omvandlingen. När omvandlingen körs utfärdar den serverfrågor mot dessa temporära objekt. Detta kan påverka den övergripande serverprestandan.

Alternativ

OLE DB-anslutningshanteraren
Välj en befintlig OLE DB-anslutningshanterare med hjälp av listrutan eller skapa en ny anslutning med hjälp av knappen Ny .

Ny
Skapa en ny anslutning med hjälp av dialogrutan Konfigurera OLE DB Connection Manager.

Fuzzy Grouping Transformation Editor (fliken Kolumner)

Använd fliken Kolumner i dialogrutan Fuzzy Grouping Transformation Editor för att ange de kolumner som används för att gruppera rader med duplicerade värden.

Alternativ

Tillgängliga Indatakolumner
Välj i den här listan de indatakolumner som används för att gruppera rader med duplicerade värden.

Namn
Visa namnen på tillgängliga indatakolumner.

passera genom
Välj om du vill inkludera indatakolumnen i omvandlingens utdata. Alla kolumner som används för gruppering kopieras automatiskt till utdata. Du kan inkludera ytterligare kolumner genom att kontrollera den här kolumnen.

Indatakolumn
Välj en av de indatakolumner som valdes tidigare i listan Tillgängliga indatakolumner .

Utgångsalias
Ange ett beskrivande namn för motsvarande utdatakolumn. Som standard är namnet på utdatakolumnen samma som namnet på indatakolumnen.

Alias för grupputdata
Ange ett beskrivande namn för kolumnen som ska innehålla det kanoniska värdet för de grupperade dubbletterna. Standardnamnet för den här utdatakolumnen är namnet på indatakolumnen med _clean tillagt.

Matchningstyp
Välj suddig eller exakt matchning. Rader betraktas som dubbletter om de är tillräckligt lika för alla kolumner med en fuzzy matchningstyp. Om du också anger exakt matchning för vissa kolumner betraktas endast rader som innehåller identiska värden i de exakta matchande kolumnerna som möjliga dubbletter. Om du vet att en viss kolumn inte innehåller några fel eller inkonsekvenser kan du därför ange exakt matchning för kolumnen för att öka precisionen för fuzzy-matchningen på andra kolumner.

Minsta likhet
Ange likhetströskelvärdet på kopplingsnivå med skjutreglaget. Ju närmare värdet är 1, desto närmare likheten mellan uppslagsvärdet och källvärdet måste vara för att kvalificeras som en matchning. Om du ökar tröskelvärdet kan matchningshastigheten förbättras eftersom färre kandidatposter behöver beaktas.

Alias för likhetsutdata
Ange namnet på en ny utdatakolumn som innehåller likhetspoängen för den valda kopplingen. Om du lämnar det här värdet tomt skapas inte utdatakolumnen.

Siffror
Ange betydelsen av inledande och avslutande siffror när du jämför kolumndata. Om inledande siffror till exempel är betydande grupperas "123 Main Street" inte med "456 Main Street".

Värde Beskrivning
Ingendera Inledande och avslutande siffror är inte signifikanta.
Ledande Endast inledande siffror är betydande.
Avslutande Endast avslutande siffror är betydande.
LeadingAndTrailing Både inledande och avslutande siffror är betydande.

jämförelseflaggor
Information om alternativ för strängjämförelse finns i Jämföra strängdata.

Editor för Fuzzy-grupperingstransformation (Avancerad flik)

Använd fliken Avancerat i dialogrutan Fuzzy Grouping Transformation Editor för att ange indata- och utdatakolumner, ange tröskelvärden för likhet och definiera avgränsare.

Anmärkning

Egenskaperna Uttömmande och MaxMemoryUsage för fuzzy-grupperingstransformeringen är inte tillgängliga i Fuzzy Grouping Transformation Editor, men kan anges med hjälp av Avancerad redigerare. Mer information om dessa egenskaper finns i avsnittet Fuzzy Grouping Transformation i Anpassade Transformationsegenskaper.

Alternativ

Kolumnnamn för indatanyckel
Ange namnet på en utdatakolumn som innehåller den unika identifieraren för varje indatarad. Kolumnen _key_in har ett värde som unikt identifierar varje rad.

Kolumnnamn för utdatanyckel
Ange namnet på en utdatakolumn som innehåller den unika identifieraren för den kanoniska raden i en grupp med dubblerade rader. Kolumnen _key_out motsvarar värdet _key_in för den kanoniska dataraden.

Kolumnnamn för likhetspoäng
Ange ett namn för kolumnen som innehåller likhetspoängen. Likhetspoängen är ett värde mellan 0 och 1 som anger likheten mellan indataraden och den kanoniska raden. Ju närmare poängen är 1, desto mer liknar raden den kanoniska.

Tröskelvärde för likhet
Ställ in tröskelvärde för likhet med skjutreglaget. Ju närmare tröskelvärdet är 1, desto mer måste raderna likna varandra för att kvalificeras som dubbletter. Att öka tröskeln kan förbättra matchningshastigheten eftersom färre kandidatposter behöver beaktas.

tokenavgränsare
Omvandlingen innehåller en standarduppsättning avgränsare för tokenisering av data, men du kan lägga till eller ta bort avgränsare efter behov genom att redigera listan.

Se även

Fuzzy Lookup Transformation
Integreringstjänstomvandlingar