Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
platí pro:SQL Server
SSIS Integration Runtime ve službě Azure Data Factory
Transformace přibližného vyhledávání provádí úlohy čištění dat, jako je standardizace dat, oprava dat a poskytnutí chybějících hodnot.
Poznámka:
Podrobnější informace o transformaci Fuzzy Lookup, včetně omezení výkonu a paměti, najdete v dokumentu typu white paper, Fuzzy Lookup a Fuzzy Grouping v SQL Server Integration Services 2005.
Transformace fuzzy vyhledávání se liší od transformace vyhledávání tím, že používá přibližnou shodu. Vyhledávací transformace používá rovná spojení k vyhledání odpovídajících záznamů v referenční tabulce. Vrátí záznamy s alespoň jedním odpovídajícím záznamem a vrátí záznamy bez odpovídajících záznamů. Naproti tomu transformace přibližného vyhledávání používá přibližné shody k vrácení jedné nebo více blízkých shod v referenční tabulce.
Transformace přibližného vyhledávání často následuje po transformaci vyhledávání v datovém toku balíčku. Nejprve se transformace vyhledávání pokusí najít přesnou shodu. Pokud selže, transformace přibližného vyhledávání poskytuje blízké shody z referenční tabulky.
Transformace potřebuje přístup k referenčnímu zdroji dat, který obsahuje hodnoty, které se používají k vyčištění a rozšíření vstupních dat. Referenčním zdrojem dat musí být tabulka v databázi SQL Serveru. Shoda mezi hodnotou ve vstupním sloupci a hodnotou v referenční tabulce může být přesná shoda nebo přibližná shoda. Transformace ale vyžaduje, aby se pro přibližné shody nakonfigurovala aspoň jedna shoda sloupce. Pokud chcete použít pouze přesnou shodu, použijte místo toho transformaci Vyhledávání.
Tato transformace má jeden vstup a jeden výstup.
V přibližné shodě lze použít pouze vstupní sloupce s datovými typy DT_WSTR a DT_STR . Přesná shoda může použít libovolný datový typ DTS s výjimkou DT_TEXT, DT_NTEXT a DT_IMAGE. Další informace najdete v tématu datové typy integračních služeb. Sloupce, které se účastní spojení mezi vstupem a referenční tabulkou, musí mít kompatibilní datové typy. Je například platné spojit sloupec s datovým typem DTS DT_WSTR do sloupce s datovým typem SQL Server nvarchar , ale neplatný pro spojení sloupce s datovým typem DT_WSTR ke sloupci s datovým typem int .
Tuto transformaci můžete přizpůsobit zadáním maximálního množství paměti, algoritmu porovnání řádků a ukládání indexů a referenčních tabulek, které transformace používá.
Velikost paměti, kterou transformace Fuzzy Lookup používá, lze nakonfigurovat nastavením vlastní vlastnosti MaxMemoryUsage. Můžete zadat počet megabajtů (MB) nebo použít hodnotu 0, která umožňuje transformaci použít dynamické množství paměti na základě svých potřeb a dostupné fyzické paměti. Vlastní vlastnost MaxMemoryUsage lze aktualizovat výrazem vlastnosti při načtení balíčku. Další informace naleznete v tématu Výrazy služby SSIS (Integration Services),použití výrazů vlastností v balíčcích a transformace vlastních vlastností.
Řízení chování přibližných shod
Transformace přibližného vyhledávání obsahuje tři funkce pro přizpůsobení vyhledávání, které provádí: maximální počet shod, které se mají vrátit na vstupní řádek, oddělovače tokenů a prahové hodnoty podobnosti.
Transformace vrátí nula nebo více shod až do zadaného počtu shod. Určení maximálního počtu shod nezaručuje, že transformace vrátí maximální počet shod; zaručuje, že transformace vrátí maximálně tento počet shod. Pokud nastavíte maximální počet shod na hodnotu větší než 1, může výstup transformace obsahovat více než jeden řádek na vyhledávání a některé řádky můžou být duplicitní.
Transformace poskytuje výchozí sadu oddělovačů, které se používají k tokenizaci dat, ale můžete přidat oddělovače tokenů tak, aby vyhovovaly potřebám vašich dat. Vlastnost Oddělovače obsahuje výchozí oddělovače. Tokenizace je důležitá, protože definuje jednotky v datech, která se vzájemně porovnávají.
Prahové hodnoty podobnosti lze nastavit na úrovni komponenty a spojení. Prahová hodnota podobnosti na úrovni spojení je dostupná pouze v případech, kdy transformace provádí přibližnou shodu mezi sloupci ve vstupu a referenční tabulce. Rozsah podobnosti je 0 až 1. Čím blíže je prahová hodnota k 1, tím více musí být řádky a sloupce podobné, aby se kvalifikovaly jako duplicitní. Prahovou hodnotu podobnosti zadáte nastavením vlastnosti MinSimilarity na úrovni komponenty a spojení. Aby bylo možné vyhovět podobnosti zadané na úrovni součásti, musí mít všechny řádky podobnosti ve všech shodách, které jsou větší nebo rovny prahové hodnotě podobnosti zadané na úrovni komponenty. To znamená, že nemůžete určit velmi přesnou shodu na úrovni komponenty, pokud nejsou shody na úrovni řádku nebo spojení stejně přesné.
Každá shoda zahrnuje skóre podobnosti a skóre důvěryhodnosti. Skóre podobnosti je matematická míra texturové podobnosti mezi vstupním záznamem a záznamem, který transformace přibližného vyhledávání vrací z referenční tabulky. Skóre důvěryhodnosti je mírou toho, jak pravděpodobné je, že konkrétní hodnota je nejlepší shoda mezi shodami nalezenými v referenční tabulce. Skóre spolehlivosti přiřazené záznamu závisí na ostatních vrácených odpovídajících záznamech. Například porovnávání sv. a Svatého vrátí nízké skóre podobnosti bez ohledu na ostatní shody. Pokud Saint je jedinou shodou, která byla vrácena, skóre spolehlivosti je vysoké. Pokud se v referenční tabulce objeví Svatý i sv., spolehlivost sv. je vysoká a spolehlivost Svatý je nízká. Vysoká podobnost ale nemusí znamenat vysokou spolehlivost. Pokud například hledáte hodnotu kapitola 4, vrácené výsledky kapitola 1, Kapitola 2 a Kapitola 3 mají vysoké skóre podobnosti, ale nízké skóre spolehlivosti, protože není jasné, které z výsledků je nejlepší shoda.
Skóre podobnosti je reprezentováno desetinnou hodnotou mezi 0 a 1, kde skóre podobnosti 1 znamená přesnou shodu mezi hodnotou ve vstupním sloupci a hodnotou v referenční tabulce. Skóre důvěry, také desetinné číslo od 0 do 1, označuje spolehlivost shody. Pokud se nenajde žádná použitelná shoda, přiřadí se k řádku skóre podobnosti a skóre spolehlivosti 0 a výstupní sloupce zkopírované z referenční tabulky budou obsahovat hodnoty null.
Někdy nemusí vyhledávání přibližných shod najít odpovídající shody v referenční tabulce. K tomu může dojít v případě, že vstupní hodnota použitá ve vyhledávání je jedno krátké slovo. Například v referenční tabulce se helo neshoduje s hodnotou hello, pokud nejsou v tomto sloupci nebo jiném sloupci v řádku přítomny žádné jiné tokeny.
Výstupní sloupce transformace zahrnují vstupní sloupce označené jako průchozí sloupce, vybrané sloupce ve vyhledávací tabulce a následující další sloupce:
_Similarity sloupec, který popisuje podobnost mezi hodnotami ve vstupních a referenčních sloupcích.
_Confidence sloupec, který popisuje kvalitu shody.
Transformace používá připojení k databázi SQL Serveru k vytvoření dočasných tabulek, které používá algoritmus přibližných shod.
Provedení transformace přibližného vyhledávání
Když balíček poprvé spustí transformaci, transformace zkopíruje referenční tabulku, přidá klíč s celočíselným datovým typem do nové tabulky a vytvoří index na klíčovém sloupci. V dalším kroku transformace vytvoří index, který se nazývá index shody, na kopii referenční tabulky. Index shody ukládá výsledky tokenizace hodnot ve vstupních sloupcích transformace a transformace pak používá tokeny ve vyhledávací operaci. Index shod je tabulka v databázi SQL Serveru.
Po opětovném spuštění balíčku může transformace použít existující index shody nebo vytvořit nový index. Pokud je referenční tabulka statická, balíček se může vyhnout potenciálně nákladnému procesu opětovného sestavení indexu pro opakované relace čištění dat. Pokud se rozhodnete použít existující index, vytvoří se index při prvním spuštění balíčku. Pokud více transformací přibližného vyhledávání používá stejnou referenční tabulku, můžou všechny použít stejný index. Aby bylo možné index znovu použít, musí být vyhledávací operace identické; vyhledávání musí používat stejné sloupce. Index můžete pojmenovat a vybrat připojení k databázi SQL Serveru, která index uloží.
Pokud transformace uloží index shody, index shody se dá udržovat automaticky. To znamená, že při každé aktualizaci záznamu v referenční tabulce se aktualizuje také index shody. Udržování indexu shody může ušetřit čas zpracování, protože při spuštění balíčku není nutné index znovu sestavovat. Můžete určit, jak transformace spravuje index shody.
Následující tabulka popisuje možnosti nastavení indexu shody.
| Možnost | Description |
|---|---|
| GenerovatAUdržovatNovýIndex | Vytvořte nový index, uložte ho a udržujte ho. Transformace nainstaluje triggery do referenční tabulky, aby byla referenční tabulka a tabulka indexu synchronizovaná. |
| GenerateAndPersistNewIndex | Vytvořte nový index a uložte ho, ale neudržujte ho. |
| GenerateNewIndex | Vytvořte nový index, ale neuložte ho. |
| ReuseExistingIndex | Znovu použijte existující index. |
Údržba tabulky Match Index
Možnost GenerateAndMaintainNewIndex nainstaluje triggery do referenční tabulky, aby byla tabulka indexu shody a referenční tabulka synchronizovaná. Pokud musíte odebrat instalovaný trigger, musíte spustit sp_FuzzyLookupTableMaintenanceUnInstall uloženou proceduru a zadat název zadaný ve vlastnosti MatchIndexName jako vstupní hodnota parametru.
Před spuštěním sp_FuzzyLookupTableMaintenanceUnInstall uložené procedury byste neměli odstranit zachované tabulky indexu shody. Pokud se odstraní tabulka indexu shody, triggery v referenční tabulce se nespustí správně. Všechny následné aktualizace referenční tabulky selžou, dokud ručně nezahodíte triggery v referenční tabulce.
Příkaz SQL TRUNCATE TABLE nevolá triggery DELETE. Pokud se v referenční tabulce použije příkaz TRUNCATE TABLE, tabulka odkazů a index shody se už nebudou synchronizovat a transformace přibližného vyhledávání selže. Zatímco triggery, které udržují tabulku indexu shody jsou nainstalovány v referenční tabulce, měli byste místo příkazu TRUNCATE TABLE použít příkaz SQL DELETE.
Poznámka:
Když vyberete Možnost Udržovat uložený index na kartě Referenční tabulka v Editoru transformací přibližných vyhledávání, transformace používá spravované uložené procedury k údržbě indexu. Tyto spravované uložené procedury používají funkci integrace modulu CLR (Common Language Runtime) v SQL Serveru. Ve výchozím nastavení není povolená integrace CLR v SQL Serveru. Pokud chcete použít funkci Udržovat uložený index , musíte povolit integraci CLR. Další informace naleznete v tématu Povolení integrace CLR.
Vzhledem k tomu, že možnost Udržovat uložený index vyžaduje integraci CLR, tato funkce funguje pouze v případě, že vyberete referenční tabulku v instanci SQL Serveru, kde je povolená integrace CLR.
Porovnání řádků
Při konfiguraci transformace přibližného vyhledávání můžete určit porovnávací algoritmus, který transformace používá k vyhledání odpovídajících záznamů v referenční tabulce. Pokud nastavíte vlastnost Exhaustive na True, transformace porovná každý řádek ve vstupu s každým řádkem v referenční tabulce. Tento porovnávací algoritmus může dosáhnout přesnějších výsledků, ale je pravděpodobné, že transformace bude provádět pomaleji, pokud není počet řádků referenční tabulka malá. Pokud je vlastnost Kompletní nastavena na True, celá referenční tabulka se načte do paměti. Chcete-li se vyhnout problémům s výkonem, je vhodné nastavit vyčerpávající vlastnost true pouze při vývoji balíčků.
Pokud je vlastnost Exhaustive nastavena na False, vrátí transformace Fuzzy Lookup pouze shody, které mají alespoň jeden indexovaný token nebo podřetězec (podřetězec se nazývá q-gram) společný se vstupním záznamem. Aby se maximalizovala efektivita vyhledávání, indexuje se v obrácené struktuře indexu pouze podmnožina tokenů v každém řádku tabulky, kterou transformace přibližného vyhledávání používá k vyhledání shod. Pokud je vstupní datová sada malá, můžete nastavit vyčerpávající hodnotu True , abyste se vyhnuli chybějícím shodám, pro které v tabulce indexu neexistují žádné běžné tokeny.
Ukládání indexů do mezipaměti a referenčních tabulek
Při konfiguraci transformace Přibližné vyhledávání můžete určit, zda transformace částečně ukládá index a referenční tabulku do paměti před tím, než transformace provede její práci. Pokud nastavíte vlastnost WarmCaches na Hodnotu True, index a referenční tabulka se načtou do paměti. Pokud má vstup mnoho řádků, nastavení vlastnosti WarmCaches na Hodnotu True může zlepšit výkon transformace. Pokud je počet vstupních řádků malý, nastavení vlastnosti WarmCaches na False může zrychlit opakované použití velkého indexu.
Dočasné tabulky a indexy
V době běhu vytvoří transformace přibližného vyhledávání dočasné objekty, jako jsou tabulky a indexy, v databázi SQL Serveru, ke které se transformace připojí. Velikost těchto dočasných tabulek a indexů je úměrná počtu řádků a tokenů v referenční tabulce a počtu tokenů, které transformace Fuzzy Lookup vytváří; proto by mohly potenciálně spotřebovat značné množství místa na disku. Transformace také provádí dotazy na tyto dočasné tabulky. Proto byste měli zvážit připojení transformace Fuzzy Lookup k neprodukční instanci databáze SQL Serveru, zejména pokud má produkční server k dispozici omezené místo na disku.
Výkon této transformace se může zlepšit, pokud jsou tabulky a indexy, které používá, umístěny v místním počítači. Pokud je referenční tabulka, kterou transformace Fuzzy Lookup používá, na produkčním serveru, měli byste zvážit zkopírování tabulky na neprodukční server a konfiguraci transformace přibližného vyhledávání pro přístup k kopii. Tímto způsobem můžete zabránit tomu, aby vyhledávací dotazy spotřebovávají prostředky na produkčním serveru. Kromě toho, pokud transformace Fuzzy Lookup udržuje shodu indexu - to znamená, že pokud je MatchIndexOptions nastavena na GenerateAndMaintainNewIndex - může transformace dočasně uzamknout referenční tabulku po dobu trvání operace čištění dat a zabránit tak ostatním uživatelům a aplikacím v přístupu k tabulce.
Konfigurace transformace přibližného vyhledávání
Vlastnosti můžete nastavit prostřednictvím návrháře SSIS nebo programově.
Další informace o vlastnostech, které můžete nastavit v dialogovém okně Rozšířený editor nebo programově, klikněte na jedno z následujících témat:
Související úkoly
Podrobnosti o tom, jak nastavit vlastnosti komponenty toku dat, naleznete v tématu Nastavení vlastností komponenty toku dat.
Editor transformací přibližných vyhledávání (karta referenční tabulky)
Pomocí karty Referenční tabulka dialogového okna Editor transformace přibližného vyhledávání zadejte zdrojovou tabulku a index, který se má použít pro vyhledávání. Referenčním zdrojem dat musí být tabulka v databázi SQL Serveru.
Poznámka:
Transformace přibližného vyhledávání vytvoří funkční kopii referenční tabulky. Následující indexy jsou vytvořeny v této pracovní tabulce pomocí speciální tabulky, nikoli běžného indexu SQL Serveru. Transformace neupravuje existující zdrojové tabulky, pokud nevyberete Možnost Udržovat uložený index. V tomto případě vytvoří aktivační událost pro referenční tabulku, která aktualizuje pracovní tabulku a vyhledávací index na základě změn v referenční tabulce.
Poznámka:
Vyčerpávající vlastnosti a vlastnosti MaxMemoryUsage transformace Fuzzy Lookup nejsou k dispozici v Editoru transformací přibližného vyhledávání, ale lze je nastavit pomocí rozšířeného editoru. Kromě toho lze hodnotu větší než 100 pro MaxOutputMatchesPerInput zadat pouze v Rozšířeném editoru. Další informace o těchto vlastnostech naleznete v části Transformace vlastních vlastností Fuzzy Lookup Transformation.
Možnosti
Správce připojení OLE DB
V seznamu vyberte existujícího správce připojení OLE DB nebo kliknutím na Tlačítko Nový vytvořte nové připojení.
New
Vytvořte nové připojení pomocí dialogového okna Konfigurovat Správce připojení OLE DB .
Generování nového indexu
Určete, že transformace by měla vytvořit nový index, který se použije pro vyhledávání.
Název referenční tabulky
Vyberte existující tabulku, která se má použít jako referenční (vyhledávací) tabulka.
Uložení nového indexu
Tuto možnost vyberte, pokud chcete nový vyhledávací index uložit.
Nový název indexu
Pokud jste se rozhodli nový vyhledávací index uložit, zadejte popisný název indexu.
Udržovat uložený index
Pokud jste se rozhodli uložit nový vyhledávací index, určete, jestli chcete, aby sql Server zachoval index.
Poznámka:
Když vyberete Možnost Udržovat uložený index na kartě Referenční tabulka v Editoru transformací přibližných vyhledávání, transformace používá spravované uložené procedury k údržbě indexu. Tyto spravované uložené procedury používají funkci integrace modulu CLR (Common Language Runtime) v SQL Serveru. Ve výchozím nastavení není povolená integrace CLR v SQL Serveru. Pokud chcete použít funkci Udržovat uložený index , musíte povolit integraci CLR. Další informace naleznete v tématu Povolení integrace CLR.
Vzhledem k tomu, že možnost Udržovat uložený index vyžaduje integraci CLR, tato funkce funguje pouze v případě, že vyberete referenční tabulku v instanci SQL Serveru, kde je povolená integrace CLR.
Použití existujícího indexu
Určete, že transformace by měla pro vyhledávání použít existující index.
Název existujícího indexu
Ze seznamu vyberte dříve vytvořený vyhledávací index.
Editor transformace přibližných vyhledávání (karta Sloupce)
Pomocí karty Sloupce dialogového okna Editoru transformace přibližného vyhledávání můžete nastavit vlastnosti vstupních a výstupních sloupců.
Možnosti
Dostupné vstupní sloupce
Přetažením vstupních sloupců je připojíte k dostupným vyhledávacím sloupcům. Tyto sloupce musí mít odpovídající podporované datové typy. Vyberte čáru mapování a kliknutím pravým tlačítkem myši upravte mapování v dialogovém okně Vytvořit relace .
název
Prohlédněte si názvy dostupných vstupních sloupců.
Procházet
Určete, zda se mají vstupní sloupce zahrnout do výstupu transformace.
Dostupné vyhledávací sloupce
Pomocí zaškrtávacích políček vyberte sloupce, u kterých se mají provádět přibližné vyhledávací operace.
Vyhledávací sloupec
Ze seznamu dostupných sloupců referenční tabulky vyberte vyhledávací sloupce. Výběry se projeví ve výběru zaškrtávacího políčka v tabulce Dostupné vyhledávací sloupce . Výběrem sloupce v tabulce Dostupné vyhledávací sloupce se vytvoří výstupní sloupec, který obsahuje hodnotu sloupce referenční tabulky pro každý vrácený odpovídající řádek.
Alias výstupu
Zadejte alias pro výstup pro každý vyhledávací sloupec. Výchozí hodnota je název vyhledávacího sloupce s připojenou číselnou hodnotou indexu; můžete ale zvolit libovolný jedinečný popisný název.
Editor transformačního nástroje pro přibližné vyhledávání (karta Pokročilé)
Pomocí karty Pokročilé v dialogovém okně Editor transformace vyhledávání přibližných shod nastavte parametry pro vyhledávání přibližných shod.
Možnosti
Maximální počet shod, které se mají zobrazit na jedno vyhledávání
Zadejte maximální počet shod, které transformace může vrátit pro každý vstupní řádek. Výchozí hodnota je 1.
Prahová hodnota podobnosti
Nastavte prahovou hodnotu podobnosti na úrovni komponenty pomocí posuvníku. Čím bližší je hodnota k 1, tím bližší musí být podobnost vyhledávací hodnoty ke zdrojové hodnotě, aby byla kvalifikována jako shoda. Zvýšení prahové hodnoty může zlepšit rychlost párování, protože je potřeba zvážit méně kandidátských záznamů.
Oddělovače tokenů
Zadejte oddělovače, které transformace používá k tokenizaci hodnot sloupců.
Viz také
Transformace vyhledávání
Transformace fuzzy seskupení
Transformace integračních služeb