Query's uitvoeren op gegevens met behulp van T-SQL
De Azure Data Explorer-queryeditor ondersteunt het gebruik van T-SQL naast de primaire querytaal Kusto-querytaal (KQL). Hoewel KQL de aanbevolen querytaal is, kan T-SQL handig zijn voor hulpprogramma's die KQL niet kunnen gebruiken.
Notitie
Alleen DQL-opdrachten (Data Query Language) worden ondersteund. Zie Dekking voor meer informatie.
Query's uitvoeren met T-SQL
Als u een T-SQL-query wilt uitvoeren, begint u de query met een lege T-SQL-opmerkingsregel: --
. De --
syntaxis laat de queryeditor de volgende query interpreteren als T-SQL en niet als KQL.
Voorbeeld
--
SELECT * FROM StormEvents
T-SQL naar Kusto-querytaal
De queryeditor ondersteunt de mogelijkheid om T-SQL-query's te vertalen naar KQL. Deze vertaalfunctie kan handig zijn voor gebruikers die bekend zijn met SQL en meer willen weten over KQL.
Als u de equivalente KQL voor een T-SQL-instructie SELECT
wilt ophalen, voegt u het trefwoord explain
toe vóór de query. De uitvoer is de KQL-versie van de query, wat handig kan zijn voor het begrijpen van de bijbehorende KQL-syntaxis en -concepten.
Vergeet niet om T-SQL-query's vooraf te laten gaan met een T-SQL-opmerkingsregel, --
, om de queryeditor te laten weten dat de volgende query moet worden geïnterpreteerd als T-SQL en niet als KQL.
Voorbeeld
--
explain
SELECT top(10) *
FROM StormEvents
ORDER BY DamageProperty DESC
Uitvoer
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)
Opgeslagen functies uitvoeren
Wanneer u T-SQL gebruikt, raden we u aan om geoptimaliseerde KQL-query's te maken en deze in te kapselen in opgeslagen functies, omdat dit de T-SQL-code minimaliseert en de prestaties kan verbeteren. Als u bijvoorbeeld een opgeslagen functie hebt zoals beschreven in de volgende tabel, kunt u deze uitvoeren zoals wordt weergegeven in het codevoorbeeld.
Name | Parameters | Hoofdtekst | Map | DocString |
---|---|---|---|---|
MyFunction | (myLimit: long) | {StormEvents | take myLimit} | MyFolder | Demo-functie met parameter |
SELECT * FROM kusto.MyFunction(10)
Notitie
Als u onderscheid wilt maken tussen opgeslagen functies en opgeslagen procedures van het SQL-systeem, voert u opgeslagen functies uit met een expliciete verwijzing naar het kusto
schema. In het voorbeeld wordt de opgeslagen functie uitgevoerd met behulp van kusto.Myfunction
.
Aanvraageigenschappen instellen
Aanvraageigenschappen bepalen hoe een query wordt uitgevoerd en resultaten retourneert. Als u aanvraageigenschappen wilt instellen met T-SQL, geeft u de query een of meer instructies met de volgende syntaxis:
Syntax
DECLARE
@__kql_set_
waarde van het type=
requestPropertyName;
Parameters
Naam | Type | Vereist | Beschrijving |
---|---|---|---|
requestPropertyName | string |
✔️ | De naam van de aanvraageigenschap die moet worden ingesteld. |
type | string |
✔️ | Het T-SQL-gegevenstype van de waarde. |
value | Scalaire | ✔️ | De waarde die moet worden toegewezen aan de aanvraageigenschap. |
Notitie
- Twee instructies moeten worden gescheiden door een puntkomma en er mag geen lege regel vóór de query staan.
- Aanvraageigenschappen zijn alleen van toepassing op de instructies voor tabellaire expressies die onmiddellijk volgen.
Voorbeelden
In de volgende tabel ziet u voorbeelden voor het instellen van aanvraageigenschappen met T-SQL.
Aanvraageigenschap | Voorbeeld |
---|---|
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 |
DECLAREer @__kql_set_notruncation BIT = 1; |
norequesttimeout |
DECLAREer @__kql_set_norequesttimeout BIT = 0; |
Zie set-instructie om aanvraageigenschappen in te stellen met KQL.
Dekking
Azure Data Explorer biedt beperkte ondersteuning voor T-SQL. De volgende tabel bevat een overzicht van de T-SQL-instructies en -functies die niet of gedeeltelijk worden ondersteund.
T-SQL-instructie of -functie | Description |
---|---|
CREATE , INSERT , DROP en ALTER |
Niet ondersteund |
Schema- of gegevenswijzigingen | Niet ondersteund |
ANY , ALL en EXISTS |
Niet ondersteund |
WITHIN GROUP |
Niet ondersteund |
TOP PERCENT |
Niet ondersteund |
TOP WITH TIES |
Geëvalueerd als normaal TOP |
TRUNCATE |
geeft als resultaat de dichtstbijzijnde waarde |
SELECT * |
De kolomvolgorde kan afwijken van de verwachting. Gebruik kolomnamen als de volgorde van belang is. |
AT TIME ZONE |
Niet ondersteund |
SQL-cursors | Niet ondersteund |
Gecorreleerde subquery's | Niet ondersteund |
Recursieve CTE's | Niet ondersteund |
Dynamische instructies | Niet ondersteund |
Instructies voor stroombeheer | Alleen IF THEN ELSE instructies met een identiek schema voor THEN en ELSE worden ondersteund. |
Dubbele kolomnamen | Wordt niet ondersteund. De oorspronkelijke naam blijft behouden voor één kolom. |
Gegevenstypen | Geretourneerde gegevens kunnen qua type afwijken van SQL Server. En hebben bijvoorbeeld TINYINT SMALLINT geen equivalent in Azure Data Explorer en kunnen worden geretourneerd als INT32 of INT64 in plaats van BYTE of INT16 . |
Gerelateerde inhoud
- Meer informatie over SQL Server-emulatie in Azure Data Explorer
- Sql gebruiken om Kusto-querytaal cheatsheet te Kusto-querytaal