数据存储

注意

时序见解服务将于 2024 年 7 月 7 日停用。 请考虑尽快将现有环境迁移到备用解决方案。 有关弃用和迁移的更多信息,请查看我们的 文档

本文介绍 Azure 时序见解第 2 代中的数据存储。 它涵盖暖和冷、数据可用性和最佳做法。

供应

创建 Azure 时序见解第 2 代环境时,有以下选项:

  • 冷数据存储:
    • 在为环境选择的订阅和区域中创建新的 Azure 存储资源。
    • 附加预先存在的 Azure 存储帐户。 此选项只能通过从 Azure 资源管理器 模板进行部署,且在 Azure 门户中不可见。
  • 温存数据存储
    • 温存储是可选的,可以在配置时或之后启用或禁用。 如果决定稍后启用暖存储,并且冷存储中已存在数据,请查看下面的 部分以了解预期行为。 热存储数据保留时间可配置 7 到 31 天,也可以根据需要进行调整。

当一个事件被引入时,它会被编入暖存储系统(如果已启用)和冷存储系统的索引。

存储概述

警告

作为冷存储数据的 Azure Blob 存储帐户的所有者,你可以完全访问该帐户中的所有数据。 此访问权限包括写入和删除权限。 请勿编辑或删除 Azure 时序见解 Gen2 写入的数据,因为这可能会导致数据丢失。

数据可用性

Azure 时序洞察 Gen2 对数据进行分区和索引,以优化查询性能。 数据在编制索引后可用于从暖存储(如果已启用)和冷存储进行查询。 引入的数据量和每分区吞吐量速率可能会影响可用性。 查看事件源 吞吐量限制最佳做法,以获取最佳性能。 您还可以配置一个延迟 警报,以便在您的环境中出现数据处理问题时收到通知。

重要

您可能会遇到数据通过 时序查询 API提供前长达 60 秒的延迟。 如果您遇到显著超过 60 秒的延迟,请通过 Azure 门户提交支持票证。

在直接访问 Azure 时序见解第 2 代外部的 Parquet 文件时,可能需要长达 5 分钟的时间才能获得数据。 有关详细信息,请参阅 Parquet 文件格式 部分。

暖存储

热存储中的数据只能通过 时序查询 APIAzure 时序见解 TSI 资源管理器Power BI 连接器获取。 热存储查询是免费的,没有配额,但对于 并发请求存在 30 个的限制。

暖存储行为

  • 启用后,流入您环境的所有数据都将被路由到温存储,不管事件时间戳如何。 请注意,流式引入管道是为近实时流式处理和引入历史事件而生成的,不支持

  • 保留期是根据事件在暖存储中被编制索引的时间而非事件时间戳来计算的。 这意味着数据在保留期过后不再在热存储中可用,即使事件时间戳指向未来也是如此。

    • 示例:将包含 10 天天气预报的事件引入并索引到配置了 7 天保留期的暖存储容器中。 七天后,预测在热存储中不再可访问,但可以从冷存储中查询。
  • 如果您在已经将最近数据编入索引到冷存储的现有环境中启用暖存储,请注意,暖存储不会重新填充这些数据。

  • 如果您刚刚启用暖存储,且在资源管理器中查看最近数据时遇到问题,您可以暂时关闭暖存储查询:

    禁用暖查询

冷库

本部分介绍与 Azure 时序见解第 2 代相关的 Azure 存储详细信息。

有关 Azure Blob 存储的详细介绍,请阅读 存储 Blob 入门

冷存储帐户

Azure 时序见解 Gen2 最多保留 Azure 存储帐户中每个事件的两个副本。 一个副本存储按引入时间排序的事件,始终允许按时间顺序访问事件。 随着时间的推移,Azure 时序见解 Gen2 还会创建数据重新分区的副本,以针对高性能查询进行优化。

所有数据无限期存储在 Azure 存储帐户中。

警告

不要限制对时序见解使用的存储帐户的公共 Internet 访问,否则必要的连接将中断。

编写和编辑 Blob

若要确保查询性能和数据可用性,请不要编辑或删除 Azure 时序见解 Gen2 创建的任何 Blob。

访问冷存储数据

除了从 Azure 时序见解资源管理器时序查询 API访问数据之外,你可能还希望直接从存储在冷存储中的 Parquet 文件访问数据。 例如,可以在 Jupyter 笔记本中读取、转换和清理数据,然后使用它在同一 Spark 工作流中训练 Azure 机器学习模型。

若要直接从 Azure 存储帐户访问数据,需要对用于存储 Azure 时序见解 Gen2 数据的帐户进行读取访问权限。 然后,可以根据 parquet 文件的创建时间读取所选数据,该文件位于 Parquet 文件格式 部分中所述的 PT=Time 文件夹中。 有关启用对存储帐户的读取访问权限的详细信息,请参阅 管理对存储帐户资源的访问权限

数据删除

请勿删除 Azure 时序见解第 2 代文件。 只在 Azure 时序见解 Gen2 内管理相关数据。

Parquet 文件格式和文件夹结构

Parquet 是一种开源列式文件格式,专为高效存储和性能而设计。 Azure 时序见解 Gen2 使用 Parquet 大规模启用基于时序 ID 的查询性能。

有关 Parquet 文件类型的详细信息,请阅读 Parquet 文档

Azure 时序见解 Gen2 将您的数据存储为副本,具体如下:

  • PT=Time 目录通过引入时间进行分区,并大致按到达顺序存储数据。 此数据会长期保存,并且您可以直接从 Azure 时序见解 Gen2 的外部(例如您的 Spark 笔记本)访问它。 时间戳 <YYYYMMDDHHMMSSfff> 对应于数据的引入时间。 <MinEventTimeStamp><MaxEventTimeStamp> 对应于文件中包含的事件时间戳范围。 路径和文件名的格式为:

    V=1/PT=Time/Y=<YYYY>/M=<MM>/<BlobCreationTimestamp>_<MinEventTimestamp>_<MaxEventTimestamp>_<TsiInternalSuffix>.parquet

  • PT=LivePT=Tsid 文件夹包含数据的第二个副本,针对时序查询性能进行大规模重新分区。 此数据随时间而优化,不是静态的。 在重新分区期间,某些事件可能存在于多个 Blob 中,Blob 名称可能会更改。 这些文件夹由 Azure 时序见解第 2 代使用,不应直接访问;应仅出于此目的使用 PT=Time

注意

从 2021 年 6 月之前 PT=Time 文件夹中的数据可能具有没有事件时间范围的文件名格式:V=1/PT=Time/Y=<YYYY>/M=<MM>/<BlobCreationTimestamp>_<TsiInternalSuffix>.parquet。 内部文件格式相同,具有两种命名方案的文件可以一起使用。

  • <YYYY> 映射为四位数的年份表示形式。
  • <MM> 映射到两位数的月份表示形式。
  • 时间戳的 <YYYYMMDDHHMMSSfff> 格式映射到四位数年份(YYYY)、两位数月份(MM)、两位数日(DD)、两位数小时(HH)、两位数分钟(MM)、两位数秒(SS)和三位数毫秒(fff)。

Azure 时序洞察 Gen2 的事件映射到 Parquet 文件的内容,如下所示:

  • 每个事件映射为一行。
  • 每一行都包含带有事件时间戳的 时间戳 列。 时间戳属性从不为 null。 如果未在事件源中指定时间戳属性,则默认为 事件排队时间。 存储的时间戳始终采用 UTC 格式。
  • 每一行都包含在创建 Azure 时间序列洞察第 2 代环境时定义的时间序列 ID(TSID)列。 TSID 属性名称包括 _string 后缀。
  • 作为遥测数据发送的所有其他属性会根据属性类型映射到不同的列名称,这些列名称以 _bool(布尔)、_datetime(时间戳)、_long(long)、_double(double)、_string(字符串)或 _dynamic(动态)结尾。 有关详细信息,请阅读 支持的数据类型
  • 此映射架构适用于文件格式的第一个版本,该版本被引用为 V=1,并存储在同名的根文件夹中。 随着此功能的发展,此映射架构可能会更改并递增引用名称。

后续步骤