En esta página, se hace referencia al parámetro
sql_table_nameque forma parte de una vista.
sql_table_nametambién se puede usar como parte de una unión, que se describe en la página de documentación del parámetrosql_table_name(para uniones).
sql_table_nametambién se puede usar como parte de una exploración, que se describe en la página de documentación del parámetrosql_table_name(para exploraciones).
Uso
view: view_name {
sql_table_name: table_name ;;
}
sql_table_name |
Valor predeterminado
El nombre de la vista
Acepta
Un nombre de 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 quieres crear una vista basada en una tabla derivada, no uses el parámetro
sql_table_name. En su lugar, usa el parámetroderived table, que se describe en la página de documentación dederived_table. El IDE de Looker mostrará un error si tienessql_table_nameyderived_tableen 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 base de datos y que el nombre de la tabla de 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, hay algunas situaciones importantes en las que puede ser ú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 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 acceso de búsqueda predeterminada del usuario de la base de datos. Luego, puedes definir el alcance del 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 ;;
}
Cómo definir el alcance de los nombres de tablas
Cuando haces referencia a una tabla usando solo el nombre de la tabla, Looker usará la ruta de acceso de búsqueda predeterminada (la base de datos y el esquema) que el administrador de Looker configuró en los parámetros de configuración de la conexión de base de datos. Consulta la sección Aspectos para tener en cuenta de 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 acceso 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 dirigir 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 una base de datos diferente, usa el formato completo
<database_name>.<schema_name>.<table_name>.
Para 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 ambas bases de datos desde la misma conexión en Looker. Según la configuración de tu 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 si especificas 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 quieres 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 si se define 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 se usa el parámetro sql_table_name dentro de un objeto view, se puede hacer referencia a ese objeto view en un objeto explore, que, a su vez, se hace referencia en un objeto modelo. El objeto de modelo tiene una base de datos connection definida en él. Cuando haces referencia a una tabla de 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, para Google BigQuery, el proyecto de facturación y el conjunto de datos) cuando crea la conexión de Looker a tu base de datos.
Es posible que los nombres de tablas no descriptivos requieran un formato adicional
Algunos dialectos requieren que los nombres de tablas que tienen caracteres no compatibles, también conocidos como nombres de tablas "no descriptivos", se incluyan 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 incluir el nombre de la tabla entre corchetes, de la siguiente manera:
sql_table_name: [Customers.PaymentInfo] ;;
Si tu dialecto requiere comillas dobles o comillas simples, reemplazarías los corchetes por esos caracteres.