O tipo de dados da cadeia

O string tipo de dados representa uma sequência de zero ou mais carateres Unicode .

Para obter informações sobre operadores de consulta de cadeias, veja Operadores de cadeia.

Nota

  • Internamente, as cadeias são codificadas em UTF-8. Os carateres inválidos (não UTF8) são substituídos por carateres de substituição U+FFFD Unicode no momento da ingestão.
  • O Kusto não tem nenhum tipo de dados equivalente a um único caráter. Um único caráter é representado como uma cadeia de comprimento 1.
  • Ao ingerir o string tipo de dados, se um único valor de cadeia de carateres num registo exceder 1 MB (medido através da codificação UTF-8), o valor é truncado e a ingestão é bem-sucedida. Se um único valor de cadeia de carateres num registo, ou todo o registo, exceder o limite de dados permitido de 64 MB, a ingestão falhará.

string literais

Pode utilizar aspas duplas ou plicas para codificar literais de cadeias no texto da consulta. Com aspas duplas, tem de escapar aos carateres aninhados de aspas duplas com uma barra invertida (\). Com plicas, tem de escapar a carateres aninhados de plicas e não precisa de escapar a aspas duplas.

Utilize o caráter de barra invertida para escapar aos carateres de aspas, carateres de tabulação (\t), carateres de nova linha (\n) e à própria barra invertida (\\).

Nota

O caráter newline (\n) e o caráter de retorno (\r) têm de estar entre aspas, a menos que utilize literais de cadeias de várias linhas.

Literais de cadeia de carateres literal

Os literais de cadeias de carateres literal também são suportados. Neste formulário, o caráter de barra invertida (\) significa por si próprio e não é um caráter de escape. A prefixação do @ caráter para literais de cadeia serve como um identificador de texto literal. Nos literais de cadeia de carateres literal, as aspas duplas são escapadas com aspas duplas e as plicas são escapadas com plicas.

Por exemplo, veja Cadeia de texto literal.

Nota

O caráter newline (\n) e o caráter de retorno (\r) têm de estar entre aspas, a menos que utilize literais de cadeias de várias linhas.

Literais de cadeias de várias linhas

Indique um literal de cadeia multilinha por um "acorde de acento triplo" (''') no início e no fim do literal.

Por exemplo, veja Literal de cadeias de várias linhas.

Nota

Concatenação de literais de cadeia separados

Numa consulta Kusto, quando dois ou mais literais de cadeia adjacentes não têm separação entre eles, são automaticamente combinados para formar um novo literal de cadeia. Da mesma forma, se os literais de cadeia forem separados apenas por espaços em branco ou comentários, também são combinados para formar um novo literal de cadeia.

Por exemplo, veja Literais de cadeias concatenadas.

Literais de cadeia ocultados

As consultas são armazenadas para telemetria e análise. Para salvaguardar informações confidenciais, como palavras-passe e segredos, pode marcar uma cadeia como um literal de cadeia oculta. Estas cadeias marcadas são substituídas por asteriscos (*) no texto da consulta.

Um literal de cadeia oculta é criado ao prefixar um h ou um H caráter à frente de um literal de cadeia padrão ou literal de cadeia de carateres literal.

Por exemplo, veja Literal de cadeia oculta.

Importante

Marcar todos os literais de cadeia que contêm informações secretas como literais de cadeia ocultas.

Dica

Em algumas situações, apenas uma parte do literal de cadeia contém informações secretas. Nestes casos, divida o literal numa parte não secreta e numa parte secreta. Em seguida, etiquete apenas a parte secreta como ocultada.

Exemplos

Literal de cadeia com aspas

O exemplo seguinte demonstra como utilizar aspas dentro de literais de cadeias, englobadas por plicas e aspas duplas. Para obter mais informações, veja Literais de cadeia.

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

Saída

s1 s2
cadeia com "aspas duplas" cadeia com "plicas"

Literal de cadeia com barra invertida a escapar

O exemplo seguinte cria um padrão de expressão regular com barras invertidas para escapar a carateres especiais. Para obter mais informações, veja Literais de cadeia.

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

Saída

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

Literal de cadeia com Unicode

O exemplo seguinte mostra que é necessária uma barra invertida para incluir um caráter Unicode num literal de cadeia.

print space = "Hello\u00A0World"

Saída

espaço
Olá, Mundo

Literal de cadeia de carateres literal de texto literal

O exemplo seguinte cria um caminho no qual as barras invertidas fazem parte do caminho em vez de carateres de escape. Para tal, o sinal de cadeia @ de carateres é anexado à cadeia, criando um literal de cadeia de carateres literal.

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

Saída

myPath
C:\Folder\filename.txt

Literal de cadeia de várias linhas

O exemplo seguinte mostra a sintaxe de um literal de cadeia de várias linhas, que utiliza novas linhas e separadores para modelar um bloco de código. Para obter mais informações, veja Literais de cadeias de várias linhas.

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

Saída

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

Literais de cadeias concatenadas

Todas as expressões seguintes produzem uma cadeia de comprimento 13. Para obter mais informações, veja Concatenação de literais de cadeias separados.

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

Saída

nenhum espaço em branco whitespaceAndComment
13 13 13

Literal de cadeia oculta

Na saída da consulta seguinte, a h cadeia é visível. No entanto, no rastreio ou telemetria, a h cadeia é substituída por asteriscos. Para obter mais informações, veja Literais de cadeias de carateres obsultas.

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

Saída

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