T-SQL을 사용하여 데이터 쿼리

Azure Data Explorer 쿼리 편집기는 기본 쿼리 언어인 KQL(Kusto 쿼리 언어) 외에도 T-SQL 사용을 지원합니다. KQL이 권장 쿼리 언어이지만, KQL을 사용할 수 없는 도구에는 T-SQL이 유용할 수 있습니다.

참고

DQL(데이터 쿼리 언어) 명령만 지원됩니다. 자세한 내용은 적용 범위를 참조하세요.

T-SQL로 쿼리

T-SQL 쿼리를 실행하려면 빈 T-SQL 주석 줄 --인 으로 쿼리를 시작합니다. 구문은 -- 쿼리 편집기에서 다음 쿼리를 KQL이 아닌 T-SQL로 해석하도록 지시합니다.

예제

--
SELECT * FROM StormEvents

T-SQL에서 Kusto 쿼리 언어

쿼리 편집기는 T-SQL 쿼리를 KQL로 변환하는 기능을 지원합니다. 이 번역 기능은 SQL에 익숙하고 KQL에 대해 자세히 알아보려는 사용자에게 유용할 수 있습니다.

T-SQL SELECT 문에 해당하는 KQL을 얻으려면 쿼리 앞에 키워드(keyword) explain 추가합니다. 출력은 해당 KQL 구문 및 개념을 이해하는 데 유용할 수 있는 쿼리의 KQL 버전입니다.

T-SQL 주석 줄 --이 있는 T-SQL 쿼리 앞에 다음 쿼리를 KQL이 아닌 T-SQL로 해석하도록 쿼리 편집기에게 지시해야 합니다.

예제

--
explain
SELECT top(10) *
FROM StormEvents
ORDER BY DamageProperty DESC

출력

StormEvents
| project
    StartTime,
    EndTime,
    EpisodeId,
    EventId,
    State,
    EventType,
    InjuriesDirect,
    InjuriesIndirect,
    DeathsDirect,
    DeathsIndirect,
    DamageProperty,
    DamageCrops,
    Source,
    BeginLocation,
    EndLocation,
    BeginLat,
    BeginLon,
    EndLat,
    EndLon,
    EpisodeNarrative,
    EventNarrative,
    StormSummary
| sort by DamageProperty desc nulls first
| take int(10)

저장된 함수 실행

T-SQL을 사용하는 경우 최적화된 KQL 쿼리를 만들고 저장된 함수에 캡슐화하는 것이 좋습니다. 이렇게 하면 T-SQL 코드가 최소화되고 성능이 향상될 수 있습니다. 예를 들어 다음 표에 설명된 대로 저장된 함수가 있는 경우 코드 예제와 같이 실행할 수 있습니다.

Name 매개 변수 본문 폴더 DocString
MyFunction (myLimit: long) {StormEvents | take myLimit} MyFolder 매개 변수가 있는 데모 함수
SELECT * FROM kusto.MyFunction(10)

참고

저장된 함수와 에뮬레이트된 SQL 시스템 저장 프로시저를 구분하려면 스키마에 대한 명시적 참조를 사용하여 저장 함수를 kusto 실행합니다. 예제에서 저장된 함수는 를 사용하여 kusto.Myfunction실행됩니다.

요청 속성 설정

요청 속성은 쿼리가 실행되고 결과를 반환하는 방법을 제어합니다. T-SQL을 사용하여 요청 속성을 설정하려면 다음 구문을 사용하여 하나 이상의 문을 사용하여 쿼리 앞에 을 추가합니다.

Syntax

DECLARE@__kql_set_requestPropertyName형식=;

매개 변수

이름 형식 필수 Description
requestPropertyName string ✔️ 설정할 요청 속성 의 이름입니다.
type string ✔️ 값의 T-SQL 데이터 형식 입니다.
value 스칼라(scalar) ✔️ 요청 속성에 할당할 값입니다.

참고

  • 두 개의 문을 세미콜론으로 구분해야 하며 쿼리 앞에 빈 줄이 없어야 합니다.
  • 요청 속성은 바로 뒤에 있는 테이블 형식 식 문에 만 적용됩니다.

예제

다음 표에서는 T-SQL을 사용하여 요청 속성을 설정하는 방법에 대한 예제를 보여 줍니다.

요청 속성 예제
query_datetimescope_to DECLARE @__kql_set_query_datetimescope_to DATETIME = '2023-03-31 03:02:01';
request_app_name DECLARE @__kql_set_request_app_name NVARCHAR = 'kuku';
query_results_cache_max_age DECLARE @__kql_set_query_results_cache_max_age TIME = '00:05:00';
truncationmaxsize DECLARE @__kql_set_truncationmaxsize BIGINT = 4294967297;
maxoutputcolumns DECLARE @__kql_set_maxoutputcolumns INT = 3001;
notruncation DECLARE @__kql_set_notruncation BIT = 1;
norequesttimeout DECLARE @__kql_set_norequesttimeout BIT = 0;

KQL을 사용하여 요청 속성을 설정하려면 set 문을 참조하세요.

적용 범위

Azure Data Explorer T-SQL에 대한 제한된 지원을 제공합니다. 다음 표에서는 지원되지 않거나 부분적으로 지원되는 T-SQL 문 및 기능을 간략하게 설명합니다.

T-SQL 문 또는 기능 Description
CREATE, INSERT, DROPALTER 지원되지 않음
스키마 또는 데이터 수정 지원되지 않음
ANY, ALL, EXISTS 지원되지 않음
WITHIN GROUP 지원되지 않음
TOP PERCENT 지원되지 않음
TOP WITH TIES 일반으로 평가됨 TOP
TRUNCATE 가장 가까운 값을 반환합니다.
SELECT * 열 순서는 예상과 다를 수 있습니다. 순서가 중요한 경우 열 이름을 사용합니다.
AT TIME ZONE 지원되지 않음
SQL 커서 지원되지 않음
상관 하위 쿼리 지원되지 않음
재귀 CTE 지원되지 않음
동적 문 지원되지 않음
흐름 제어 문 ELSE 에 동일한 스키마 THEN 가 있는 문만ELSEIFTHEN지원됩니다.
중복된 열 이름 지원되지 않습니다. 원래 이름은 한 열에 대해 유지됩니다.
데이터 형식 반환된 데이터는 형식이 SQL Server 다를 수 있습니다. 예를 들어 TINYINTSMALLINT 는 Azure Data Explorer 동일하지 않으며 또는 대신 BYTE 또는 INT64INT16INT32 반환할 수 있습니다.