Udostępnij za pośrednictwem


Transformacja rozmytego wyszukiwania

Dotyczy:SQL Server SSIS Integration Runtime w Azure Data Factory

Transformacja wyszukiwania rozmytego wykonuje zadania czyszczenia danych, takie jak standaryzacja danych, poprawianie danych i uzupełnianie brakujących wartości.

Notatka

Aby uzyskać bardziej szczegółowe informacje na temat transformacji wyszukiwania rozmytego, w tym ograniczeń wydajności i pamięci, zapoznaj się z dokumentem Rozmyte wyszukiwanie i grupowanie rozmyte w usługach SQL Server Integration Services 2005.

Transformacja rozmytego wyszukiwania różni się od transformacji Lookup poprzez użycie dopasowywania rozmytego. Transformacja wyszukiwania używa sprzężenia równości do lokalizowania pasujących rekordów w tabeli referencyjnej. Zwraca rekordy z co najmniej jednym pasującym rekordem i zwraca rekordy bez pasujących rekordów. Natomiast przekształcenie wyszukiwania rozmytego używa dopasowania rozmytego, aby zwrócić jedno lub więcej dopasowań bliskich w tabeli referencyjnej.

Transformacja wyszukiwania rozmytego często następuje po transformacji wyszukiwania w przepływie danych pakietu. Po pierwsze, przekształcenie Lookup próbuje znaleźć dokładne dopasowanie. Jeśli działanie zakończy się niepowodzeniem, przekształcenie rozmytego wyszukiwania zapewnia bliskie dopasowania z tabeli referencyjnej.

Przekształcenie wymaga dostępu do źródła danych referencyjnych zawierającego wartości używane do czyszczenia i rozszerzania danych wejściowych. Źródło danych referencyjnych musi być tabelą w bazie danych programu SQL Server. Dopasowanie między wartością w kolumnie wejściowej a wartością w tabeli referencyjnej może być dokładne dopasowanie lub dopasowanie rozmyte. Jednak przekształcenie wymaga skonfigurowania co najmniej jednego dopasowania kolumny do dopasowywania rozmytego. Jeśli chcesz użyć tylko dokładnego dopasowania, w takim przypadku użyj przekształcenia Lookup.

Ta transformacja ma jedno dane wejściowe i jedno dane wyjściowe.

Tylko kolumn z typami danych DT_WSTR i DT_STR można używać w dopasowywaniu rozmytemu. Dokładne dopasowanie może używać dowolnego typu danych DTS z wyjątkiem DT_TEXT, DT_NTEXToraz DT_IMAGE. Aby uzyskać więcej informacji, zobacz Integration Services Data Types. Kolumny, które uczestniczą w sprzężeniu między danymi wejściowymi a tabelą referencyjną, muszą mieć zgodne typy danych. Na przykład prawidłowe jest dołączenie kolumny z typem danych DTS DT_WSTR do kolumny z typem danych SQL Server nvarchar, ale nieprawidłowe jest dołączenie kolumny z typem danych DT_WSTR do kolumny z typem danych int.

Tę transformację można dostosować, określając maksymalną ilość pamięci, algorytm porównania wierszy oraz buforowanie indeksów i tabel odwołań używanych przez transformację.

Ilość pamięci używanej przez transformację wyszukiwania rozmytego można skonfigurować, ustawiając właściwość niestandardową MaxMemoryUsage. Można określić liczbę megabajtów (MB) lub użyć wartości 0, która umożliwia transformacji użycie dynamicznej ilości pamięci na podstawie jej potrzeb i dostępnej pamięci fizycznej. Właściwość niestandardowa MaxMemoryUsage może zostać zaktualizowana przez wyrażenie właściwości po załadowaniu pakietu. Aby uzyskać więcej informacji, zobacz Integration Services (SSIS) Expressions, Używanie wyrażeń właściwości w pakietachi Niestandardowe właściwości transformacji.

Kontrolowanie zachowania dopasowania rozmytego

Transformacja wyszukiwania rozmytego obejmuje trzy funkcje dostosowywania wyszukiwania, które wykonuje: maksymalna liczba dopasowań do zwrócenia na wiersz wejściowy, ograniczniki tokenu i progi podobieństwa.

Przekształcenie zwraca zero lub więcej dopasowań, aż do maksymalnej liczby określonych dopasowań. Określenie maksymalnej liczby dopasowań nie gwarantuje, że przekształcenie zwróci maksymalną liczbę dopasowań; gwarantuje jedynie, że przekształcenie zwróci co najwyżej tę liczbę dopasowań. Jeśli ustawisz maksymalną liczbę dopasowań na wartość większą niż 1, wyniki przekształcenia mogą zawierać więcej niż jeden wiersz na wyszukiwanie i niektóre z tych wierszy mogą być zduplikowane.

Przekształcenie udostępnia domyślny zestaw ograniczników używanych do tokenizowania danych, ale można dodać ograniczniki tokenów, aby dopasować je do potrzeb danych. Właściwość 'Ograniczniki' zawiera domyślne ograniczniki. Tokenizacja jest ważna, ponieważ definiuje jednostki w danych, które są porównywane ze sobą.

Progi podobieństwa można ustawić na poziomie składnika i sprzężenia. Próg podobieństwa na poziomie sprzężenia jest dostępny tylko wtedy, gdy transformacja wykonuje dopasowanie rozmyte między kolumnami w danych wejściowych i tabeli referencyjnej. Zakres podobieństwa wynosi od 0 do 1. Im bliżej 1 jest próg, tym bardziej podobne wiersze i kolumny muszą kwalifikować się jako duplikaty. Próg podobieństwa określa się, ustawiając właściwość MinSimilarity na poziomie składnika i sprzężenia. Aby spełnić podobieństwo określone na poziomie składnika, wszystkie wiersze muszą mieć podobieństwo we wszystkich dopasowaniach, które są większe lub równe progowi podobieństwa określonemu na poziomie składnika. Oznacza to, że nie można określić bardzo bliskiego dopasowania na poziomie składnika, chyba że dopasowania na poziomie wiersza lub sprzężenia są równie bliskie.

Każde dopasowanie zawiera wynik podobieństwa i ocenę pewności. Wynik podobieństwa jest matematyczną miarą podobieństwa tekstowego między rekordem wejściowym a rekordem, który przekształcenie Fuzzy Lookup zwraca z tabeli referencyjnej. Współczynnik ufności jest miarą tego, jak prawdopodobne jest, że określona wartość jest najlepszym dopasowaniem wśród dopasowań znalezionych w tabeli referencyjnej. Współczynnik ufności przypisany do rekordu zależy od innych zwracanych rekordów pasujących. Na przykład dopasowanie St. i Saint zwraca niski wynik podobieństwa niezależnie od innych dopasowań. Jeśli Saint jest jedynym zwracanym dopasowaniem, wskaźnik ufności jest wysoki. Jeśli zarówno Święty, jak i Święty pojawiają się w tabeli referencyjnej, zaufanie do Święty jest wysokie, a zaufanie do Święty jest niskie. Jednak wysokie podobieństwo może nie oznaczać wysokiego zaufania. Jeśli na przykład szukasz wartości rozdział 4, zwrócone wyniki rozdział 1, rozdział 2i rozdział 3 mają wysoką ocenę podobieństwa, ale niską ocenę pewności, ponieważ nie jest jasne, który wynik jest najlepszy.

Wynik podobieństwa jest reprezentowany przez wartość dziesiętną z zakresu od 0 do 1, gdzie wynik podobieństwa 1 oznacza dokładne dopasowanie między wartością w kolumnie wejściowej a wartością w tabeli referencyjnej. Wskaźnik ufności, również wartość dziesiętna z zakresu od 0 do 1, wskazuje stopień pewności dopasowania. Jeśli nie zostanie znalezione użyteczne dopasowanie, podobieństwo i wskaźniki ufności o wartości 0 zostaną przypisane do wiersza, a kolumny wyjściowe skopiowane z tabeli referencyjnej będą zawierać wartości puste.

Czasami wyszukiwanie rozmyte może nie znajdować odpowiednich dopasowań w tabeli referencyjnej. Może się tak zdarzyć, jeśli wartość wejściowa używana w wyszukiwaniu jest pojedynczym, krótkim wyrazem. Na przykład helo nie jest zgodne z wartością hello w tabeli referencyjnej, gdy w tej kolumnie lub żadnej innej kolumnie w wierszu nie ma żadnych innych tokenów.

Kolumny wyjściowe przekształcenia zawierają kolumny wejściowe oznaczone jako kolumny przepustowe, wybrane kolumny w tabeli wyszukiwania oraz następujące dodatkowe kolumny:

  • _Similaritykolumna, która opisuje podobieństwo między wartościami w kolumnach wejściowych i referencyjnych.

  • _Confidenceto kolumna opisująca jakość dopasowania.

Przekształcenie używa połączenia z bazą danych programu SQL Server w celu utworzenia tabel tymczasowych używanych przez algorytm dopasowywania rozmytego.

Uruchamianie przekształcenia wyszukiwania rozmytego

Po pierwszym uruchomieniu transformacji pakiet kopiuje tabelę referencyjną, dodaje klucz z typem danych całkowitych do nowej tabeli i tworzy indeks w kolumnie klucza. Następnie transformacja tworzy indeks nazywany indeksem dopasowania na kopii tabeli referencyjnej. Indeks dopasowania przechowuje wyniki tokenizacji wartości w kolumnach wejściowych transformacji, a następnie transformacja wykorzystuje te tokeny do operacji wyszukiwania. Indeks match jest tabelą w bazie danych SQL Server.

Po ponownym uruchomieniu pakietu przekształcenie może użyć istniejącego indeksu dopasowania lub utworzyć nowy indeks. Jeśli tabela referencyjna jest statyczna, pakiet może uniknąć potencjalnie kosztownego procesu ponownego kompilowania indeksu na potrzeby powtarzanych sesji czyszczenia danych. Jeśli zdecydujesz się użyć istniejącego indeksu, indeks zostanie utworzony po raz pierwszy, gdy pakiet zostanie uruchomiony. Jeśli wiele przekształceń wyszukiwania rozmytego używa tej samej tabeli referencyjnej, wszystkie mogą używać tego samego indeksu. Aby ponownie użyć indeksu, operacje wyszukiwania muszą być identyczne; wyszukiwanie musi używać tych samych kolumn. Możesz nazwać indeks i wybrać połączenie z bazą danych programu SQL Server, która zapisuje indeks.

Jeśli przekształcenie zapisze indeks dopasowania, indeks dopasowania można zachować automatycznie. Oznacza to, że za każdym razem, gdy rekord w tabeli referencyjnej jest aktualizowany, indeks dopasowania jest również aktualizowany. Utrzymywanie indeksu dopasowania może zaoszczędzić czas przetwarzania, ponieważ indeks nie musi zostać ponownie skompilowany podczas uruchamiania pakietu. Możesz określić, jak transformacja zarządza indeksem dopasowania.

W poniższej tabeli opisano opcje indeksu dopasowania.

Opcja Opis
GenerujIPrzechowujNowyIndeks Utwórz nowy indeks, zapisz go i zachowaj. Przekształcenie instaluje wyzwalacze w tabeli referencyjnej, aby zachować synchronizację tabeli referencyjnej i tabeli indeksów.
GenerateAndPersistNewIndex Utwórz nowy indeks i zapisz go, ale nie zachowaj go.
GenerateNewIndex Utwórz nowy indeks, ale nie zapisuj go.
reuseExistingIndex Użyj ponownie istniejącego indeksu.

Konserwacja tabeli indeksów dopasowania

Opcja GenerateAndMaintainNewIndex instaluje wyzwalacze w tabeli referencyjnej, aby tabela indeksów dopasowania i tabela referencyjna pozostały zsynchronizowane. Jeśli musisz usunąć zainstalowany wyzwalacz, musisz uruchomić sp_FuzzyLookupTableMaintenanceUnInstall procedurę składowaną i podać nazwę określoną we właściwości MatchIndexName jako wartość parametru wejściowego.

Nie należy usuwać utrzymywanej tabeli indeksu dopasowania przed uruchomieniem procedury składowanej sp_FuzzyLookupTableMaintenanceUnInstall. Jeśli tabela indeksów dopasowania zostanie usunięta, wyzwalacze w tabeli referencyjnej nie będą prawidłowo wykonywane. Wszystkie kolejne aktualizacje tabeli referencyjnej nie powiodą się do czasu, aż ręcznie usuniesz wyzwalacze z tabeli referencyjnej.

Polecenie SQL TRUNCATE TABLE nie wywołuje wyzwalaczy DELETE. Jeśli w tabeli referencyjnej jest używane polecenie TRUNCATE TABLE, tabela referencyjna i indeks kojarzenia nie zostaną już zsynchronizowane, a transformacja Fuzzy Lookup zakończy się niepowodzeniem. Podczas gdy wyzwalacze, które utrzymują tabelę indeksów dopasowania, są instalowane w tabeli referencyjnej, należy użyć polecenia SQL DELETE zamiast polecenia TRUNCATE TABLE.

Notatka

Po wybraniu opcji Zachowaj przechowywany indeks na karcie Tabela referencyjna w Edytorze Przekształcenia Rozmytego Wyszukiwania, przekształcenie używa zarządzanych procedur składowanych do utrzymania indeksu. Te zarządzane procedury składowane używają funkcjonalności integracji środowiska uruchomieniowego języka wspólnego (CLR) w systemie SQL Server. Domyślnie integracja środowiska CLR w programie SQL Server nie jest włączona. Aby użyć funkcji Zachowaj przechowywany indeks, należy włączyć integrację środowiska CLR. Aby uzyskać więcej informacji, zobacz Włączanie integracji środowiska CLR.

Ponieważ opcja Zachowaj przechowywany indeks wymaga integracji środowiska CLR, ta funkcja działa tylko po wybraniu tabeli referencyjnej w wystąpieniu programu SQL Server, w którym włączono integrację środowiska CLR.

Porównanie wierszy

Podczas konfigurowania przekształcenia Wyszukiwania rozmytego można określić algorytm porównania używany przez przekształcenie w celu zlokalizowania pasujących rekordów w tabeli referencyjnej. Jeśli ustawisz właściwość Wyczerpująca na wartość True, przekształcenie porównuje każdy wiersz w danych wejściowych do każdego wiersza w tabeli referencyjnej. Algorytm porównywania może generować dokładniejsze wyniki, ale prawdopodobnie spowoduje, że transformacja będzie wykonywać się wolniej, chyba że liczba wierszy w tabeli referencyjnej jest mała. Jeśli właściwość Wyczerpująca jest ustawiona na wartość True, cała tabela referencyjna zostanie załadowana do pamięci. Aby uniknąć problemów z wydajnością, zaleca się ustawienie właściwości Wyczerpująca na true tylko podczas tworzenia pakietów.

Jeśli właściwość Wyczerpania jest ustawiona na wartość False, transformacja Rozmyte wyszukiwanie zwraca tylko dopasowania mające co najmniej jeden indeksowany token lub podciąg (podciąg jest nazywany q-gram) wspólne z rekordem wejściowym. Aby zmaksymalizować wydajność wyszukiwania, tylko podzbiór tokenów w każdym wierszu w tabeli jest indeksowany w odwróconej strukturze indeksu używanej przez transformację wyszukiwania rozmytego do lokalizowania dopasowań. Jeśli wejściowy zestaw danych jest mały, można ustawić wartość Wyczerpująca na True, aby uniknąć brakujących dopasowań, dla których w tabeli indeksów nie istnieją żadne typowe tokeny.

Buforowanie indeksów i tabel odwołań

Podczas konfigurowania przekształcenia Wyszukiwania rozmytego można określić, czy przekształcenie częściowo buforuje indeks i tabelę referencyjną w pamięci, zanim przekształcenie będzie działać. Jeśli właściwość WarmCaches zostanie ustawiona na wartość True, indeks i tabela referencyjna zostaną załadowane do pamięci. Jeśli dane wejściowe mają wiele wierszy, ustawienie właściwości WarmCaches na True może poprawić wydajność transformacji. Jeśli liczba wierszy wejściowych jest mała, ustawienie właściwości WarmCaches na wartość False może przyspieszyć ponowne użycie dużego indeksu.

Tabele tymczasowe i indeksy

W czasie wykonywania transformacja Wyszukiwania rozmytego tworzy obiekty tymczasowe, takie jak tabele i indeksy, w bazie danych programu SQL Server, z którą łączy się transformacja. Rozmiar tych tabel tymczasowych i indeksów jest proporcjonalny do liczby wierszy i tokenów w tabeli referencyjnej oraz liczby tokenów tworzonych przez przekształcenie wyszukiwania rozmytego; w związku z tym potencjalnie mogą zużywać znaczną ilość miejsca na dysku. Przekształcenie wykonuje również zapytania dotyczące tych tabel tymczasowych. Dlatego należy rozważyć połączenie przekształcenia Wyszukiwania rozmytego z nieprodukcyjnym wystąpieniem bazy danych programu SQL Server, zwłaszcza jeśli serwer produkcyjny ma ograniczoną ilość dostępnego miejsca na dysku.

Wydajność tej transformacji może się poprawić, jeśli używane tabele i indeksy znajdują się na komputerze lokalnym. Jeśli tabela referencyjna używana przez transformację wyszukiwania rozmytego znajduje się na serwerze produkcyjnym, należy rozważyć skopiowanie tabeli na serwer nieprodukcyjny i skonfigurowanie przekształcenia Rozmyte wyszukiwanie w celu uzyskania dostępu do kopii. Dzięki temu można zapobiec, aby zapytania wyszukiwania wykorzystały zasoby na serwerze produkcyjnym. Ponadto jeśli transformacja wyszukiwania rozmytego zachowuje indeks dopasowania, czyli jeśli właściwość MatchIndexOptions jest ustawiona na GenerateAndMaintainNewIndex- przekształcenie może zablokować tabelę referencyjną na czas trwania operacji czyszczenia danych i uniemożliwić innym użytkownikom i aplikacjom uzyskiwanie dostępu do tabeli.

Konfigurowanie przekształcenia wyszukiwania rozmytego

Właściwości można ustawić za pomocą projektanta usług SSIS lub programowo.

Aby uzyskać więcej informacji o właściwościach, które można ustawić w oknie dialogowym edytora zaawansowanego lub programowo, kliknij jeden z następujących tematów:

Aby uzyskać szczegółowe informacje na temat ustawiania właściwości składnika przepływu danych, zobacz Ustawianie właściwości składnika przepływu danych.

Rozmyty Edytor przekształceń odnośników (karta Tabela referencyjna)

Użyj karty Odwołań tabeli referencyjnej w Edytorze Transformacji Rozmytego Wyszukiwania , aby określić tabelę źródłową i indeks do użycia dla wyszukiwania. Źródło danych referencyjnych musi być tabelą w bazie danych programu SQL Server.

Notatka

Przekształcenie Fuzzy Lookup tworzy operacyjną kopię tabeli referencyjnej. Indeksy opisane poniżej są tworzone w tej tabeli roboczej przy użyciu specjalnej tabeli, a nie zwykłego indeksu programu SQL Server. Przekształcenie nie modyfikuje istniejących tabel źródłowych, chyba że zostanie wybrana Zachowaj przechowywany indeks. W takim przypadku tworzy wyzwalacz w tabeli referencyjnej, który aktualizuje tabelę roboczą oraz tabelę indeksową wyszukiwania na podstawie zmian w tabeli referencyjnej.

Notatka

Wyczerpujące i MaxMemoryUsage właściwości przekształcenia Wyszukiwania rozmytego nie są dostępne w edytorze rozmytej transformacji wyszukiwania, ale można je ustawić za pomocą Edytora zaawansowanego. Ponadto wartość większa niż 100 dla MaxOutputMatchesPerInput można określić tylko w edytorze zaawansowanym . Aby uzyskać więcej informacji na temat tych właściwości, zobacz sekcję dotyczącą Przekształcania rozmytego (Fuzzy Lookup Transformation) w części Transformation Custom Properties.

Opcje

Menedżer połączenia OLE DB
Wybierz istniejącego menedżera połączeń OLE DB z listy lub utwórz nowe połączenie, klikając pozycję Nowy.

nowy
Utwórz nowe połączenie przy użyciu okna dialogowego Konfigurowanie Menedżera połączeń OLE DB.

Generowanie nowego indeksu
Określ, że przekształcenie powinno utworzyć nowy indeks do użycia dla wyszukiwania.

nazwa tabeli referencyjnej
Wybierz istniejącą tabelę do użycia jako tabelę referencyjną (odnośnik).

Zapisz nowy indeks
Wybierz tę opcję, jeśli chcesz zapisać nowy indeks odnośników.

nowa nazwa indeksu
Jeśli wybrano opcję zapisania nowego indeksu odnośników, wpisz opisową nazwę indeksu.

Utrzymuj przechowywany indeks
Jeśli wybrano opcję zapisania nowego indeksu odnośników, określ, czy program SQL Server ma obsługiwać indeks.

Notatka

Po wybraniu opcji Zachowaj przechowywany indeks na karcie Tabela Referencyjna w edytorze Przekształcania Rozmytego Wyszukiwania, przekształcenie używa zarządzanych procedur składowanych do utrzymania indeksu. Te zarządzane, składowane procedury używają funkcji integracji środowiska uruchomieniowego języka wspólnego (CLR) w programie SQL Server. Domyślnie integracja środowiska CLR w programie SQL Server nie jest włączona. Aby użyć funkcji Zachowaj przechowywany indeks, należy włączyć integrację środowiska CLR. Aby uzyskać więcej informacji, zobacz Włączanie integracji CLR.

Ponieważ opcja Zachowaj przechowywany indeks wymaga integracji środowiska CLR, ta funkcja działa tylko po wybraniu tabeli referencyjnej w wystąpieniu programu SQL Server, w którym włączono integrację środowiska CLR.

Użyj istniejącego indeksu
Określ, że przekształcenie powinno używać istniejącego indeksu dla wyszukiwania.

nazwa istniejącego indeksu
Wybierz wcześniej utworzony indeks wyszukiwania z listy.

Edytor przekształceń rozmytych odnośników (karta Kolumny)

Użyj karty Kolumny w oknie dialogowym Edytora Przekształceń Rozmytego Wyszukiwania, aby ustawić właściwości kolumn wejściowych i wyjściowych.

Opcje

Dostępne Kolumny Wejściowe
Przeciągnij kolumny wejściowe, aby połączyć je z dostępnymi kolumnami wyszukiwania. Te kolumny muszą mieć zgodne, obsługiwane typy danych. Wybierz linię mapowania i kliknij prawym przyciskiem myszy, aby edytować mapowania w oknie dialogowym Tworzenie relacji.

nazwa
Wyświetl nazwy dostępnych kolumn wejściowych.

Przejście przez
Określ, czy kolumny wejściowe mają być uwzględniane w danych wyjściowych przekształcenia.

dostępne kolumny wyszukiwania
Użyj pól wyboru, aby wybrać kolumny, na których mają być wykonywane operacje wyszukiwania rozmytego.

kolumna wyszukiwania
Wybierz kolumny wyszukiwania z listy dostępnych kolumn tabeli referencyjnej. Wybrane opcje są odzwierciedlane w zaznaczonych polach wyboru w tabeli Dostępne kolumny odnośników. Wybranie kolumny w tabeli Dostępnych kolumn odnośników powoduje utworzenie kolumny wyjściowej zawierającej wartość kolumny tabeli referencyjnej dla każdego zwracanego wiersza dopasowania.

alias danych wyjściowych
Wpisz alias dla wyników dla każdej kolumny odnośnika. Wartość domyślna to nazwa kolumny odnośników z dołączona wartością indeksu liczbowego; można jednak wybrać dowolną unikatową, opisową nazwę.

Rozmyty Edytor przekształceń odnośników (karta zaawansowana)

Użyj karty Advanced w oknie dialogowym Fuzzy Lookup Transformation Editor, aby ustawić parametry wyszukiwania rozmytego.

Opcje

maksymalna liczba dopasowań do danych wyjściowych na wyszukiwania
Określ maksymalną liczbę dopasowań, które transformacja może zwrócić dla każdego wiersza wejściowego. Wartość domyślna to 1.

Próg podobieństwa
Ustaw próg podobieństwa na poziomie składnika przy użyciu suwaka. Im bliżej wartość zbliża się do 1, tym bardziej wartości szukanej muszą przypominać wartość źródłową, aby kwalifikować się jako dopasowanie. Zwiększenie progu może zwiększyć szybkość dopasowywania, ponieważ należy wziąć pod uwagę mniej rekordów kandydatów.

ograniczniki tokenu
Określ ograniczniki używane przez przekształcenie do tokenizowania wartości kolumn.

Zobacz też

Transformacja wyszukiwania
Transformacja grupowania rozmytego
przekształcenia Integration Services