Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Редактор запросов Azure Data Explorer поддерживает использование T-SQL в дополнение к основному языку запросов Kusto (KQL). Хотя KQL является рекомендуемым языком запросов, T-SQL может быть полезным для инструментов, которые не могут использовать KQL.
Примечание.
Поддерживаются только команды языка запросов данных (DQL). Дополнительные сведения см. в разделе "Покрытие".
Запрос с помощью T-SQL
Чтобы запустить запрос T-SQL, начните запрос с пустой строки комментариев T-SQL: -- Синтаксис -- сообщает редактору запросов интерпретировать следующий запрос как T-SQL, а не KQL.
Пример
--
SELECT * FROM StormEvents
T-SQL в язык запросов Kusto
Редактор запросов поддерживает возможность перевода запросов T-SQL в KQL. Эта функция перевода может быть полезной для пользователей, знакомых с SQL, и хотите узнать больше о KQL.
Чтобы получить эквивалентный KQL для инструкции T-SQL SELECT , добавьте ключевое слово explain перед запросом. Выходные данные будут версией запроса KQL, которая может быть полезна для понимания соответствующего синтаксиса и концепций KQL.
Не забудьте предуказать редактору запросов T-SQL с помощью строки комментариев T-SQL, --чтобы сообщить редактору запросов интерпретировать следующий запрос как T-SQL, а не KQL.
Пример
--
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 и повысить производительность. Например, если у вас есть хранимая функция, как описано в следующей таблице, его можно выполнить, как показано в примере кода.
| Имя. | Параметры | Текст | Папка | 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 значения. |
| значение | скаляр | ✔️ | Значение, которое необходимо назначить свойству запроса. |
Примечание.
- Два оператора должны быть разделены точкой с запятой, и перед запросом не должно быть пустой строки.
- Свойства запроса применяются только к операторам табличных выражений , которые немедленно следуют.
Примеры
В следующей таблице приведены примеры настройки свойств запроса с помощью T-SQL.
| Свойство Request | Пример |
|---|---|
query_datetimescope_to |
ОБЪЯВЛЕНИЕ @__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 |
ОБЪЯВЛЕНИЕ @__kql_set_query_results_cache_max_age TIME = '00:05:00'; |
truncationmaxsize |
ОБЪЯВЛЕНИЕ @__kql_set_truncationmaxsize BIGINT = 4294967297; |
maxoutputcolumns |
ОБЪЯВЛЕНИЕ @__kql_set_maxoutputcolumns INT = 3001; |
notruncation |
ОБЪЯВЛЕНИЕ @__KQL_SET_NOTRUNCATION BIT = 1; |
norequesttimeout |
ОБЪЯВЛЕНИЕ @__KQL_SET_NOREQUESTTIMEOUT BIT = 0; |
Чтобы задать свойства запроса с помощью KQL, см . инструкцию set.
Охват
Azure Data Explorer предлагает ограниченную поддержку T-SQL. В следующей таблице описаны инструкции T-SQL и функции, которые не поддерживаются или частично поддерживаются.
| Инструкция или компонент T-SQL | Description |
|---|---|
CREATE, INSERT, DROP и ALTER |
Не поддерживается |
| Изменения схемы или данных | Не поддерживается |
ANY, ALL и EXISTS |
Не поддерживается |
WITHIN GROUP |
Не поддерживается |
TOP PERCENT |
Не поддерживается |
TOP WITH TIES |
Вычисляется как обычный TOP |
TRUNCATE |
Возвращает ближайшее значение |
SELECT * |
Порядок столбцов может отличаться от ожиданий. Используйте имена столбцов, если имеет значение порядка. |
AT TIME ZONE |
Не поддерживается |
| Курсоры SQL | Не поддерживается |
| Коррелированные вложенные запросы | Не поддерживается |
| Рекурсивные CTE | Не поддерживается |
| Динамические операторы | Не поддерживается |
| Операторы управления потоком | Поддерживаются только IF THEN ELSE операторы с идентичной схемой THEN и ELSE поддерживаются. |
| Повторяющиеся имена столбцов | Не поддерживается. Исходное имя сохраняется для одного столбца. |
| Типы данных | Возвращаемые данные могут отличаться от типа SQL Server. Например, TINYINT и SMALLINT не имеет эквивалента в Azure Data Explorer, и может возвращаться как INT32 или INT64 вместо BYTE него INT16. |
Связанный контент
- Сведения об эмуляции SQL Server в Azure Data Explorer
- Использование SQL для язык запросов Kusto памятка