此页面指的是属于视图的
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 中的语义视图)的名称,以用作 LookML 视图的基础。这样一来,您就可以利用直接在数据库中定义的分析模型,例如 BigQuery Graph 或 Snowflake 中的语义视图。
在这种情况下,分析模型对象已存在于您的数据库中,并由您的数据库进行管理;分析模型不是由 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 中分析模型的注意事项
使用数据库内分析模型时,请注意以下事项和限制:
-
- 支持的维度和度量:
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 参数在 view 对象中使用时,该 view 对象可以在 explore 对象中引用,而 对象又可以在 模型对象中引用。模型对象中定义了数据库 connection。在 sql_analytic_model_name 参数中引用分析模型时,该分析模型需要在模型文件中指定的关联连接中可访问。
默认数据库和架构(或对于 Google BigQuery,为结算项目和数据集)由 Looker 管理员在创建 Looker 与数据库的连接时定义。