Przy użyciu profilowania zadania w przepływie pracy pakiet danych
Profilowanie danych i oczyszczania nie są kandydatami do to proces automatycznego ich wczesnym etapie.In SQL Server Integration Services, the output of the Data Profiling task usually requires visual analysis and human judgment to determine whether reported violations are meaningful or excessive.Nawet po ich rozpoznawanie problemów jakości danych, nadal musi być starannie thought-out planu, który dotyczy najlepszym podejściem do oczyszczania.
Jednak po ustaleniu kryteriów jakość danych można zautomatyzować okresowe analizy i oczyszczania urządzenie źródłowe danych.Należy wziąć pod uwagę następujące scenariusze:
Kontrola jakości danych przed przyrostowe obciążenia.Profilowanie danych zadania należy użyć, aby obliczyć null do kolumna współczynnik profilu nowych danych przeznaczonych do CustomerName kolumna w tabela Klienci.Jeśli procent wartości null jest większa niż 20 %, wysyłania wiadomości e-mail, zawierający dane wyjściowe profilu z operator i zakończyć pakiet.W przeciwnym razie kontynuuj dodatkowe obciążenie.
Automatyzacja oczyszczania, gdy zostaną spełnione określone warunki.Profilowanie danych zadania należy użyć, aby obliczyć wartość profilu dołączania kolumnie Stan na tabela odnośników stanów i kod pocztowy/kod POCZTOWY kolumna tabela odnośników kody pocztowe.Jeśli siła włączenia wartości stanu jest mniejsza niż 80 %, ale siła włączenia wartości Kod pocztowy/kod POCZTOWY jest większa niż 99 %, oznacza to dwa elementy.Po pierwsze dane o stanie jest zły.Po drugie dane kod pocztowy/kod POCZTOWY jest dobra.Uruchom zadanie przepływ danych, czyści dane o stanie, wykonując wyszukiwanie wartości poprawnego stanu od bieżącej wartości Kod pocztowy/kod pocztowy.
Po utworzeniu przepływu pracy, w którym można dołączyć zadanie przepływ danych, trzeba zrozumieć kroki, które są wymagane, aby dodać to zadanie.W następnej sekcji opisano proces ogólnego włączania zadanie przepływ danych.Końcowe dwóch sekcjach opisano sposób nawiązywania połączenia zadanie przepływ danych bezpośrednio ze źródłem danych lub przekształconych danych z przepływ danych.
Definiowanie głównej przepływ pracy dla zadanie przepływ danych
W poniższej procedurze opisano ogólne podejście do przy użyciu danych wyjściowych danych Profilowanie zadania w przepływie pracy pakiet.
Aby dane wyjściowe zadania Profilowanie danych w sposób programowy za pomocą pakiet
Dodawanie i konfigurowanie Profilowanie danych zadań w pakiecie.
Skonfiguruj pakiet zmiennych do przechowywania wartości, które ma zostać pobrany z wyniki profilu.
Dodawanie i konfigurowanie zadań skryptów.Połączyć zadania skryptu Profilowanie dane zadanie.W zadaniu skrypt napisanie kodu, który odczytuje żądane wartości w pliku docelowym zadania Profilowanie danych i wypełnia zmiennych pakiet.
W ograniczenia pierwszeństwo połączone zadanie skryptu z gałęzi niższego rzędu w przepływie pracy należy zapisać wyrażenia korzystające z wartości zmiennych dla bezpośrednich przepływu pracy.
Podczas włączania Profilowanie dane zadanie do przepływu pracy pakiet, należy pamiętać o funkcje te dwa zadania:
Dane wyjściowe zadania.Profilowanie dane zadanie zapisuje dane wyjściowe do pliku lub zmiennej pakiet w formacie XML, zgodnie ze schematem DataProfile.xsd.Dlatego należy zbadać dane wyjściowe XML, jeśli chcesz użyć profilu wyniki warunkowego przebiegu pracy z pakiet.Język XPath kwerendy umożliwia łatwe kwerendy te dane wyjściowe XML.Zbadanie struktury te dane wyjściowe XML, można otworzyć przykładowy plik wyjściowy lub sam schemat.To open the output file or schema, you can use Microsoft Visual Studio, another XML editor, or a text editor, such as Notepad.
Uwaga
Niektóre wyniki profilu, które są wyświetlane w przeglądarce dane profilu są obliczone wartości, które nie zostały znalezione bezpośrednio w danych wyjściowych.Na przykład dane wyjściowe profilu współczynnik null kolumna zawiera całkowitą liczbę wierszy i liczby wierszy, które zawierają wartości null.Należy zbadać te dwie wartości, a następnie obliczyć procent wiersze zawierające wartości null do uzyskania stosunku puste kolumna.
Wprowadzanie zadania.Profilowanie dane zadanie odczytuje jej wprowadzania danych SQL Server tabele. Dlatego należy zapisać dane, które znajduje się w pamięci do przemieszczenia tabel, aby dane profilu, który już został załadowany i przekształcony w przepływ danych.
W poniższych sekcjach dotyczą profilowania danych, który pochodzi bezpośrednio z zewnętrznym źródłem danych lub które pochodzi przekształcony z tego przepływu pracy Ogólne zadanie przepływ danych.Następujące sekcje również pokazują, jak obsługiwać wymagania zadanie przepływ danych wejściowych i wyjściowych.
Łączenie danych Profilowanie zadania bezpośrednio do zewnętrznego urządzenie źródłowe danych
Profilowanie dane zadanie może profilu danych pochodzących bezpośrednio ze urządzenie źródłowe danych.Aby zilustrować tej funkcji, w poniższym przykładzie użyto zadania Profilowanie danych do obliczenia kolumna profil współczynnik Null w kolumnach tabela Person.Address AdventureWorks Baza danych. Następnie w tym przykładzie użyto zadania skryptów można uzyskać wyniki z pliku danych wyjściowych i wypełnić pakiet zmiennych, które mogą być używane do kierowania przepływu pracy.
Uwaga
W tym przykładzie prosty została wybrana kolumna AddressLine2, ponieważ ta kolumna zawiera wartości null na wysokie procentowo.
W poniższym przykładzie składa się z następujących czynności:
Konfigurowanie Menedżera połączeń, łączących się z zewnętrznym źródłem danych i plik wyjściowy, który będzie zawierał wyniki profilu.
Konfigurowanie zmiennych pakiet, które będą przechowywane wartości wymagane przez profilowanie dane zadanie.
Konfigurowanie zadań Profilowanie dane do obliczenia kolumna null współczynnik profilu.
Konfigurowanie zadań skryptów do pracy z zadania Profilowanie danych dane wyjściowe XML.
Konfigurowanie ograniczenia priorytecie, które będą kontrolować, które gałęzi niższego rzędu w przepływie pracy są uruchamiane oparte na wynikach Profilowanie dane zadanie.
Konfigurowanie Menedżer połączeń
W tym przykładzie są dwie menedżerów połączenia:
An ADO.NET menedżer połączeń that connects to the AdventureWorks database.
Menedżer połączeń plik, który tworzy plik wyjściowy będzie wyniki Profilowanie dane zadanie.
Aby skonfigurować Menedżera połączeń
W Business Intelligence Development Studio, Utwórz nowy Integration Services pakiet.
Dodawanie ADO.NET Menedżer połączeń do pakiet. Skonfiguruj ten Menedżer połączeń do używania dostawca danych NET dla SQL Server (Klient SQL) i połączyć się z wystąpienie dostępne AdventureWorks Baza danych.
Domyślnie Menedżer połączeń ma następującą nazwę: .AdventureWorks1 > < serwera nazw
Dodawanie pliku menedżer połączeń do pakiet.Skonfiguruj ten Menedżer połączeń do utworzenia pliku wyjściowego do profilowania dane zadania.
W tym przykładzie użyto nazwy pliku, DataProfile1.xml.Domyślnie Menedżer połączeń ma taką samą nazwę jak plik.
Konfigurowanie zmienne pakiet
W tym przykładzie dwie zmienne pakiet:
Zmienna ProfileConnectionName przekazuje nazwę pliku menedżer połączeń do zadania skryptu.
Zmienna AddressLine2NullRatio przekazuje obliczeniowych stosunek wartości null dla tej kolumna z zadań skryptów do pakiet.
Aby skonfigurować zmiennych pakiet, które będą przechowywane wyniki profilu
W Zmienne okna, dodawanie i konfigurowanie pakiet dwóch następujących zmiennych:
Wprowadź nazwę, ProfileConnectionName, do jednej ze zmiennych i zestaw typu zmienna do Ciąg znaków.
Wprowadź nazwę, AddressLine2NullRatio, inne zmiennej i określeniu typu zmienna do Podwójne.
Konfigurowanie danych Profilowanie zadań
Profilowanie dane zadanie ma być skonfigurowane w następujący sposób:
Aby użyć danych, ADO.NET Menedżer połączeń udostępnia jako dane wejściowe.
Aby wykonać profilu null współczynnik kolumna na dane wejściowe.
Aby zapisać wyniki profilu do pliku, który jest skojarzony z pliku menedżer połączeń.
Aby skonfigurować zadania Profilowanie danych
Aby przepływ sterowania należy dodać Profilowanie dane zadanie.
Otwórz Edytor zadań profilowania danych , aby skonfigurować zadania.
Na Ogólne Edytor stronaobiekt obiekt docelowy, zaznacz nazwę Menedżer połączeń plik, który został uprzednio skonfigurowany.
Na Żądania profilu Strona edytora, Utwórz nowy profil współczynnik null kolumna.
W Żądaj właściwości pane, for ConnectionManager, zaznacz ADO.NET Menedżer połączeń, który został uprzednio skonfigurowany. Następnie aby TableOrView, wybierz opcję Person.Address.
Zamknij dane Profilowanie Edytor zadań.
Skonfiguruj skrypt zadania
Zadanie skryptu musi być skonfigurowany do pobierania wyniki z pliku wyjściowego i wypełnić zmiennych pakiet, które zostały poprzednio skonfigurowane.
Aby skonfigurować zadania skryptu
Aby przepływ sterowania należy dodać zadanie skryptu.
Połączyć zadania skryptu Profilowanie dane zadanie.
Otwórz Edytor zadań skryptu , aby skonfigurować zadania.
Na Skrypt strona, wybierz swój preferowany język programowania.Następnie udostępnia zmiennych dwóch pakiet skryptu:
Dla ReadOnlyVariables, select ProfileConnectionName.
Dla ReadWriteVariables, select AddressLine2NullRatio.
Wybierz opcję Edytowanie skryptu , aby otworzyć środowiska programistycznego skryptu.
Dodaj odwołanie do obszaru nazw System.Xml.
Wprowadź kod przykładowy, który odpowiada do języka programowania:
Imports System Imports Microsoft.SqlServer.Dts.Runtime Imports System.Xml Public Class ScriptMain Private FILENAME As String = "C:\ TEMP\DataProfile1.xml" Private PROFILE_NAMESPACE_URI As String = "https://schemas.microsoft.com/DataDebugger/" Private NULLCOUNT_XPATH As String = _ "/default:DataProfile/default:DataProfileOutput/default:Profiles" & _ "/default:ColumnNullRatioProfile[default:Column[@Name='AddressLine2']]/default:NullCount/text()" Private TABLE_XPATH As String = _ "/default:DataProfile/default:DataProfileOutput/default:Profiles" & _ "/default:ColumnNullRatioProfile[default:Column[@Name='AddressLine2']]/default:Table" Public Sub Main() Dim profileConnectionName As String Dim profilePath As String Dim profileOutput As New XmlDocument Dim profileNSM As XmlNamespaceManager Dim nullCountNode As XmlNode Dim nullCount As Integer Dim tableNode As XmlNode Dim rowCount As Integer Dim nullRatio As Double ' Open output file. profileConnectionName = Dts.Variables("ProfileConnectionName").Value.ToString() profilePath = Dts.Connections(profileConnectionName).ConnectionString profileOutput.Load(profilePath) profileNSM = New XmlNamespaceManager(profileOutput.NameTable) profileNSM.AddNamespace("default", PROFILE_NAMESPACE_URI) ' Get null count for column. nullCountNode = profileOutput.SelectSingleNode(NULLCOUNT_XPATH, profileNSM) nullCount = CType(nullCountNode.Value, Integer) ' Get row count for table. tableNode = profileOutput.SelectSingleNode(TABLE_XPATH, profileNSM) rowCount = CType(tableNode.Attributes("RowCount").Value, Integer) ' Compute and return null ratio. nullRatio = nullCount / rowCount Dts.Variables("AddressLine2NullRatio").Value = nullRatio Dts.TaskResult = Dts.Results.Success End Sub End Class
using System; using Microsoft.SqlServer.Dts.Runtime; using System.Xml; public class ScriptMain { private string FILENAME = "C:\\ TEMP\\DataProfile1.xml"; private string PROFILE_NAMESPACE_URI = "https://schemas.microsoft.com/DataDebugger/"; private string NULLCOUNT_XPATH = "/default:DataProfile/default:DataProfileOutput/default:Profiles" + "/default:ColumnNullRatioProfile[default:Column[@Name='AddressLine2']]/default:NullCount/text()"; private string TABLE_XPATH = "/default:DataProfile/default:DataProfileOutput/default:Profiles" + "/default:ColumnNullRatioProfile[default:Column[@Name='AddressLine2']]/default:Table"; public void Main() { string profileConnectionName; string profilePath; XmlDocument profileOutput = new XmlDocument(); XmlNamespaceManager profileNSM; XmlNode nullCountNode; int nullCount; XmlNode tableNode; int rowCount; double nullRatio; // Open output file. profileConnectionName = Dts.Variables["ProfileConnectionName"].Value.ToString(); profilePath = Dts.Connections[profileConnectionName].ConnectionString; profileOutput.Load(profilePath); profileNSM = new XmlNamespaceManager(profileOutput.NameTable); profileNSM.AddNamespace("default", PROFILE_NAMESPACE_URI); // Get null count for column. nullCountNode = profileOutput.SelectSingleNode(NULLCOUNT_XPATH, profileNSM); nullCount = (int)nullCountNode.Value; // Get row count for table. tableNode = profileOutput.SelectSingleNode(TABLE_XPATH, profileNSM); rowCount = (int)tableNode.Attributes["RowCount"].Value; // Compute and return null ratio. nullRatio = nullCount / rowCount; Dts.Variables["AddressLine2NullRatio"].Value = nullRatio; Dts.TaskResult = Dts.Results.Success; } }
Uwaga
Przykładowy kod w tej procedurze pokazano, jak załadować dane wyjściowe zadania Profilowanie danych z pliku.Aby załadować dane wyjściowe zadania Profilowanie danych ze zmiennej pakiet zamiast tego, wyświetlany jest kod przykładowy alternatywnych, zgodną z tej procedury.
Zamknij skrypt środowiska programowania, a następnie zamknij Edytor skryptów zadań.
Alternatywny kod — odczytu danych wyjściowych profil ze zmienną
Poprzedniej procedurze pokazano, jak załadować dane wyjściowe zadania Profilowanie danych z pliku.Jednak alternatywną metodą jest załadować te dane wyjściowe z zmiennej pakiet.Aby załadować dane wyjściowe z zmienna, należy wprowadzić następujące zmiany do kodu przykładowego:
Wywołanie LoadXml Metoda XmlDocument Klasa zamiast Load Metoda.
W Edytorze skryptów zadań można dodać nazwę zmiennej pakiet zawierający dane wyjściowe profilu z zadaniem ReadOnlyVariables Lista.
Ciąg wartości zmiennej do przekazania LoadXML Metoda, jak pokazano w poniższym przykładzie. (W tym przykładzie użyto "ProfileOutput" jako nazwę zmiennej pakiet zawierający dane wyjściowe profilu).
Dim outputString As String outputString = Dts.Variables("ProfileOutput").Value.ToString() ... profileOutput.LoadXml(outputString)
string outputString; outputString = Dts.Variables["ProfileOutput"].Value.ToString(); ... profileOutput.LoadXml(outputString);
Konfigurowanie ograniczeń pierwszeństwo
Ograniczenia pierwszeństwo mają być konfigurowane do kontrolowania, które gałęzi niższego rzędu w przepływie pracy są uruchamiane oparte na wynikach Profilowanie dane zadanie.
Aby skonfigurować warunki ograniczające pierwszeństwo
W ograniczenia pierwszeństwo połączone zadanie skryptu z gałęzi niższego rzędu w przepływie pracy należy zapisać wyrażenia korzystające z wartości zmiennych dla bezpośrednich przepływu pracy.
Na przykład, zestaw Operacja oceny ograniczenie pierwszeństwa do Wyrażenie i ograniczenia.Następnie można użyć @AddressLine2NullRatio < .90 jako wartość wyrażenie. Powoduje to, że przepływ pracy, zgodnie z wybraną ścieżka poprzednich zadań została wykonana pomyślnie, a procent wartości null w wybranej kolumnie jest mniejsza niż 90 %.
Łączenie danych Profilowanie zadań do danych przetransformowanych z przepływ danych
Zamiast profilowania danych bezpośrednio ze urządzenie źródłowe danych, można profilu danych, który już został załadowany i przekształcony w przepływ danych.Jednak zadania Profilowanie danych działa tylko wobec danych, nie dla danych w pamięci.Dlatego należy najpierw użyć obiekt docelowy składnik, aby zapisać przekształconych danych do tabela tymczasowej.
Uwaga
Po skonfigurowaniu zadań Profilowanie danych, należy wybrać istniejące tabele i kolumny.Dlatego należy utworzyć tabela tymczasowej w projekcie czas przed skonfigurowaniem zadania.Innymi słowy w tym scenariuszu nie zezwala na korzystanie z tabela tymczasowa, który jest tworzony w czasie wykonywania.
Po zapisaniu danych do tabela tymczasowej, należy wykonać następujące czynności:
Profil danych za pomocą Profilowanie dane zadanie.
Użyć zadania skryptu odczytać wyniki, jak to opisano we wcześniejszej części tego tematu.
Użyj tych wyniki do kierowania kolejnych przepływu pracy pakiet.
Poniższa procedura zawiera ogólne podejście przy użyciu profilowania dane zadanie danych profilu, która została przekształcona przez przepływ danych.Wiele z tych kroków jest podobne do tych opisanych wcześniej do profilowania danych, który pochodzi bezpośrednio z zewnętrznym źródłem danych.Być może chcesz przejrzeć te wcześniej kroki, aby uzyskać więcej informacji na temat sposobu konfigurowania różnych składników.
Aby użyć Profilowanie dane zadanie w przepływ danych
W Business Intelligence Development Studio, Utwórz pakiet.
W przepływ danych Dodawanie, konfigurowanie i podłączyć odpowiednie źródła i wykonywania przekształceń.
W przepływ danych Dodawanie, konfigurowanie i Połącz z docelowego składnika, który zapisuje przekształconych danych do tabela tymczasowej.
W przepływ sterowania należy dodać i skonfigurować Profilowanie dane zadanie, które oblicza żądane profilów dla przekształconych danych w tabela tymczasowej.Profilowanie dane zadanie połączyć się z zadaniem przepływ danych.
Skonfiguruj pakiet zmiennych do przechowywania wartości, które ma zostać pobrany z wyniki profilu.
Dodawanie i konfigurowanie zadań skryptów.Połączyć zadania skryptu Profilowanie dane zadanie.W zadaniu skrypt napisanie kodu, który odczytuje dane wyjściowe zadania Profilowanie danych żądane wartości i wypełnia zmiennych pakiet.
W ograniczenia pierwszeństwo połączone zadanie skryptu z gałęzi niższego rzędu w przepływie pracy należy zapisać wyrażenia korzystające z wartości zmiennych dla bezpośrednich przepływu pracy.
|