sql_analytic_model_name(适用于视图)

此页面指的是属于视图sql_analytic_model_name 参数。

sql_analytic_model_name 还可以用作探索的一部分,如 sql_analytic_model_name(适用于探索)参数文档页面中所述。

用法

view: view_name {
  sql_analytic_model_name: analytic_model_name ;;
}
层次结构
sql_analytic_model_name
默认值

接受
数据库内分析模型名称

特殊规则
  • 分析模型仅支持 BigQuery 和 Snowflake 连接。
  • sql_analytic_model_name 引用的分析模型必须在其模型的数据库连接中可访问
  • 如果分析模型位于不同于您在数据库连接中定义的默认路径的数据库、架构、项目或数据集中,您必须限定分析模型名称的范围

定义

对于 BigQuery 和 Snowflake 连接,sql_analytic_model_name 参数用于指定现有数据库内分析模型BigQuery 图Snowflake 中的语义视图)的名称,以用作 LookML 视图的基础。这样一来,您就可以利用直接在数据库中定义的分析模型,例如 BigQuery GraphSnowflake 中的语义视图

在这种情况下,分析模型对象已存在于您的数据库中,并由您的数据库进行管理;分析模型不是由 Looker 创建、维护或管理的。这类似于使用 sql_table_name 作为 LookML 视图公开的常规数据库表不受 Looker 管理的情况。

在 LookML 视图文件中,使用 sql_analytic_model_name 参数将 Looker 指向数据库中的分析模型。然后,创建 Looker 维度和度量,以映射到分析模型,这样您就可以使用 Looker 查询分析模型。

确定分析模型名称的范围

如果您仅使用分析模型名称来引用分析模型,Looker 会使用 Looker 管理员在数据库连接设置中配置的默认搜索路径(数据库和架构)。

如果您需要在其他数据库和架构中引用不在数据库用户默认搜索路径中的分析模型,可以使用 <database_name>.<schema_name>.<analytic_model_name> 格式限定分析模型名称,以指向其他数据库或架构:

  • 如需引用其他架构中的分析模型,请使用 <schema_name>.<analytic_model_name>
  • 如需引用其他数据库中的分析模型,请使用完整的 <database_name>.<schema_name>.<analytic_model_name>

对于 Google BigQuery 连接,您可以使用 <project_name>.<dataset_name>.<analytic_model_name> 格式限定分析模型名称,以引用其他项目和数据集中的分析模型。如需了解详情,请参阅 Google BigQuery 连接文档页面。

根据分析视图创建 LookML 维度和测量

创建视图文件并将分析模型标识为 sql_analytic_model_name 后,您可以在同一视图文件中定义基于该分析模型的 LookML 维度和度量。

如需了解用于引用分析模型中元素的正确 SQL 语法,请参阅相应方言的文档。例如,如需从 BigQuery 图实体创建 LookML 维度,您必须在确定范围时使用下划线分隔元素。例如,对于 BigQuery Graph,此 LookML 维度基于 Stores 节点表中的 location_id 属性:

  dimension: location_id {
    type: number
    sql: Stores_location_id ;;
  }

不过,如需创建基于 Snowflake 语义视图的 LookML 维度,您必须使用指标或维度的非限定名称。

示例

以下是一个名为 StoreGraph 的 BigQuery Graph 示例,该图是在 BigQuery 数据库上定义的:

CREATE OR REPLACE PROPERTY GRAPH mydataset.StoreGraph
  NODE TABLES (
    mydataset.Stores AS S,
    mydataset.Locations AS L
    PROPERTIES(id, name, population, MEASURE(SUM(population)) AS total_population)
  )
  EDGE TABLES (
    mydataset.Stores AS SL
    SOURCE KEY (location_id) REFERENCES L (id)
    DESTINATION KEY (name) REFERENCES S (name)
  );

下面是一个基于 StoreGraph BigQuery 图的 LookML 视图示例,其中包含映射到该图的维度和度量:

view: MyStoreGraphView {
  sql_analytic_model_name: StoreGraph ;;

  dimension: location_id {
    type: number
    sql: Stores_location_id ;;
  }

  dimension: population {
    type: number
    sql: Locations_population ;;
  }

  dimension: location_name {
    type: string
    sql: Locations_name ;;
  }

  measure: locations_total_population {
    type: number
    sql: Locations_total_population ;;
  }
}

注意事项

Looker 中分析模型的注意事项

使用数据库内分析模型时,请注意以下事项和限制:

  • 数据类型:分析模型仅支持以下维度指标数据类型:

    • 支持的维度和度量:
      • string
      • number
      • date
      • yesno
    • 仅支持以下维度:
      • time
      • date_time
  • 衡量

    • 必须预定义基本度量:必须在底层数据库分析模型中预定义基本度量。Looker 无法通过对分析模型中的维度执行聚合(例如 type: sumtype: count)来定义新的基本度量。
    • 支持基于其他度量的度量:您可以使用 LookML 度量的 sql 参数来执行非聚合计算,该计算使用分析模型中预定义的基本度量。创建基于其他度量的度量时,您无法将新度量定义为汇总度量类型,例如 sumcount。您必须将新指标定义为非聚合指标类型,例如 stringnumberdateyesno。请参阅以下示例:

      measure: average_order_amount {
        type: number
        sql: ROUND(${total_order_amount} / NULLIF(${count_orders}, 0), 2) ;;
      }
      
  • 联接:如果探索的基本视图基于分析模型,则该探索不能包含任何联接。同样,基于分析模型的视图无法联接到具有标准 LookML 基视图的“探索”中。

  • 隐式联接:分析模型不支持依赖于隐式联接的功能。依赖于隐式联接的功能的一些示例包括自定义日历以及使用 type: locationtype: distancetype: zipcode 定义的字段。

  • 分析模型不支持以下功能:

分析模型必须可从当前连接访问

sql_analytic_model_name 参数在 view 对象中使用时,该 view 对象可以在 explore 对象中引用,而 对象又可以在 模型对象中引用。模型对象中定义了数据库 connection。在 sql_analytic_model_name 参数中引用分析模型时,该分析模型需要在模型文件中指定的关联连接中可访问。

默认数据库架构(或对于 Google BigQuery,为结算项目数据集)由 Looker 管理员在创建 Looker 与数据库的连接时定义。