Share via


externaldata işleci

İşleçexternaldata, şeması sorgunun kendisinde tanımlanan ve verileri Azure Blob Depolama blob veya Azure Data Lake Storage dosyası gibi bir dış depolama yapıtından okunan bir tablo döndürür.

Not

operatör, externaldataDepolama bağlantı dizeleri altında listelendiği gibi belirli bir depolama hizmetleri kümesini destekler.

Not

operatör Paylaşılan externaldata Erişim İmzası (SAS) anahtarını, Erişim anahtarını ve Microsoft Entra Belirteci kimlik doğrulama yöntemlerini destekler. Daha fazla bilgi için bkz . Depolama kimlik doğrulama yöntemleri.

Not

externaldata Bir dış depolama yapıtından 100 MB'a kadar olan küçük başvuru tablolarını almak için işlecini kullanın. işleci büyük veri hacimleri için tasarlanmamıştır. Büyük hacimli dış verileri almak için dış verilerin Log Analytics'e özel günlükler olarak alınmasını öneririz. Depolama yapıtı genel uç noktası bir güvenlik duvarının arkasında olduğunda bu işleç desteklenmez.

Syntax

externaldata(Columnname:columnType [, ...] )[storageConnectionString [, ...] ] [with(propertyName=propertyValue [, ...])]

Söz dizimi kuralları hakkında daha fazla bilgi edinin.

Parametreler

Ad Tür Gerekli Açıklama
columnName, columnType string ✔️ Sütun adlarının ve türlerinin listesi. Bu liste, tablonun şemasını tanımlar.
storageConnectionString string ✔️ Sorgu için depolama yapıtı depolama bağlantı dizesi.
propertyName, propertyValue string Depolama alanından alınan verilerin nasıl yorumlandığını belirleyen isteğe bağlı desteklenen özelliklerin listesi.

Desteklenen özellikler

Özellik Tür Description
biçim string Veri biçimi. Belirtilmemişse, dosya uzantısından veri biçimini algılamaya çalışılır. Varsayılan değer: CSV. Tüm veri alma biçimleri desteklenir.
ignoreFirstRecord bool olarak ayarlanırsa true, her dosyadaki ilk kayıt yoksayılır. Bu özellik, csv dosyalarını üst bilgilerle sorgularken kullanışlıdır.
ingestionMapping string Kaynak dosyadaki verilerin işleç sonuç kümesindeki gerçek sütunlara nasıl eşlendiğini gösterir. Bkz. veri eşlemeleri.

Not

Bu işleç herhangi bir işlem hattı girişini kabul etmez.

Standart sorgu sınırları dış veri sorgularına da uygulanır.

Döndürülenler

işleci, externaldata verileri depolama bağlantı dizesi tarafından belirtilen depolama yapıtından ayrıştırılan verilen şemanın veri tablosunu döndürür.

Örnekler

Azure Blob Depolama'de depolanan kullanıcı kimliklerinin listesini getirme

Aşağıdaki örnekte, sütunu bir dış depolama dosyasında tutulan (satır başına bir adet) bilinen bir kimlik kümesine denk gelen bir tablodaki UserID tüm kayıtların nasıl bulunamı gösterilmektedir. Veri biçimi belirtilmediğinden, algılanan veri biçimi şeklindedir TXT.

Users
| where UserID in ((externaldata (UserID:string) [
    @"https://storageaccount.blob.core.windows.net/storagecontainer/users.txt" 
      h@"?...SAS..." // Secret token needed to access the blob
    ]))
| ...

Birden çok veri dosyasını sorgulama

Aşağıdaki örnek, dış depolamada depolanan birden çok veri dosyasını sorgular.

externaldata(Timestamp:datetime, ProductId:string, ProductDescription:string)
[
  h@"https://mycompanystorage.blob.core.windows.net/archivedproducts/2019/01/01/part-00000-7e967c99-cf2b-4dbb-8c53-ce388389470d.csv.gz?...SAS...",
  h@"https://mycompanystorage.blob.core.windows.net/archivedproducts/2019/01/02/part-00000-ba356fa4-f85f-430a-8b5a-afd64f128ca4.csv.gz?...SAS...",
  h@"https://mycompanystorage.blob.core.windows.net/archivedproducts/2019/01/03/part-00000-acb644dc-2fc6-467c-ab80-d1590b23fc31.csv.gz?...SAS..."
]
with(format="csv")
| summarize count() by ProductId

Yukarıdaki örnek, dış tablo tanımlamadan birden çok veri dosyasını sorgulamanın hızlı bir yolu olarak düşünülebilir.

Not

Veri bölümleme işleci tarafından externaldata tanınmaz.

Hiyerarşik veri biçimlerini sorgulama

Sorgulamak için , Parquet, Avroveya ingestionMappingORCgibi JSONhiyerarşik veri biçiminin işleç özelliklerinde belirtilmesi gerekir. Bu örnekte, Azure Blob Depolama'da aşağıdaki içeriklere sahip bir JSON dosyası depolanır:

{
  "timestamp": "2019-01-01 10:00:00.238521",   
  "data": {    
    "tenant": "e1ef54a6-c6f2-4389-836e-d289b37bcfe0",   
    "method": "RefreshTableMetadata"   
  }   
}   
{
  "timestamp": "2019-01-01 10:00:01.845423",   
  "data": {   
    "tenant": "9b49d0d7-b3e6-4467-bb35-fa420a25d324",   
    "method": "GetFileList"   
  }   
}
...

işlecini kullanarak bu dosyayı sorgulamak externaldata için bir veri eşlemesi belirtilmelidir. Eşleme, JSON alanlarının işleç sonuç kümesi sütunlarına nasıl eş olacağını belirler:

externaldata(Timestamp: datetime, TenantId: guid, MethodName: string)
[ 
   h@'https://mycompanystorage.blob.core.windows.net/events/2020/09/01/part-0000046c049c1-86e2-4e74-8583-506bda10cca8.json?...SAS...'
]
with(format='multijson', ingestionMapping='[{"Column":"Timestamp","Properties":{"Path":"$.timestamp"}},{"Column":"TenantId","Properties":{"Path":"$.data.tenant"}},{"Column":"MethodName","Properties":{"Path":"$.data.method"}}]')

Tek MultiJSON JSON kayıtları birden çok satıra yayıldığından biçim burada kullanılır.

Eşleme söz dizimi hakkında daha fazla bilgi için bkz. veri eşlemeleri.