Strängdatatypen

Datatypen string representerar en sekvens med noll eller fler Unicode-tecken .

Information om strängfrågeoperatorer finns i Strängoperatorer.

Anteckning

  • Internt kodas strängar i UTF-8. Ogiltiga (icke-UTF8)-tecken ersätts med U+FFFD Unicode-ersättningstecken vid inmatningstillfället.
  • Kusto har ingen datatyp som motsvarar ett enda tecken. Ett enskilt tecken representeras som en sträng med längd 1.
  • Om ett ensträngsvärde i en post överskrider 1 MB (mätt med UTF-8-kodning string ) när datatypen matas in trunkeras värdet och inmatningen lyckas. Om ett enda strängvärde i en post, eller hela posten, överskrider den tillåtna datagränsen på 64 MB misslyckas inmatningen.

string Litteraler

Du kan använda dubbla citattecken eller enkla citattecken för att koda strängliteraler i frågetext. Med dubbla citattecken måste du undvika kapslade dubbla citattecken med ett omvänt snedstreck (\). Med enkla citattecken måste du undvika kapslade enkla citattecken och du behöver inte undvika dubbla citattecken.

Använd omvänt snedstreck för att undvika de omslutande citattecken, tabbtecken (\t), nya radtecken (\n) och själva omvänt snedstreck (\\).

Anteckning

Det nya radtecknet (\n) och returtecknet (\r) måste omges av citattecken om du inte använder strängliteraler med flera rader.

Ordagranna strängliteraler

Ordagranna strängliteraler stöds också. I det här formuläret står omvänt snedstreck (\) för sig självt och är inte ett escape-tecken. Att lägga till tecknet i @ strängliteraler fungerar som en ordagrann identifierare. I ordagranna strängliteraler är dubbla citattecken undantagna med dubbla citattecken och enkla citattecken är undantagna med enkla citattecken.

Ett exempel finns i Ordagrann sträng.

Anteckning

Det nya radtecknet (\n) och returtecknet (\r) måste omges av citattecken om du inte använder strängliteraler med flera rader.

Strängliteraler med flera rader

Ange en strängliteral med flera rader med ett "triple-backtick-ackord" (''') i början och slutet av literalen.

Ett exempel finns i Strängliteral med flera rader.

Anteckning

  • Strängliteraler med flera rader stöder nya (\n) och returnerar (\r) tecken.
  • Strängliteraler med flera rader stöder inte undantagna tecken. Liknar ordagranna strängliteraler.
  • Strängliteraler med flera rader stöder inte fördunkling.

Sammanfogning av avgränsade strängliteraler

När två eller flera intilliggande strängliteraler inte har någon separation mellan sig i en Kusto-fråga kombineras de automatiskt för att bilda en ny strängliteral. Om strängliteralerna bara avgränsas med blanksteg eller kommentarer kombineras de också för att bilda en ny strängliteral.

Ett exempel finns i Sammanfogade strängliteraler.

Dolda strängliteraler

Frågor lagras för telemetri och analys. Om du vill skydda känslig information som lösenord och hemligheter kan du markera en sträng som en dold strängliteral. Dessa markerade strängar ersätts med asterisker (*) i frågetexten.

En obfuscated strängliteral skapas genom att lägga till ett h eller ett H tecken framför en standard- eller ordagrann strängliteral.

Ett exempel finns i Obfuscated string literal ( Obfuscated string literal).

Viktigt

Markera alla strängliteraler som innehåller hemlig information som dolda strängliteraler.

Tips

I vissa situationer innehåller endast en del av strängliteralen hemlig information. I sådana fall delar du in literalen i en icke-hemlig del och en hemlig del. Märk sedan bara den hemliga delen som fördunklade.

Exempel

Strängliteral med citattecken

I följande exempel visas hur du använder citattecken inom strängliteraler som omfattas av enkla citattecken och dubbla citattecken. Mer information finns i Strängliteraler.

print
    s1 = 'string with "double quotes"',
    s2 = "string with 'single quotes'"

Resultat

s1 s2
sträng med "dubbla citattecken" sträng med "enkla citattecken"

Strängliteral med omvänt snedstreck som flyr

I följande exempel skapas ett reguljärt uttrycksmönster med omvänt snedstreck för att undkomma specialtecken. Mer information finns i Strängliteraler.

print pattern = '\\n.*(>|\'|=|\")[a-zA-Z0-9/+]{86}=='

Resultat

Mönster
\n.*(>|'|=|") [a-zA-Z0-9/+]{86}==

Strängliteral med Unicode

I följande exempel visas att ett omvänt snedstreck krävs för att inkludera ett Unicode-tecken i en strängliteral.

print space = "Hello\u00A0World"

Resultat

Utrymme
Hello World

Ordagrann strängliteral

I följande exempel skapas en sökväg där omvänt snedstreck är en del av sökvägen i stället för escape-tecken. För att göra detta läggs strängtecknet @ till i strängen, vilket skapar en ordagrann strängliteral.

print myPath = @'C:\Folder\filename.txt'

Resultat

myPath
C:\Folder\filename.txt

Strängliteral med flera rader

I följande exempel visas syntaxen för en strängliteral med flera rader, som använder nya linjer och flikar för att formatera ett kodblock. Mer information finns i Strängliteraler med flera rader.

print program = ```
  public class Program {
    public static void Main() {
      System.Console.WriteLine("Hello!");
    }
  }```

Resultat

app
public class Program { public static void Main() { System.Console.WriteLine("Hello!"); } }

Sammanfogade strängliteraler

Följande uttryck ger alla en sträng med längd 13. Mer information finns i Sammanlänkning av avgränsade strängliteraler.

print 
    none = strlen("Hello"', '@"world!"),
    whitespace = strlen("Hello" ', ' @"world!"),
    whitespaceAndComment = strlen("Hello" 
        // Comment
        ', '@"world!"
    );

Resultat

inget Blanksteg whitespaceAndComment
13 13 13

Fördunklat strängliteral

I följande frågeutdata visas strängen h . Men vid spårning eller telemetri ersätts strängen h med asterisker. Mer information finns i Dolda strängliteraler.

print blob="https://contoso.blob.core.windows.net/container/blob.txt?"
    h'sv=2012-02-12&se=2013-04-13T0...'

Resultat

blob
https://contoso.blob.core.windows.net/container/blob.txt?sv=2012-02-12& se=2013-04-13T0...