Ett sökjobb är en asynkron fråga som du kör på alla data i Log Analytics – både i analys och långsiktig kvarhållning – som gör frågeresultaten tillgängliga för interaktiva frågor i en ny söktabell på din arbetsyta. Sökjobbet använder parallell bearbetning och kan köras i flera timmar över stora datamängder. Den här artikeln beskriver hur du skapar ett sökjobb och hur du frågar efter dess resulterande data.
Den här videon förklarar när och hur du använder sökjobb:
Behörigheter som krävs
| Åtgärd |
Behörigheter som krävs |
| Köra ett sökjobb |
Microsoft.OperationalInsights/workspaces/tables/write och Microsoft.OperationalInsights/workspaces/searchJobs/write behörigheter till Log Analytics-arbetsytan, som exempel är detta tillhandahållet av den inbyggda rollen Log Analytics Contributor. |
Kommentar
Sökjobb mellan klienter stöds inte. Azure Lighthouse-delegerad åtkomst stöds inte heller för sökjobb (eller återställning) även när en delegerad roll tilldelas som innehåller behörigheten searchJobs/write.
När man ska använda sökjobb
Använd sökjobb för att:
- Hämta poster från långtidslagring och från tabeller med Basic Logs eller Auxiliary Logs till en ny Analytics-loggtabell som har stöd för alla analysfunktioner i Azure Monitor Logs.
- Sök igenom stora mängder data om loggfrågans tidsgräns på 10 minuter inte räcker.
Vad gör ett sökjobb?
Ett sökjobb söker igenom data och skickar dess resultat till en ny tabell på samma arbetsyta som källdata. Resultattabellen är tillgänglig så snart sökjobbet börjar, men det kan ta tid innan resultaten börjar visas. En kostnad uppstår baserat på prismodellen för skannade data och storleken på de inmatade resultaten. Innan ett sökjobb körs finns en kostnadsuppskattning tillgänglig som hjälper dig att avgöra om jobbet ska köras.
Resultattabellen för sökjobbet är en analysloggtabell som är tillgänglig för att logga frågor och andra Azure Monitor funktioner som använder tabeller på en arbetsyta. Tabellen ärver kvarhållningsvärdet som angetts för arbetsytan, som förblir redigerbart när tabellen har skapats.
Schemat för sökresultattabellen baseras på källtabellschemat och den angivna frågan. Följande andra kolumner hjälper dig att spåra källposterna:
| Kolumn |
Värde |
| _OriginalType |
Skriv värde från källtabellen. |
| _OriginalItemId |
_ItemID värde från källtabellen. |
| _OriginaltidGenererad |
TimeGenerated-värde från källtabellen. |
| Tidpunkt för generering |
Tidpunkt då sökjobbet kördes. |
Frågor i resultattabellen visas i loggfrågegranskning men inte det första sökjobbet.
Köra ett sökjobb
Kör ett sökjobb för att hämta poster från stora datamängder till en ny sökresultattabell på din arbetsyta.
Följande kodexempel begränsar resultatet till 1 500 poster. Ange sökfönstret med UTC-tidsstämplar, till exempel 2026-01-01T00:00:00.000Z. Frågan Heartbeat | where ComputerIP has "198.51.100.101" söker till exempel efter poster från en specifik dators IP-adress.
Tips
Du debiteras för att köra ett sökjobb. Skriv och optimera frågan i interaktivt frågeläge innan du kör sökjobbet. Använd förhandsversionen av kostnadsuppskattningen för att förstå de potentiella kostnaderna.
Kör ett sökjobb i Azure Portal:
Från menyn i Log Analytics-arbetsytan väljer du Loggar.
Skriv en sökfråga eller välj den tabell som du vill använda.
Välj ellipsmenyn till höger på skärmen och välj Sökjobb.
Eller använd den nedrullningsfria menyn Kör och välj Kör som sökjobb.
Ange sökjobbets datumintervall med hjälp av tidsväljaren. Välj en period inom den totala kvarhållningsperioden.
Om Kusto-frågan också anger ett tidsintervall, används föreningen av tidsintervallen för sökjobbet.
Ange ett namn för resultattabellen för sökjobbet och välj Kör ett sökjobb.
Azure Monitor Logs kör sökjobbet och skapar en ny tabell på din arbetsyta för ditt sökjobbresultat.
När den nya tabellen är klar väljer du Visa "<searchtablename>_SRCH" för att visa tabellen i Log Analytics.
Sökresultaten är tillgängliga när de börjar flöda in i den nyligen skapade sökresultattabellen.
Azure Monitor-loggar visar att ett sökjobb är klart när det har slutförts. När du ser meddelandet eller när framstegsfältet visar 100%, är resultattabellen klar med alla poster som matchar sökfrågan.
I följande Azure CLI exempel används az monitor log-analytics workspace table search-job create kommandot . Den skapar en tabell med sökresultat för en Log Analytics-arbetsyta genom att köra ett sökjobb. Namnet på resultattabellen, som du anger med hjälp av parametern --name , måste sluta med _SRCH.
# Set variables
resourceGroupName="<ResourceGroupName>"
workspaceName="<WorkspaceName>"
tableName="<TableName>_SRCH"
searchQuery="<SearchQuery>"
startSearchTime="<StartSearchTime>"
endSearchTime="<EndSearchTime>"
limit="1500"
# Create the Log Analytics workspace search results table
az monitor log-analytics workspace table search-job create \
--resource-group "$resourceGroupName" \
--workspace-name "$workspaceName" \
--name "$tableName" \
--search-query "$searchQuery" \
--limit "$limit" \
--start-search-time "$startSearchTime" \
--end-search-time "$endSearchTime" \
--no-wait
Kommentar
Azure CLI-kommandon använder Azure Resource Manager-slutpunkten i den aktuella CLI-kontexten, så management.azure.com inte behöver anges i kommandosyntaxen.
Följande Azure PowerShell exempel använder cmdletenNew-AzOperationalInsightsSearchTable. Den skapar en tabell med sökresultat för en Log Analytics-arbetsyta genom att köra ett sökjobb. Namnet på resultattabellen, som du anger med hjälp av parametern -TableName , måste sluta med _SRCH.
# Set variables
$resourceGroupName = "<ResourceGroupName>"
$workspaceName = "<WorkspaceName>"
$tableName = "<TableName>_SRCH"
$searchQuery = "<SearchQuery>"
$startSearchTime = "<StartSearchTime>"
$endSearchTime = "<EndSearchTime>"
$limit = 1500
# Define parameters for New-AzOperationalInsightsSearchTable
$newAzOperationalInsightsSearchTableParams = @{
ResourceGroupName = $resourceGroupName
WorkspaceName = $workspaceName
TableName = $tableName
SearchQuery = $searchQuery
Limit = $limit
StartSearchTime = $startSearchTime
EndSearchTime = $endSearchTime
}
# Create the Log Analytics workspace search results table
New-AzOperationalInsightsSearchTable @newAzOperationalInsightsSearchTableParams
Kommentar
Azure PowerShell-cmdletar använder Azure Resource Manager-slutpunkten i den aktuella Az-kontexten, så management.azure.com behöver inte anges i cmdletsyntaxen.
I följande REST-exempel används Tables - Create Or Update REST API-åtgärden. Den skapar en tabell med sökresultat för en Log Analytics-arbetsyta genom att köra ett sökjobb. Namnet på resultattabellen måste sluta med _SRCH.
Inkludera följande värden i brödtexten i begäran:
| Namn |
Typ |
Beskrivning |
properties.searchResults.query |
sträng |
Loggfråga skriven i KQL för att hämta data. |
properties.searchResults.limit |
heltal |
Maximalt antal poster i resultatuppsättningen, upp till 100 miljoner poster. (Valfritt) |
properties.searchResults.startSearchTime |
sträng |
Start av tidsintervallet för sökning. |
properties.searchResults.endSearchTime |
sträng |
Slutpunkt för tidsintervallet för sökning. |
Exempelbegäran
I det här exemplet skapas en sökresultattabell för den angivna frågan och tidsintervallet.
PUT https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.OperationalInsights/workspaces/{workspaceName}/tables/{tableName}_SRCH?api-version={apiVersion}
Authorization: Bearer {accessToken}
Content-Type: application/json
{
"properties": {
"searchResults": {
"query": "<SearchQuery>",
"limit": 1500,
"startSearchTime": "<StartSearchTime>",
"endSearchTime": "<EndSearchTime>"
}
}
}
Svar
Statuskod: 202 Accepterad. Begäran har godkänts, men sökjobbet kanske fortfarande körs.
Kontrollera tabellstatusen för att övervaka förloppet.
Kommentar
Malldistributioner är create-or-update-åtgärder, inte partiella PATCH-uppdateringar. Använd ett nytt _SRCH tabellnamn för varje sökjobb.
I följande Bicep-exempel används resurstypen Microsoft.OperationalInsights/workspaces/tables. Distribuera den till den resursgrupp som innehåller arbetsytan.
param workspaceName string = '<WorkspaceName>'
param tableName string = '<TableName>_SRCH'
param searchQuery string = '<SearchQuery>'
param startSearchTime string = '<StartSearchTime>'
param endSearchTime string = '<EndSearchTime>'
resource searchTable 'Microsoft.OperationalInsights/workspaces/tables@<ApiVersion>' = {
name: '${workspaceName}/${tableName}'
properties: {
searchResults: {
query: searchQuery
limit: 1500
startSearchTime: startSearchTime
endSearchTime: endSearchTime
}
}
}
Kommentar
Malldistributioner är create-or-update-åtgärder, inte partiella PATCH-uppdateringar. Använd ett nytt _SRCH tabellnamn för varje sökjobb.
I följande ARM-mallexempel används Microsoft.OperationalInsights/workspaces/tables resurstypen. Distribuera den till den resursgrupp som innehåller arbetsytan.
Skapa en sökresultattabell
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"workspaceName": {
"type": "string",
"defaultValue": "<WorkspaceName>"
},
"tableName": {
"type": "string",
"defaultValue": "<TableName>_SRCH"
},
"searchQuery": {
"type": "string",
"defaultValue": "<SearchQuery>"
},
"startSearchTime": {
"type": "string",
"defaultValue": "<StartSearchTime>"
},
"endSearchTime": {
"type": "string",
"defaultValue": "<EndSearchTime>"
}
},
"resources": [
{
"type": "Microsoft.OperationalInsights/workspaces/tables",
"apiVersion": "<ApiVersion>",
"name": "[format('{0}/{1}', parameters('workspaceName'), parameters('tableName'))]",
"properties": {
"searchResults": {
"query": "[parameters('searchQuery')]",
"limit": 1500,
"startSearchTime": "[parameters('startSearchTime')]",
"endSearchTime": "[parameters('endSearchTime')]"
}
}
}
]
}
Hämta status och information för sökjobb
Kontrollera sökresultattabellen för att spåra sökjobbets förlopp.
Från menyn i Log Analytics-arbetsytan väljer du Loggar.
Hovra över sökresultattabellen från Sökresultat> för att visa förloppet.
Ikonen i resultattabellen för sökjobbet visar en uppdateringsindikatorikon tills sökjobbet har slutförts.
I följande Azure CLI exempel används az monitor log-analytics workspace table show kommandot . Den hämtar status och information om en sökjobbstabell.
# Set variables
resourceGroupName="<ResourceGroupName>"
workspaceName="<WorkspaceName>"
tableName="<TableName>_SRCH"
# Get the status and details of the search job table
az monitor log-analytics workspace table show \
--resource-group "$resourceGroupName" \
--workspace-name "$workspaceName" \
--name "$tableName" \
--output table
Kommentar
Azure CLI-kommandon använder Azure Resource Manager-slutpunkten i den aktuella CLI-kontexten, så management.azure.com inte behöver anges i kommandosyntaxen.
Följande Azure PowerShell exempel använder cmdletenGet-AzOperationalInsightsTable. Den hämtar status och information om en sökjobbstabell.
# Set variables
$resourceGroupName = "<ResourceGroupName>"
$workspaceName = "<WorkspaceName>"
$tableName = "<TableName>_SRCH"
# Define parameters for Get-AzOperationalInsightsTable
$getAzOperationalInsightsTableParams = @{
ResourceGroupName = $resourceGroupName
WorkspaceName = $workspaceName
TableName = $tableName
}
# Get the status and details of the search job table
Get-AzOperationalInsightsTable @getAzOperationalInsightsTableParams
När du inte anger -TableNamevisar cmdleten alla tabeller som är associerade med en arbetsyta.
Kommentar
Azure PowerShell-cmdletar använder Azure Resource Manager-slutpunkten i den aktuella Az-kontexten, så management.azure.com behöver inte anges i cmdletsyntaxen.
I följande REST-exempel används Tables - Get REST API-åtgärden. Den hämtar status och information om en sökjobbstabell.
Status för sökjobbstabell
Egenskapen provisioningState anger det aktuella tillståndet för sökjobbet. API:et returnerar den här egenskapen när du startar sökjobbet och du hämtar den här egenskapen senare med hjälp av en GET åtgärd i tabellen. Egenskapen provisioningState har något av följande värden:
| Värde |
Beskrivning |
| Uppdatera |
Fyller i tabellen och dess schema. |
| InProgress |
Sökjobbet håller på att köras och hämtar data. |
| Lyckades |
Sökjobbet har slutförts. |
| Tas bort |
Tar bort sökjobbstabellen. |
Exempelbegäran
Det här exemplet hämtar tabellstatusen för sökjobbet i föregående exempel.
GET https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.OperationalInsights/workspaces/{workspaceName}/tables/{tableName}_SRCH?api-version={apiVersion}
Authorization: Bearer {accessToken}
Svar
Följande exempelsvar visar en slutförd sökning efter pulsslagsfrågan. Det är förkortat för att fokusera på sökjobbsegenskaper.
{
"properties": {
"retentionInDays": 30,
"totalRetentionInDays": 30,
"archiveRetentionInDays": 0,
"plan": "Analytics",
"lastPlanModifiedDate": "Thu, 08 Jan 2026 00:00:00 GMT",
"schema": {
"name": "HeartbeatByIp_SRCH",
"tableType": "SearchResults",
"description": "This table was created using a Search Job with the following query: 'Heartbeat | where ComputerIP has \"198.51.100.101\"'.",
"columns": [],
"standardColumns": [],
"solutions": [
"LogManagement"
]
},
"searchResults": {
"query": "Heartbeat | where ComputerIP has \"198.51.100.101\"",
"limit": 1500,
"startSearchTime": "2026-01-01T00:00:00.000Z",
"endSearchTime": "2026-01-08T00:00:00.000Z",
"sourceTable": "Heartbeat"
},
"provisioningState": "Succeeded"
},
"id": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/ContosoRG/providers/Microsoft.OperationalInsights/workspaces/ContosoWorkspace/tables/HeartbeatByIp_SRCH",
"name": "HeartbeatByIp_SRCH"
}
Ta bort en sökjobbstabell
Ta bort sökjobbstabellen när du är klar med att fråga tabellen. Den här bästa metoden minskar arbetsytans oreda och extra avgifter för datakvarhållning.
Överväganden
Följande överväganden gäller för sökjobb:
- Optimerad för att köra frågor mot en tabell i taget
- Datumintervallet för sökning är vilken period som helst inom den totala lagringstiden
- Stöder tidskrävande sökningar upp till en tidsgräns på 24 timmar
- Resultaten är begränsade till 100 miljoner poster i postuppsättningen – om gränsen överskrids avbryter Azure Monitor jobbet med statusen partiell framgång och tabellen innehåller endast poster som matas in fram till den punkten
- Samtidig körning är begränsad till tio sökningar per arbetsyta.
- Begränsat till 200 sökresultattabeller per arbetsyta
- Begränsat till 200 sökjobbsutföranden per dag per arbetsyta
- Sökjobb mellan klientorganisationer stöds inte
- Azure Lighthouse-delegerad åtkomst stöds inte för sökjobb även om delegeringen innehåller rätt sökjobb/skrivbehörighet – misslyckas med felmeddelandet:
Användare<managing-tenant-userId>har inte åtkomst till åtgärden Microsoft.OperationalInsights/workspaces/searchJobs/write på omfattningen<delegated-workspace-resourceID>.
KQL-frågeöverväganden
Sökjobb söker igenom stora mängder data i en specifik tabell, så sökjobbsfrågor måste alltid börja med ett tabellnamn. För att aktivera asynkron körning via distribution och segmentering stöder frågan en delmängd av KQL, inklusive följande tabelloperatorer:
Alla funktioner och binära operatorer inom dessa operatorer kan användas.
Strängoperatorn contains blockeras från att användas i sökjobb eftersom avancerade textmatchningar har stor inverkan på prestandan. Använd has i stället strängoperatorn. Mer information om prestandaöverväganden finns i Optimera loggfrågor i Azure Monitor.
Prismodell
Sökjobbsavgiften baseras på:
Körning av sökjobb
Analysloggar – Mängden data som sökjobbet genomsöker som finns i långsiktig kvarhållning.
Kommentar
För analysloggar debiteras ingen kostnad för genomsökning av data som är kvar i analys.
Grundläggande planer eller tilläggsplaner – Alla data som sökjobbet genomsöker inom det efterfrågade tidsintervallet.
Data som genomsöks definieras som mängden data i tabellen som du kör sökjobbet på inom det angivna tidsintervallet. Mer information om analys och långsiktig kvarhållning finns i Hantera datakvarhållning på en Log Analytics-arbetsyta.
Sökresultat – Mängden data som sökjobbet hittar och matar in i resultattabellen, baserat på datainmatningshastigheten för analysloggar.
Prissättningsexempel
Om en sökning i en tabell som innehåller analysloggar sträcker sig över 60 dagar och tabellen matar in 500 GB data per dag, men tabellens kvarhållningsperiod för analys är inställd på 30 dagar, debiteras du för 15 000 GB genomsökta data – endast 30 dagars data i långsiktig kvarhållning. Det kostar inget att skanna 30 dagars data i analyskvarhållningen. Om sökjobbet returnerar 1 000 poster debiteras du för att du matar in dessa 1 000 poster i resultattabellen.
Om en sökning i en tabell som innehåller grundläggande loggar eller tilläggsloggar sträcker sig över 60 dagar och tabellen matar in 500 GB data per dag debiteras du för 30 000 GB genomsökta data. Om sökjobbet returnerar 1 000 poster debiteras du för att du matar in dessa 1 000 poster i resultattabellen.
Mer information finns i Prissättning för Azure Monitor.
Relaterat innehåll