在 Azure Monitor 中还原日志

还原操作使表中数据的特定时间范围在热缓存中可用于高性能查询。 本文介绍如何还原数据、查询该数据,然后在完成后关闭数据。

权限

若要从存档表还原数据,需要 Log Analytics 工作区的 Microsoft.OperationalInsights/workspaces/tables/writeMicrosoft.OperationalInsights/workspaces/restoreLogs/write 权限,例如,由 Log Analytics 参与者内置角色提供的权限。

何时还原日志

使用还原操作查询“已存档日志”中的数据。 如果你在源表上运行的日志查询无法在 10 分钟的日志查询超时内完成,你还可以使用还原操作在任何 Analytics 表的特定时间范围内对任何 Analytics 表运行功能强大的查询。

注意

还原是访问存档数据的一种方法。 使用还原对特定时间范围内的一组数据运行查询。 使用搜索作业根据特定条件访问数据。

还原有什么作用?

还原数据时,可以指定包含要查询的数据的源表以及要创建的新目标表的名称。

还原操作将创建还原表,并分配其他计算资源,以便使用支持完整 KQL 的高性能查询来查询还原的数据。

目标表提供基础源数据的视图,但不会以任何方式影响它。 该表没有保留设置,你必须在不再需要还原的数据时显式消除还原的数据

还原数据

要从表中还原数据,请调用表 - 创建或更新 API。 目标表的名称必须以 _RST 结尾。

PUT https://management.chinacloudapi.cn/subscriptions/{subscriptionId}/resourcegroups/{resourceGroupName}/providers/Microsoft.OperationalInsights/workspaces/{workspaceName}/tables/{user defined name}_RST?api-version=2021-12-01-preview

请求正文

请求正文必须包含以下值:

名称 Type 说明
properties.restoredLogs.sourceTable string 包含要还原的数据的表。
properties.restoredLogs.startRestoreTime string 还原的时间范围的开始时间。
properties.restoredLogs.endRestoreTime string 还原的时间范围的结束时间。

还原表状态

ProvisioningState 属性指示还原表操作的当前状态。 API 会在你启动还原时返回此属性,你可以稍后使用对表执行 GET 操作来检索此属性。 provisioningState 属性具有下列值之一:

说明
更新 正在执行还原操作。
已成功 还原操作已完成。
正在删除 正在删除还原的表。

示例请求

此示例将 2020 年 1 月的数据从 Usage 表还原到名为 Usage_RST 的表。

请求

PUT https://management.chinacloudapi.cn/subscriptions/00000000-0000-0000-0000-00000000000/resourcegroups/testRG/providers/Microsoft.OperationalInsights/workspaces/testWS/tables/Usage_RST?api-version=2021-12-01-preview

请求正文:

{
    "properties":  {
    "restoredLogs":  {
                      "startRestoreTime":  "2020-01-01T00:00:00Z",
                      "endRestoreTime":  "2020-01-31T00:00:00Z",
                      "sourceTable":  "Usage"
    }
  }
}

查询还原的数据

还原的日志保留其原始时间戳。 在还原的日志上运行查询时,根据最初生成数据的时间设置查询时间范围。

按以下任一方式设置查询时间范围:

  • 在查询编辑器顶部的“时间范围”下拉列表中选择“自定义”,并设置“从”和“到”值。

  • 在查询中指定时间范围。 例如:

    let startTime =datetime(01/01/2022 8:00:00 PM);
    let endTime =datetime(01/05/2022 8:00:00 PM);
    TableName_RST
    | where TimeGenerated between(startTime .. endTime)
    

消除还原的数据

为了节省成本,我们建议你删除已还原的表,以便在不再需要时消除已还原数据。

删除还原的表不会删除源表中的数据。

注意

只要基础源数据可用,还原的数据就可用。 从工作区中删除源表或源表的保留期结束时,将从还原的表中消除数据。 但是,如果不显式删除空表,则将保留该空表。

限制

还原存在以下限制。

可以:

  • 还原至少两天的数据。

  • 最多可还原 60 TB。

  • 在工作区中最多能够同时运行两个还原过程。

  • 在给定时间对某个特定表只能运行一个有效的还原。 对已具有活动还原的表执行第二次还原将失败。

  • 每周内,对每个表最多可以执行四次还原。

定价模型

已还原日志的费用取决于恢复的数据量以及保留每个还原的持续时间。

  • 费用取决于最低的每个还原 2 TB 的已还原数据量。 如果还原的数据较少,则最低需要支付 2 TB 的费用。
  • 根据还原的持续时间按比例计算费用。 最低费用为 12 小时还原持续时间,即使之前取消还原也是如此。
  • 有关详细信息,请参阅 Azure Monitor 定价

例如,如果你的表每天保存 500 GB,而你还原了 10 天的数据,则在你消除还原的数据之前,你需要每天支付 5000 GB 的费用。

注意

查询还原的日志是免费的,因为它们是 Analytics 日志。

后续步骤