Operátor externaldata
Platí pro: ✅Microsoft Fabric✅Azure Data Explorer✅Azure Monitor✅Microsoft Sentinel
Operátor externaldata
vrátí tabulku, jejíž schéma je definováno v samotném dotazu a jehož data se čtou z artefaktu externího úložiště, například objekt blob ve službě Azure Blob Storage nebo soubor ve službě Azure Data Lake Storage.
Poznámka:
Operátor externaldata
podporuje konkrétní sadu služeb úložiště, jak je uvedeno v části Připojovací řetězec úložiště.
Poznámka:
Operátor externaldata
podporuje klíč sdíleného přístupového podpisu (SAS), přístupový klíč a metody ověřování tokenů Microsoft Entra. Další informace najdete v tématu Metody ověřování úložiště.
Poznámka:
Pomocí operátoru externaldata
můžete z artefaktu externího úložiště načíst malé referenční tabulky o velikosti až 100 MB. Operátor není určený pro velké objemy dat. Pokud chcete načíst velké objemy externích dat, doporučujeme ingestovat externí data do Log Analytics jako vlastní protokoly.
Tento operátor se nepodporuje, pokud je veřejný koncový bod artefaktu úložiště za bránou firewall.
Syntaxe
externaldata
columnName:
columnType [,
...] )
[
(
storageConnectionString [ ...] ]
[with
(
,
propertyName =
propertyValue [,
...]])
Přečtěte si další informace o konvencích syntaxe.
Parametry
Název | Type | Požadováno | Popis |
---|---|---|---|
columnName, columnType | string |
✔️ | Seznam názvů sloupců a jejich typů Tento seznam definuje schéma tabulky. |
storageConnectionString | string |
✔️ | Úložiště připojovací řetězec artefaktu úložiště k dotazování. |
propertyName, propertyValue | string |
Seznam volitelných podporovaných vlastností , které určují, jak interpretovat data načtená z úložiště. |
Podporované vlastnosti
Vlastnost | Type | Popis |
---|---|---|
format | string |
Formát dat. Pokud není zadaný, provede se pokus o zjištění datového formátu z přípony souboru. Výchozí hodnota je CSV . Podporují se všechny formáty dat příjmu dat. |
ignoreFirstRecord | bool |
Pokud je nastavená hodnota true , první záznam v každém souboru se ignoruje. Tato vlastnost je užitečná při dotazování souborů CSV pomocí hlaviček. |
příjem dat – mapování | string |
Určuje, jak mapovat data ze zdrojového souboru na skutečné sloupce v sadě výsledků operátoru. Viz mapování dat. |
Poznámka:
Tento operátor nepřijímá žádný vstup kanálu.
Omezení standardních dotazů platí i pro dotazy na externí data.
Návraty
Operátor externaldata
vrátí tabulku dat daného schématu, jejíž data byla analyzována ze zadaného artefaktu úložiště označeného připojovací řetězec úložiště.
Příklady
Načtení seznamu ID uživatelů uložených ve službě Azure Blob Storage
Následující příklad ukazuje, jak najít všechny záznamy v tabulce, jejichž UserID
sloupec spadá do známé sady ID uchovávané (jeden na řádek) v souboru externího úložiště. Vzhledem k tomu, že formát dat není zadaný, je zjištěný formát TXT
dat .
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
]))
| ...
Dotazování na více datových souborů
Následující příklad dotazuje více datových souborů uložených v externím úložišti.
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
Výše uvedený příklad si můžete představit jako rychlý způsob dotazování na více datových souborů bez definování externí tabulky.
Poznámka:
Operátor nerozpozná externaldata
dělení dat.
Dotazování na hierarchické formáty dat
Chcete-li dotazovat hierarchický datový formát, například JSON
, Parquet
, Avro
nebo ORC
, ingestionMapping
musí být zadán ve vlastnostech operátoru.
V tomto příkladu je soubor JSON uložený ve službě Azure Blob Storage s následujícím obsahem:
{
"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"
}
}
...
Chcete-li dotazovat tento soubor pomocí operátoru externaldata
, musí být zadáno mapování dat. Mapování určuje, jak mapovat pole JSON na sloupce sady výsledků operátoru:
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"}}]')
Tento MultiJSON
formát se používá, protože jednotlivé záznamy JSON jsou rozložené na několik řádků.
Další informace o syntaxi mapování najdete v tématu Mapování dat.