Share via


Type de données chaîne

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.

Notes

  • 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.

string littéraux

Vous pouvez utiliser des guillemets doubles ou des guillemets simples pour encoder des littéraux de chaîne dans le texte de requête. Avec des guillemets doubles, vous devez placer des guillemets doubles imbriqués dans une séquence d’échappement avec une barre oblique inverse (\). Avec des guillemets simples, vous devez placer des guillemets simples imbriqués dans une séquence d’échappement, et vous n’avez pas besoin d’échapper les guillemets doubles.

Utilisez la barre oblique inverse pour échapper les guillemets englobants, les caractères de tabulation (\t), les caractères de nouvelle ligne (\n) et la barre oblique inverse elle-même (\\).

Notes

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 multiligne.

Littéraux de chaîne textuelle

Les littéraux de chaîne textuelle sont également pris en charge. Dans cette forme, le caractère barre oblique inverse (\) correspond à lui-même et n’est pas un caractère d’échappement. Le fait de passer le @ caractère aux littéraux de chaîne sert d’identificateur détaillé. Dans les littéraux de chaîne textuelle, les guillemets doubles sont placés dans une séquence d’échappement avec des guillemets doubles et les guillemets simples sont placés dans une séquence d’échappement avec des guillemets simples.

Pour obtenir un exemple, consultez Chaîne textuelle.

Notes

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 multiligne.

Littéraux de chaîne multiligne

Indiquez un littéral de chaîne multiligne par un accord « triple-backtick » ('') au début et à la fin du littéral.

Pour obtenir un exemple, consultez Littéral de chaîne multiligne.

Notes

  • Les littéraux de chaînes multilignes prennent en charge les caractères newline (\n) et return (\r).
  • Les littéraux de chaînes multilignes ne prennent pas en charge les caractères d’échappement. Semblable aux littéraux de chaîne textuelle.
  • Les littéraux de chaînes multilignes ne prennent pas en charge l’obfuscation.

Concaténation de littéraux de chaîne séparés

Dans une requête Kusto, lorsque deux littéraux de chaîne adjacents ou plus n’ont pas de 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 masquée. Ces chaînes marquées sont remplacées par des astérisques (*) dans le texte de la requête.

Un littéral de chaîne obfusqué est créé en faisant précédence d’un h ou d’un 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 comme des 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 englobant 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 des guillemets simples

Littéral de chaîne avec barre oblique inverse d’échappement

L’exemple suivant crée un modèle d’expression régulière à l’aide de barres obliques inverses pour les caractères spéciaux d’échappement. Pour plus d’informations, consultez Littéraux de chaîne.

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

Sortie

modèle
\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 des caractères d’échappement. Pour ce faire, le signe de chaîne @ est ajouté à la chaîne, ce qui crée un littéral de chaîne textuelle.

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

Sortie

myPath
C:\Folder\filename.txt

Littéral de chaîne multiligne

L’exemple suivant montre la syntaxe d’un littéral de chaîne multiligne, qui utilise des nouvelles lignes et des onglets pour appliquer un style à un bloc de code. Pour plus d’informations, consultez Littéraux de chaînes multilignes.

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

aucun whitespace whitespaceAndComment
13 13 13

Littéral de chaîne obfusqué

Dans la sortie de requête suivante, la h chaîne est visible. Toutefois, dans le suivi ou la télémétrie, la h chaîne est remplacée par des astérisque. Pour plus d’informations, consultez Littéral 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

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