В этой статье объясняется, как создать пользовательскую таблицу с помощью примера правила сбора данных (DCR) и управления схемами таблиц с помощью настраиваемых столбцов.
Правила сбора данных (DCR) управляют способом сбора данных Azure Monitor. Они позволяют фильтровать и преобразовывать данные журнала до достижения Azure или настраиваемой таблицы.
Настраиваемые столбцы расширяют схему таблицы для изменения в источнике данных или требованиях к анализу вашей организации. При обновлении схемы таблицы обновите все DCR, которые отправляют данные в эту таблицу.
Предварительные условия
| Действие |
Требования к разрешениям |
| Управление таблицей |
Microsoft.OperationalInsights/workspaces/* разрешение на уровне рабочей области Log Analytics или выше. Например, как в случае с привилегированной встроенной ролью участник Log Analytics. |
Чтобы получить данные в таблицу, может потребоваться следующее:
- Конечная точка сбора данных (DCE). Дополнительные сведения см. в разделе DCE.
- Пример по крайней мере одной записи исходных данных в JSON-файле. Используйте этот пример для создания пользовательских таблиц на портале, например при сборе источников данных текста и JSON на виртуальных машинах.
Рассмотрим следующие дополнительные требования:
- Все таблицы в рабочей области Log Analytics должны иметь
TimeGenerated столбец, определяющий время приема записи. Если столбец отсутствует, Azure Monitor автоматически добавляет его в преобразование для таблицы в DCR. Дополнительные сведения см. в поддерживаемых форматах datetime.
- Планы таблиц Auxiliary/Lake поддерживают только столбец
TimeGenerated в формате ISO 8601 с точностью до шести знаков после запятой (микросекунды). Дополнительные сведения см. в поддерживаемом формате даты и времени ISO 8601.
Создание настраиваемой таблицы
Таблицы Azure имеют предопределенные схемы. Чтобы хранить данные журнала в другой схеме, используйте правила сбора данных для определения способа сбора, преобразования и отправки данных в настраиваемую таблицу в рабочей области Log Analytics. При создании пользовательской таблицы выберите план таблицы (Аналитика (по умолчанию), Базовый или Вспомогательный / Lake) в зависимости от использования данных и требований к стоимости.
Пользовательские таблицы имеют суффикс _CL; например, имя_таблицы_CL. Портал Azure автоматически добавляет суффикс _CL в имя таблицы. При создании настраиваемой таблицы с помощью другого метода необходимо добавить суффикс _CL самостоятельно. Свойство tablename_CL в DataFlows Streams, которое находится в правилах сбора данных, должно совпадать с именем tablename_CL в рабочей области Log Analytics.
Предупреждение
Azure использует имена таблиц при выставлении счетов, поэтому не указывайте в имени конфиденциальную информацию.
Чтобы создать пользовательскую таблицу с помощью портала Azure, выполните следующие действия.
В меню рабочих областей Log Analytics выберите "Таблицы".
Нажмите кнопку "Создать".
Введите имя и, при необходимости, описание таблицы. Вам не нужно добавлять суффикс _CL в имя настраиваемой таблицы. На портале автоматически добавляется суффикс в указанное имя.
В разделе "План таблицы" выберите "Аналитика " (по умолчанию), "Базовый" или " Вспомогательный" или "Озеро".
Выберите существующее правило сбора данных в раскрывающемся списке правила сбора данных или выберите команду "Создать новое правило сбора данных" и укажите подписку, группу ресурсов и имя для нового правила сбора данных.
Выберите конечную точку сбора данных и нажмите кнопку "Далее". Если вы выбрали DCR, который уже связан с DCE, этот раскрывающийся список недоступен.
Выберите "Обзор файлов " и найдите JSON-файл с примерами данных для новой таблицы. На следующем снимке экрана используется пример JSON-файла из скрипта в руководстве. Отправка данных в журналы Azure Monitor.
Если образец данных не содержит TimeGenerated столбец, вы получите сообщение о том, что портал создает преобразование с этим столбцом.
Если вы хотите преобразовать данные журнала перед приемом в таблицу:
Выберите редактор преобразования.
Редактор преобразования позволяет создать преобразование для входящего потока данных. Преобразование — это запрос на языке запросов Kusto (KQL), который выполняется для каждой поступающей записи. Журналы Azure Monitor хранят результаты запроса в целевой таблице.
Выберите "Выполнить" , чтобы просмотреть результаты.
Нажмите кнопку "Применить" , чтобы сохранить преобразование и просмотреть схему новой таблицы. Нажмите кнопку Далее.
Проверьте окончательные сведения и нажмите кнопку "Создать ", чтобы сохранить пользовательский журнал.
- Создайте настраиваемую таблицу. В этом примере с помощью команды
az monitor log-analytics workspace table create создается пользовательская таблица с планом Analytics. Затем он создает DCR, который определяет, как собирать данные из источника данных и отправлять их в пользовательскую таблицу.
subscriptionId="aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e"
resourceGroupName="myResourceGroup"
workspaceName="myWorkspace"
tableName_CL="myTable_CL"
az account set --subscription "$subscriptionId"
az monitor log-analytics workspace table create \
--resource-group "$resourceGroupName" \
--workspace-name "$workspaceName" \
--name "$tableName_CL" \
--plan Analytics \
--columns TimeGenerated=datetime RawData=string
Чтобы создать пользовательскую таблицу с Auxiliary планом, используйте az rest команду для отправки PUT запроса в REST API управления журналами. Текст запроса указывает схему таблицы и план таблицы.
subscriptionId="aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e"
resourceGroupName="myResourceGroup"
workspaceName="myWorkspace"
tableName_CL="myTable_CL"
apiVersion="2025-07-01"
providers="Microsoft.OperationalInsights/workspaces/$workspaceName/tables/$tableName_CL"
resourceId="/subscriptions/$subscriptionId/resourceGroups/$resourceGroupName/providers/$providers"
payloadFile="./my-table.json"
az account set --subscription $subscriptionId
az rest \
--method put \
--uri "$resourceId?api-version=$apiVersion" \
--body @"$payloadFile"
Note
В этом примере перечислены все поддерживаемые типы данных столбцов, кроме guid. GUID хранятся и запрашиваются как тип string, даже если столбец таблицы имеет тип guid.
Разверните, чтобы просмотреть файл my-table.json.
{
"properties": {
"schema": {
"name": "myTable_CL",
"columns": [
{
"name": "TimeGenerated",
"type": "dateTime"
},
{
"name": "StringProperty",
"type": "string"
},
{
"name": "IntProperty",
"type": "int"
},
{
"name": "LongProperty",
"type": "long"
},
{
"name": "RealProperty",
"type": "real"
},
{
"name": "BooleanProperty",
"type": "boolean"
},
{
"name": "DateTimeProperty",
"type": "dateTime"
},
{
"name": "DynamicProperty",
"type": "dynamic"
}
]
},
"totalRetentionInDays": 365,
"plan": "Auxiliary"
}
}
Создайте правило сбора данных, которое собирает данные из источника данных и отправляет его в пользовательскую таблицу. В этом примере группа команд правил сбора данных az monitor используется для создания DCR, который собирает данные из источника Syslog и отправляет его в пользовательскую таблицу, созданную на предыдущем шаге.
subscriptionId="aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e"
resourceGroupName="myResourceGroup"
dataCollectionRuleName="myDataCollectionRule"
ruleFile="./my-dcr.json"
az account set --subscription "$subscriptionId"
az extension add --name monitor-control-service
az monitor data-collection rule create \
--resource-group "$resourceGroupName" \
--name "$dataCollectionRuleName" \
--rule-file "$ruleFile"
Note
команды Azure CLI используют конечную точку Azure Resource Manager из текущего контекста CLI, поэтому management.azure.com не требуется указывать в синтаксисе команды.
Разверните, чтобы просмотреть файл my-dcr.json.
{
"location": "eastus",
"kind": "Direct",
"properties": {
"streamDeclarations": {
"myTable": {
"columns": [
{
"name": "TimeGenerated",
"type": "dateTime"
},
{
"name": "StringProperty",
"type": "string"
},
{
"name": "IntProperty",
"type": "int"
},
{
"name": "LongProperty",
"type": "long"
},
{
"name": "RealProperty",
"type": "real"
},
{
"name": "BooleanProperty",
"type": "boolean"
},
{
"name": "DateTimeProperty",
"type": "dateTime"
},
{
"name": "DynamicProperty",
"type": "dynamic"
}
]
}
},
"destinations": {
"logAnalytics": [
{
"workspaceResourceId": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/myResourceGroup/providers/Microsoft.OperationalInsights/workspaces/myWorkspace",
"name": "myWorkspace"
}
]
},
"dataFlows": [
{
"streams": [
"myTable"
],
"transformKql": "source",
"destinations": [
"myWorkspace"
],
"outputStream": "Custom-myTable_CL"
}
]
}
}
- Создайте таблицу. В этом примере создается настраиваемая таблица с
"plan": "Auxiliary" в полезной нагрузке запроса.
Note
В этом примере перечислены все поддерживаемые типы данных столбцов, кроме guid. GUID хранятся и запрашиваются как тип string, даже если столбец таблицы имеет тип guid.
PUT https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.OperationalInsights/workspaces/{workspaceName}/tables/{tableName_CL}?api-version={apiVersion}
Authorization: Bearer {token}
Content-Type: application/json
{
"properties": {
"schema": {
"name": "{tableName_CL}",
"columns": [
{"name": "TimeGenerated",
"type": "dateTime"},
{"name": "StringProperty",
"type": "string"},
{"name": "IntProperty",
"type": "int"},
{"name": "LongProperty",
"type": "long"},
{"name": "RealProperty",
"type": "real"},
{"name": "BooleanProperty",
"type": "boolean"},
{"name": "DateTimeProperty",
"type": "dateTime"},
{"name": "DynamicProperty",
"type": "dynamic"}
]
},
"totalRetentionInDays": 365,
"plan": "Auxiliary"
}
}
Создайте правило сбора данных. Вот пример с kind, установленным в значение Direct. Для этого типа DCR не требуется конечная точка сбора данных (DCE), так как она создает собственную logsIngestion конечную точку.
-
myWorkspace — имя рабочей области Log Analytics.
-
myTable_CL — имя таблицы.
-
columns содержит те же столбцы, которые вы определили при создании таблицы.
PUT https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Insights/dataCollectionRules/{dataCollectionRuleName}?api-version={apiVersion}
Authorization: Bearer {token}
Content-Type: application/json
{
"location": "eastus",
"kind": "Direct",
"properties": {
"streamDeclarations": {
"myTable": {
"columns": [
{
"name": "TimeGenerated",
"type": "dateTime"
},
{
"name": "StringProperty",
"type": "string"
},
{
"name": "IntProperty",
"type": "int"
},
{
"name": "LongProperty",
"type": "long"
},
{
"name": "RealProperty",
"type": "real"
},
{
"name": "BooleanProperty",
"type": "boolean"
},
{
"name": "DateTimeProperty",
"type": "dateTime"
},
{
"name": "DynamicProperty",
"type": "dynamic"
}
]
}
},
"destinations": {
"logAnalytics": [
{
"workspaceResourceId": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/myResourceGroup/providers/Microsoft.OperationalInsights/workspaces/myWorkspace",
"name": "myWorkspace"
}
]
},
"dataFlows": [
{
"streams": [
"myTable"
],
"transformKql": "source",
"destinations": [
"myWorkspace"
],
"outputStream": "Custom-myTable_CL"
}
]
}
}
- Создайте таблицу с помощью команды
New-AzOperationalInsightsTable или Invoke-AzRestMethod. В этом примере используется New-AzOperationalInsightsTable команда для создания настраиваемой таблицы с Analytics планом.
$subscriptionId = "aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e"
$resourceGroupName = "myResourceGroup"
$workspaceName = "myWorkspace"
$tableName_CL = "myTable_CL"
$payloadFile = ".\my-table.json"
Set-AzContext -Subscription $subscriptionId
$tableParams = @{
ResourceGroupName = $resourceGroupName
WorkspaceName = $workspaceName
TableName = $tableName_CL
RetentionInDays = 31
TotalRetentionInDays = 365
Plan = 'Analytics'
Description = 'My custom table created with PowerShell'
Payload = Get-Content -Raw -Path $payloadFile
Column = @{'TimeGenerated'='DateTime'; 'RawData'='String'}
}
New-AzOperationalInsightsTable @tableParams
Чтобы создать пользовательскую таблицу с Auxiliary планом, используйте Invoke-AzRestMethod команду для отправки PUT запроса в REST API управления журналами. Текст запроса указывает схему таблицы и план таблицы.
$subscriptionId = "aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e"
$resourceGroupName = "myResourceGroup"
$workspaceName = "myWorkspace"
$tableName_CL = "myTable_CL"
$apiVersion = "2025-07-01"
$providers = "Microsoft.OperationalInsights/workspaces/$workspaceName/tables/$tableName_CL"
$resourceId = "/subscriptions/$subscriptionId/resourceGroups/$resourceGroupName/providers/$providers"
$payloadFile = ".\my-table.json"
Set-AzContext -Subscription $subscriptionId
$restParams = @{
Method = "PUT"
Path = "$resourceId?api-version=$apiVersion"
Payload = Get-Content -Raw -Path $payloadFile
}
Invoke-AzRestMethod @restParams
Note
В этом примере перечислены все поддерживаемые типы данных столбцов, кроме guid. Идентификаторы GUID хранятся и запрашиваются как типы string, даже если столбец таблицы имеет тип guid.
Разверните, чтобы просмотреть файл my-table.json.
{
"properties": {
"schema": {
"name": "myTable_CL",
"columns": [
{
"name": "TimeGenerated",
"type": "dateTime"
},
{
"name": "StringProperty",
"type": "string"
},
{
"name": "IntProperty",
"type": "int"
},
{
"name": "LongProperty",
"type": "long"
},
{
"name": "RealProperty",
"type": "real"
},
{
"name": "BooleanProperty",
"type": "boolean"
},
{
"name": "DateTimeProperty",
"type": "dateTime"
},
{
"name": "DynamicProperty",
"type": "dynamic"
}
]
},
"totalRetentionInDays": 365,
"plan": "Auxiliary"
}
}
Создайте правило сбора данных, которое собирает данные из источника данных и отправляет его в пользовательскую таблицу. В этом примере PowerShell используется командлет New-AzDataCollectionRule для создания DCR, который собирает данные из источника Syslog и отправляет его в пользовательскую таблицу, созданную на предыдущем шаге.
$subscriptionId = "aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e"
$resourceGroupName = "myResourceGroup"
$dataCollectionRuleName = "myDataCollectionRule"
$jsonFilePath = ".\my-dcr.json"
Select-AzSubscription -SubscriptionId $subscriptionId
$dataCollectionRuleParams = @{
Name = $dataCollectionRuleName
ResourceGroupName = $resourceGroupName
JsonFilePath = $jsonFilePath
}
New-AzDataCollectionRule @dataCollectionRuleParams
Note
командлеты Azure PowerShell используют конечную точку Azure Resource Manager из текущего контекста Az, поэтому management.azure.com не требуется указывать в синтаксисе командлета.
Разверните, чтобы просмотреть файл my-dcr.json.
{
"location": "eastus",
"kind": "Direct",
"properties": {
"streamDeclarations": {
"myTable": {
"columns": [
{
"name": "TimeGenerated",
"type": "dateTime"
},
{
"name": "StringProperty",
"type": "string"
},
{
"name": "IntProperty",
"type": "int"
},
{
"name": "LongProperty",
"type": "long"
},
{
"name": "RealProperty",
"type": "real"
},
{
"name": "BooleanProperty",
"type": "boolean"
},
{
"name": "DateTimeProperty",
"type": "dateTime"
},
{
"name": "DynamicProperty",
"type": "dynamic"
}
]
}
},
"destinations": {
"logAnalytics": [
{
"workspaceResourceId": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/myResourceGroup/providers/Microsoft.OperationalInsights/workspaces/myWorkspace",
"name": "myWorkspace"
}
]
},
"dataFlows": [
{
"streams": [
"myTable"
],
"transformKql": "source",
"destinations": [
"myWorkspace"
],
"outputStream": "Custom-myTable_CL"
}
]
}
}
- Создайте таблицу с помощью следующего примера Azure Resource Manager шаблона (шаблон ARM). В этом примере JSON используется тип ресурса Microsoft.OperationalInsights workspaces/tables для создания таблицы Auxiliary / Lake с пользовательской схемой.
Note
В этом примере перечислены все поддерживаемые типы данных столбцов, кроме guid. GUID хранятся и запрашиваются как тип string, даже если столбец таблицы определён как guid.
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"workspaceName": {
"type": "string",
"defaultValue": "myWorkspace"
},
"tableName_CL": {
"type": "string",
"defaultValue": "myTable_CL"
}
},
"resources": [
{
"type": "Microsoft.OperationalInsights/workspaces/tables",
"apiVersion": "2025-07-01",
"name": "[format('{0}/{1}', parameters('workspaceName'), parameters('tableName_CL'))]",
"properties": {
"schema": {
"name": "[parameters('tableName_CL')]",
"columns": [
{
"name": "TimeGenerated",
"type": "dateTime"
},
{
"name": "StringProperty",
"type": "string"
},
{
"name": "IntProperty",
"type": "int"
},
{
"name": "LongProperty",
"type": "long"
},
{
"name": "RealProperty",
"type": "real"
},
{
"name": "BooleanProperty",
"type": "boolean"
},
{
"name": "DateTimeProperty",
"type": "dateTime"
},
{
"name": "DynamicProperty",
"type": "dynamic"
}
]
},
"totalRetentionInDays": 365,
"plan": "Auxiliary"
}
}
]
}
Создайте правило сбора данных, которое собирает данные из источника данных и отправляет его в пользовательскую таблицу. В следующем примере шаблона ARM используется тип ресурса Microsoft.Insights dataCollectionRules.
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"dataCollectionRuleName": {
"type": "string",
"defaultValue": "myDataCollectionRule",
"metadata": {
"description": "Specifies the name of the data collection rule to create."
}
},
"location": {
"type": "string",
"defaultValue": "eastus",
"metadata": {
"description": "Specifies the region in which to create the data collection rule. It must be the same region as the destination Log Analytics workspace."
}
},
"workspaceResourceId": {
"type": "string",
"defaultValue": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/myResourceGroup/providers/Microsoft.OperationalInsights/workspaces/myWorkspace",
"metadata": {
"description": "The Azure resource ID of the Log Analytics workspace in which you created a custom table with the Auxiliary plan."
}
}
},
"resources": [
{
"type": "Microsoft.Insights/dataCollectionRules",
"name": "[parameters('dataCollectionRuleName')]",
"location": "[parameters('location')]",
"apiVersion": "2025-07-01",
"kind": "Direct",
"properties": {
"streamDeclarations": {
"myTable": {
"columns": [
{
"name": "TimeGenerated",
"type": "dateTime"
},
{
"name": "StringProperty",
"type": "string"
},
{
"name": "IntProperty",
"type": "int"
},
{
"name": "LongProperty",
"type": "long"
},
{
"name": "RealProperty",
"type": "real"
},
{
"name": "BooleanProperty",
"type": "boolean"
},
{
"name": "DateTimeProperty",
"type": "dateTime"
},
{
"name": "DynamicProperty",
"type": "dynamic"
}
]
}
},
"destinations": {
"logAnalytics": [
{
"workspaceResourceId": "[parameters('workspaceResourceId')]",
"name": "myWorkspace"
}
]
},
"dataFlows": [
{
"streams": [
"myTable"
],
"transformKql": "source",
"destinations": [
"myWorkspace"
],
"outputStream": "Custom-myTable_CL"
}
]
}
}
],
"outputs": {
"dataCollectionRuleId": {
"type": "string",
"value": "[resourceId('Microsoft.Insights/dataCollectionRules', parameters('dataCollectionRuleName'))]"
}
}
}
Создайте таблицу, используя следующий пример Bicep. В примере используется тип ресурса Microsoft.OperationalInsights workspaces/tables для создания вспомогательной таблицы с пользовательской схемой.
В примере перечислены все поддерживаемые типы данных столбцов, кроме guid. Log Analytics хранит и запрашивает идентификаторы GUID в виде string типов, даже если вы определяете столбец как guid.
param workspaceName string = 'myWorkspace'
param tableName_CL string = 'myTable_CL'
resource workspace 'Microsoft.OperationalInsights/workspaces@2025-07-01' existing = {
name: workspaceName
}
resource table 'Microsoft.OperationalInsights/workspaces/tables@2025-07-01' = {
parent: workspace
name: tableName_CL
properties: {
schema: {
name: tableName_CL
columns: [
{
name: 'TimeGenerated'
type: 'dateTime'
}
{
name: 'StringProperty'
type: 'string'
}
{
name: 'IntProperty'
type: 'int'
}
{
name: 'LongProperty'
type: 'long'
}
{
name: 'RealProperty'
type: 'real'
}
{
name: 'BooleanProperty'
type: 'boolean'
}
{
name: 'DateTimeProperty'
type: 'dateTime'
}
{
name: 'DynamicProperty'
type: 'dynamic'
}
]
}
totalRetentionInDays: 365
plan: 'Auxiliary'
}
}
Создайте DCR с помощью следующего примера Bicep, в котором используется тип ресурса Microsoft.Insights dataCollectionRules.
@description('Specifies the name of the data collection rule to create.')
param dataCollectionRuleName string = 'myDataCollectionRule'
@description('Specifies the region in which to create the data collection rule. It must be the same region as the destination Log Analytics workspace.')
param location string = 'eastus'
@description('The Azure resource ID of the Log Analytics workspace in which you created a custom table with the Auxiliary plan.')
param workspaceResourceId string = '/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/myResourceGroup/providers/Microsoft.OperationalInsights/workspaces/myWorkspace'
resource dataCollectionRule 'Microsoft.Insights/dataCollectionRules@2025-07-01' = {
name: dataCollectionRuleName
location: location
kind: 'Direct'
properties: {
streamDeclarations: {
'myTable': {
columns: [
{
name: 'TimeGenerated'
type: 'dateTime'
}
{
name: 'StringProperty'
type: 'string'
}
{
name: 'IntProperty'
type: 'int'
}
{
name: 'LongProperty'
type: 'long'
}
{
name: 'RealProperty'
type: 'real'
}
{
name: 'BooleanProperty'
type: 'boolean'
}
{
name: 'DateTimeProperty'
type: 'dateTime'
}
{
name: 'DynamicProperty'
type: 'dynamic'
}
]
}
}
destinations: {
logAnalytics: [
{
workspaceResourceId: workspaceResourceId
name: 'myWorkspace'
}
]
}
dataFlows: [
{
streams: [
'myTable'
]
transformKql: 'source'
destinations: [
'myWorkspace'
]
outputStream: 'Custom-myTable_CL'
}
]
}
}
output dataCollectionRuleId string = dataCollectionRule.id
| Variable |
Пример значения |
Purpose |
| host |
management.azure.com |
Неявная конечная точка Azure Resource Manager |
| subscriptionId |
aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e |
Пользовательский ввод |
| resourceGroupName |
myResourceGroup |
Пользовательский ввод |
| workspaceName |
myWorkspace |
Пользовательский ввод |
| tableName_CL |
myTable_CL |
Пользовательский ввод |
| план |
Вспомогательный |
Допустимые значения: Analytics (по умолчанию), Basic. Auxiliary См. схемы таблиц. |
| apiVersion |
2025-07-01 |
Ссылки |
Удалить таблицу
Невозможно удалить таблицы Azure. Как Azure удаляет данные при удалении любой другой таблицы, зависит от типа таблицы.
Дополнительные сведения см. в разделе "Что происходит с данными при удалении таблицы в рабочей области Log Analytics".
Чтобы удалить таблицу из портал Azure, выполните следующие действия.
В меню рабочей области Log Analytics выберите "Таблицы".
Найдите таблицы, которые нужно удалить по имени или выбрав результаты поиска в поле "Тип".
Выберите таблицу, которую нужно удалить, выберите многоточие ( ... ) справа от таблицы, нажмите кнопку "Удалить" и подтвердите удаление, введя "Да".
subscriptionId="aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e"
resourceGroupName="myResourceGroup"
workspaceName="myWorkspace"
tableName_CL="myTable_CL"
az account set --subscription "$subscriptionId"
az monitor log-analytics workspace table delete \
--resource-group "$resourceGroupName" \
--workspace-name "$workspaceName" \
--name "$tableName_CL" \
--yes
DELETE https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.OperationalInsights/workspaces/{workspaceName}/tables/{tableName_CL}?api-version={apiVersion}
Authorization: Bearer {token}
Для этой операции недоступен выделенный командлет Azure PowerShell. Вызов REST API напрямую с помощью Invoke-AzRestMethod.
$subscriptionId = "aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e"
$resourceGroupName = "myResourceGroup"
$workspaceName = "myWorkspace"
$tableName_CL = "myTable_CL"
$apiVersion = "2025-07-01"
$providers = "Microsoft.OperationalInsights/workspaces/$workspaceName/tables/$tableName_CL"
$resourceId = "/subscriptions/$subscriptionId/resourceGroups/$resourceGroupName/providers/$providers"
Set-AzContext -Subscription $subscriptionId
$restParams = @{
Method = "DELETE"
Path = "$resourceId?api-version=$apiVersion"
}
Invoke-AzRestMethod @restParams
| Variable |
Пример значения |
Purpose |
| host |
management.azure.com |
Неявная конечная точка Azure Resource Manager |
| subscriptionId |
aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e |
Пользовательский ввод |
| resourceGroupName |
myResourceGroup |
Пользовательский ввод |
| workspaceName |
myWorkspace |
Пользовательский ввод |
| tableName_CL |
myTable_CL |
Пользовательский ввод |
| apiVersion |
2025-07-01 |
Ссылки |
Добавление или удаление настраиваемого столбца
Пользовательские таблицы позволяют изменять схему, добавляя или удаляя столбцы после создания таблицы. В таблицах Azure можно добавлять и удалять только пользовательские столбцы.
Внимание
При обновлении схемы таблицы обязательно обновите все правила сбора данных, отправляющие данные в таблицу. Схема таблицы, определяемая в правиле сбора данных, определяет, как Azure Monitor передает данные в целевую таблицу. Azure Monitor не обновляет правила сбора данных автоматически при внесении изменений в схему таблицы.
Используйте эти правила при определении имен столбцов для пользовательских таблиц:
- Имена столбцов должны начинаться с буквы (A-Z или a-z).
- После первого символа используйте только буквы, цифры или символы подчеркивания.
- Не используйте пробелы, точки, дефисы или другие знаки препинания в именах столбцов.
- Буквы, отличные от ASCII (например, Ö, É, Ö), не поддерживаются в именах столбцов.
- Имена столбцов чувствительны только к регистру для таблиц Analytics и Basic. Вспомогательная таблица журнала удаляет данные с повторяющимися именами столбцов, если единственное различие имеет значение.
- Имена столбцов должны содержать от 2 до 45 символов.
- Пользовательские имена столбцов в таблицах Azure должны оканчиваться на
_CF.
- Тип GUID — это логическая заметка, но значения хранятся и запрашиваются в виде строк. Дополнительные сведения см. в разделе Типы данных столбцов в журналах Azure Monitor.
- Не используйте имена, конфликтующие с системными или зарезервированными столбцами, включая
id, BilledSizeIsBillableInvalidTimeGeneratedTenantIdTitleTypeUniqueId_ItemId_ResourceGroup_ResourceId_SubscriptionId_TimeReceived
Эти правила схемы являются более строгими, чем общие правила идентификатора Kusto. Kusto может ссылаться на необычные имена свойств с кавыками в запросах, но настраиваемая схема таблицы принимает только буквы, цифры и подчеркивания для имен столбцов.
Чтобы добавить настраиваемый столбец в таблицу в рабочей области Log Analytics, или удалить столбец:
В меню рабочих областей Log Analytics выберите "Таблицы".
Выберите многоточие ( ... ) справа от таблицы, которую вы хотите изменить, и выберите " Изменить схему".
Это действие открывает экран редактора схем .
Прокрутите вниз до раздела "Настраиваемые столбцы" на экране редактора схем.
Чтобы добавить новый столбец, выполните приведенные действия.
- Выберите " Добавить столбец".
- Задайте имя и описание столбца (необязательно) и выберите ожидаемый тип значения в раскрывающемся списке "Тип ".
- Нажмите кнопку "Сохранить", чтобы сохранить новый столбец.
Чтобы удалить столбец, щелкните значок "Удалить " слева от столбца, который требуется удалить.
Чтобы добавить пользовательский столбец:
subscriptionId="aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e"
resourceGroupName="myResourceGroup"
workspaceName="myWorkspace"
tableName="Heartbeat"
az account set --subscription "$subscriptionId"
az monitor log-analytics workspace table update \
--resource-group "$resourceGroupName" \
--workspace-name "$workspaceName" \
--name "$tableName" \
--columns Custom1_CF=string
Чтобы удалить пользовательский столбец, используйте подход REST API или PowerShell. Команда CLI update добавляет столбцы, но не поддерживает удаление столбцов.
Чтобы добавить пользовательский столбец, отправьте PUT запрос с обновленной схемой. Включите новый столбец в columns массив. Запрос возвращает обновленные свойства таблицы.
Чтобы удалить пользовательский столбец, отправьте тот же PUT запрос, но опустите столбец из массива columns . Чтобы удалить все настраиваемые столбцы, отправьте пустой columns массив.
PUT https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.OperationalInsights/workspaces/{workspaceName}/tables/{tableName}?api-version={apiVersion}
Authorization: Bearer {token}
Content-Type: application/json
{
"properties": {
"schema": {
"name": "{tableName}",
"columns": [
{"name": "{columnName}",
"type": "string",
"description": "Custom column description"}
]
}
}
}
Для этой операции недоступен выделенный командлет Azure PowerShell. Вызов REST API напрямую с помощью Invoke-AzRestMethod.
Добавление настраиваемого столбца
$subscriptionId = "aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e"
$resourceGroupName = "myResourceGroup"
$workspaceName = "myWorkspace"
$tableName = "Heartbeat"
$apiVersion = "2025-07-01"
$providers = "Microsoft.OperationalInsights/workspaces/$workspaceName/tables/$tableName"
$resourceId = "/subscriptions/$subscriptionId/resourceGroups/$resourceGroupName/providers/$providers"
$payloadFile = ".\add-column.json"
Set-AzContext -Subscription $subscriptionId
$restParams = @{
Method = "PUT"
Path = "$resourceId?api-version=$apiVersion"
Payload = Get-Content -Raw -Path $payloadFile
}
Invoke-AzRestMethod @restParams
Разверните, чтобы просмотреть файл add-column.json.
{
"properties": {
"schema": {
"name": "Heartbeat",
"columns": [
{
"name": "Custom1_CF",
"type": "string",
"description": "First custom column"
}
]
}
}
}
Вызов PUT возвращает обновленные свойства таблицы, которые включают только что добавленный столбец.
Замена настраиваемого столбца
Чтобы удалить столбец и добавить другой, отправьте PUT запрос, содержащий только столбцы, которые нужно сохранить. Следующий пример заменяет Custom1_CF на Custom2_CF:
Разверните, чтобы просмотреть файл replace-column.json.
{
"properties": {
"schema": {
"name": "Heartbeat",
"columns": [
{
"name": "Custom2_CF",
"type": "datetime",
"description": "Replacement custom column"
}
]
}
}
}
Удаление всех настраиваемых столбцов
Чтобы удалить все настраиваемые столбцы из таблицы, отправьте PUT запрос с пустым columns массивом:
Разверните, чтобы просмотреть файл delete-all-columns.json.
{
"properties": {
"schema": {
"name": "Heartbeat",
"columns": []
}
}
}
| Variable |
Пример значения |
Purpose |
| host |
management.azure.com |
Неявная конечная точка Azure Resource Manager |
| subscriptionId |
aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e |
Пользовательский ввод |
| resourceGroupName |
myResourceGroup |
Пользовательский ввод |
| workspaceName |
myWorkspace |
Пользовательский ввод |
| tableName |
Heartbeat |
Пользовательский ввод |
| Имя столбца |
Custom1_CF |
Пользовательский ввод |
| apiVersion |
2025-07-01 |
Ссылки |
Связанный контент