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
, , Parquet
Avro
, 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.
Visszajelzés
https://aka.ms/ContentUserFeedback.
Hamarosan elérhető: 2024-ben fokozatosan kivezetjük a GitHub-problémákat a tartalom visszajelzési mechanizmusaként, és lecseréljük egy új visszajelzési rendszerre. További információ:Visszajelzés küldése és megtekintése a következőhöz: