sql_table_name(适用于探索)

此页面指的是 探索中的 sql_table_name 参数。

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

sql_table_name 还可以用作联接的一部分,如 sql_table_name(用于联接)参数文档页面中所述。

用法

explore: explore_name {
  sql_table_name: table_name ;;
}
层次结构
sql_table_name
默认值
相应探索所基于的数据库表

接受
数据库表的名称

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

定义

sql_table_name 参数用于指定数据库中将由探索查询的表。通常,探索的命名视图会定义要查询的表。不过,如果多个表的结构相同,您可以使用 explore 参数下的 sql_table_name 参数来替换视图文件中指定的基本表。这样一来,您就可以将视图文件中定义的维度和度量应用于视图文件中指定的表以外的数据库表。

确定表名称的范围

如果您仅使用表名称来引用表,Looker 将使用 Looker 管理员在数据库连接设置中配置的默认搜索路径(数据库和架构)。如需了解详情,请参阅本页的注意事项部分。

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

  • 如需引用其他架构中的表,请使用 <schema_name>.<table_name>,如本页中的示例所示。
  • 如需引用其他数据库中的表,请使用完整的 <database_name>.<schema_name>.<table_name>

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

示例

此示例使 customers Explore 依赖于默认数据库/架构中的 customer_1 表:

explore: customers {
  sql_table_name: customer_1 ;;
}

此示例通过限定表名称以包含架构名称(使用 <schema_name>.<table_name> 格式),使 customers 探索依赖于 analytics 架构中的 customer_1 表:

explore: customers {
  sql_table_name: analytics.customer_1 ;;
}

注意事项

sql_table_name 引用的表必须可通过当前连接访问

sql_table_name 参数在 explore 对象中使用时,该 explore 对象会包含在 model 对象中。(此页面上的层次结构显示了这种关系链。)模型对象中定义了数据库 connection。在 sql_table_name 参数中引用数据库表时,该表需要在模型文件中指定的关联连接中可访问。

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

如需为 view 指定与底层表不同的名称,请在 view 级应用 sql_table_name

如本页所述,在 explore 级别使用 sql_table_name 并不常见。只有当同一个 view 可以描述多个表时,才应使用此方法。

更典型的方法是在 view 级别使用 sql_table_name,以便为视图指定与底层表名称不同的名称。

换句话说,您不应使用以下代码:

模型文件

explore: customers {
  sql_table_name: customer_1 ;;
}

执行此操作:

模型文件

explore: customers { ... }

查看文件

view: customers {
  sql_table_name: customer_1 ;;
}