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

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

참고 항목

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을 얻으려면 쿼리 앞에 키워드 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을 사용하여 요청 속성을 설정하려면 다음 구문을 사용하여 하나 이상의 문을 사용하여 쿼리 앞에 세워야 합니다.

구문

DECLARE@__kql_set_requestPropertyName 형식 = 값;

매개 변수

이름 Type 필수 설명
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 문 또는 기능 설명
CREATE, INSERT, DROP 및 ALTER 지원되지 않음
스키마 또는 데이터 수정 지원되지 않음
ANY, ALL 및 EXISTS 지원되지 않음
WITHIN GROUP 지원되지 않음
TOP PERCENT 지원되지 않음
TOP WITH TIES 일반으로 평가됨 TOP
TRUNCATE 가장 가까운 값을 반환합니다.
SELECT * 열 순서는 예상과 다를 수 있습니다. 주문이 중요한 경우 열 이름을 사용합니다.
AT TIME ZONE 지원되지 않음
SQL 커서 지원되지 않음
상관 하위 쿼리 지원되지 않음
재귀 CTE 지원되지 않음
동적 문 지원되지 않음
흐름 제어 문 동일한 스키마 THEN ELSE 가 있는 문만 IF THEN ELSE 지원됩니다.
열 이름 중복 지원되지 않습니다. 원래 이름은 한 열에 대해 유지됩니다.
데이터 유형 반환되는 데이터는 SQL Server와 형식이 다를 수 있습니다. 예를 들어 TINYINT SMALLINT Azure Data Explorer에는 해당 항목이 없으며 대신 또는 대신 반환 INT32 INT64 BYTE INT16할 수 있습니다.