本页介绍了属于探索的
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 参数用于指定现有数据库内分析模型(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 图,包括映射到该图的维度和测量:
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 相同,以下探索会替换 sql_analytic_model_name 值在 MyStoreGraphView 视图文件中。探索将具有与 MyStoreGraphView 中定义的 LookML 维度和测量相同的维度和测量,但探索将查询 ShopDetailsGraph 分析模型:
explore: MyStoreGraphView {
sql_analytic_model_name: ShopDetailsGraph ;;
}
注意事项
Looker 中分析模型的注意事项
使用数据库内分析模型时,请注意以下事项和限制:
-
- 支持的维度和测量:
stringnumberdateyesno
- 仅支持的维度:
timedate_time
- 支持的维度和测量:
测量:
- 必须预先定义基本测量: 基本测量必须在底层数据库分析模型中预先定义。Looker 无法通过对分析模型中的维度执行聚合(例如
type: sum或type: count)来定义新的基本测量。 支持基于其他测量的测量: 您可以使用 LookML 测量的
sql参数执行非聚合计算,这些计算使用分析模型中预定义的基本测量。创建基于其他测量的测量时,您无法将新测量定义为聚合测量类型,例如sum或count。您必须将新测量定义为非聚合测量类型,例如string、number、date或yesno。请参阅以下示例:measure: average_order_amount { type: number sql: ROUND(${total_order_amount} / NULLIF(${count_orders}, 0), 2) ;; }
- 必须预先定义基本测量: 基本测量必须在底层数据库分析模型中预先定义。Looker 无法通过对分析模型中的维度执行聚合(例如
联接: 以分析模型为基础视图的探索不能包含任何联接。同样,基于分析模型的视图也不能联接到具有标准 LookML 基础视图的探索中。
隐式联接: 分析模型不支持依赖于隐式联接的功能。依赖于隐式联接的功能的一些示例包括 自定义日历 和使用
type: location、type: distance或type: zipcode定义的字段。分析模型不支持以下功能:
必须能够通过当前连接访问分析模型
当 sql_analytic_model_name 参数在 explore 对象中使用时,该 explore 对象会依次包含在 模型 对象中。(本页上的层次结构显示了此关系链。)模型对象中定义了数据库 connection。在 sql_analytic_model_name 参数中引用分析模型时,需要在模型文件中指定的关联连接中访问该分析模型。
默认 数据库 和 架构(对于 Google BigQuery,则是 结算项目 和 数据集)由 Looker 管理员在他们 创建 Looker 与数据库的连接 时定义。