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.
VZTAHUJE SE NA:
Azure Data Factory
Azure Synapse Analytics
Tip
Data Factory v Microsoft Fabric je nová generace Azure Data Factory s jednodušší architekturou, integrovanou AI a novými funkcemi. Pokud s integrací dat začínáte, začněte Fabric Data Factory. Stávající úlohy ADF lze upgradovat na Fabric pro přístup k novým funkcím v oblastech datové vědy, analýz v reálném čase a vytváření sestav.
V mapování toku dat se jako výrazy zadá mnoho vlastností transformace. Tyto výrazy se skládají z hodnot sloupců, parametrů, funkcí, operátorů a literálů, které se vyhodnocují jako datový typ Sparku za běhu. Mapování toků dat má vyhrazené prostředí, které vám pomůže při vytváření těchto výrazů označovaných jako Tvůrce výrazů. Využívání dokončování kódu IntelliSense pro zvýrazňování, kontrolu syntaxe a automatické dokončování bylo navrženo s cílem usnadnit tvorbu datových toků pomocí tvůrce výrazů. Tento článek vysvětluje, jak pomocí tvůrce výrazů efektivně vytvářet obchodní logiku.
Otevřít Tvůrce výrazů
Pro otevření tvůrce výrazů existuje několik vstupních bodů. Všechny jsou závislé na konkrétním kontextu transformace toku dat. Nejběžnějším případem použití jsou transformace, jako odvozené sloupce a agregace, kde uživatelé vytvářejí nebo aktualizují sloupce pomocí výrazového jazyka datového toku. Tvůrce výrazů lze otevřít vybráním možnosti Otevřít tvůrce výrazů nacházející se nad seznamem sloupců. Můžete také vybrat kontext sloupce a otevřít tvůrce výrazů přímo na tento výraz.
V některých transformacích, jako je filtr, kliknutím na modře vybarvené textové pole otevřete konstruktér výrazů.
Když odkazujete na sloupce ve podmínkách shody nebo seskupení, výraz může extrahovat hodnoty ze sloupců. Pokud chcete vytvořit výraz, vyberte Vypočítaný sloupec.
V případech, kdy je výraz nebo hodnota literálu platnými vstupy, vyberte Přidat dynamický obsah a vytvořte výraz, který se vyhodnotí jako literálová hodnota.
Prvky výrazu
Při mapování toků dat se výrazy dají skládat z hodnot sloupců, parametrů, funkcí, místních proměnných, operátorů a literálů. Tyto výrazy musí být vyhodnoceny jako datový typ Sparku, jako je řetězec, logická hodnota nebo celé číslo.
Functions
Mapování toků dat má předdefinované funkce a operátory, které je možné použít ve výrazech. Seznam dostupných funkcí najdete v referenčních informacích k jazyku mapování toku dat.
Uživatelem definované funkce (Preview)
Mapování toků dat podporuje vytváření a používání uživatelem definovaných funkcí. Pokud chcete zjistit, jak vytvářet a používat uživatelem definované funkce, podívejte se na uživatelem definované funkce.
Indexy pole adres
Při práci se sloupci nebo funkcemi, které vracejí typy polí, použijte pro přístup ke konkrétnímu prvku hranaté závorky ([]). Pokud index neexistuje, výraz se vyhodnotí jako NULL.
Důležité
V mapování toků dat jsou pole indexovány od jedničky, což znamená, že první prvek je odkazován indexem jedna. Například myArray[1] získá přístup k prvnímu prvku pole s názvem myArray.
Vstupní schéma
Pokud váš tok dat používá definované schéma v některém ze svých zdrojů, můžete na sloupec odkazovat podle názvu v mnoha výrazech. Pokud používáte drift schématu, můžete explicitně odkazovat na sloupce pomocí funkce byName() nebo funkce byNames() nebo můžete použít vzory sloupců ke shodě.
Názvy sloupců se speciálními znaky
Pokud máte názvy sloupců, které obsahují speciální znaky nebo mezery, obklopte název složenými závorkami, aby se na ně ve výrazu odkazovaly.
{[dbo].this_is my complex name$$$}
Parametry
Parametry jsou hodnoty, které se předávají do toku dat během běhu z potrubí. Pokud chcete odkazovat na parametr, vyberte jej ze zobrazení Výrazy a elementy nebo na něj odkazujte znakem dolaru před jeho názvem. Například parametr s názvem parametr1 je odkazován prostřednictvím $parameter1. Další informace najdete v tématu parametrizace mapování toků dat.
Vyhledávání v mezipaměti
Vyhledávání v mezipaměti umožňuje provést přímé vyhledávání výstupu datového úložiště uloženého v mezipaměti. Na každé jímce jsou dostupné k použití dvě funkce, lookup() a outputs(). Syntaxe pro odkaz na tyto funkce je cacheSinkName#functionName(). Další informace najdete v tématu příjemci mezipaměti.
lookup() přebírá odpovídající sloupce v aktuální transformaci jako parametry a vrátí složitý sloupec, který se rovná řádku, který odpovídá klíčovým sloupcům v jímce mezipaměti. Složitý sloupec, který je vrácen, obsahuje podsloupce pro každý sloupec mapovaný ve vyrovnávací paměti. Pokud jste měli například jímku mezipaměti chybového kódu errorCodeCache, která má sloupec klíče, jenž odpovídá kódu, a sloupec nazvaný Message. Volání errorCodeCache#lookup(errorCode).Message vrátí zprávu odpovídající kódu předaným.
outputs() nepřijímá žádné parametry a vrací celou jímku mezipaměti jako pole složitých sloupců. Tuto možnost nesmí být volána, pokud jsou v cílové tabulce zadané klíčové sloupce a měly by být použity pouze tehdy, je-li v mezipaměťové cílové tabulce jen několik řádků. Běžným případem použití je připojení maximální hodnoty inkrementačního klíče. Pokud jeden agregovaný řádek CacheMaxKey v mezipaměti obsahuje sloupec MaxKey, můžete na první hodnotu odkazovat voláním CacheMaxKey#outputs()[1].MaxKey.
Místní настройки
Pokud sdílíte logiku mezi více sloupci nebo chcete logiku rozčlenit do oddílů, můžete vytvořit místní proměnnou. Lokální logika je sada pravidel, která se nešíří na následující transformaci. Místní hodnoty lze vytvořit v tvůrci výrazů tak, že přejdete na elementy výrazu a vyberete Místní hodnoty. Vytvořte nový výběrem možnosti Vytvořit nový.
Místní hodnoty můžou odkazovat na libovolný prvek výrazu, včetně funkcí, vstupního schématu, parametrů a jiných místních hodnot. Při odkazování na jiné místní hodnoty záleží na pořadí, protože odkazované místní musí být "nad" aktuální místní.
Chcete-li odkazovat na lokální proměnnou v transformaci, vyberte ji buď ze zobrazení elementů výrazu, nebo na ni odkazujte s dvojtečkou před jejím názvem. Například místní název local1 by byl odkazován na :local1. Pokud chcete upravit místní definici, najeďte myší na ni v zobrazení prvků výrazu a vyberte ikonu tužky.
Zobrazit výsledky výrazů
Pokud je režim ladění zapnutý, můžete interaktivně použít ladicí cluster k zobrazení, jak se váš výraz vyhodnotí. Výběrem Aktualizovat vedle náhledu dat aktualizujete výsledky náhledu dat. Můžete vidět výstup každého řádku na základě vstupních sloupců.
Interpolace řetězců
Při vytváření dlouhých řetězců, které používají elementy výrazů, použijte interpolaci řetězců k snadnému vytvoření komplexní řetězcové logiky. Interpolace řetězců zabraňuje rozsáhlému použití zřetězení řetězců, pokud jsou parametry zahrnuty do řetězců dotazu. Pomocí dvojitých uvozovek uzavřete text literálového řetězce společně s výrazy. Můžete zahrnout funkce výrazů, sloupce a parametry. Pokud chcete použít syntaxi výrazu, uzavřete ji do složených závorek.
Příklady interpolace řetězců:
"My favorite movie is {iif(instr(title,', The')>0,"The {split(title,', The')[1]}",title)}""select * from {$tablename} where orderyear > {$year}""Total cost with sales tax is {round(totalcost * 1.08,2)}""{:playerName} is a {:playerRating} player"
Poznámka:
Při použití syntaxe interpolace řetězců ve zdrojových dotazech SQL musí být řetězec dotazu na jednom řádku bez /n.
Komentování výrazů
Přidejte komentáře do svých výrazů pomocí syntaxe pro jednořádkové a vícerořádkové komentáře.
Následující příklady jsou platné komentáře:
/* This is my comment *//* This is amulti-line comment */
Pokud do horní části výrazu vložíte komentář, zobrazí se v poli textu transformace pro zdokumentování transformačních výrazů.
Regulární výrazy
Mnoho funkcí jazyka výrazů používá syntaxi regulárních výrazů. Když používáte funkce regulárního výrazu, Tvůrce výrazů se pokouší interpretovat zpětné lomítko (\) jako escape sekvence znaků. Při použití zpětných lomítek v regulárním výrazu buď uzavřete celý regulární výraz do zpětných apostrofů (`), nebo použijte dvojité zpětné lomítko.
Příklad, který používá backticks:
regex_replace('100 and 200', `(\d+)`, 'digits')
Příklad, který používá dvojité lomítko:
regex_replace('100 and 200', '(\\d+)', 'digits')
Klávesové zkratky
Níže je seznam zkratek dostupných v tvůrci výrazů. Většina klávesových zkratek intellisense je k dispozici při vytváření výrazů.
- Ctrl+K Ctrl+C: Okomentujte celý řádek.
- Ctrl+K Ctrl+U: Odkomentování
- F1: Zadejte příkazy nápovědy editoru.
- Alt+Šipka dolů: Přesuňte aktuální řádek dolů.
- Alt+Šipka nahoru: Přesunutí aktuálního řádku nahoru
- Ctrl+mezerník: Zobrazit kontextovou nápovědu
Běžně používané výrazy
Konvertovat na datumy nebo časová razítka
Pokud chcete do výstupu časového razítka zahrnout řetězcové literály, zabalte převod do toString().
toString(toTimestamp('12/31/2016T00:12:00', 'MM/dd/yyyy\'T\'HH:mm:ss'), 'MM/dd /yyyy\'T\'HH:mm:ss')
Chcete-li převést milisekundy z epochy na datum nebo časové razítko, použijte toTimestamp(<number of milliseconds>). Pokud je čas udávaný v sekundách, vynásobte 1 000.
toTimestamp(1574127407*1000l)
Koncové "l" na konci předchozího výrazu znamená převod na datový typ long v rámci příkazové syntaxe.
Nalézt čas z epochy nebo Unixového času
toLong( currentTimestamp() - toTimestamp('1970-01-01 00:00:00.000', 'yyyy-MM-dd HH:mm:ss.SSS') ) * 1000l
Vyhodnocení času toku dat
Tok dat zpracovává až do milisekund. Pro 2018-07-31T20:00:00.2170000 uvidíte 2018-07-31T20:00:00.217 ve výstupu. Na portálu pro službu se Timestamp zobrazuje v aktuálním nastavení časového pásma prohlížeče, což může eliminovat 217, ale když spustíte tok dat od začátku do konce, 217 milisekund (část milisekund je také zpracována). Můžete použít toString(myDateTimeColumn) jako výraz a zobrazit data v plné přesnosti v náhledu. Zpracujte datum a čas jako datetime namísto řetězce pro všechny praktické účely.