문자열 데이터 형식

데이터 형식은 string 0개 이상의 유니코드 문자 시퀀스를 나타냅니다.

문자열 쿼리 연산자에 대한 자세한 내용은 문자열 연산자를 참조하세요.

참고

  • 내부적으로 문자열은 UTF-8로 인코딩됩니다. 잘못된(UTF8이 아닌) 문자는 수집 시 U+FFFD 유니코드 대체 문자로 바뀝니다.
  • Kusto에는 단일 문자와 동일한 데이터 형식이 없습니다. 단일 문자는 길이 1의 문자열로 표시됩니다.
  • 데이터 형식을 수집할 string 때 레코드의 단일 문자열 값이 1MB(UTF-8 인코딩을 사용하여 측정됨)를 초과하면 값이 잘리고 수집에 성공합니다. 레코드의 단일 문자열 값 또는 전체 레코드가 허용되는 데이터 제한인 64MB를 초과하면 수집이 실패합니다.

string 리터럴

큰따옴표 또는 작은따옴표를 사용하여 쿼리 텍스트에서 문자열 리터럴을 인코딩할 수 있습니다. 큰따옴표를 사용하면 백슬래시(\)를 사용하여 중첩된 큰따옴표 문자를 이스케이프해야 합니다. 작은따옴표를 사용하면 중첩된 작은따옴표 문자를 이스케이프해야 하며 큰따옴표를 이스케이프할 필요가 없습니다.

백슬래시 문자를 사용하여 바깥쪽 따옴표 문자, 탭 문자(), 줄 바꿈 문자(\t\n) 및 백슬래시 자체(\\)를 이스케이프합니다.

참고

여러 줄 문자열 리터럴을 사용하지 않는 한 줄 바꿈 문자(\n) 및 반환 문자(\r)를 따옴표로 묶어야 합니다.

축자 문자열 리터럴

축자 문자열 리터럴도 지원됩니다. 이 형식에서 백슬래시 문자(\)는 그 자체를 의미하며 이스케이프 문자가 아닙니다. 문자열 리터럴 앞에 @ 문자를 추가하면 축자 식별자로 사용됩니다. 축자 문자열 리터럴에서 큰따옴표는 큰따옴표로 이스케이프되고 작은따옴표는 작은따옴표로 이스케이프됩니다.

예제는 축자 문자열을 참조하세요.

참고

여러 줄 문자열 리터럴을 사용하지 않는 한 줄 바꿈 문자(\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

축자 문자열 리터럴

다음 예제에서는 백슬라이시가 이스케이프 문자 대신 경로의 일부인 경로를 만듭니다. 이렇게 하려면 문자열 기호 앞에 문자열 @ 이 추가되어 축자 문자열 리터럴을 만듭니다.

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!"
    );

출력

없음 whitespace 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...'

출력

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