O tipo de dados string
Aplica-se a: ✅Microsoft Fabric✅Azure Data Explorer✅Azure Monitor✅Microsoft 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 oMaxValueSize
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 ... |