Поделиться через


Строковый тип данных

Область применения: ✅Microsoft Fabric✅Azure Data ExplorerAzure MonitorMicrosoft Sentinel

Тип string данных представляет последовательность нулевых или более символов Юникода .

Сведения о операторах строковых запросов см. в разделе "Строковые операторы".

Примечание.

  • Внутри системы строки кодируются в UTF-8. Недопустимые символы (не UTF8) заменяются символами замены юникода U+FFFD во время приема.
  • Kusto не имеет типа данных, эквивалентного одному символу. Один символ представлен в виде строки длиной 1.
  • При приеме string типа данных, если одно строковое значение в записи превышает 1 МБ (измеряется с использованием кодировки UTF-8), значение усечено, а прием завершается успешно. Если одно строковое значение в записи или вся запись превышает допустимое ограничение данных в 64 МБ, прием завершается ошибкой.
  • При приеме string типа данных, если одно строковое значение в записи превышает 1 МБ (измеряется с использованием кодировки UTF-8), значение усечено, а прием завершается успешно. Вы можете увеличить MaxValueSize столбец, изменив политику кодирования.
  • Если одно строковое значение в записи или вся запись превышает допустимое ограничение данных в 64 МБ, прием завершается ошибкой.

Литералы string

Строковый литерал — это строка, заключенная в кавычки. Для кодирования строковых литералов в тексте запроса можно использовать двойные кавычки или одинарные кавычки. С двойными кавычками необходимо экранировать вложенные двойные кавычки с обратной косой чертой (\). С одними кавычками необходимо экранировать вложенные символы с одними кавычками, и вам не нужно экранировать двойные кавычки.

Используйте символ обратной косой черты для экранирования заключающих символов кавычки, символов табуляции (), символов новой строки (\t\n), а также обратной косой черты (\\).

Примечание.

Символ новой строки (\n) и возвращаемый символ (\r) должны быть заключены в кавычки, если только не используется многострочный строковый литерал.

Подробные строковые литералы

Строковые литералы verbatim — это строковые литералы, которые предопределяются @ символом, который служит в качестве подробного идентификатора. В этой форме символ обратной косой черты (\) обозначает себя и не является escape-символом. В подробных строковых литералах двойные кавычки экранируются с двойными кавычками и одинарными кавычками экранируются с одними кавычками.

Пример см . в строке Verbatim.

Примечание.

Символ новой строки (\n) и возвращаемый символ (\r) должны быть заключены в кавычки, если только не используется многострочный строковый литерал.

Многострочные строковые литералы

Укажите многострочный строковый литерал по символу "тройная обратная черта" ('') в начале и конце литерала.

Пример см . в строковом литерале с несколькими строками.

Примечание.

  • Многострочный строковый литералы поддерживают новые\n () и возвращаемые (\r) символы.
  • Многострочный строковый литералы не поддерживают экранированные символы. Аналогично подробным строковым литералам.
  • Многострочный строковый литералы не поддерживают маскировку.

Объединение разделенных строковых литерала

В запросе Kusto, если два или более смежных строковых литералов не имеют разделения между ними, они автоматически объединяются для формирования нового строкового литерала. Аналогичным образом, если строковые литералы разделяются только пробелами или комментариями, они также объединяются для формирования нового строкового литерала.

Пример см . в разделе "Сцепленные строковые литералы".

Скрытые строковые литералы

Запросы хранятся для телеметрии и анализа. Чтобы защитить конфиденциальную информацию, например пароли и секреты, можно пометить строку как запечатленный строковый литерал. Эти помеченные строки регистрируются в нефускированной форме, замененной звездочками (*) в тексте запроса.

Замаскированный строковый литерал создается путем подготовки h символа H перед стандартным или подробным строковым литералом.

Пример см. в статье Обфускированный строковый литерал.

Внимание

Пометьте все строковые литералы, содержащие секретные сведения, как скрытые строковые литералы.

Совет

В некоторых ситуациях только часть строкового литерала содержит секретную информацию. В таких случаях разделите литерал на несекретную часть и секретную часть. Затем пометьте только секретную часть как запутаемую.

Примеры

Строковый литерал с кавычками

В следующем примере показано, как использовать кавычки в строковых литералах, охватываемых одними кавычками и двойными кавычками. Дополнительные сведения см. в разделе "Строковые литералы".

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

Выходные данные

s1 s2
строка с двойными кавычками строка с одними кавычками

Строковый литерал с экранированием обратной косой черты

В следующем примере создается шаблон регулярных выражений с помощью обратных косых скобок для экранирования специальных символов. Дополнительные сведения см. в разделе "Строковые литералы".

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

Выходные данные

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

Строковый литерал с Юникодом

В следующем примере показано, что обратная косая черта необходима для включения символа Юникода в строковый литерал.

print space = "Hello\u00A0World"

Выходные данные

space
Hello World

Строковый литерал verbatim

В следующем примере создается путь, в котором обратные очки являются частью пути вместо escape-символов. Для этого знак строки @ добавляется к строке, создавая подробный строковый литерал.

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

Выходные данные

myPath
C:\Folder\filename.txt

Многострочный строковый литерал

В следующем примере показан синтаксис многострочный строковый литерал, который использует новые строки и вкладки для стиля блока кода. Дополнительные сведения см . в многострочный строковых литералах.

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

Выходные данные

программа
public class Program { public static void Main() { System.Console.WriteLine("Hello!"); } }

Сцепленные строковые литералы

Следующие выражения дают строку длиной 13. Дополнительные сведения см. в разделе "Объединение разделенных строковых литерала".

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

Выходные данные

ничего пробел whitespaceAndComment
13 13 13

Замаскированный строковый литерал

В следующих выходных данных h запроса строка отображается в результатах. Однако в трассировке или телеметрии h строка хранится в запутанной форме и заменена звездочками в журнале. Дополнительные сведения см. в разделе Обфускированные строковые литералы.

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

Выходные данные

большой двоичный объект
https://contoso.blob.core.windows.net/container/blob.txt?sv=2012-02-12& se=2013-04-13T0...