Un tipo de datos String
Se aplica a: ✅Microsoft Fabric✅Azure Data Explorer✅Azure Monitor✅Microsoft 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 elMaxValueSize
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... |