Compartir a través de


Un tipo de datos String

Se aplica a: ✅Microsoft FabricAzure Data Explorer✅Azure MonitorMicrosoft Sentinel

El string tipo de datos representa una secuencia de cero o más caracteres Unicode .

Para obtener información sobre los operadores de consulta de cadena, vea Operadores de cadena.

Nota:

  • Internamente, las cadenas se codifican en formato UTF-8. Los caracteres no válidos (no UTF8) se reemplazan por caracteres de reemplazo Unicode U+FFFD en el momento de la ingesta.
  • Kusto no tiene ningún tipo de datos equivalente a un solo carácter. Un solo carácter se representa como una cadena de longitud 1.
  • Al ingerir el string tipo de datos, si un valor de cadena único en un registro supera 1 MB (medido mediante codificación UTF-8), el valor se trunca y la ingesta se realiza correctamente. Si un valor de cadena único en un registro o todo el registro supera el límite de datos permitido de 64 MB, se produce un error en la ingesta.
  • Al ingerir el string tipo de datos, si un valor de cadena único en un registro supera 1 MB (medido mediante codificación UTF-8), el valor se trunca y la ingesta se realiza correctamente. Puede aumentar el MaxValueSize de la columna cambiando su directiva de codificación.
  • Si un valor de cadena único en un registro o todo el registro supera el límite de datos permitido de 64 MB, se produce un error en la ingesta.

Literales string

Un literal de cadena es una cadena entre comillas. Puede usar comillas dobles o comillas simples para codificar literales de cadena en texto de consulta. Con comillas dobles, debe escapar caracteres de comillas dobles anidadas con una barra diagonal inversa (\). Con comillas simples, debe escapar caracteres de comillas simples anidadas y no es necesario escapar entre comillas dobles.

Use el carácter de barra diagonal inversa para escapar de los caracteres de comillas envolventes, los caracteres de tabulación (\t), los caracteres de nueva línea (\n) y la barra diagonal inversa (\\).

Nota:

El carácter de nueva línea (\n) y el carácter devuelto (\r) deben incluirse entre comillas a menos que use literales de cadena de varias líneas.

Literales de cadenas literales

Los literales de cadena textual son literales de cadena antepuestos al @ carácter , que actúa como un identificador textual. En este formato, el carácter de barra diagonal inversa (\) representa a sí mismo y no es un carácter de escape. En los literales de cadena textual, las comillas dobles se escapan con comillas dobles y las comillas simples se escapan con comillas simples.

Para obtener un ejemplo, vea Cadena textual.

Nota:

El carácter de nueva línea (\n) y el carácter devuelto (\r) deben incluirse entre comillas a menos que use literales de cadena de varias líneas.

Literales de cadena multilínea

Indica un literal de cadena de varias líneas por un "acorde triple-backtick" (''' ) al principio y al final del literal.

Para obtener un ejemplo, vea Literal de cadena de varias líneas.

Nota:

  • Los literales de cadena de varias líneas admiten caracteres newline (\n) y return (\r).
  • Los literales de cadena de varias líneas no admiten caracteres de escape. Similar a los literales de cadena textual.
  • Los literales de cadena de varias líneas no admiten ofuscación.

Concatenación de literales de cadena separados

En una consulta de Kusto, cuando dos o más literales de cadena adyacentes no tienen separación entre ellos, se combinan automáticamente para formar un nuevo literal de cadena. De forma similar, si los literales de cadena solo están separados por espacios en blanco o comentarios, también se combinan para formar un nuevo literal de cadena.

Para obtener un ejemplo, vea Literales de cadena concatenados.

Literales de cadena ofuscados

Las consultas se almacenan para la telemetría y el análisis. Para proteger información confidencial como contraseñas y secretos, puede marcar una cadena como un literal de cadena ofuscado. Estas cadenas marcadas se registran en formato ofuscado reemplazado por asteriscos (*) en el texto de la consulta.

Un literal de cadena ofuscado se crea anteponiendo un h carácter o delante H de un literal de cadena estándar o textual.

Para obtener un ejemplo, vea Literal de cadena ofuscado.

Importante

Marque todos los literales de cadena que contienen información secreta como literales de cadena ofuscados.

Sugerencia

En algunas situaciones, solo una parte del literal de cadena contiene información secreta. En tales casos, divida el literal en una parte no secreta y una parte secreta. A continuación, etiquete solo la parte secreta como ofuscada.

Ejemplos

Literal de cadena con comillas

En el ejemplo siguiente se muestra cómo usar comillas dentro de literales de cadena que abarcan comillas simples y comillas dobles. Para obtener más información, vea Literales de cadena.

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

Salida

s1 s2
string con "comillas dobles" string con "comillas simples"

Literal de cadena con escape de barra diagonal inversa

En el ejemplo siguiente se crea un patrón de expresión regular mediante barras diagonales inversas para escapar caracteres especiales. Para obtener más información, vea Literales de cadena.

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

Salida

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

Literal de cadena con Unicode

En el ejemplo siguiente se muestra que se necesita una barra diagonal inversa para incluir un carácter Unicode en un literal de cadena.

print space = "Hello\u00A0World"

Salida

espacio
Hello World

Literal de cadena textual

En el ejemplo siguiente se crea una ruta de acceso en la que las barras diagonales inversas forman parte de la ruta de acceso en lugar de caracteres de escape. Para ello, el signo de cadena @ se antepone a la cadena, creando un literal de cadena textual.

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

Salida

myPath
C:\Folder\filename.txt

Literal de cadena de varias líneas

En el ejemplo siguiente se muestra la sintaxis de un literal de cadena de varias líneas, que usa nuevas líneas y pestañas para aplicar estilo a un bloque de código. Para obtener más información, consulte Literales de cadena de varias líneas.

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

Salida

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

Literales de cadena concatenados

Todas las expresiones siguientes producen una cadena de longitud 13. Para obtener más información, vea Concatenación de literales de cadena separados.

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

Salida

None whitespace espacio en blancoAndComment
13 13 13

Literal de cadena ofuscado

En la siguiente salida de consulta, la cadena está visible en los h resultados. Sin embargo, en el seguimiento o la telemetría, la h cadena se almacena en un formulario ofuscado y se sustituye por asteriscos en el registro. Para obtener más información, vea Literales de cadena ofuscados.

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

Salida

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