Type de données chaîne
S’applique à : ✅Microsoft Fabric✅Azure Data Explorer✅Azure Monitor✅Microsoft Sentinel
Le string
type de données représente une séquence de zéro ou plusieurs caractères Unicode .
Pour plus d’informations sur les opérateurs de requête de chaîne, consultez Opérateurs de chaîne.
Remarque
- En interne, les chaînes sont encodées au format UTF-8. Les caractères non valides (non UTF8) sont remplacés par des caractères de remplacement Unicode U+FFFD au moment de l’ingestion.
- Kusto n’a aucun type de données équivalent à un caractère unique. Un caractère unique est représenté sous la forme d’une chaîne de longueur 1.
- Lors de l’ingestion du
string
type de données, si une valeur de chaîne unique dans un enregistrement dépasse 1 Mo (mesurée à l’aide de l’encodage UTF-8), la valeur est tronquée et l’ingestion réussit. Si une valeur de chaîne unique dans un enregistrement ou l’enregistrement entier dépasse la limite de données autorisée de 64 Mo, l’ingestion échoue. - Lors de l’ingestion du
string
type de données, si une valeur de chaîne unique dans un enregistrement dépasse 1 Mo (mesurée à l’aide de l’encodage UTF-8), la valeur est tronquée et l’ingestion réussit. Vous pouvez augmenter laMaxValueSize
colonne en modifiant sa stratégie d’encodage. - Si une valeur de chaîne unique dans un enregistrement ou l’enregistrement entier dépasse la limite de données autorisée de 64 Mo, l’ingestion échoue.
string
littéraux
Un littéral de chaîne est une chaîne entre guillemets. Vous pouvez utiliser des guillemets doubles ou des guillemets simples pour encoder des littéraux de chaîne dans le texte de la requête. Avec des guillemets doubles, vous devez échapper des guillemets doubles imbriqués avec une barre oblique inverse (\
). Avec des guillemets simples, vous devez échapper des guillemets simples imbriqués et vous n’avez pas besoin d’échapper des guillemets doubles.
Utilisez la barre oblique inverse pour échapper aux guillemets englobants, aux tabulations (\t
), aux caractères de nouvelle ligne (\n
) et à la barre oblique inverse elle-même (\\
).
Remarque
Le caractère de nouvelle ligne (\n
) et le caractère de retour (\r
) doivent être placés entre guillemets, sauf si vous utilisez des littéraux de chaîne à plusieurs lignes.
Littéraux de chaîne textuelle
Les littéraux de chaîne verbatim sont des littéraux de chaîne précédés du @
caractère, qui sert d’identificateur détaillé. Dans cette forme, le caractère de barre oblique inverse (\
) signifie pour lui-même et n’est pas un caractère d’échappement. Dans les littéraux de chaînes détaillées, les guillemets doubles sont échappés avec des guillemets doubles et des guillemets simples sont échappés avec des guillemets simples.
Pour obtenir un exemple, consultez la chaîne Verbatim.
Remarque
Le caractère de nouvelle ligne (\n
) et le caractère de retour (\r
) doivent être placés entre guillemets, sauf si vous utilisez des littéraux de chaîne à plusieurs lignes.
Littéraux de chaîne multiligne
Indiquez un littéral de chaîne à plusieurs lignes par un « chord triple backtick » ('') au début et à la fin du littéral.
Pour obtenir un exemple, consultez littéral de chaîne à plusieurs lignes.
Remarque
- Les littéraux de chaîne à plusieurs lignes prennent en charge les caractères newline (
\n
) et de retour (\r
). - Les littéraux de chaîne à plusieurs lignes ne prennent pas en charge les caractères d’échappement. Semblable aux littéraux de chaînes détaillées.
- Les littéraux de chaîne à plusieurs lignes ne prennent pas en charge l’obfuscation.
Concaténation de littéraux de chaîne séparés
Dans une requête Kusto, quand deux littéraux de chaîne adjacents ou plus n’ont aucune séparation entre eux, ils sont automatiquement combinés pour former un nouveau littéral de chaîne. De même, si les littéraux de chaîne sont séparés uniquement par des espaces blancs ou des commentaires, ils sont également combinés pour former un nouveau littéral de chaîne.
Pour obtenir un exemple, consultez littéraux de chaîne concaténés.
Littéraux de chaîne obfusqués
Les requêtes sont stockées pour la télémétrie et l’analyse. Pour protéger les informations sensibles telles que les mots de passe et les secrets, vous pouvez marquer une chaîne comme littéral de chaîne obfusqué. Ces chaînes marquées sont consignées dans un formulaire obfusqué remplacé par des astérisques (*
) dans le texte de la requête.
Un littéral de chaîne obfusqué est créé en prédéfinissant un ou un h
H
caractère devant un littéral de chaîne standard ou détaillé.
Pour obtenir un exemple, consultez littéral de chaîne obfuscated.
Important
Marquez tous les littéraux de chaîne qui contiennent des informations secrètes en tant que littéraux de chaîne obfusqués.
Conseil
Dans certaines situations, seule une partie du littéral de chaîne contient des informations secrètes. Dans ce cas, divisez le littéral en une partie non secrète et une partie secrète. Ensuite, étiquetez uniquement la partie secrète comme obfuscatée.
Exemples
Littéral de chaîne avec guillemets
L’exemple suivant montre comment utiliser des guillemets dans des littéraux de chaîne inclus par des guillemets simples et des guillemets doubles. Pour plus d’informations, consultez littéraux de chaîne.
print
s1 = 'string with "double quotes"',
s2 = "string with 'single quotes'"
Sortie
s1 | s2 |
---|---|
chaîne avec « guillemets doubles » | chaîne avec « guillemets simples » |
Littéral de chaîne avec échappement de barre oblique inverse
L’exemple suivant crée un modèle d’expression régulière à l’aide de barres obliques inverses pour échapper des caractères spéciaux. Pour plus d’informations, consultez littéraux de chaîne.
print pattern = '\\n.*(>|\'|=|\")[a-zA-Z0-9/+]{86}=='
Sortie
pattern |
---|
\n.*(>|'|=|")[a-zA-Z0-9/+]{86}== |
Littéral de chaîne avec Unicode
L’exemple suivant montre qu’une barre oblique inverse est nécessaire pour inclure un caractère Unicode dans un littéral de chaîne.
print space = "Hello\u00A0World"
Sortie
espace |
---|
Hello World |
Littéral de chaîne verbatim
L’exemple suivant crée un chemin dans lequel les barres obliques inverses font partie du chemin au lieu de caractères d’échappement. Pour ce faire, le signe de chaîne @
est ajouté à la chaîne, créant un littéral de chaîne détaillé.
print myPath = @'C:\Folder\filename.txt'
Sortie
myPath |
---|
C :\Folder\filename.txt |
Littéral de chaîne à plusieurs lignes
L’exemple suivant montre la syntaxe d’un littéral de chaîne à plusieurs lignes, qui utilise des lignes et des onglets pour styler un bloc de code. Pour plus d’informations, consultez littéraux de chaîne à plusieurs lignes.
print program = ```
public class Program {
public static void Main() {
System.Console.WriteLine("Hello!");
}
}```
Sortie
programme |
---|
public class Program { public static void Main() { System.Console.WriteLine(« Hello ! ») ; } } |
Littéraux de chaîne concaténés
Les expressions suivantes produisent toutes une chaîne de longueur 13. Pour plus d’informations, consultez Concaténation de littéraux de chaîne séparés.
print
none = strlen("Hello"', '@"world!"),
whitespace = strlen("Hello" ', ' @"world!"),
whitespaceAndComment = strlen("Hello"
// Comment
', '@"world!"
);
Sortie
Aucune | whitespace | whitespaceAndComment |
---|---|---|
13 | 13 | 13 |
Littéral de chaîne obfusqué
Dans la sortie de requête suivante, la h
chaîne est visible dans vos résultats. Toutefois, dans le suivi ou la télémétrie, la h
chaîne est stockée dans un formulaire obfusqué et remplacée par des astérisques dans le journal. Pour plus d’informations, consultez littéraux de chaîne obfuscated.
print blob="https://contoso.blob.core.windows.net/container/blob.txt?"
h'sv=2012-02-12&se=2013-04-13T0...'
Sortie
blob |
---|
https://contoso.blob.core.windows.net/container/blob.txt?sv=2012-02-12& se=2013-04-13T0... |