Transformace dat pomocí aktivity skriptu ve službě Azure Data Factory nebo Synapse Analytics
PLATÍ PRO: Azure Data Factory Azure Synapse Analytics
Tip
Vyzkoušejte si službu Data Factory v Microsoft Fabric, řešení pro analýzy typu all-in-one pro podniky. Microsoft Fabric zahrnuje všechno od přesunu dat až po datové vědy, analýzy v reálném čase, business intelligence a vytváření sestav. Přečtěte si, jak začít používat novou zkušební verzi zdarma.
Aktivity transformace dat v kanálu Data Factory nebo Synapse slouží k transformaci a zpracování nezpracovaných dat do předpovědí a přehledů. Aktivita Skript je jednou z transformačních aktivit, které kanály podporují. Tento článek vychází z článku o transformovaných datech, který představuje obecný přehled transformace dat a podporovaných aktivit transformace.
Pomocí aktivity skriptu můžete spouštět běžné operace pomocí jazyka DML (Data Manipulation Language) a DDL (Data Definition Language). Příkazy DML, jako jsou INSERT, UPDATE, DELETE a SELECT, umožňují uživatelům vkládat, upravovat, odstraňovat a načítat data v databázi. Příkazy DDL, jako jsou CREATE, ALTER a DROP, umožňují správci databáze vytvářet, upravovat a odebírat databázové objekty, jako jsou tabulky, indexy a uživatelé.
Pomocí aktivity Skript můžete vyvolat skript SQL v jednom z následujících úložišť dat ve vašem podniku nebo na virtuálním počítači Azure:
- Azure SQL Database
- Azure Synapse Analytics
- Databáze SQL Serveru. Pokud používáte SQL Server, nainstalujte místní prostředí Integration Runtime na stejný počítač, který je hostitelem databáze nebo na samostatný počítač s přístupem k databázi. Místní prostředí Integration Runtime je komponenta, která propojuje zdroje dat místně nebo na virtuálním počítači Azure s cloudovými službami zabezpečeným a spravovaným způsobem. Podrobnosti najdete v článku o místním prostředí Integration Runtime .
- Oracle
- Snowflake
Skript může obsahovat jeden příkaz SQL nebo více příkazů SQL, které se spouštějí postupně. Úlohu Skript můžete použít pro následující účely:
- Ořízte tabulku při přípravě na vkládání dat.
- Umožňuje vytvářet, měnit a odstraňovat databázové objekty, jako jsou tabulky a zobrazení.
- Před načtením dat do nich znovu vytvořte tabulky faktů a dimenzí.
- Spusťte uložené procedury. Pokud příkaz SQL vyvolá uloženou proceduru, která vrací výsledky z dočasné tabulky, použijte možnost WITH RESULT SETS k definování metadat pro sadu výsledků.
- Uložte sadu řádků vrácenou z dotazu jako výstup aktivity pro příjem dat.
Podrobnosti o syntaxi
Tady je formát JSON pro definování aktivity skriptu:
{
"name": "<activity name>",
"type": "Script",
"linkedServiceName": {
"referenceName": "<name>",
"type": "LinkedServiceReference"
},
"typeProperties": {
"scripts" : [
{
"text": "<Script Block>",
"type": "<Query> or <NonQuery>",
"parameters":[
{
"name": "<name>",
"value": "<value>",
"type": "<type>",
"direction": "<Input> or <Output> or <InputOutput>",
"size": 256
},
...
]
},
...
],
...
]
},
"scriptBlockExecutionTimeout": "<time>",
"logSettings": {
"logDestination": "<ActivityOutput> or <ExternalStore>",
"logLocationSettings":{
"linkedServiceName":{
"referenceName": "<name>",
"type": "<LinkedServiceReference>"
},
"path": "<folder path>"
}
}
}
}
Následující tabulka popisuje tyto vlastnosti JSON:
Název vlastnosti | Popis | Povinní účastníci |
---|---|---|
name | Název aktivity. | Ano |
type | Typ aktivity, nastavený na "Script". | Ano |
typeProperties | Zadejte vlastnosti pro konfiguraci aktivity skriptu. | Ano |
linkedServiceName | Cílová databáze, na které skript běží. Měl by to být odkaz na propojenou službu. | Ano |
skripty | Pole objektů, které představují skript. | No |
scripts.text | Prostý text bloku dotazů. | No |
scripts.type | Typ bloku dotazů. Může to být Dotaz nebo NonQuery. Výchozí: Dotaz. | No |
scripts.parameter | Pole parametrů skriptu. | No |
scripts.parameter.name | Název parametru | No |
scripts.parameter.value | Hodnota parametru. | No |
scripts.parameter.type | Datový typ parametru. Typ je logický typ a řídí se mapováním typů jednotlivých spojnic. | No |
scripts.parameter.direction | Směr parametru. Může to být Vstup, Výstup, InputOutput. Pokud je směr výstupem, hodnota se ignoruje. Typ ReturnValue není podporován. Nastavte návratovou hodnotu sp na výstupní parametr, který ho načte. | No |
scripts.parameter.size | Maximální velikost parametru. Platí pouze pro parametr směru Output/InputOutput typu string/byte[]. | No |
scriptBlockExecutionTimeout | Doba čekání na dokončení operace spuštění bloku skriptu před vypršením časového limitu. | No |
LogSettings | Nastavení pro ukládání výstupních protokolů. Pokud není zadaný, protokol skriptu je zakázaný. | No |
logSettings.logDestination | Cíl výstupu protokolu. Může to být ActivityOutput nebo ExternalStore. Výchozí: ActivityOutput. | No |
logSettings.logLocationSettings | Nastavení cílového umístění, pokud je logDestination ExternalStore. | No |
logSettings.logLocationSettings.linkedServiceName | Propojená služba cílového umístění. Podporuje se jenom úložiště objektů blob. | No |
logSettings.logLocationSettings.path | Cesta ke složce, pod kterou se mají ukládat protokoly. | No |
Výstup aktivity
Ukázkový výstup:
{
"resultSetCount": 2,
"resultSets": [
{
"rowCount": 10,
"rows":[
{
"<columnName1>": "<value1>",
"<columnName2>": "<value2>",
...
}
]
},
...
],
"recordsAffected": 123,
"outputParameters":{
"<parameterName1>": "<value1>",
"<parameterName2>": "<value2>"
},
"outputLogs": "<logs>",
"outputLogsLocation": "<folder path>",
"outputTruncated": true,
...
}
Název vlastnosti | Popis | Podmínka |
---|---|---|
resultSetCount | Počet sad výsledků vrácených skriptem | Always |
resultSets | Pole, které obsahuje všechny sady výsledků. | Always |
resultSets.rowCount | Celkový počet řádků v sadě výsledků | Always |
resultSets.rows | Matice řádků v sadě výsledků. | Always |
záznamy Ovlivněné záznamy | Počet řádků ovlivněných řádky skriptem | Pokud je scriptType NonQuery |
outputParameters | Výstupní parametry skriptu. | Pokud je typ parametru Output nebo InputOutput. |
outputLogs | Protokoly napsané skriptem, například příkaz print. | Pokud konektor podporuje příkaz protokolu a enableScriptLogs je true a logLocationSettings není k dispozici. |
outputLogsPath | Úplná cesta k souboru protokolu. | Pokud je enableScriptLogs true a logLocationSettings je k dispozici. |
OutputTruncated | Ukazatel toho, jestli výstup překročí limity a zkrátí se. | Pokud výstup překročí limity. |
Poznámka:
- Výstup se shromažďuje při každém spuštění bloku skriptu. Konečným výstupem je sloučený výsledek všech výstupů bloku skriptu. Výstupní parametr se stejným názvem v jiném bloku skriptu se přepíše.
- Vzhledem k tomu, že výstup má omezení velikosti nebo řádků, výstup se zkrátí v následujícím pořadí: protokoly –> parametry –> řádky. Poznámka: To platí pro jeden blok skriptu, což znamená, že výstupní řádky dalšího bloku skriptu nevyřadí předchozí protokoly.
- Jakákoli chyba způsobená protokolem neprojde aktivitou.
- Informace o využívání výstupních sad výsledků aktivity v aktivitě down streamu najdete v dokumentaci k výsledkům aktivity vyhledávání.
- Výstupní protokoly použijte, pokud pro účely protokolování používáte příkazy PRINT. Pokud dotaz vrátí sady výsledků, bude dostupný ve výstupu aktivity a bude omezen na 5 000 řádků nebo 4 MB limitu velikosti.
Konfigurace aktivity skriptu pomocí uživatelského rozhraní
Vložený skript
Vložené skripty se dobře integrují s CI/CD kanálu, protože je skript uložený jako součást metadat kanálu.
Protokolování
Možnosti protokolování:
- Zákaz – Není zaprotokolován žádný výstup spuštění.
- Výstup aktivity – Výstup spuštění skriptu se připojí k výstupu aktivity. Podřízené aktivity je pak mohou využívat. Velikost výstupu je omezená na 4 MB.
- Externí úložiště – zachová výstup do úložiště. Tuto možnost použijte, pokud je velikost výstupu větší než 2 MB nebo chcete výstup explicitně zachovat v účtu úložiště.
Poznámka:
Fakturace – Aktivita skriptu se bude účtovat jako aktivity kanálu.
Související obsah
Podívejte se na následující články, které vysvětlují, jak transformovat data jinými způsoby: