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 用于设置数据库中将由探索功能查询的表。通常,命名探索所对应的视图会定义要查询的表。不过,如果多个表的结构相同,则可以使用同一视图来描述所有这些表。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 探索依赖于默认数据库/架构中的 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 ;;
}