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
Profilace a vyčištění dat nejsou kandidáty na automatizovaný proces v počátečních fázích. Ve službě SQL Server Integration Services výstup úlohy profilace dat obvykle vyžaduje vizuální analýzu a lidský úsudek, aby bylo možné určit, jestli jsou nahlášená porušení smysluplná nebo nadměrná. I po rozpoznání problémů s kvalitou dat musí být stále pečlivě promyšlený plán, který řeší nejlepší přístup k vyčištění.
Po vytvoření kritérií pro kvalitu dat ale můžete chtít automatizovat pravidelnou analýzu a vyčištění zdroje dat. Zvažte tyto scénáře:
Kontrola kvality dat před přírůstkovým načtením Pomocí úlohy Profilace dat můžete vypočítat profil poměru null sloupce nových dat určených pro sloupec CustomerName v tabulce Zákazníci. Pokud je procento hodnot null větší než 20%, odešlete e-mailovou zprávu obsahující výstup profilu operátorovi a ukončete balíček. V opačném případě pokračujte v přírůstkovém načítání.
Automatizace čištění při splnění zadaných podmínek Pomocí úlohy profilování dat můžete vypočítat profil zahrnutí hodnoty ve sloupci Stát proti vyhledávací tabulce států a ve sloupci PSČ/poštovního směrovacího čísla proti vyhledávací tabulce PSČ. Pokud je síla zahrnutí hodnot státu menší než 80%, ale síla zahrnutí hodnot PSČ je větší než 99%, to značí dvě věci. Za prvé, stavová data jsou špatná. Za druhé, data PSČ jsou dobrá. Spusťte úlohu toku dat, která vyčistí data o státech pomocí vyhledání správné hodnoty státu z aktuálního PSČ.
Jakmile budete mít pracovní postup, do kterého můžete začlenit úlohu toku dat, musíte pochopit kroky potřebné k přidání této úlohy. Další část popisuje obecný proces začlenění úlohy toku dat. Poslední dvě části popisují, jak připojit úlohu Toku dat přímo ke zdroji dat nebo k transformaci dat z toku dat.
Definování obecného pracovního postupu pro úlohu toku dat
Následující postup popisuje obecný přístup pro použití výstupu úlohy profilace dat v pracovním postupu balíčku.
Použití výstupu úlohy profilace dat v balíčku prostřednictvím kódu programu
Přidejte a nakonfigurujte úlohu profilace dat v balíčku.
Nakonfigurujte proměnné balíčku tak, aby obsahovaly hodnoty, které chcete načíst z výsledků profilu.
Přidejte a nakonfigurujte úlohu skriptu. Připojte úlohu Skript k úloze Profilace dat. V úloze Skript napište kód, který načte požadované hodnoty z výstupního souboru úlohy profilace dat a naplní proměnné balíčku.
V omezeních priority, která propojují úlohu Skriptu s podřízenými větvemi pracovního postupu, zapište výrazy, které používají hodnoty proměnných k nasměrování pracovního postupu.
Při začlenění úlohy profilace dat do pracovního postupu balíčku mějte na paměti tyto dvě funkce úkolu:
Výstup úkolu Úloha profilace dat zapíše výstup do souboru nebo proměnné balíčku ve formátu XML podle schématu DataProfile.xsd. Proto musíte dotazovat výstup XML, pokud chcete použít výsledky profilu v podmíněném pracovním postupu balíčku. Dotazovací jazyk Xpath můžete snadno použít k dotazování tohoto výstupu XML. Pokud chcete prozkoumat strukturu tohoto výstupu XML, můžete otevřít ukázkový výstupní soubor nebo samotné schéma. K otevření výstupního souboru nebo schématu můžete použít Microsoft Visual Studio, jiný editor XML nebo textový editor, například Poznámkový blok.
Poznámka:
Některé výsledky profilu zobrazené v Prohlížeči profilů dat jsou počítané hodnoty, které nejsou přímo nalezeny ve výstupu. Například výstup profilu poměru null sloupce obsahuje celkový počet řádků a počet řádků, které obsahují hodnoty null. Pokud chcete získat poměr null sloupce, musíte se na tyto dvě hodnoty dotazovat a pak vypočítat procento řádků obsahujících hodnoty null.
Vstup úkolu. Úloha profilace dat čte svůj vstup z tabulek SQL Serveru. Proto je nutné uložit data, která jsou v paměti do přípravných tabulek, pokud chcete profilovat data, která již byla načtena a transformována v toku dat.
Následující části použijí tento obecný pracovní postup na profilaci dat pocházejících přímo z externího zdroje dat nebo transformovaných z úlohy Tok dat. Tyto části také ukazují, jak zpracovat požadavky na vstup a výstup úlohy Tok dat.
Přímé připojení úlohy profilace dat k externímu zdroji dat
Úloha profilace dat může profilovat data, která pocházejí přímo ze zdroje dat. Pro ilustraci této funkce používá následující příklad úlohu profilace dat k výpočtu profilu poměru null sloupce na sloupcích tabulky Person.Address v databázi AdventureWorks2025. Tento příklad pak pomocí úlohy Skriptu načte výsledky z výstupního souboru a naplní proměnné balíčku, které lze použít k přímému pracovnímu postupu.
Poznámka:
Pro tento jednoduchý příklad byl vybrán sloupec AddressLine2, protože tento sloupec obsahuje vysoké procento hodnot null.
Tento příklad se skládá z následujících kroků:
Konfigurace správců připojení, kteří se připojují k externímu zdroji dat a výstupnímu souboru, který bude obsahovat výsledky profilu.
Konfigurace proměnných balíčku, které budou obsahovat hodnoty potřebné pro úkol Profilování dat.
Konfigurace úlohy profilace dat pro výpočet profilu podílu nulových hodnot ve sloupci.
Konfigurace skriptovací úlohy pro práci s výstupem XML z úlohy profilace dat.
Konfigurace omezení priority, která řídí, které podřízené větve v pracovním postupu se spouštějí na základě výsledků úlohy profilace dat.
Konfigurace správců připojení
V tomto příkladu existují dva správci připojení:
Správce připojení ADO.NET, který se připojuje k databázi AdventureWorks2025.
Správce připojení k souborům, který vytvoří výstupní soubor, který bude obsahovat výsledky úlohy Profilace dat.
Konfigurace správců připojení
V SQL Server Data Tools (SSDT) vytvořte nový balíček Integrační služby.
Přidejte do balíčku správce připojení ADO.NET. Nakonfigurujte tohoto správce připojení tak, aby používal zprostředkovatele dat NET pro SQL Server (SqlClient) a aby se připojil k dostupné instanci databáze AdventureWorks2025.
Ve výchozím nastavení má správce připojení následující název: <název> serveru. AdventureWorks1.
Přidejte správce připojení k souboru do balíčku. Nakonfigurujte tohoto správce připojení, aby vytvořil výstupní soubor pro úlohu profilace dat.
Tento příklad používá název souboru DataProfile1.xml. Ve výchozím nastavení má správce připojení stejný název jako soubor.
Konfigurujte proměnné balíčku
V tomto příkladu se používají dvě proměnné balíčku:
Proměnná ProfileConnectionName předá název správce připojení k souboru do úlohy Skript.
Proměnná AddressLine2NullRatio předává počítaný poměr null pro tento sloupec z úlohy Script do balíčku.
Pro konfiguraci proměnných balíčku, které budou obsahovat výsledky profilu
V okně Proměnné přidejte a nakonfigurujte následující dvě proměnné balíčku:
Zadejte název ProfileConnectionName pro jednu z proměnných a nastavte typ této proměnné na String.
Zadejte název AddressLine2NullRatio pro jinou proměnnou a nastavte typ této proměnné na Double.
Konfigurace úlohy profilace dat
Úlohu profilace dat je potřeba nakonfigurovat následujícím způsobem:
Chcete-li použít data, která správce připojení ADO.NET poskytuje jako vstup.
Provedení profilu poměru nulových hodnot ve sloupcích vstupních dat.
Chcete-li uložit výsledky profilu do souboru přidruženého ke správci připojení k souborům.
Konfigurace úlohy profilace dat
Do toku řízení přidejte úlohu profilace dat.
Otevřete Editor úloh profilace dat a nakonfigurujte úlohu.
Na stránce Obecné v editoru v části Cíl vyberte název správce připojení k souborům, který jste dříve nakonfigurovali.
Na stránce Requesty profilu editoru vytvořte nový profil poměru prázdných hodnot sloupce.
V podokně Vlastnosti požadavku v části ConnectionManager vyberte ADO.NET správce připojení, který jste předtím nakonfigurovali. Potom v tabulce TableOrView vyberte Person.Address.
Zavřete Editor úloh profilace dat.
Konfigurace úlohy skriptu
Úloha Skript musí být nakonfigurována tak, aby načetla výsledky z výstupního souboru a naplnila proměnné balíčku, které byly dříve nakonfigurovány.
Pro konfiguraci úlohy skriptu
Do toku řízení přidejte úlohu skriptu.
Připojte úlohu Skript k úloze Profilace dat.
Otevřete Editor úloh skriptu a nakonfigurujte úlohu.
Na stránce Skript vyberte upřednostňovaný programovací jazyk. Potom pro skript zpřístupníte dvě proměnné balíčku:
Pro ReadOnlyVariables vyberte ProfileConnectionName.
Pro ReadWriteVariables vyberte AddressLine2NullRatio.
Výběrem možnosti Upravit skript otevřete vývojové prostředí skriptu.
Přidejte odkaz na obor názvů System.Xml.
Zadejte vzorový kód, který odpovídá vašemu programovacímu jazyku:
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 Classusing 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; } }Poznámka:
Ukázkový kód zobrazený v tomto postupu ukazuje, jak načíst výstup úlohy profilace dat ze souboru. Pokud chcete načíst výstup úlohy profilace dat z proměnné balíčku, podívejte se na alternativní vzorový kód, který následuje tímto postupem.
Zavřete vývojové prostředí skriptu a potom zavřete Editor úloh skriptu.
Alternativní čtení kódu výstupu profilu z proměnné
Předchozí postup ukazuje, jak načíst výstup úlohy profilace dat ze souboru. Alternativní metodou by však bylo načíst tento výstup z proměnné balíčku. Pokud chcete načíst výstup z proměnné, musíte v ukázkovém kódu provést následující změny:
Volejte metodu LoadXml třídy XmlDocument místo metody Load.
V Editoru úloh skriptu přidejte název proměnné balíčku, která obsahuje výstup profilu do seznamu ReadOnlyVariables úkolu.
Předejte řetězcovou hodnotu proměnné metodě LoadXML , jak je znázorněno v následujícím příkladu kódu. (V tomto příkladu se jako název proměnné balíčku, která obsahuje výstup profilu, používá "ProfileOutput".)
Dim outputString As String outputString = Dts.Variables("ProfileOutput").Value.ToString() ... profileOutput.LoadXml(outputString)string outputString; outputString = Dts.Variables["ProfileOutput"].Value.ToString(); ... profileOutput.LoadXml(outputString);
Konfigurace omezení priority
Omezení priority musí být nakonfigurována tak, aby kontrolovala, které podřízené větve v pracovním postupu se spouštějí na základě výsledků úlohy profilace dat.
Konfigurace omezení priority
V omezeních priority, která propojují úlohu Skriptu s podřízenými větvemi pracovního postupu, zapište výrazy, které používají hodnoty proměnných k nasměrování pracovního postupu.
Například můžete nastavit operaci vyhodnocení precedenčního omezení na Výraz a Omezení. Pak můžete použít
@AddressLine2NullRatio < .90jako hodnotu výrazu. To způsobí, že pracovní postup bude následovat po vybrané cestě, když budou předchozí úkoly úspěšné a pokud je procento hodnot null ve vybraném sloupci menší než 90%.
Připojení úlohy profilace dat k transformovaným datům z toku dat
Místo profilace dat přímo ze zdroje dat můžete profilovat data, která už byla načtena a transformována v toku dat. Úloha profilace dat ale funguje pouze s trvalými daty, nikoli s daty v paměti. Proto musíte nejprve použít cílovou komponentu k uložení transformovaných dat do pracovní tabulky.
Poznámka:
Při konfiguraci úlohy profilace dat musíte vybrat existující tabulky a sloupce. Proto musíte před konfigurací úlohy vytvořit staging tabulku během fáze návrhu. Jinými slovy, tento scénář neumožňuje použít dočasnou tabulku vytvořenou za běhu.
Po uložení dat do pracovní tabulky můžete provést následující akce:
K profilaci dat použijte úlohu Profilování dat.
Pomocí úlohy Skript si můžete přečíst výsledky, jak je popsáno výše v tomto tématu.
Tyto výsledky použijte k nasměrování následného pracovního postupu balíčku.
Následující postup poskytuje obecný přístup k použití úlohy profilace dat k profilaci dat transformovaných tokem dat. Mnohé z těchto kroků jsou podobné těm, které jsou popsány dříve pro profilaci dat pocházejících přímo z externího zdroje dat. Možná si budete chtít projít předchozí kroky, kde najdete další informace o tom, jak nakonfigurovat různé komponenty.
Použití úlohy profilace dat v toku dat
V SQL Server Data Tools (SSDT) vytvořte balíček.
V toku dat přidejte, nakonfigurujte a propojte příslušné zdroje a transformace.
V toku dat přidejte, nakonfigurujte a připojte cílovou komponentu, která ukládá transformovaná data do pracovní tabulky.
V toku řízení přidejte a nakonfigurujte úlohu profilace dat, která vypočítá požadované profily proti transformovaným datům v pracovní tabulce. Připojte úlohu profilace dat k úloze Tok dat.
Nakonfigurujte proměnné balíčku tak, aby obsahovaly hodnoty, které chcete načíst z výsledků profilu.
Přidejte a nakonfigurujte úlohu skriptu. Připojte úlohu Skript k úloze Profilace dat. V úkolu Skript napište kód, který čte požadované hodnoty z výstupu úlohy profilace dat a naplní proměnné balíčku.
V omezeních priority, která propojují úlohu Skriptu s podřízenými větvemi pracovního postupu, zapište výrazy, které používají hodnoty proměnných k nasměrování pracovního postupu.