Compartilhar via


O tipo de dados string

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

Para obter informações sobre operadores de consulta de cadeia de caracteres, consulte Operadores de cadeia de caracteres.

Observação

  • Internamente, as cadeias de caracteres são codificadas em UTF-8. Caracteres inválidos (não-UTF8) são substituídos por caracteres de substituição Unicode U+FFFD no momento da ingestão.
  • Kusto não tem nenhum tipo de dados que seja equivalente a um único caractere. Um único caractere é representado como uma cadeia de caracteres de comprimento 1.
  • Ao ingerir o string tipo de dados, se um único valor de cadeia de caracteres em um registro exceder 1MB (medido usando codificação UTF-8), o valor será truncado e a ingestão será bem-sucedida. Você pode aumentar o MaxValueSize da coluna alterando sua política de codificação.
  • Se um único valor de cadeia de caracteres em um registro, ou o registro inteiro, exceder o limite de dados permitido de 64MB, a ingestão falhará.

Literais string

Você pode usar aspas duplas ou aspas simples para codificar literais de cadeia de caracteres no texto da consulta. Com aspas duplas, você deve escapar de caracteres de aspas duplas aninhados com uma barra invertida (\). Com aspas simples, você deve escapar de caracteres de aspas simples aninhados e não precisa escapar de aspas duplas.

Use o caractere de barra invertida para escapar dos caracteres de aspas de delimitação, caracteres de tabulação (\t), caracteres de nova linha (\n) e a própria barra invertida (\\).

Observação

O caractere de nova linha (\n) e o caractere de retorno (\r) devem ser colocados entre aspas, a menos que usem literais de cadeia de caracteres de várias linhas.

Literais de cadeia de caracteres textuais

Literais de cadeia de caracteres verbatim também são suportados. Nessa forma, o caractere de barra invertida (\) representa a si mesmo e não é um personagem de fuga. Preceder o caractere @ para literais de cadeia de caracteres serve como um identificador literal. Em literais de cadeia de caracteres literais, aspas duplas são escapadas com aspas duplas e aspas simples são escapadas com aspas simples.

Para obter um exemplo, consulte Verbatim string.

Observação

O caractere de nova linha (\n) e o caractere de retorno (\r) devem ser colocados entre aspas, a menos que usem literais de cadeia de caracteres de várias linhas.

Literais de cadeia multilinha

Indique literais de cadeia de caracteres de várias linhas por um "acorde triplo" (''') no início e no final do literal.

Para obter um exemplo, consulte Literal de cadeia de caracteres de várias linhas.

Observação

  • Os literais de cadeia de caracteres de várias linhas oferecem suporte a caracteres de nova linha (\n) e retorno (\r).
  • Literais de cadeia de caracteres de várias linhas não oferecem suporte a caracteres de escape. Semelhante aos literais de cadeia de caracteres textuais.
  • Literais de cadeia de caracteres de várias linhas não oferecem suporte à ofuscação.

Concatenação de literais de cadeia de caracteres separados

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

Para obter um exemplo, consulte Literais de cadeia de caracteres concatenados.

Literais de cadeia de caracteres ofuscados

As consultas são armazenadas para telemetria e análise. Para proteger informações confidenciais, como senhas e segredos, você pode marcar uma cadeia de caracteres como um literal de cadeia de caracteres ofuscado. Essas cadeias de caracteres marcadas são substituídas por asteriscos (*) no texto da consulta.

Um literal de cadeia de caracteres ofuscado é criado pela preceição de um h ou um H caractere na frente de um literal de cadeia de caracteres padrão ou literal.

Para obter um exemplo, consulte Literal de cadeia de caracteres ofuscado.

Importante

Marque todos os literais de cadeia de caracteres que contêm informações secretas como literais de cadeia de caracteres ofuscados.

Dica

Em algumas situações, apenas uma parte do literal de cadeia de caracteres contém informações secretas. Nesses casos, divida o literal em uma parte não secreta e uma parte secreta. Em seguida, rotule apenas a parte secreta como ofuscada.

Exemplos

Literal de cadeia de caracteres com aspas

O exemplo a seguir demonstra como usar aspas dentro de literais de cadeia de caracteres englobados por aspas simples e aspas duplas. Para obter mais informações, consulte Literais de cadeia de caracteres.

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

Saída

s1 s2
string com "aspas duplas" string com 'aspas simples'

Literal de cadeia de caracteres com barra invertida escapando

O exemplo a seguir cria um padrão de expressão regular usando barras invertidas para escapar de caracteres especiais. Para obter mais informações, consulte Literais de cadeia de caracteres.

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

Saída

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

Literal de cadeia de caracteres com Unicode

O exemplo a seguir mostra que uma barra invertida é necessária para incluir um caractere Unicode em um literal de cadeia de caracteres.

print space = "Hello\u00A0World"

Saída

space
Olá, Mundo

Literal de cadeia de caracteres verbatim

O exemplo a seguir cria um caminho no qual as barras invertidas fazem parte do caminho em vez de caracteres de escape. Para fazer isso, o sinal de cadeia de caracteres @ é anexado à cadeia de caracteres, criando um literal de cadeia de caracteres literal.

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

Saída

myPath
C:\Pasta\filename.txt

Literal de cadeia de caracteres de várias linhas

O exemplo a seguir mostra a sintaxe de um literal de cadeia de caracteres de várias linhas, que usa novas linhas e guias para estilizar um bloco de código. Para obter mais informações, consulte Literais de cadeia de caracteres 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("Olá!"); } }

Literais de cadeia de caracteres concatenados

Todas as expressões a seguir produzem uma cadeia de caracteres de comprimento 13. Para obter mais informações, consulte Concatenação de literais de cadeia de caracteres separados.

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

Saída

nenhum espaço em branco espaço em brancoAndComment
13 13 13

Literal de cadeia de caracteres ofuscado

Na saída de consulta a seguir, a h cadeia de caracteres é visível. No entanto, no rastreamento ou telemetria, a h cadeia de caracteres é substituída por asteriscos. Para obter mais informações, consulte Literais de cadeia de caracteres ofuscados.

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...