Un tipo de datos String

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, consulte Operadores de cadena.

Nota

  • Internamente, las cadenas se codifican en formato UTF-8. Los caracteres no válidos (que no son 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 los 1 MB (medidos 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.

Literales string

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 los 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 ir entre comillas a menos que use literales de cadena de varias líneas.

Literales de cadenas literales

También se admiten literales de cadena textuales. En este formato, el carácter de barra diagonal inversa (\) representa a sí mismo y no es un carácter de escape. Prepending the @ character to string literals sirve como un identificador textual. En literales de cadena textuales, las comillas dobles se escapan con comillas dobles y las comillas simples se escapan con comillas simples.

Para obtener un ejemplo, consulte Cadena textual.

Nota

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

Literales de cadena multilínea

Indique un literal de cadena de varias líneas mediante 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 de nueva línea (\n) y devuelven (\r).
  • Los literales de cadena de varias líneas no admiten caracteres de escape. Similar a los literales de cadena textuales.
  • 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, consulte 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 reemplazan por asteriscos (*) en el texto de la consulta.

Un literal de cadena ofuscado se crea anteponiendo un h carácter o H delante 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" cadena 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

pattern
\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
Hola mundo

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
clase public 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

ninguno whitespace espacio en blancoAndComment
13 13 13

Literal de cadena ofuscado

En la siguiente salida de consulta, la h cadena es visible. Sin embargo, en el seguimiento o la telemetría, la h cadena se sustituye por asteriscos. 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...