Tipo di dati stringa

Il string tipo di dati rappresenta una sequenza di zero o più caratteri Unicode .

Per informazioni sugli operatori di query stringa, vedere Operatori stringa.

Nota

  • Internamente, le stringhe vengono codificate in UTF-8. I caratteri non validi (non UTF8) vengono sostituiti con i caratteri di sostituzione Unicode U+FFFD in fase di inserimento.
  • Kusto non ha alcun tipo di dati equivalente a un singolo carattere. Un singolo carattere è rappresentato come stringa di lunghezza 1.
  • Quando si inserisce il string tipo di dati, se un singolo valore stringa in un record supera 1 MB (misurato usando la codifica UTF-8), il valore viene troncato e l'inserimento riesce. Se un singolo valore stringa in un record o l'intero record supera il limite di dati consentito di 64 MB, l'inserimento ha esito negativo.

string Valori letterali

È possibile usare virgolette doppie o virgolette singole per codificare valori letterali stringa nel testo della query. Con virgolette doppie, è necessario uscire da caratteri di virgolette doppie nidificate con una barra rovesciata (\). Con virgolette singole, è necessario uscire da virgolette singole annidate e non è necessario eseguire l'escape delle virgolette doppie.

Usare il carattere barra rovesciata per eseguire l'escape tra virgolette racchiuse, caratteri di tabulazione (), caratteri di nuova riga (\n) e barra rovesciata ().\t\\

Nota

Il carattere newline () e il carattere restituito (\n\r) devono essere racchiusi tra virgolette a meno che non usino valori letterali stringa a più righe.

Valori letterali di stringa verbatim

Sono supportati anche valori letterali stringa verbatim. In questo formato, il carattere barra rovesciata (\) si trova per se stesso e non è un carattere di escape. Prepending the @ character to string literals funge da identificatore verbatim. Nei valori letterali stringa verbatim, le virgolette doppie vengono escape con virgolette doppie e virgolette singole vengono escape con virgolette singole.

Per un esempio, vedere Stringa verbatim.

Nota

Il carattere newline () e il carattere restituito (\n\r) devono essere racchiusi tra virgolette a meno che non usino valori letterali stringa a più righe.

Valori letterali stringa a più righe

Indicare valori letterali stringa a più righe in base a un "triplo backtick chord" ('') all'inizio e alla fine del valore letterale.

Per un esempio, vedere Valore letterale stringa multilinea.

Nota

Concatenazione dei valori letterali stringa separati

In una query Kusto, quando due o più valori letterali stringa adiacenti non hanno alcuna separazione tra di essi, vengono combinati automaticamente per formare un nuovo valore letterale stringa. Analogamente, se i valori letterali stringa sono separati solo da spazi vuoti o commenti, vengono combinati anche per formare un nuovo valore letterale stringa.

Per un esempio, vedere Valori letterali stringa concatenati.

Valori letterali stringa offuscati

Le query vengono archiviate per i dati di telemetria e l'analisi. Per proteggere le informazioni riservate, ad esempio password e segreti, è possibile contrassegnare una stringa come valore letterale stringa offuscato. Queste stringhe contrassegnate vengono sostituite con asterischi (*) nel testo della query.

Un valore letterale stringa offuscato viene creato in attesa di un h carattere o H di un carattere davanti a un valore letterale stringa standard o verbatim.

Per un esempio, vedere Valore letterale stringa offuscata.

Importante

Contrassegnare tutti i valori letterali stringa contenenti informazioni segrete come valori letterali stringa offuscati.

Suggerimento

In alcune situazioni, solo una parte del valore letterale stringa contiene informazioni segrete. In questi casi, dividere il valore letterale in una parte non segreta e una parte segreta. Etichettare quindi solo la parte privata come offuscata.

Esempio

Valore letterale stringa con virgolette

Nell'esempio seguente viene illustrato come usare virgolette all'interno di valori letterali stringa inclusi tra virgolette singole e virgolette doppie. Per altre informazioni, vedere Valori letterali stringa.

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

Output

s1 s2
stringa con "virgolette doppie" stringa con 'virgolette singole'

Valore letterale stringa con barra rovesciata in uscita

Nell'esempio seguente viene creato un modello di espressione regolare usando barre rovesciate per eseguire l'escape di caratteri speciali. Per altre informazioni, vedere Valori letterali stringa.

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

Output

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

Valore letterale stringa con Unicode

Nell'esempio seguente viene illustrato che è necessaria una barra rovesciata per includere un carattere Unicode in un valore letterale stringa.

print space = "Hello\u00A0World"

Output

space
Hello World

Valore letterale di stringa verbatim

Nell'esempio seguente viene creato un percorso in cui le barre rovesciate fanno parte del percorso anziché i caratteri di escape. A tale scopo, il segno stringa viene preceduto dalla stringa @ , creando un valore letterale stringa verbatim.

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

Output

Mypath
C:\Folder\filename.txt

Valore letterale stringa a più righe

Nell'esempio seguente viene illustrata la sintassi per un valore letterale stringa a più righe, che usa nuove righe e schede per assegnare uno stile a un blocco di codice. Per altre informazioni, vedere Valori letterali stringa multilinea.

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

Output

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

Valori letterali stringa concatenati

Le espressioni seguenti producono una stringa di lunghezza 13. Per altre informazioni, vedere Concatenazione di valori letterali stringa separati.

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

Output

Nessuno whitespace whitespaceAndComment
13 13 13

Valore letterale stringa offuscato

Nell'output della query seguente la h stringa è visibile. Tuttavia, nella traccia o nei dati di telemetria, la h stringa viene sostituita con asterischi. Per altre informazioni, vedere Valori letterali stringa offuscati.

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

Output

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