Megosztás a következőn keresztül:


extrenaldata operátor

Az externaldata operátor egy olyan táblát ad vissza, amelynek sémája magában a lekérdezésben van definiálva, és amelynek adatait egy külső tárolóösszetevőből olvassa be, például egy Azure Blob Storage blobból vagy egy fájlból Azure Data Lake Storage.

Megjegyzés

Az externaldata operátor a Tárolási kapcsolati sztringek szakaszban felsorolt tárolási szolgáltatások egy meghatározott készletét támogatja.

Megjegyzés

Az externaldata operátor támogatja a közös hozzáférésű jogosultságkód (SAS) kulcsát, a hozzáférési kulcsot és a Microsoft Entra token-hitelesítési módszereket. További információ: Tárolási hitelesítési módszerek.

Megjegyzés

Az operátorral lekérheti a externaldata legfeljebb 100 MB méretű kis referenciatáblákat egy külső tárolóösszetevőből. Az operátort nem nagy adatmennyiségekhez tervezték. Nagy mennyiségű külső adat lekéréséhez javasoljuk, hogy a külső adatokat egyéni naplókként betöltse a Log Analyticsbe. Ez az operátor nem támogatott, ha a tárolási összetevő nyilvános végpontja tűzfal mögött található.

Syntax

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

További információ a szintaxis konvenciókról.

Paraméterek

Név Típus Kötelező Leírás
columnName, columnType string ✔️ Az oszlopnevek és azok típusainak listája. Ez a lista a tábla sémáját határozza meg.
storageConnectionString string ✔️ A lekérdezendő tárolási összetevő tárolási kapcsolati karakterlánc.
propertyName, propertyValue string A nem kötelezően támogatott tulajdonságok listája, amely meghatározza a tárolóból lekért adatok értelmezését.

Támogatott tulajdonságok

Tulajdonság Típus Description
Formátum string Az adatformátum. Ha nincs meghatározva, a rendszer megpróbálja észlelni az adatformátumot a fájlkiterjesztésből. A mező alapértelmezett értéke: CSV. Minden betöltési adatformátum támogatott.
ignoreFirstRecord bool Ha a értékre van trueállítva, a rendszer minden fájl első rekordját figyelmen kívül hagyja. Ez a tulajdonság akkor hasznos, ha fejlécekkel rendelkező CSV-fájlokat kérdez le.
ingestionMapping string Azt jelzi, hogyan képezheti le az adatokat a forrásfájlból az operátor eredményhalmazának tényleges oszlopaiba. Lásd: adatleképezések.

Megjegyzés

Ez az operátor nem fogad el folyamatbemenetet.

A standard lekérdezési korlátozások a külső adat lekérdezésekre is vonatkoznak.

Válaszok

Az externaldata operátor egy adattáblát ad vissza az adott sémából, amelynek adatait a megadott tárolási összetevőből elemezték, amelyet a tárolási kapcsolati karakterlánc jelez.

Példák

A Azure Blob Storage-ben tárolt felhasználói azonosítók listájának lekérése

Az alábbi példa bemutatja, hogyan keresheti meg az összes olyan rekordot egy táblában, amelynek UserID oszlopa egy ismert azonosítókból áll, amelyek egy külső tárolófájlban (soronként egy) találhatók. Mivel az adatformátum nincs megadva, az észlelt adatformátum a következő 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
    ]))
| ...

Több adatfájl lekérdezése

Az alábbi példa több, külső tárolóban tárolt adatfájlt is lekérdez.

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

A fenti példa egy gyors módszer több adatfájl lekérdezésére külső tábla definiálása nélkül.

Megjegyzés

Az operátor nem ismeri fel az adatparticionálást externaldata .

Hierarchikus adatformátumok lekérdezése

A hierarchikus adatformátum (például JSON, , ParquetAvro, vagy ORC) ingestionMapping lekérdezéséhez meg kell adni az operátor tulajdonságait. Ebben a példában egy JSON-fájl van tárolva Azure Blob Storage a következő tartalommal:

{
  "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"   
  }   
}
...

A fájl operátorral történő externaldata lekérdezéséhez meg kell adni egy adatleképezést. A leképezés meghatározza, hogyan képezhet le JSON-mezőket az operátor eredményhalmazának oszlopaihoz:

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"}}]')

A MultiJSON formátum itt használatos, mert egyetlen JSON-rekord több sorra van osztva.

A leképezési szintaxisról további információt az adatleképezések című témakörben talál.