sql_table_name (para vistas)

En esta página, se hace referencia al parámetro sql_table_name que forma parte de una vista.

sql_table_name también se puede usar como parte de una unión, que se describe en la página de documentación del parámetro sql_table_name (para combinaciones).

sql_table_name también se puede usar como parte de Explorar, descrito en la página de documentación del parámetro sql_table_name (para Explorar).

Uso

view: view_name {
sql_table_name: table_name ;
Jerarquía
sql_table_name
Valor predeterminado
El nombre de la vista

Acepta
Un nombre de tabla en tu base de datos

Reglas especiales
  • La tabla debe ser accesible dentro de la conexión de la base de datos
  • Si la tabla está en un esquema diferente, se debe especificar el esquema
  • Si la tabla está en una base de datos diferente, se deben especificar la base de datos y el esquema, y la otra base de datos debe estar en la misma máquina y estar en el mismo dialecto de SQL.

Definición

El parámetro sql_table_name especifica la tabla de tu base de datos que se consultará mediante una vista.

Si deseas crear una vista basada en una tabla derivada, no uses el parámetro sql_table_name. En su lugar, usa el parámetro derived table, que se describe en la página de documentación de derived_table. El IDE de Looker mostrará un error si tienes sql_table_name y derived_table en un archivo de vista.

Si una vista no contiene los parámetros sql_table_name o derived_table, Looker supone que está basada en una tabla de base de datos y que el nombre de la tabla coincide con el de la vista. En otras palabras, ocurre lo siguiente:

view: my_name { ... }

es lógicamente equivalente a lo siguiente:

view: my_name {
  sql_table_name: my_name ;;
}

Es bastante común recurrir a este comportamiento predeterminado y no usar sql_table_name. Sin embargo, hay algunas situaciones importantes en las que puede resultar útil. En primer lugar, en algunos casos, querrás que la vista tenga un nombre diferente al de la tabla subyacente, por ejemplo, para limpiar el nombre de una tabla desordenada.

view: orders {
  sql_table_name: prod_orders_2 ;;
}

Además, existen casos en los que una vista debe basarse en una base de datos o un esquema que no esté en la ruta de búsqueda predeterminada del usuario de la base de datos. Luego, puedes hacer referencias como las siguientes:

view: desired_view_name {
  sql_table_name: database_name.schema_name.table_name ;;
}

Uniones federadas

La unión de dos tablas de diferentes bases de datos se denomina unión federada. Las uniones federadas se pueden realizar con Looker si las dos bases de datos están en el mismo dialecto SQL, residen en la misma máquina física y son accesibles desde la misma conexión en Looker.

En esas condiciones, puedes crear una unión federada mediante la especificación del nombre de la base de datos de cada tabla en el parámetro sql_table_name para esa vista:

view: view_1 {
  sql_table_name: database_name.table_1 ;;
}

view: view_2 {
  sql_table_name: another_database_name.table_2 ;;
}

Luego, usa el parámetro sql_on para unir estas vistas:

explore: view_1 {
  join: view_2 {
    sql_on: ${view_1.view_1_ID} = ${view_2.view_2_ID} ;;
  }
}

Si deseas unir bases de datos que están en diferentes dialectos de SQL, te recomendamos que repliques una base de datos en la otra para que puedas extraer todos los datos de una sola fuente.

Si deseas realizar una unión en dos bases de datos de MySQL en máquinas separadas, puedes realizar una unión federada en ambas conexiones de base de datos mediante la creación de una tabla FEDERATED con CONNECTION. En esencia, establece una conexión a tablas en un servidor diferente completamente en su base de datos de MySQL. Consulta esta documentación de MySQL para obtener más información.

Ejemplos

Haz que la vista customers dependa de la tabla customer_1 del esquema predeterminado:

view: customers {
  sql_table_name: customer_1 ;;
}

Haz que la vista customers dependa de la tabla customer_1 del esquema analytics:

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

Desafíos habituales

Se debe poder acceder a las tablas a las que hace referencia view desde la conexión actual

Se hace referencia a views mediante un parámetro explore o join, que, a su vez, se menciona en un modelo. El modelo determina qué conexión de base de datos se usa (consulta connection para ver el modelo). Las conexiones de las bases de datos se definen en la sección Administrador de Looker. Cuando haces referencia a una tabla en el parámetro sql_table_name, la tabla debe ser accesible dentro de la conexión asociada.

Los nombres de tablas no compatibles pueden requerir formato adicional

Algunos dialectos requieren que los nombres de tablas que tienen caracteres no compatibles, también conocidos como nombres de tablas "poco comunes" estén entre corchetes, comillas dobles o comillas simples. Por ejemplo, el nombre de la tabla Customers.PaymentInfo incluye un punto en el nombre de la tabla, que podría interpretarse como una tabla llamada PaymentInfo en el esquema Customers. Para corregir esto, si tu dialecto requiere corchetes, puedes encerrar el nombre de la tabla entre corchetes de la siguiente manera:

sql_table_name: [Customers.PaymentInfo] ;;

Si tu dialecto requiere comillas dobles o simples, debes reemplazar los corchetes para esos caracteres.