sql_analytic_model_name(适用于探索)

此页面涉及 探索中的 sql_analytic_model_name 参数。

sql_analytic_model_name 还可以用作视图的一部分,如 sql_analytic_model_name(针对视图)参数文档页面中所述。

用法

explore: explore_name {
  sql_analytic_model_name: analytic_model_name ;;
}
层次结构
sql_analytic_model_name
默认值

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

特殊规则
  • 分析模型仅支持 BigQuery 和 Snowflake 连接。
  • 只有当同一视图可以描述数据库中的多个分析模型时,才应使用探索的 sql_analytic_model_name
  • sql_analytic_model_name 引用的分析模型必须在其模型的数据库连接中可访问
  • 如果分析模型位于不同于您在数据库连接中定义的默认路径的数据库、架构、项目或数据集中,您必须限定分析模型名称的范围

定义

对于 BigQuery 和 Snowflake 连接,sql_analytic_model_name 参数用于指定现有数据库内分析模型BigQuery 图Snowflake 中的语义视图)的名称,以用作 LookML 探索的基础。

在大多数情况下,您可以使用 sql_analytic_model_name(针对视图)参数在视图文件中指定分析模型。然后,在该视图文件中,您需要定义基于数据库中分析模型的 LookML 维度和度量。不过,如果您的数据库有多个可由相同 LookML 字段定义的分析模型,您可以使用 explore 参数下的 sql_analytic_model_name 参数。

如果您在 explore 参数下指定了 sql_analytic_model_name,探索功能将替换视图文件中指定的分析模型,转而查询您在 explore 参数下的 sql_analytic_model_name 中指定的分析模型。在这种情况下,探索将使用在视图文件中定义的 LookML 测量和维度,但会将它们应用于 explore 参数的 sql_analytic_model_name 参数中指定的分析模型。

确定分析模型名称的范围

如果您仅使用分析模型名称来引用分析模型,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 连接文档页面。

示例

以下是一个名为 MyStoreGraphView 的 LookML 视图示例,该视图基于 BigQuery 数据库中的 StoreGraph BigQuery Graph,包括映射到该 Graph 的维度和度量:

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 ;;
  }
}

假设数据库中还有另一个名为 ShopDetailsGraph 的图,其元素与 StoreGraph 相同,以下探索会替换 MyStoreGraphView 视图文件中的 sql_analytic_model_name 值。该探索将具有在 MyStoreGraphView 中定义的相同 LookML 维度和度量,但该探索将查询 ShopDetailsGraph 分析模型:

explore: MyStoreGraphView {
  sql_analytic_model_name: ShopDetailsGraph ;;
}

注意事项

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 参数在 explore 对象中使用时,该 explore 对象会依次包含在 model 对象中。(此页面上的层次结构显示了这种关系链。)模型对象中定义了数据库 connection。在 sql_analytic_model_name 参数中引用分析模型时,该分析模型需要在模型文件中指定的关联连接中可访问。

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