Datový typ řetězce
Platí pro: ✅Microsoft Fabric✅Azure Data Explorer✅Azure Monitor✅Microsoft Sentinel
Datový string
typ představuje posloupnost nulových nebo více znaků Unicode .
Informace o operátorech řetězcového dotazu naleznete v tématu Řetězcové operátory.
Poznámka:
- Interně jsou řetězce kódovány v UTF-8. Neplatné znaky (jiné než UTF8) se nahradí náhradními znaky kódování U+FFFD Unicode při příjmu dat.
- Kusto nemá žádný datový typ, který je ekvivalentní jednomu znaku. Jeden znak je reprezentován jako řetězec délky 1.
- Při ingestování datového
string
typu, pokud jedna řetězcová hodnota v záznamu překročí 1 MB (měřeno pomocí kódování UTF-8), hodnota se zkrátí a příjem dat proběhne úspěšně. Pokud jedna řetězcová hodnota v záznamu nebo celý záznam překročí povolený limit dat 64 MB, příjem dat selže. - Při ingestování datového
string
typu, pokud jedna řetězcová hodnota v záznamu překročí 1 MB (měřeno pomocí kódování UTF-8), hodnota se zkrátí a příjem dat proběhne úspěšně. Sloupec můžete zvýšitMaxValueSize
změnou zásad kódování. - Pokud jedna řetězcová hodnota v záznamu nebo celý záznam překročí povolený limit dat 64 MB, příjem dat selže.
string
Literály
Řetězcový literál je řetězec uzavřený v uvozovkách. K kódování řetězcových literálů v textu dotazu můžete použít dvojité uvozovky nebo jednoduché uvozovky. U dvojitýchuch\
U jednoduchých uvozovek musíte uvozovat vnořené jednoduché uvozovky a nemusíte uvozovat dvojité uvozovky.
Pomocí znaku zpětného lomítka uvozovky uvozovky, znaků tabulátoru (\t
), znaků nového řádku (\n
) a samotného zpětného lomítka (\\
).
Poznámka:
Znak nového řádku () a návratový znak (\n
\r
) musí být uzavřen v uvozovkách, pokud nepoužíváte víceřádkové řetězcové literály.
Doslovné řetězcové literály
Doslovné řetězcové literály jsou řetězcové literály předem oddělené znakem @
, které slouží jako doslovný identifikátor. V této podobě znak zpětného lomítka (\
) představuje sám sebe a není řídicím znakem. V doslovných řetězcových literálech se uvozovky uvozovek uvozovek uvozovek s jednoduchými uvozovkami.
Příklad najdete v části Doslovný řetězec.
Poznámka:
Znak nového řádku () a návratový znak (\n
\r
) musí být uzavřen v uvozovkách, pokud nepoužíváte víceřádkové řetězcové literály.
Víceřádkové řetězcové literály
Označte víceřádkové řetězcové literály "trojitým zpětným akordem" (''' na začátku a konci literálu.
Příklad najdete v tématu Literál víceřádkového řetězce.
Poznámka:
- Víceřádkové řetězcové literály podporují nové řádky (
\n
) a návratové (\r
) znaky. - Víceřádkové řetězcové literály nepodporují řídicí znaky. Podobá se doslovné řetězcové literály.
- Víceřádkové řetězcové literály nepodporují obfuskaci.
Zřetězení oddělených řetězcových literálů
Pokud dva nebo více sousedních řetězcových literálů nemá v dotazu Kusto žádné oddělení, automaticky se zkombinují tak, aby vytvořily nový řetězcový literál. Podobně platí, že pokud jsou řetězcové literály oddělené pouze prázdnými znaky nebo komentáři, jsou také sloučeny tak, aby vytvořily nový řetězcový literál.
Příklad najdete v tématu Zřetězené řetězcové literály.
Obfuskované řetězcové literály
Dotazy se ukládají pro telemetrii a analýzu. Pokud chcete chránit citlivé informace, jako jsou hesla a tajné kódy, můžete řetězec označit jako obfuskovaný řetězcový literál. Tyto označené řetězce jsou protokolovány v obfuskované podobě nahrazeny hvězdičkami (*
) v textu dotazu.
Obfuskovaný řetězcový literál je vytvořen h
H
předem před literálem řetězce nebo znakem před standardním nebo doslovným řetězcovým literálem.
Příklad najdete v tématu Obfuscated řetězcový literál.
Důležité
Označte všechny řetězcové literály, které obsahují tajné informace, jako obfuskované řetězcové literály.
Tip
V některých situacích obsahuje tajné informace pouze část řetězcového literálu. V takových případech rozdělte literál na část, která není tajná, a tajnou část. Pak označte jenom tajnou část jako obfuskovanou.
Příklady
Řetězcový literál s uvozovkami
Následující příklad ukazuje, jak používat uvozovky v řetězcových literálech zahrnujících jednoduché uvozovky a dvojité uvozovky. Další informace naleznete v tématu Řetězcové literály.
print
s1 = 'string with "double quotes"',
s2 = "string with 'single quotes'"
Výstup
s1 | s2 |
---|---|
řetězec s "dvojitými uvozovkami" | řetězec s "jednoduchými uvozovkami" |
Řetězcový literál s zpětným lomítkem escaping
Následující příklad vytvoří vzor regulárního výrazu pomocí zpětných lomítek k řídicím speciálním znakům. Další informace naleznete v tématu Řetězcové literály.
print pattern = '\\n.*(>|\'|=|\")[a-zA-Z0-9/+]{86}=='
Výstup
vzor |
---|
\n.*(>|'|=|") [a-zA-Z0-9/+]{86}== |
Řetězcový literál s kódováním Unicode
Následující příklad ukazuje, že zpětné lomítko je potřeba k zahrnutí znaku Unicode do řetězcového literálu.
print space = "Hello\u00A0World"
Výstup
mezera |
---|
Hello World |
Doslovný řetězcový literál
Následující příklad vytvoří cestu, ve které jsou zpětná lomítka součástí cesty místo řídicích znaků. K tomu se před řetězcem předepíše znaménko řetězce @
a vytvoří doslovný řetězcový literál.
print myPath = @'C:\Folder\filename.txt'
Výstup
myPath |
---|
C:\Folder\filename.txt |
Literál víceřádkového řetězce
Následující příklad ukazuje syntaxi víceřádkového řetězcového literálu, který používá nové řádky a tabulátory k vytvoření stylu bloku kódu. Další informace naleznete v tématu Víceřádkové řetězcové literály.
print program = ```
public class Program {
public static void Main() {
System.Console.WriteLine("Hello!");
}
}```
Výstup
program |
---|
public class Program { public static void Main() { System.Console.WriteLine("Hello!"); } } |
Zřetězené řetězcové literály
Následující výrazy poskytují řetězec o délce 13. Další informace naleznete v tématu Zřetězení oddělených řetězcových literálů.
print
none = strlen("Hello"', '@"world!"),
whitespace = strlen("Hello" ', ' @"world!"),
whitespaceAndComment = strlen("Hello"
// Comment
', '@"world!"
);
Výstup
Žádná | prázdný znak | prázdný znakAndComment |
---|---|---|
13 | 13 | 13 |
Obfuskovaný řetězcový literál
Ve výstupu h
následujícího dotazu se ve výsledcích zobrazí řetězec. V trasování nebo telemetrii h
je však řetězec uložen v obfuskované podobě a nahrazen hvězdičkami v protokolu. Další informace najdete v tématu Obfuscated řetězcové literály.
print blob="https://contoso.blob.core.windows.net/container/blob.txt?"
h'sv=2012-02-12&se=2013-04-13T0...'
Výstup
blob |
---|
https://contoso.blob.core.windows.net/container/blob.txt?sv=2012-02-12& se=2013-04-13T0... |