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, como se describe en la página de documentación del parámetro sql_table_name (para uniones).

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

Uso

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

Acepta
Nombre de una tabla en tu base de datos

Reglas especiales

Definición

El parámetro sql_table_name especifica la tabla de tu base de datos que consultará 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 el parámetro sql_table_name ni el parámetro derived_table, Looker supone que la vista se basa en una tabla de la base de datos y que el nombre de la tabla de la base de datos coincide con el nombre de la vista. En otras palabras, esto:

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, existen algunas situaciones importantes en las que puede ser útil. Primero, en algunos casos, simplemente querrás que la vista tenga un nombre diferente al de la tabla subyacente, por ejemplo, para limpiar un nombre de tabla desordenado:

view: orders {
  sql_table_name: prod_orders_2 ;;
}

Además, hay casos en los que una vista debe basarse en una base de datos o un esquema que no se encuentra en la ruta de búsqueda predeterminada del usuario de la base de datos. Luego, puedes delimitar el nombre de la tabla con el formato <schema_name>.<table_name>, de la siguiente manera:

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

Nombres de tablas de alcance

Cuando haces referencia a una tabla solo con el nombre de la tabla, Looker usará la ruta de búsqueda predeterminada (la base de datos y el esquema) que tu administrador de Looker configuró en los parámetros de configuración de la conexión de la base de datos. Consulta la sección Aspectos a tener en cuenta en esta página para obtener más información.

Si necesitas hacer referencia a una tabla en una base de datos y un esquema diferentes que no se encuentran en la ruta de búsqueda predeterminada del usuario de la base de datos, puedes definir el alcance del nombre de la tabla con el formato <database_name>.<schema_name>.<table_name> para que apunte a otra base de datos o esquema:

  • Para hacer referencia a una tabla de un esquema diferente, usa <schema_name>.<table_name>, como se muestra en el ejemplo de esta página.
  • Para hacer referencia a una tabla de otra base de datos, usa el <database_name>.<schema_name>.<table_name> completo.

En el caso de una conexión de Google BigQuery, puedes hacer referencia a una tabla en un proyecto y un conjunto de datos diferentes si defines el alcance del nombre de la tabla con el formato <project_name>.<dataset_name>.<table_name>. Consulta la página de documentación de la conexión de Google BigQuery para obtener más información.

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 de SQL, el dialecto admite uniones federadas y se puede acceder a las dos bases de datos desde la misma conexión en Looker. Según la configuración de la base de datos, es posible que las tablas también deban residir en la misma máquina física.

En esas condiciones, puedes crear una unión federada especificando el 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, une estas vistas con el parámetro sql_on:

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 se encuentran 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.

Ejemplos

En este ejemplo, la vista customers depende de la tabla customer_1 del esquema predeterminado:

view: customers {
  sql_table_name: customer_1 ;;
}

En este ejemplo, la vista customers depende de la tabla customer_1 de analytics al definir el alcance del nombre de la tabla para incluir el nombre del esquema (con el formato <schema_name>.<table_name>):

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

Aspectos para tener en cuenta

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

Cuando el parámetro sql_table_name se usa dentro de un objeto view, se puede hacer referencia a ese objeto view en un objeto explore, al que, a su vez, se hace referencia en un objeto modelo. El objeto del modelo tiene un connection de la base de datos definido en él. Cuando haces referencia a una tabla de la base de datos en el parámetro sql_table_name, se debe poder acceder a la tabla dentro de la conexión asociada especificada en el archivo del modelo.

El administrador de Looker define la base de datos y el esquema predeterminados (o, en el caso de Google BigQuery, el proyecto de facturación y el conjunto de datos) cuando crea la conexión de Looker a tu base de datos para la conexión de la base de datos.

Es posible que los nombres de tablas poco amigables requieran un formato adicional

Algunos dialectos requieren que los nombres de las tablas que tienen caracteres no admitidos, también conocidos como nombres de tablas "no amigables", se encierren entre corchetes, comillas dobles o comillas simples. Por ejemplo, el nombre de la tabla Customers.PaymentInfo incluye un punto, lo 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, deberás reemplazar los corchetes por esos caracteres.