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 sorguyu boş bir T-SQL açıklama satırıyla başlatı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ış, ilgili KQL söz dizimini ve kavramlarını anlamak için yararlı olabilecek sorgunun KQL sürümü olacaktır.

Sorgu düzenleyicisine aşağıdaki sorguyu KQL olarak değil T-SQL olarak yorumlamasını bildirmek için T-SQL açıklama satırı --ile T-SQL sorgularının başına oluşturmayı unutmayın.

Örnek

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

Çıkış

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. Bu, 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.

Name Parametreler Gövde Klasör DocString
Myfunction (myLimit: long) {StormEvents | take myLimit} MyFolder Parametreli demo işlevi
SELECT * FROM kusto.MyFunction(10)

Not

Depolanan işlevlerle öykünülmüş 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ürme şeklini denetler. T-SQL ile istek özelliklerini ayarlamak için sorgunuzun başına aşağıdaki söz dizimini içeren bir veya daha fazla deyim ekleyin:

Syntax

DECLARE@__kql_set_requestPropertyNametür=değeri;

Parametreler

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

Not

  • İki deyim noktalı virgülle ayrılmalıdır ve sorgudan önce boş bir satır olmamalıdır.
  • İstek özellikleri yalnızca hemen izleyen tablosal ifade deyimleri için geçerlidir.

Ö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 Description
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ğerlendirilir 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 IFTHENELSE ve ELSE için THEN aynı şemaya sahip deyimler desteklenir.
Yinelenen sütun adları Desteklenmez. Ö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, TINYINTSMALLINT Azure Veri Gezgini'de eşdeğeri yoktur ve veya INT16yerine BYTE veya INT64 olarak INT32 döndürülebilir.