Operátor externaldata
Operátor externaldata
vrátí tabulku, jejíž schéma je definováno v samotném dotazu a jejíž data se načítají z artefaktu externího úložiště, jako je například objekt blob v Azure Blob Storage nebo soubor v 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ězce úložiště.
Poznámka
Operátor externaldata
podporuje metody ověřování pomocí klíče sdíleného přístupového podpisu (SAS), přístupového klíče a tokenu Microsoft Entra. Další informace najdete v tématu Metody ověřování úložiště.
Poznámka
Pomocí operátoru externaldata
načtěte malé referenční tabulky o kapacitě do 100 MB z artefaktu externího úložiště. 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 se veřejný koncový bod artefaktu úložiště nachází za bránou firewall.
Syntax
externaldata
(
Columnname:
columnType [,
...] )
[
storageConnectionString [,
...] ]
[with
(
propertyName=
propertyValue [,
...])
]
Přečtěte si další informace o konvencích syntaxe.
Parametry
Název | Typ | Vyž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ě, který se má dotazovat. |
propertyName, propertyValue | string |
Seznam volitelných podporovaných vlastností , které určují, jak interpretovat data načtená z úložiště. |
Podporované vlastnosti
Vlastnost | Typ | Description |
---|---|---|
formát | string |
Formát dat. Pokud není zadán, je proveden pokus o zjištění formátu dat z přípony souboru. Výchozí formát 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. |
ingestionMapping | 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.
Standardní omezení dotazů platí také 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 v Azure Blob Storage
Následující příklad ukazuje, jak najít všechny záznamy v tabulce, jejíž UserID
sloupec spadá do známé sady ID uložených (jeden na řádek) v externím úložném souboru. Vzhledem k tomu, že formát dat není zadaný, je TXT
zjištěný formát 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í 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, jak se dotazovat na více datových souborů bez definování externí tabulky.
Poznámka
Operátor nerozpoznal externaldata
dělení dat.
Dotazování hierarchických datových formátů
Pokud chcete dotazovat hierarchický formát dat, 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ý v 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 namapovat 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"}}]')
Tady se MultiJSON
používá formát, protože jeden záznam JSON je rozložený do více řádků.
Další informace o syntaxi mapování najdete v tématu Mapování dat.
Váš názor
https://aka.ms/ContentUserFeedback.
Připravujeme: V průběhu roku 2024 budeme postupně vyřazovat problémy z GitHub coby mechanismus zpětné vazby pro obsah a nahrazovat ho novým systémem zpětné vazby. Další informace naleznete v tématu:Odeslat a zobrazit názory pro