externaldata işleci
Şunlar için geçerlidir: ✅Microsoft Fabric✅
İşleçexternaldata
, şeması sorguda tanımlanan ve verileri Azure Blob Depolama blobu veya Azure Data Lake Storage'daki bir dosya gibi bir dış depolama yapıtından okunan bir tablo döndürür.
Not
externaldata
işleci aşağıdakileri destekler:
- Depolama bağlantı dizeleri altında listelendiği gibi belirli bir depolama hizmetleri kümesi.
- paylaşılan Erişim İmzası (SAS) anahtarı, Erişim anahtarı ve Microsoft Entra Belirteci kimlik doğrulama yöntemleri. 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şleç büyük veri hacimleri için tasarlanmamıştır. Büyük hacimli dış verileri almak için, dış verileri özel günlükler olarak Log Analytics'e almanızı öneririz.
Depolama yapıtı genel uç noktası bir güvenlik duvarının arkasında olduğunda bu işleç desteklenmez.
Sözdizimi
externaldata
(
columnName:
columnType [,
...] )
[
storageConnectionString [,
...] ]
[with
(
propertyName=
propertyValue [,
...])
]
Söz dizimi kuralları hakkında daha fazla bilgi edinin.
Parametreler
Ad | Tür | Zorunlu | Açıklama |
---|---|---|---|
columnName, columnType | string |
✔️ | Sütun adlarının ve türlerinin listesi. Bu liste, tablonun şemasını tanımlar. |
storageConnectionString | string |
✔️ | Sorguya alınacak 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 | Açıklama |
---|---|---|
format | string |
Veri biçimi. Belirtilmezse, 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ılmış olan verilen şemanın veri tablosunu döndürür.
Örnekler
Örnekler, dış depolama dosyasındaki verileri sorgular.
Azure Blob Depolama depolanan kullanıcı kimliklerinin listesini getirme
Aşağıdaki örnek, 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 bulunayacağını gösterir. 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.
Sorgu hiyerarşik veri biçimleri
Hiyerarşik veri biçimini sorgulamak için , JSON
, Parquet
veya Avro
gibi ORC
işleç ingestionMapping
özelliklerinde belirtilmelidir.
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.
İlgili içerik
Eşleme söz dizimi hakkında daha fazla bilgi için bkz . veri eşlemeleri.