Aracılığıyla paylaş


T-SQL kullanarak verileri sorgulama

Azure Veri Gezgini sorgu düzenleyicisi, birincil sorgu dili olan Kusto sorgu diline (KQL) ek olarak T-SQL kullanımını destekler. Önerilen sorgu dili KQL olsa da, T-SQL KQL kullanamayan araçlar için yararlı olabilir.

Not

Yalnızca Veri Sorgu Dili (DQL) komutları desteklenir. Daha fazla bilgi için bkz . Kapsam.

T-SQL ile sorgulama

T-SQL sorgusu çalıştırmak için sorguya boş bir T-SQL açıklama satırıyla başlayın: --. Söz -- dizimi, sorgu düzenleyicisine aşağıdaki sorguyu KQL değil T-SQL olarak yorumlamasını söyler.

Örnek

--
SELECT * FROM StormEvents

T-SQL to Kusto Sorgu Dili

Sorgu düzenleyicisi, T-SQL sorgularını KQL'ye çevirme özelliğini destekler. Bu çeviri özelliği, SQL hakkında bilgi sahibi olan ve KQL hakkında daha fazla bilgi edinmek isteyen kullanıcılar için yararlı olabilir.

T-SQL SELECT deyiminin eşdeğer KQL değerini almak için sorgudan önce anahtar sözcüğünü explain ekleyin. Çıkış, sorgunun KQL sürümü olacaktır. Bu sürüm, ilgili KQL söz dizimini ve kavramlarını anlamak için yararlı olabilir.

Sorgu düzenleyicisine aşağıdaki sorguyu KQL değil, T-SQL olarak yorumlamasını söylemek için T-SQL açıklama satırıyla --T-SQL sorgularının başına yazılmaya dikkat edin.

Örnek

--
explain
SELECT top(10) *
FROM StormEvents
ORDER BY DamageProperty DESC

Çıktı

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)

Depolanan işlevleri çalıştırma

T-SQL kullanırken, en iyi duruma getirilmiş KQL sorguları oluşturmanızı ve bunları depolanmış işlevlerde kapsüllemenizi öneririz, bunun yapılması T-SQL kodunu en aza indirir ve performansı artırabilir. Örneğin, aşağıdaki tabloda açıklandığı gibi bir saklı işleviniz varsa, kod örneğinde gösterildiği gibi yürütebilirsiniz.

Veri Akışı Adı Parametreler Gövde Klasör DocString
MyFunction (myLimit: long) {StormEvents | take myLimit} MyFolder Parametresi olan demo işlevi
SELECT * FROM kusto.MyFunction(10)

Not

Depolanan işlevlerle öykünmüş SQL sistemi saklı yordamları arasında ayrım yapmak için, saklı işlevleri şemaya açık bir başvuruyla yürütün kusto . Örnekte saklı işlev kullanılarak kusto.Myfunctionyürütülür.

İstek özelliklerini ayarlama

İstek özellikleri bir sorguyu yürütme ve sonuçları döndürmeyi denetler. T-SQL ile istek özelliklerini ayarlamak için sorgunuzun başına aşağıdaki söz dizimiyle bir veya daha fazla deyim ekleyin:

Sözdizimi

DECLARE@__kql_set_requestPropertyName tür = değeri;

Parametreler

Ad Tür Zorunlu Açıklama
requestPropertyName string ✔️ Ayarlanacağı istek özelliğinin adı.
type string ✔️ Değerin T-SQL veri türü .
value sayıl ✔️ İstek özelliğine atanacak değer.

Not

Örnekler

Aşağıdaki tabloda, T-SQL ile istek özelliklerinin nasıl ayarlanacağına ilişkin örnekler gösterilmektedir.

request özelliği Örnek
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 ile istek özelliklerini ayarlamak için bkz . set deyimi.

Kapsam

Azure Veri Gezgini, T-SQL için sınırlı destek sunar. Aşağıdaki tabloda desteklenmeyen veya kısmen desteklenen T-SQL deyimleri ve özellikleri özetlenmektedir.

T-SQL deyimi veya özelliği Açıklama
CREATE, INSERT, DROPve ALTER Desteklenmez
Şema veya veri değişiklikleri Desteklenmez
ANY, ALLve EXISTS Desteklenmez
WITHIN GROUP Desteklenmez
TOP PERCENT Desteklenmez
TOP WITH TIES Normal olarak değerlendirildi TOP
TRUNCATE En yakın değeri verir
SELECT * Sütun sırası beklentiden farklı olabilir. Sıra önemliyse sütun adlarını kullanın.
AT TIME ZONE Desteklenmez
SQL imleçleri Desteklenmez
Bağıntılı alt sorgular Desteklenmez
Özyinelemeli CTE'ler Desteklenmez
Dinamik deyimler Desteklenmez
Akış denetimi deyimleri Yalnızca IF THEN ELSE ve ELSE için THEN aynı şemaya sahip deyimler desteklenir.
Yinelenen sütun adları Desteklenmiyor. Özgün ad bir sütun için korunur.
Veri türleri Döndürülen veriler sql server türünden farklı olabilir. Örneğin, TINYINT SMALLINT Azure Veri Gezgini'de eşdeğeri yoktur ve veya INT16yerine BYTE veya INT64 olarak INT32 döndürülebilir.