分析视图简介

本文档介绍了分析视图以及您可能需要创建分析视图的情况。它还介绍了分析视图与已保存的查询之间的区别。

概览

分析视图是一种您可以查询的资源。也就是说,在定义分析视图后,您可以编写查询,并在 FROM 子句中指定分析视图。

使用分析视图的主要好处是,您不受 API 或系统定义的数据格式的限制。分析视图可让您定义架构,从而简化查询或减少编写查询所花费的时间。分析视图中的查询可以执行以下操作:仅保留特定字段、重命名字段、将嵌套字段移至顶层列,以及执行分组和聚合。

分析视图不是物化视图。分析视图不是定期缓存查询结果的预计算视图。因此,查询分析视图相当于查询分析视图的查询中列出的视图。

分析视图比已保存的查询更强大,已保存的查询是指您在 Observability Analytics 页面上运行,然后保存的查询。您可以重新运行已保存的查询,但无法查询已保存的查询的结果。

分析视图的类型

分析视图分为两种类型:用户定义的分析视图和系统定义的分析视图:

  • 用户定义的分析视图是您创建的任何分析视图。您可以查询、修改和删除用户定义的分析视图。

  • 系统定义的分析视图是由Google Cloud 服务创建的分析视图。您可以查询系统定义的分析视图。不过,您无法修改或删除这些视图。

如需了解如何列出Google Cloud 项目中的分析视图,请参阅列出分析视图

分析视图的位置

分析视图的位置由其查询的资源的位置决定。例如,如果某个分析视图查询位于 global 位置的可观测性视图,则该分析视图的位置也必须是 global。当您使用 Google Cloud 控制台 创建分析视图时,系统会自动设置位置。

应用场景示例

分析视图的主要好处是,您不受系统定义的数据格式的限制。分析视图可让您定义架构,从而简化查询或减少编写查询所花费的时间。

提取跟踪服务名称

假设您要编写用于分析跟踪数据的查询,并且想要显示或按合成的服务名称进行分组。分析视图的查询使用 COALESCE 函数确定 span 的服务名称,该函数按顺序评估表达式列表,并返回第一个不评估为 NULL 的表达式的值:

SELECT
  start_time,
  -- Set the value of service name based on the first non-null value in the list.
  COALESCE(
    JSON_VALUE(resource.attributes, '$."service.name"'),
    JSON_VALUE(attributes, '$."service.name"'),
    JSON_VALUE(attributes, '$."g.co/gae/app/module"')) AS service_name,
  name AS span_name,
  duration_nano,
  status.code AS status,
  trace_id,
  span_id
FROM
  `PROJECT_ID.us._Trace.Spans._AllSpans`
LIMIT 10

在使用查询之前,请将 PROJECT_ID 替换为您的 Google Cloud 项目 ID。

限制

以下限制适用于分析视图:

  • 分析视图只能查询可观测性视图。
  • 分析视图的父级资源必须是 Google Cloud 项目。
  • 您只能使用 Observability Analytics 页面查询分析视图,并且只能在使用 Observability Analytics (default) 查询引擎时进行查询。
  • 分析视图查询的所有视图都必须位于同一位置。
  • 您必须使用 Google Cloud 控制台创建或管理您的 分析视图。
  • 您最多可以为每个项目创建 100 个分析视图。 Google Cloud
  • 您最多可以为每个区域创建 50 个分析视图。
  • 每个项目中最多可以有 10 个区域包含分析视图。 Google Cloud

后续步骤