externaldata operátor
A következőkre vonatkozik: ✅Microsoft Fabric✅Azure Data Explorer✅Azure Monitor✅Microsoft Sentinel
A externaldata
operátor egy 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ási összetevőből olvassa be, például az Azure Blob Storage-ban lévő blobból vagy egy Azure Data Lake Storage-fájlból.
Jegyzet
A externaldata
operátor a következőket támogatja:
- a Storage kapcsolati sztringek.
- közös hozzáférési aláírási (SAS-) kulcs, hozzáférési kulcs és Microsoft Entra Token hitelesítési módszerek. További információ: Storage-hitelesítési módszerek.
Jegyzet
A externaldata
operátorral akár 100 MB méretű kis referenciatáblákat is lekérhet egy külső tárolóösszetevőből. Az operátort nem nagy adatkötetekhez tervezték. Nagy mennyiségű külső adat lekéréséhez javasoljuk, a külső adatokat egyéni naplókénta Log Analyticsbe tölteni.
Ez az operátor nem támogatott, ha a tárolási összetevő nyilvános végpontja tűzfal mögött található.
Szintaxis
externaldata
(
columnName:
columnType [,
...] )
[
storageConnectionString [,
...] ]
[with
(
propertyName=
propertyValue [,
...])
]
További információ szintaxiskonvenciákról.
Paraméterek
Név | Típus | Szükséges | 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óösszetevő tárolókapcsolati sztringje. |
propertyName, propertyValue | string |
Az opcionális támogatott tulajdonságok listája, amelyek meghatározzák a tárolóból lekért adatok értelmezését. |
Támogatott tulajdonságok
Ingatlan | Típus | Leírás |
---|---|---|
formátum | string |
Az adatformátum. Ha nincs meghatározva, megkísérli észlelni az adatformátumot a fájlkiterjesztésből. Az alapértelmezett érték a CSV . A betöltési adatformátumok támogatottak. |
ignoreFirstRecord | bool |
Ha true értékre van állítva, a rendszer minden fájl első rekordját figyelmen kívül hagyja. Ez a tulajdonság akkor hasznos, ha CSV-fájlokat kérdez le fejlécekkel. |
ingestionMapping | string |
Azt jelzi, hogyan képezheti le az adatokat a forrásfájlból az operátor eredményhalmazának tényleges oszlopaihoz. Lásd: adatleképezések. |
Jegyzet
Ez az operátor nem fogad el folyamatbemenetet.
A standard lekérdezési korlátok külső adat lekérdezésekre is vonatkoznak.
Visszatér
A 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 elemezte a tárkapcsolati sztring.
Példák
A példák egy külső tárfájlban lévő adatokat kérdeznek le.
Az Azure Blob Storage-ban 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ókészletbe tartozik, amely egy külső tárolófájlban található (soronként egy). Mivel az adatformátum nincs megadva, az észlelt adatformátum 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ábladefiniálása nélkül.
Jegyzet
Az externaldata
operátor nem ismeri fel az adatparticionálást.
Hierarchikus adatformátumok lekérdezése
A hierarchikus adatformátum (például JSON
, Parquet
, Avro
vagy ORC
) lekérdezéséhez ingestionMapping
kell megadni az operátor tulajdonságai között.
Ebben a példában egy JSON-fájl van tárolva az Azure Blob Storage-ban 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 externaldata
operátorral való lekérdezéséhez adatleképezést kell megadni. 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 azért használatos itt, mert az egyes JSON-rekordok több sorba vannak osztva.
Kapcsolódó tartalom
További információ a leképezési szintaxisról: adatleképezések.