Uso
# SQL-based derived analytic model
view: view_name {
derived_analytic_model: {
publish_as_db_analytic_model: yes | no
sql: analytic_model_definition ;;
}
}
# LookML-based derived analytic model
view: view_name {
derived_analytic_model: {
publish_as_db_analytic_model: yes | no
model_source: explore_name {
fields: [field_1, field_2, ...]
join: +joined_view_name {
foreign_key: field_name
}
}
}
}
|
Jerarquía
derived_analytic_model |
Valor predeterminado
Ninguno
Reglas especiales
Los modelos analíticos solo son compatibles con las conexiones de BigQuery y Snowflake.
|
Definición
En el caso de las conexiones de BigQuery y Snowflake, el parámetro derived_analytic_model define un modelo analítico integrado en la base de datos (un gráfico de BigQuery o una vista semántica en Snowflake) que administra Looker.
A diferencia de las tablas derivadas, los objetos de modelos analíticos administrados por Looker no conservan ningún dato en la base de datos y no se actualizan de forma incremental. En cambio, representan modelos semánticos que definen relaciones y medidas directamente en la base de datos.
Looker admite dos tipos de modelos analíticos derivados:
- Modelos analíticos derivados basados en SQL: Defines el modelo analítico con instrucciones del lenguaje de definición de datos (DDL) de SQL. Looker genera el modelo analítico dentro de tu base de datos ejecutando las instrucciones de SQL que especificas.
- Modelos analíticos derivados basados en LookML: Defines el modelo analítico haciendo referencia a una exploración de LookML existente. Looker traduce automáticamente tu topología de Explorar, las uniones, las dimensiones y las medidas en instrucciones DDL del modelo analítico nativo de la base de datos, y crea y administra el modelo en tu base de datos.
Modelos analíticos derivados basados en SQL
En un modelo analítico derivado basado en SQL, Looker genera el modelo analítico dentro de tu base de datos ejecutando las declaraciones del lenguaje de definición de datos (DDL) de SQL adecuadas que especificas en la definición del parámetro derived_analytic_model de LookML. La sintaxis de SQL que definas en el parámetro derived_analytic_model debe ser compatible con tu base de datos.
Para definir un modelo analítico basado en SQL, usa uno de los siguientes subparámetros del parámetro derived_analytic_model:
Además, si defines tu vista analítica con el subparámetro sql, puedes usar el subparámetro publish_as_db_analytic_model del parámetro derived_analytic_model para crear un modelo analítico estable que se pueda consultar fuera de Looker.
Después de definir el modelo analítico dentro del parámetro derived_analytic_model, puedes definir dimensiones y medidas de LookML que se asignen a tu modelo analítico. Consulta la sección Ejemplos de modelos analíticos derivados basados en SQL para obtener más información.
sql
Usa el parámetro sql si deseas proporcionar el código SQL solo para la definición del modelo analítico y que Looker administre la creación del modelo analítico. Cuando uses el parámetro secundario sql, no incluyas una instrucción CREATE ni CREATE OR REPLACE, ya que Looker generará automáticamente la instrucción DDL para crear el modelo analítico en el lado de la base de datos.
Consulta Cómo crear un modelo analítico derivado con sql para ver un ejemplo del uso del parámetro sql para crear un modelo analítico en tu base de datos.
sql_create
Usa el parámetro sql_create para definir una instrucción de SQL completa que permita crear un modelo analítico. Cuando usas el parámetro sql_create, debes incluir una instrucción CREATE OR REPLACE (o una instrucción CREATE, si tu dialecto no admite CREATE OR REPLACE).
Ten en cuenta lo siguiente cuando uses el parámetro secundario sql_create:
- En el caso de las conexiones de BigQuery, usa una sentencia
CREATE OR REPLACEpara crear el modelo analítico. - Usa
${SQL_TABLE_NAME}para sustituir el nombre calculado del modelo analítico que se está creando. Esto garantiza que la instrucción de SQL incluya correctamente el nombre del modelo analítico que proporcionas en el parámetroviewde LookML.
Consulta Cómo crear un modelo analítico derivado con sql_create para ver un ejemplo del uso del parámetro sql_create para crear un modelo analítico en tu base de datos.
create_process
Usa el parámetro create_process cuando necesites definir varias instrucciones de SQL secuenciales para definir el modelo analítico. En el parámetro create_process, usa el subparámetro sql_step para especificar las instrucciones de SQL individuales. Tu base de datos ejecutará las instrucciones sql_step una a la vez, en el orden en que las especificaste. Looker emite las instrucciones SQL en los subparámetros sql_step a medida que los defines, sin ningún wrapper, lo que significa que debes incluir un paso con una instrucción CREATE OR REPLACE (o una instrucción CREATE, si tu dialecto no admite CREATE OR REPLACE).
Consulta Cómo crear un modelo analítico derivado con create_process para ver un ejemplo del uso del parámetro create_process para crear un modelo analítico en tu base de datos.
publish_as_db_analytic_model
En el caso de los modelos analíticos derivados que se crean con el parámetro sql, puedes definir tu modelo analítico derivado con publish_as_db_analytic_model: yes para solicitar a Looker que cree un modelo analítico estable al que se pueda consultar fuera de Looker.
El modelo analítico estable se publicará (creará) en el próximo ciclo del regenerador de Looker después de que el LookML del modelo analítico derivado se implemente en producción con publish_as_db_analytic_model: yes.
Cuando especificas publish_as_db_analytic_model: yes, el regenerador de Looker crea dos modelos analíticos en tu base de datos: uno con un nombre interno y otro con un nombre estable. De lo contrario, el regenerador crea solo un modelo analítico en la base de datos, con el nombre interno.
Consulta la sección Cómo acceder al modelo analítico estable para obtener información sobre cómo obtener el nombre del modelo analítico estable y, así, poder usarlo para consultar el modelo analítico estable fuera de Looker.
Crea dimensiones y medidas de LookML basadas en tu vista de análisis basada en SQL
Después de definir tu modelo analítico, en el mismo archivo de vista, puedes definir dimensiones y mediciones de LookML que se basen en el modelo analítico.
Consulta la documentación de tu dialecto para obtener información sobre la sintaxis adecuada que debes usar para definir tu modelo analítico y para hacer referencia a los elementos de tu modelo analítico. Por ejemplo, para crear una dimensión de LookML a partir de una entidad de BigQuery Graph, debes usar guiones bajos para separar los elementos cuando definas el alcance. Por ejemplo, para BigQuery Graph, esta dimensión de LookML se basa en la propiedad location_id de la tabla de nodos Stores:
dimension: location_id {
type: number
sql: Stores_location_id ;;
}
Sin embargo, para crear una dimensión de LookML basada en una vista semántica de Snowflake, debes usar el nombre no calificado de una métrica o dimensión.
Ejemplos de modelos analíticos derivados basados en SQL
En las siguientes secciones, se proporcionan ejemplos de cómo crear una vista analítica con los diferentes subparámetros de derived_analytic_model:
- Cómo crear un modelo analítico derivado con
sql - Cómo crear un modelo analítico derivado con
create_process - Cómo crear un modelo analítico derivado con
sql_create
Cómo crear un modelo analítico derivado con sql
A continuación, se muestra un ejemplo de archivo de vistas de LookML que define un modelo analítico basado en SQL para una base de datos de BigQuery con el subparámetro sql de derived_analytic_model. Looker creará el modelo analítico dentro de la base de datos ejecutando los comandos DDL de SQL que se proporcionan en el parámetro sql.
Ten en cuenta lo siguiente en el ejemplo:
- El subparámetro
sqlsolo contiene la definición del modelo analítico. No hay ninguna declaraciónCREATE, ya que, consql, Looker controla automáticamente los comandosCREATEpara el modelo analítico. - El modelo analítico se define con
publish_as_db_analytic_model: yes, por lo que Looker creará un modelo analítico estable que se puede consultar fuera de Looker.
view: MyWarehouseOrdersView {
derived_analytic_model: {
publish_as_db_analytic_model: yes
# Defining the analytic model
sql:
NODE TABLES (
Customers
KEY(customer_id)
PROPERTIES(
country_code,
concat(first_name, ' ', last_name) AS name,
age,
MEASURE(AVG(age)) AS AvgAge
),
Orders
KEY(order_id)
PROPERTIES (
customer_id,
employee_id,
date,
discount,
MEASURE(AVG(discount)) AS AvgDiscount
)
EDGE TABLES (
-- Relationship: Orders -> Customers
looker_test.orders AS orders_to_users
KEY(id)
SOURCE KEY (order_id) REFERENCES orders (order_id)
DESTINATION KEY (customer_id) REFERENCES Customers (customer_id)
NO PROPERTIES
) ;;
}
# Mapping dimensions/measures to the dimensions/measures
# provided by the analytic model
dimension: customer_id {
type: number
sql: Customers_customer_id ;;
}
dimension: customer_age {
type: number
sql: Customers_age ;;
}
measure: orders_avg_discount {
type: number
sql: Orders_AvgDiscount ;;
}
}
Cómo crear un modelo analítico derivado con create_process
A continuación, se muestra un ejemplo de archivo de vistas de LookML que define un modelo analítico basado en SQL para una base de datos de BigQuery con el subparámetro create_process de derived_analytic_model. En este ejemplo, debes definir varias instrucciones de SQL secuenciales para definir el modelo analítico. El primer paso descarta el modelo analítico si ya existe, y el segundo paso crea el modelo analítico.
view: university_statistics {
derived_analytic_model: {
create_process: {
sql_step:
DROP PROPERTY GRAPH IF EXISTS ${SQL_TABLE_NAME} ;;
sql_step:
CREATE PROPERTY GRAPH ${SQL_TABLE_NAME}
NODE TABLES (
university.College
KEY(college_id)
PROPERTIES(college_id, college_name),
university.Department
KEY(dept_id)
PROPERTIES(dept_id, dept_name, college_id,
budget OPTIONS(description="Department budget in USD"),
MEASURE(SUM(budget)) AS total_budget),
university.Course
KEY(course_id)
PROPERTIES(
course_id,
course_name,
credits,
dept_id,
MEASURE(AVG(credits)) AS avg_credits,
MEASURE(SUM(credits)) AS total_credits,
MEASURE(COUNT(course_id)) AS course_count)
)
EDGE TABLES (
university.Department AS CollegeDept
SOURCE KEY (college_id) REFERENCES College (college_id)
DESTINATION KEY (dept_id) REFERENCES Department (dept_id),
university.Course AS DeptCourse
SOURCE KEY (dept_id) REFERENCES Department (dept_id)
DESTINATION KEY (course_id) REFERENCES Course (course_id)
);;
}
}
# Mapping dimensions/measures to the dimensions/measures
# provided by the analytic model
dimension: college_id {
type: number
sql: College_college_id ;;
}
dimension: course_name {
type: string
sql: Course_course_name ;;
}
...
}
Cómo crear un modelo analítico derivado con sql_create
A continuación, se muestra un ejemplo de archivo de vistas de LookML que define un modelo analítico basado en SQL para una base de datos de BigQuery con el subparámetro sql_create de derived_analytic_model. En este ejemplo, el parámetro sql_create define la instrucción CREATE OR REPLACE completa que se ejecutará para crear el modelo analítico en un solo paso.
view: MyWarehouseOrdersView {
derived_analytic_model: {
sql_create:
CREATE OR REPLACE PROPERTY GRAPH ${SQL_TABLE_NAME}
NODE TABLES(
accounting.Loan AS Loan
KEY(loanId)
LABEL Loan PROPERTIES(
loanId,
loanAmount,
balance,
createTime,
interestRate,
accountId,
balance + 100 AS derived_balance,
CASE WHEN balance > 1000 THEN "High" ELSE "Low" END AS risk_level,
CONCAT("ID-", CAST(loanId AS STRING)) AS full_id,
DATE(2024, 1, 1) AS fixed_date,
MEASURE(AVG(interestRate)) AS avg_interest_rate
),
accounting.AccountView AS Account
KEY(accountId)
LABEL Account PROPERTIES(
accountId,
createTime,
isBlocked,
accountType,
amount,
ownerId,
MEASURE(MIN(createTime)) AS oldest_account_create_time,
MEASURE(MAX(createTime)) AS newest_account_create_time,
MEASURE(AVG(amount)) AS avg_account_amount,
MEASURE(SUM(amount)) AS total_account_amount,
MEASURE(COUNT(DISTINCT accountType)) AS account_type_count
),
accounting.PersonMV AS Person
KEY(personId)
LABEL Person PROPERTIES(
personId,
personName,
age,
age_tier,
MEASURE(AVG(age)) AS avg_age,
MEASURE(COUNT(DISTINCT age_tier)) AS age_tier_count
)
)
EDGE TABLES(
accounting.Loan AS Account_Repay_Loan
KEY(loanId)
SOURCE KEY(loanId) REFERENCES Loan(loanId)
DESTINATION KEY(accountId) REFERENCES Account(accountId)
LABEL Repay NO PROPERTIES,
accounting.Account AS Person_Own_Account
KEY(accountId)
SOURCE KEY(accountId) REFERENCES Account(accountId)
DESTINATION KEY(ownerId) REFERENCES Person(personId)
LABEL Own NO PROPERTIES
);;
}
# Mapping dimensions/measures to the dimensions/measures
# provided by the analytic model
dimension: loan_id {
type: number
sql: Loan_loanId ;;
}
dimension: account_ID {
type: number
sql: Account_accountID ;;
}
...
}
Cómo acceder al modelo analítico estable
Si creaste tu modelo analítico derivado con el subparámetro sql y, además, incluiste la instrucción publish_as_db_analytic_model: yes en tu parámetro derived_analytic_model, Looker publicará (creará) el modelo analítico estable en el próximo ciclo del regenerador de Looker después de que el LookML del modelo analítico derivado se implemente en producción con publish_as_db_analytic_model: yes.
Cuando se publique el modelo analítico estable, podrás consultarlo directamente con su nombre estable. Existen dos formas de obtener el nombre estable de un modelo analítico:
Modal de detalles de la PDT
Si eres administrador o usuario con permiso de see_pdts, puedes seguir estos pasos para usar la página Tablas derivadas persistentes en la sección Administrador de Looker y obtener el nombre estable del modelo analítico para un modelo analítico:
- Haz clic en el ícono del menú principal de Looker y selecciona Administrador si el menú Administrador aún no se muestra. (Si estás en la sección Explorar o Desarrollar del Menú principal de Looker, es posible que debas hacer clic en la flecha hacia atrás para ver el menú Administrador).
- En el menú Administrador, selecciona Tablas derivadas persistentes.
- En la página Tablas derivadas persistentes, busca el nombre de tu modelo analítico.
- Haz clic en el menú de tres puntos de tu modelo analítico y, luego, selecciona Detalles del PDT.
- En la ventana modal Detalles del PDT, busca el campo Nombre estable.
Para consultar el modelo analítico estable directamente, agrega el nombre del esquema de borrador antes del nombre del modelo. Por ejemplo, si el nombre del esquema de borrador es tmp, puedes consultar el modelo analítico estable con un comando como este:
SELECT * from tmp.PA_bq_analytic_model_sales_semantic_view
Pestaña SQL de una exploración
Si no tienes acceso a la página de administrador de Persistent Derived Tables, puedes determinar el nombre estable a partir de la información que se incluye en la pestaña SQL de la sección Datos de una consulta de Explorar del modelo analítico. Sigue estos pasos para obtener el nombre estable de un modelo analítico:
Abre la Explorar para la vista de tu modelo analítico.
En la exploración, selecciona cualquier dimensión o medición del selector de campos.
Haz clic en la pestaña SQL de la sección Datos.
En la pestaña SQL, busca una de las siguientes instrucciones de SQL:
- Para BigQuery Graph, haz lo siguiente:
CREATE PROPERTY GRAPHSELECT ... FROM GRAPH_EXPAND('PROPERTY_GRAPH_NAME')
- Para la vista semántica de Snowflake:
CREATE SEMANTIC VIEWSELECT ... FROM SEMANTIC_VIEW_NAME
- Para BigQuery Graph, haz lo siguiente:
El nombre estable es una vista que Looker crea en el esquema temporal y que apunta a la tabla ofuscada real que se muestra en la pestaña SQL. Para obtener el nombre estable de la vista analítica, completa la siguiente información de la instrucción de SQL:
SCRATCH_SCHEMA_NAME.CONNECTION_REGISTRATION_KEY_MODEL_NAME_VIEW_NAME- SCRATCH_SCHEMA_NAME: El nombre del esquema de borrador es el comienzo de la cadena que sigue a la instrucción
CREATEoSELECT, antes del ".". - CONNECTION_REGISTRATION_KEY: La clave de registro de la conexión tiene dos caracteres. Según el dialecto de la base de datos, seguirá un signo de dólar o el primer guion bajo en el nombre de la tabla en la instrucción
CREATEoSELECT. - MODEL_NAME: Es el nombre del modelo de LookML.
- VIEW_NAME: Es el nombre de la vista en la que se define el modelo analítico.
- SCRATCH_SCHEMA_NAME: El nombre del esquema de borrador es el comienzo de la cadena que sigue a la instrucción
Por ejemplo, aquí se muestra el texto de la pestaña SQL de una consulta de Explorar para una conexión de BigQuery. El modelo analítico se define en la vista llamada sales_analytic_model, y el nombre del modelo de LookML es thelook. En este caso, Looker ya creó el modelo analítico, por lo que no hay ninguna declaración CREATE. Sin embargo, la instrucción SELECT ... FROM GRAPH_EXPAND contiene la información del nombre de la tabla:
-- use existing sales_analytic_model in `looker-test-db.looker_scratch.LG_J7LSZ1778710001008_sales_analytic_model`
SELECT
sales_analytic_model.orders_id AS sales_analytic_model_orders_id,
AGG(sales_analytic_model.orders_count_orders ) AS sales_analytic_model_count_orders
FROM GRAPH_EXPAND("looker-test-db.looker_scratch.LG_J7LSZ1778710001008_sales_analytic_model") AS sales_analytic_model
GROUP BY
1
ORDER BY
2 DESC
LIMIT 500
Estos son los valores que necesitas para derivar el nombre estable del modelo analítico:
- SCRATCH_SCHEMA_NAME es
looker-test-db.looker_scratch - CONNECTION_REGISTRATION_KEY es
J7 - MODEL_NAME es
thelook - VIEW_NAME es
sales_analytic_model
Por lo tanto, el nombre estable del modelo analítico es el siguiente:
looker-test-db.looker_scratch.J7_thelook_sales_analytic_model
Una vez que tengas el nombre estable del modelo analítico, puedes consultarlo directamente.
Modelos analíticos derivados basados en LookML
Los modelos analíticos derivados basados en LookML te permiten definir un modelo analítico en la base de datos (como un gráfico de BigQuery o una vista semántica de Snowflake) directamente desde un Explore de LookML existente sin necesidad de escribir instrucciones DDL de SQL específicas de la base de datos.
Usa los siguientes parámetros para definir un modelo analítico derivado basado en LookML:
model_sourcepublish_as_db_analytic_model(este parámetro se aplica a los modelos analíticos derivados basados en LookML y en SQL)
Para crear un modelo analítico derivado basado en LookML, usa el parámetro model_source para apuntar a una exploración fuente que defina tu topología de datos. Luego, Looker traduce automáticamente tus vistas, uniones, dimensiones y medidas de LookML en instrucciones DDL de modelos analíticos nativos de la base de datos:
- Nodos / tablas: Cada vista de LookML en el Explore de origen se convierte en una tabla de nodos en BigQuery Graph o en una tabla en una vista semántica de Snowflake.
- Bordes / Relaciones: Cada unión definida con el parámetro
foreign_keyen el Explore de origen se convierte en una tabla de borde en BigQuery Graph o en una relación en una vista semántica de Snowflake. - Propiedades, dimensiones y métricas: Las dimensiones y las medidas de LookML de las vistas de origen se convierten en propiedades de nodos en el gráfico de BigQuery o en dimensiones y métricas en una vista semántica de Snowflake.
Cuando consultas un Explorar basado en una vista de modelo analítico derivado basado en LookML, Looker genera y ejecuta el DDL de la base de datos para crear el modelo analítico en el esquema de trabajo de tu base de datos y, luego, ejecuta la consulta en el modelo analítico generado. Una vez que se crea el modelo analítico, Looker lo conserva para que las consultas posteriores hagan referencia directamente al modelo existente hasta que se modifique su definición de LookML.
model_source
El parámetro model_source especifica el nombre de la Exploración de LookML que sirve como fuente de topología y relaciones para el modelo analítico.
view: sales_analytic_model {
derived_analytic_model: {
model_source: order_items {
fields: [order_items.id, orders.id, orders.status, users.name]
}
}
}
Las vistas que se incluyen en el Explorar de origen deben tener una clave primaria definida con primary_key: yes en su dimensión de clave primaria.
model_source acepta los siguientes subparámetros:
| Parámetro | Descripción |
|---|---|
fields |
Es opcional. Especifica una lista de entidades permitidas o una lista de entidades bloqueadas de los campos de la exploración de origen para exportar al modelo analítico. |
join (o joins) |
Es opcional. Define o refina las uniones de la exploración fuente específicamente para el modelo analítico. |
fields
De forma predeterminada, todos los campos disponibles de las vistas en la exploración de origen se exportan al modelo analítico (es posible que algunos campos de la exploración de origen no estén disponibles si la exploración de origen se define con un parámetro fields). Puedes usar el subparámetro fields dentro de model_source para especificar un subconjunto de campos que se exportarán o para excluir campos específicos con la sintaxis de lista estándar de LookML:
view: sales_analytic_model {
derived_analytic_model: {
model_source: order_items {
fields: [
order_items.id,
order_items.price,
orders.id,
orders.status,
users.name
]
}
}
}
join
El parámetro join dentro de model_source te permite agregar ajustes a las uniones que ya se especificaron en la exploración fuente. Agregar ajustes te permite realizar modificaciones que se limitan exclusivamente al modelo analítico sin alterar la definición de Explore fuente.
En el parámetro join de model_source, especifica el nombre de una unión del Explorar fuente con el indicador de refinamiento +. Por ejemplo, join: +view_name. Luego, usa los subparámetros join para definir mejor la unión desde la exploración de origen según sea necesario en tu modelo analítico. Consulta el paso 2 para ver un ejemplo.
El parámetro join dentro de model_source solo admite refinamientos de unión. No puedes agregar una unión nueva al modelo analítico que no exista en la exploración fuente.
El parámetro join dentro de model_source admite los siguientes subparámetros:
| Subparámetro | Descripción |
|---|---|
foreign_key |
Especifica la columna o dimensión de clave externa que establece la relación para el modelo analítico. Para ver un ejemplo con el parámetro foreign_key, consulta el ejemplo del paso 1. |
relationship |
Define la cardinalidad de la unión (many_to_one, one_to_one, one_to_many o many_to_many). |
Cómo configurar un modelo analítico derivado basado en LookML
Para configurar un modelo analítico derivado basado en LookML, sigue estos pasos:
- Define las vistas básicas y la exploración de origen con combinaciones
foreign_key - Crea la vista del modelo analítico derivado
- Define dimensiones y medidas de LookML en la vista del modelo analítico
- Crea una exploración para la vista del modelo analítico
- Cómo consultar el modelo analítico en Looker
Paso 1: Define las vistas básicas y el Explore de origen con uniones foreign_key
Primero, asegúrate de que tus vistas básicas (como order_items, orders y users) estén definidas con claves principales.
A continuación, define una exploración en tu archivo de modelo de LookML que especifique las relaciones entre las vistas. Establecer relaciones dentro de un modelo analítico integrado en la base de datos requiere estrictamente el parámetro foreign_key en cada unión de la exploración fuente:
explore: order_items {
fields: [ALL_FIELDS*]
join: orders {
relationship: many_to_one
foreign_key: order_id
}
join: users {
relationship: many_to_one
foreign_key: orders.user_id
}
}
Paso 2: Crea la vista del modelo analítico derivado
Crea un nuevo archivo de vista (por ejemplo, sales_analytic_model.view.lkml) y agrega un bloque derived_analytic_model con el parámetro model_source que apunta a tu Explorar fuente:
view: sales_analytic_model {
derived_analytic_model: {
model_source: order_items {
# Optional: Use fields to restrict the properties exported to the analytic model
# fields: [order_items.id, orders.id, orders.status, users.name]
# Optional: Use join refinements to refine the relationships from the source Explore
# join: +orders {
# foreign_key: order_id
# }
# join: +users {
# foreign_key: orders.user_id
# }
}
}
...
Paso 3: Define las dimensiones y medidas de LookML en la vista del modelo analítico
En el mismo archivo de vista del modelo analítico, define las dimensiones, los grupos de dimensiones y las medidas que se asignan a las propiedades del modelo analítico generado para que se puedan consultar en las Exploraciones de Looker.
Haz referencia a los campos del modelo subyacente con ${TABLE}.<view_name>_<field_name> (o ${TABLE}.<property_name>):
# Dimensions
dimension: order_items_id {
type: number
sql: ${TABLE}.order_items_id ;;
}
dimension: orders_id {
type: number
sql: ${TABLE}.orders_id ;;
}
dimension: orders_status {
type: string
sql: ${TABLE}.orders_status ;;
}
dimension_group: orders_created {
type: time
timeframes: [raw, time, date, week, month, quarter, year]
sql: ${TABLE}.orders_created_at ;;
}
dimension: users_name {
type: string
sql: ${TABLE}.users_name ;;
}
dimension_group: users_created {
type: time
timeframes: [raw, time, date, week, month, quarter, year]
sql: ${TABLE}.users_created_at ;;
}
# Measures
measure: count_users {
type: number
sql: ${TABLE}.users_count_users ;;
}
measure: count_orders {
type: number
sql: ${TABLE}.orders_count_orders ;;
}
measure: total_order_amount {
type: number
sql: ${TABLE}.orders_total_order_amount ;;
}
measure: total_order_item_amount {
type: number
sql: ${TABLE}.order_items_total_order_item_amount ;;
}
}
Paso 4: Crea un Explorar para la vista del modelo analítico
En tu archivo de modelo (como sales.model.lkml), crea un Explore para la vista del modelo analítico con el nombre de la vista:
explore: sales_analytic_model {}
Un Explore basado en una vista de modelo analítico no puede contener uniones, ya que las relaciones se definen internamente dentro del propio modelo analítico.
Paso 5: Consulta el modelo analítico en Looker
Abre la nueva exploración (por ejemplo, Sales Analytic Model) en Looker, selecciona dimensiones y medidas, y ejecuta tu consulta.
Para inspeccionar el código SQL generado, sigue estos pasos:
- Haz clic en la pestaña SQL del panel Datos.
- En la pestaña SQL, puedes ver la sentencia DDL específica de la base de datos que genera Looker (como
CREATE PROPERTY GRAPH ...conNODE TABLESyEDGE TABLESpara BigQuery Graph) y la consulta que se ejecuta en el modelo analítico (comoFROM GRAPH_EXPAND(...) AS sales_analytic_model). - Cuando se ejecuta la consulta, Looker conserva el modelo analítico en el esquema de trabajo de la base de datos. Las consultas posteriores reutilizan el modelo persistente, lo que evita la reejecución del DDL hasta que cambie la definición de LookML.
Consideraciones para los modelos analíticos derivados basados en LookML
Cuando definas modelos analíticos derivados basados en LookML, ten en cuenta las siguientes consideraciones:
- Claves primarias: Cada vista en la Exploración de la fuente debe tener una dimensión de clave primaria que se defina con
primary_key: yes. - Topología acíclica: Las relaciones que se definen mediante las uniones en la Exploración de origen deben formar una estructura de árbol acíclica estricta. No se admiten las relaciones cíclicas.
- Requisitos de la vista de fuente: Las vistas que se incluyen en el Explorar de origen deben ser tablas de bases de datos estándar o tablas derivadas persistentes (PDT) con un nombre estable. Las tablas y vistas derivadas efímeras (no persistentes) que se basan en otros modelos analíticos no se pueden usar como fuentes.
- Parámetros de exploración: Los parámetros de filtrado dinámico en el tiempo de ejecución (
sql_always_where,always_filter,access_filter) ysql_always_joinen la exploración de origen se ignoran durante la generación del modelo analítico.
Aspectos para tener en cuenta
Cuando uses modelos analíticos integrados en la base de datos, ten en cuenta las siguientes consideraciones y limitaciones:
Tipos de datos: Los modelos analíticos solo admiten los siguientes tipos de datos para las dimensiones y las métricas:
- Se admiten las siguientes dimensiones y medidas:
stringnumberdateyesno
- Solo se admite para dimensiones:
timedate_time
- Se admiten las siguientes dimensiones y medidas:
Mediciones:
- Las medidas básicas deben estar predefinidas: Las medidas básicas deben estar predefinidas en el modelo analítico de la base de datos subyacente. Looker no puede definir una nueva medida base realizando una agregación (como
type: sumotype: count) en una dimensión de un modelo analítico. Se admiten las medidas basadas en otras medidas: Puedes usar el parámetro
sqlde una medida de LookML para realizar cálculos no agregados que usen medidas básicas predefinidas del modelo analítico. Cuando creas una medida basada en otras medidas, no puedes definir la nueva medida como un tipo de medida agregada, comosumocount. Debes definir la nueva métrica como un tipo de métrica no agregada, comostring,number,dateoyesno. Consulta el siguiente ejemplo:measure: average_order_amount { type: number sql: ROUND(${total_order_amount} / NULLIF(${count_orders}, 0), 2) ;; }
- Las medidas básicas deben estar predefinidas: Las medidas básicas deben estar predefinidas en el modelo analítico de la base de datos subyacente. Looker no puede definir una nueva medida base realizando una agregación (como
Uniones: Una exploración cuya vista base se basa en un modelo analítico no puede incluir ninguna unión. Del mismo modo, una vista basada en un modelo analítico no se puede unir a una exploración que tenga una vista base de LookML estándar.
Combinaciones implícitas: Las funciones que dependen de combinaciones implícitas no son compatibles con los modelos analíticos. Algunos ejemplos de funciones que se basan en uniones implícitas son los calendarios personalizados y los campos que se definen con
type: location,type: distanceotype: zipcode.Las siguientes funciones no son compatibles con los modelos analíticos: