Compartilhar via


O tipo de dados string

Aplica-se a: ✅Microsoft FabricAzure Data Explorer✅Azure MonitorMicrosoft Sentinel

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 strings 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 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 1 MB (medido usando a codificação UTF-8), o valor será truncado e a ingestão será bem-sucedida. Se um único valor de cadeia de caracteres em um registro, ou o registro inteiro, exceder o limite de dados permitido de 64 MB, a ingestão falhará.
  • Ao ingerir o string tipo de dados, se um único valor de cadeia de caracteres em um registro exceder 1 MB (medido usando a 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 64 MB, a ingestão falhará.

Literais string

Um literal de cadeia de caracteres é uma cadeia de caracteres entre aspas. 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 caracteres aninhados entre aspas duplas 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 delimitadoras, 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 textuais são literais de cadeia de caracteres anexados com o @ caractere, que serve como um identificador literal. Nessa forma, o caractere de barra invertida (\) representa a si mesmo e não é um caractere de escape. 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 Cadeia de caracteres textual.

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 um literal de cadeia de caracteres de várias linhas por um "acorde de acento grave 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 dão suporte a caracteres de nova linha (\n) e retorno (\r).
  • Literais de cadeia de caracteres de várias linhas não dão suporte a caracteres de escape. Semelhante aos literais de cadeia de caracteres literais.
  • Literais de cadeia de caracteres de várias linhas não dão 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 combinados automaticamente para formar um novo literal de cadeia de caracteres. Da mesma forma, se os literais de cadeia de caracteres forem separados apenas por espaços 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 registradas de forma ofuscada, substituídas por asteriscos (*) no texto da consulta.

Um literal de cadeia de caracteres ofuscado é criado acrescentando 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 em 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 escape de barra invertida

O exemplo a seguir cria um padrão de expressão regular usando barras invertidas para escapar 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 textual.

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

Saída

meu caminho
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 tabulações 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 Programa { 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 da consulta a seguir, a h cadeia de caracteres fica visível nos resultados. No entanto, no rastreamento ou na telemetria, a cadeia de caracteres é armazenada h de forma ofuscada e substituída por asteriscos no log. 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 ...