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 할 수 있습니다. |
관련 콘텐츠
- Azure Data Explorer의 SQL Server 에뮬레이션에 대해 알아보기
- SQL을 사용하여 참고 자료 Kusto 쿼리 언어