Запрос данных с помощью T-SQL
Редактор запросов 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-SQLSELECT
, добавьте ключевое слово 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;
Параметры
Имя | Тип | Обязательно | Описание |
---|---|---|---|
requestPropertyName | string |
✔️ | Имя устанавливаемого свойства запроса . |
type | string |
✔️ | Тип данных T-SQL значения. |
value | скаляр | ✔️ | Значение, присваиваемое свойству запроса. |
Примечание
- Две инструкции должны быть разделены точкой с запятой, и перед запросом не должно быть пустой строки.
- Свойства запроса применяются только к операторам табличных выражений , которые сразу же следуют.
Примеры
В следующей таблице приведены примеры настройки свойств запроса с помощью T-SQL.
Свойство Request | Пример |
---|---|
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 | Не поддерживается |
Динамические операторы | Не поддерживается |
Инструкции управления потоком | Поддерживаются только IF THEN ELSE инструкции с идентичной схемой для THEN и .ELSE |
Повторяющиеся имена столбцов | Не поддерживается. Исходное имя сохраняется для одного столбца. |
Типы данных | Возвращаемые данные могут отличаться по типу от SQL Server. Например, TINYINT и SMALLINT не имеют эквивалента BYTE в Azure Data Explorer, и могут возвращать значение INT32 или INT64 вместо или INT16 . |
См. также
- Сведения об эмуляции SQL Server в Azure Data Explorer
- Использование памятки по SQL для язык запросов Kusto
Обратная связь
https://aka.ms/ContentUserFeedback.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделеОтправить и просмотреть отзыв по