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
}
}
}
}
|
Hierarquia
derived_analytic_model |
Valor padrão
Nenhum
Regras especiais
Os modelos analíticos são compatíveis apenas com conexões do BigQuery e do Snowflake.
|
Definição
Para conexões do BigQuery e do Snowflake, o parâmetro derived_analytic_model define um modelo analítico no banco de dados (um gráfico do BigQuery ou uma visualização semântica no Snowflake) gerenciado pelo Looker.
Ao contrário das tabelas derivadas, os objetos de modelo analítico gerenciados pelo Looker não mantêm dados no banco de dados e não são atualizados de forma incremental. Em vez disso, eles representam modelos semânticos que definem relações e medidas diretamente no banco de dados.
O Looker é compatível com dois tipos de modelos analíticos derivados:
- Modelos analíticos derivados baseados em SQL: você define o modelo analítico usando instruções da linguagem de definição de dados (DDL) do SQL. O Looker gera o modelo analítico no seu banco de dados executando as instruções SQL especificadas.
- Modelos analíticos derivados baseados em LookML: você define o modelo analítico referenciando uma Análise própria do LookML. O Looker traduz automaticamente sua topologia de análise detalhada, junções, dimensões e métricas em instruções DDL de modelo analítico nativo do banco de dados e cria e gerencia o modelo no banco de dados.
Modelos analíticos derivados baseados em SQL
Em um modelo analítico derivado baseado em SQL, o Looker gera o modelo analítico no seu banco de dados executando as instruções adequadas da linguagem de definição de dados (DDL) do SQL especificadas na definição do parâmetro derived_analytic_model da LookML. A sintaxe SQL definida no parâmetro derived_analytic_model precisa ser compatível com seu banco de dados.
Para definir um modelo analítico baseado em SQL, use um dos seguintes subparâmetros do parâmetro derived_analytic_model:
Além disso, se você definir sua visualização de análise com o subparâmetro sql, poderá usar o subparâmetro publish_as_db_analytic_model do parâmetro derived_analytic_model para criar um modelo analítico estável que pode ser consultado fora do Looker.
Depois de definir o modelo analítico no parâmetro derived_analytic_model, você pode definir dimensões e medidas da LookML que mapeiam para o modelo analítico. Consulte a seção Exemplos de modelos analíticos derivados baseados em SQL para mais informações.
sql
Use o parâmetro sql se quiser fornecer o SQL apenas para a definição do modelo analítico e deixar o Looker gerenciar a criação dele. Ao usar o subparâmetro sql, não inclua uma instrução CREATE ou CREATE OR REPLACE, porque o Looker vai gerar automaticamente a instrução DDL para criar o modelo analítico no lado do banco de dados.
Consulte Como criar um modelo analítico derivado com sql para ver um exemplo de uso do parâmetro sql para criar um modelo analítico no seu banco de dados.
sql_create
Use o parâmetro sql_create para definir uma instrução SQL completa e criar um modelo analítico. Ao usar o parâmetro sql_create, inclua uma instrução CREATE OR REPLACE (ou CREATE, se o dialeto não for compatível com CREATE OR REPLACE).
Observe o seguinte ao usar o subparâmetro sql_create:
- Para conexões do BigQuery, use uma instrução
CREATE OR REPLACEpara criar o modelo analítico. - Use
${SQL_TABLE_NAME}para substituir o nome calculado do modelo analítico que está sendo criado. Isso garante que a instrução SQL inclua corretamente o nome do modelo analítico fornecido no parâmetroviewda LookML.
Consulte Como criar um modelo analítico derivado com sql_create para ver um exemplo de uso do parâmetro sql_create para criar um modelo analítico no seu banco de dados.
create_process
Use o parâmetro create_process quando precisar definir várias instruções SQL sequenciais para definir o modelo analítico. No parâmetro create_process, use o subparâmetro sql_step para especificar as instruções SQL individuais. Seu banco de dados vai executar as instruções sql_step uma de cada vez, na ordem especificada. O Looker emite as instruções SQL nos subparâmetros sql_step conforme você os define, sem um wrapper. Isso significa que você precisa incluir uma etapa com uma instrução CREATE OR REPLACE (ou uma instrução CREATE, se o dialeto não for compatível com CREATE OR REPLACE).
Consulte Como criar um modelo analítico derivado com create_process para ver um exemplo de uso do parâmetro create_process para criar um modelo analítico no seu banco de dados.
publish_as_db_analytic_model
Para modelos analíticos derivados criados com o parâmetro sql, é possível definir o modelo analítico derivado com publish_as_db_analytic_model: yes para solicitar que o Looker crie um modelo analítico estável que possa ser consultado fora do Looker.
O modelo analítico estável será publicado (criado) no próximo ciclo do regenerador do Looker depois que a LookML do modelo analítico derivado for implantada na produção com publish_as_db_analytic_model: yes.
Quando você especifica publish_as_db_analytic_model: yes, o regenerador do Looker cria dois modelos analíticos no seu banco de dados: um com um nome interno e outro com um nome estável. Caso contrário, o regenerador cria apenas um modelo analítico no banco de dados, usando o nome interno.
Consulte a seção Como acessar o modelo analítico estável para saber como conseguir o nome dele e usá-lo para consultar o modelo fora do Looker.
Criar dimensões e medidas do LookML com base na sua visualização de análise baseada em SQL
Depois de definir o modelo analítico, no mesmo arquivo de visualização, você pode definir dimensões e métricas da LookML com base nele.
Consulte a documentação do seu dialeto para saber mais sobre a sintaxe adequada a ser usada na definição e na referência a elementos do modelo analítico. Por exemplo, para criar uma dimensão da LookML com base em uma entidade de gráfico do BigQuery, use sublinhados para separar os elementos ao definir o escopo. Por exemplo, para o BigQuery Graph, essa dimensão da LookML é baseada na propriedade location_id na tabela de nós Stores:
dimension: location_id {
type: number
sql: Stores_location_id ;;
}
No entanto, para criar uma dimensão da LookML com base em uma visualização semântica do Snowflake, é necessário usar o nome não qualificado de uma métrica ou dimensão.
Exemplos de modelos analíticos derivados baseados em SQL
As seções a seguir mostram exemplos de como criar uma visualização analítica usando os diferentes subparâmetros de derived_analytic_model:
- Como criar um modelo analítico derivado com
sql - Como criar um modelo analítico derivado com
create_process - Como criar um modelo analítico derivado com
sql_create
Como criar um modelo analítico derivado com sql
Confira a seguir um exemplo de arquivo de visualização do LookML que define um modelo analítico baseado em SQL para um banco de dados do BigQuery usando o subparâmetro sql de derived_analytic_model. O Looker vai criar o modelo analítico no banco de dados executando os comandos SQL DDL fornecidos no parâmetro sql.
Observe o seguinte no exemplo:
- O subparâmetro
sqlcontém apenas a definição do modelo analítico. Não há uma instruçãoCREATEporque, com osql, o Looker processa automaticamente os comandosCREATEpara o modelo analítico. - O modelo analítico é definido com
publish_as_db_analytic_model: yes. Assim, o Looker cria um modelo analítico estável que pode ser consultado fora do 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 ;;
}
}
Como criar um modelo analítico derivado com create_process
Confira a seguir um exemplo de arquivo de visualização do LookML que define um modelo analítico baseado em SQL para um banco de dados do BigQuery usando o subparâmetro create_process de derived_analytic_model. Neste exemplo, você precisa definir várias instruções SQL sequenciais para definir o modelo analítico. A primeira etapa descarta o modelo analítico, se ele já existir, e a segunda etapa cria o modelo.
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 ;;
}
...
}
Como criar um modelo analítico derivado com sql_create
Confira a seguir um exemplo de arquivo de visualização do LookML que define um modelo analítico baseado em SQL para um banco de dados do BigQuery usando o subparâmetro sql_create de derived_analytic_model. Neste exemplo, o parâmetro sql_create define a instrução CREATE OR REPLACE completa a ser executada para criar o modelo analítico em uma única etapa.
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 ;;
}
...
}
Como acessar o modelo analítico estável
Se você criou seu modelo analítico derivado usando o subparâmetro sql e incluiu a instrução publish_as_db_analytic_model: yes no parâmetro derived_analytic_model, o Looker vai publicar (criar) o modelo analítico estável no próximo ciclo do regenerador do Looker depois que a LookML do modelo analítico derivado for implantada na produção com publish_as_db_analytic_model: yes.
Quando o modelo analítico estável é publicado, é possível consultá-lo diretamente usando o nome estável. Há duas maneiras de conseguir o nome estável de um modelo analítico:
Modal de detalhes da TDP
Se você for um administrador ou um usuário com a permissão see_pdts, siga estas etapas para usar a página Tabelas derivadas permanentes na seção Administrador do Looker e receber o nome do modelo analítico estável:
- Clique no ícone do Menu principal do Looker e selecione Administrador, se o menu Administrador ainda não estiver aberto. Se você estiver na seção Analisar ou Desenvolver do Menu principal do Looker, talvez seja necessário clicar na seta para voltar e acessar o menu Administrador.
- No menu Administrador, selecione Tabelas derivadas persistentes.
- Na página Tabelas derivadas persistentes, pesquise o nome do seu modelo analítico.
- Clique no menu de três pontos do modelo analítico e selecione Detalhes da PDT.
- No modal Detalhes da PDT, procure o campo Nome estável.
Para consultar o modelo analítico estável diretamente, adicione o nome do esquema de rascunho antes do nome do modelo. Por exemplo, se o nome do esquema de rascunho for tmp, você poderá consultar o modelo analítico estável com um comando como este:
SELECT * from tmp.PA_bq_analytic_model_sales_semantic_view
Guia "SQL" de uma Análise
Se você não tiver acesso à página de administrador Tabelas derivadas permanentes, determine o nome estável com base nas informações incluídas na guia SQL da seção Dados de uma consulta de análise do modelo analítico. Siga estas etapas para receber o nome estável de um modelo analítico:
Abra a Análise detalhada da visualização do modelo analítico.
Na Análise, selecione as dimensões ou métricas no seletor de campos.
Clique na guia SQL da seção Dados.
Na guia SQL, localize uma das seguintes instruções SQL:
- Para o gráfico do BigQuery:
CREATE PROPERTY GRAPHSELECT ... FROM GRAPH_EXPAND('PROPERTY_GRAPH_NAME')
- Para a visualização semântica do Snowflake:
CREATE SEMANTIC VIEWSELECT ... FROM SEMANTIC_VIEW_NAME
- Para o gráfico do BigQuery:
O nome estável é uma visualização que o Looker cria no esquema de rascunho e aponta para a tabela real ofuscada mostrada na guia "SQL". Para receber o nome estável da visualização de análise, preencha as seguintes informações da instrução SQL:
SCRATCH_SCHEMA_NAME.CONNECTION_REGISTRATION_KEY_MODEL_NAME_VIEW_NAME- SCRATCH_SCHEMA_NAME: o nome do esquema de rascunho é o início da string após a instrução
CREATEouSELECT, antes de ".". - CONNECTION_REGISTRATION_KEY: a chave de registro de conexão tem dois caracteres. Dependendo do dialeto do banco de dados, ela vai seguir um cifrão ou o primeiro sublinhado no nome da tabela na instrução
CREATEouSELECT. - MODEL_NAME: o nome do modelo do LookML.
- VIEW_NAME: o nome da visualização em que o modelo analítico está definido.
- SCRATCH_SCHEMA_NAME: o nome do esquema de rascunho é o início da string após a instrução
Por exemplo, este é o texto da guia SQL de uma consulta de detalhamento para uma conexão do BigQuery. O modelo analítico é definido na visualização chamada sales_analytic_model, e o nome do modelo do LookML é thelook. Nesse caso, o Looker já criou o modelo analítico, então não há uma instrução CREATE. Mas a instrução SELECT ... FROM GRAPH_EXPAND contém as informações do nome da tabela:
-- 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
Estes são os valores necessários para derivar o nome estável do modelo analítico:
- SCRATCH_SCHEMA_NAME é
looker-test-db.looker_scratch - CONNECTION_REGISTRATION_KEY é
J7 - MODEL_NAME é
thelook - VIEW_NAME é
sales_analytic_model
Portanto, o nome estável do modelo analítico é:
looker-test-db.looker_scratch.J7_thelook_sales_analytic_model
Depois de ter o nome estável do modelo analítico, é possível consultá-lo diretamente.
Modelos analíticos derivados com base no LookML
Com os modelos analíticos derivados baseados em LookML, é possível definir um modelo analítico no banco de dados (como um gráfico do BigQuery ou uma visualização semântica do Snowflake) diretamente de uma análise detalhada da LookML sem precisar escrever instruções DDL de SQL específicas do banco de dados.
Use os seguintes parâmetros para definir um modelo analítico derivado com base na LookML:
model_sourcepublish_as_db_analytic_model(esse parâmetro se aplica a modelos analíticos derivados baseados em LookML e SQL)
Para criar um modelo analítico derivado baseado em LookML, use o parâmetro model_source para apontar para uma análise de origem que define sua topologia de dados. Em seguida, o Looker traduz automaticamente as visualizações, junções, dimensões e medidas do LookML em instruções DDL de modelo analítico nativo do banco de dados:
- Nós / tabelas:cada visualização da LookML na análise detalhada de origem se torna uma tabela de nós no gráfico do BigQuery ou uma tabela em uma visualização semântica do Snowflake.
- Arestas / relacionamentos:cada junção definida com o parâmetro
foreign_keyna análise detalhada de origem se torna uma tabela de arestas no BigQuery Graph ou um relacionamento em uma visualização semântica do Snowflake. - Propriedades / Dimensões e métricas:as dimensões e medidas do LookML das visualizações de origem se tornam propriedades de nós no gráfico do BigQuery ou dimensões e métricas em uma visualização semântica do Snowflake.
Quando você consulta uma Análise baseada em uma visualização de modelo analítico derivado do LookML, o Looker gera e executa a DDL do banco de dados para criar o modelo analítico no esquema de rascunho do banco de dados e, em seguida, executa a consulta no modelo analítico gerado. Depois que o modelo analítico é criado, o Looker o mantém para que as consultas subsequentes façam referência diretamente ao modelo existente até que a definição da LookML seja modificada.
model_source
O parâmetro model_source especifica o nome da Análise do LookML que serve como origem de topologia e relacionamento para o modelo analítico.
view: sales_analytic_model {
derived_analytic_model: {
model_source: order_items {
fields: [order_items.id, orders.id, orders.status, users.name]
}
}
}
As análises incluídas na análise detalhada de origem precisam ter uma chave primária definida usando primary_key: yes na dimensão de chave primária.
model_source aceita os seguintes subparâmetros:
| Parâmetro | Descrição |
|---|---|
fields |
Opcional. Especifica uma lista de permissão ou de bloqueio de campos da Análise de origem para exportar para o modelo analítico. |
join (ou joins) |
Opcional. Define ou refina junções da análise detalhada de origem especificamente para o modelo analítico. |
fields
Por padrão, todos os campos disponíveis das visualizações na Análise de origem são exportados para o modelo analítico. Alguns campos da Análise de origem podem não estar disponíveis se ela for definida com um parâmetro fields. É possível usar o subparâmetro fields em model_source para especificar um subconjunto de campos a serem exportados ou excluir campos específicos usando a sintaxe de lista padrão do 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
O parâmetro join em model_source permite adicionar refinamentos às junções já especificadas na análise detalhada de origem. Com os refinamentos, é possível fazer ajustes que são restritos exclusivamente ao modelo analítico sem alterar a definição da análise detalhada de origem.
No parâmetro join em model_source, especifique o nome de uma junção da Análise da origem com o indicador de refinamento +. Por exemplo, join: +view_name. Em seguida, use os subparâmetros join para refinar a junção da análise detalhada de origem conforme necessário no seu modelo analítico. Consulte o Etapa 2 para ver um exemplo.
O parâmetro join em model_source aceita apenas refinamentos de junção. Não é possível adicionar uma nova junção ao modelo analítico que ainda não existe na Análise de origem.
O parâmetro join em model_source é compatível com os seguintes subparâmetros:
| Subparâmetro | Descrição |
|---|---|
foreign_key |
Especifica a coluna ou dimensão de chave externa que estabelece a relação para o modelo analítico. Para ver um exemplo com o parâmetro foreign_key, consulte o exemplo na etapa 1. |
relationship |
Define a cardinalidade da junção (many_to_one, one_to_one, one_to_many ou many_to_many). |
Como configurar um modelo analítico derivado com base na LookML
Para configurar um modelo analítico derivado com base em LookML, siga estas etapas:
- Definir as visualizações de base e a Análise de origem com junções
foreign_key - Criar a visualização do modelo analítico derivado
- Definir dimensões e medidas do LookML na visualização do modelo analítico
- Criar uma Análise para a visualização do modelo analítico
- Consultar o modelo analítico no Looker
Etapa 1: definir as visualizações básicas e a Análise de origem com junções foreign_key
Primeiro, verifique se as visualizações básicas (como order_items, orders e users) estão definidas com chaves primárias.
Em seguida, defina uma Análise no arquivo de modelo do LookML que especifica as relações entre as visualizações. Para criar relações em um modelo analítico no banco de dados, é necessário usar o parâmetro foreign_key em cada junção na análise detalhada de origem:
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
}
}
Etapa 2: criar a visualização do modelo analítico derivado
Crie um arquivo de visualização (por exemplo, sales_analytic_model.view.lkml) e adicione um bloco derived_analytic_model com o parâmetro model_source que aponta para sua análise detalhada de origem:
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
# }
}
}
...
Etapa 3: definir dimensões e medidas do LookML na visualização do modelo analítico
No mesmo arquivo de visualização do modelo analítico, defina as dimensões, os grupos de dimensões e as métricas que são mapeadas para as propriedades no modelo analítico gerado. Assim, elas podem ser consultadas nas Análises do Looker.
Faça referência aos campos do modelo subjacente usando ${TABLE}.<view_name>_<field_name> (ou ${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 ;;
}
}
Etapa 4: criar uma análise detalhada para a visualização do modelo analítico
No arquivo de modelo (como sales.model.lkml), crie uma Análise para a visualização do modelo analítico usando o nome da visualização:
explore: sales_analytic_model {}
Uma análise detalhada baseada em uma visualização de modelo analítico não pode conter junções, porque as relações são definidas internamente no próprio modelo analítico.
Etapa 5: consultar o modelo analítico no Looker
Abra a nova Análise (por exemplo, Modelo de análise de vendas) no Looker, selecione dimensões e métricas e execute sua consulta.
Para inspecionar o SQL gerado, siga estas etapas:
- Clique na guia SQL no painel Dados.
- Na guia SQL, é possível conferir a instrução DDL específica do banco de dados gerada pelo Looker (como
CREATE PROPERTY GRAPH ...comNODE TABLESeEDGE TABLESpara o BigQuery Graph) e a consulta executada no modelo analítico (comoFROM GRAPH_EXPAND(...) AS sales_analytic_model). - Quando a consulta é executada, o Looker persiste o modelo analítico no esquema de rascunho do banco de dados. As consultas subsequentes reutilizam o modelo persistido, evitando a reexecução da DDL até que a definição da LookML mude.
Considerações sobre modelos analíticos derivados com base na LookML
Ao definir modelos analíticos derivados com base na LookML, considere o seguinte:
- Chaves primárias:todas as visualizações no detalhamento da origem precisam ter uma dimensão de chave primária definida usando
primary_key: yes. - Topologia acíclica:as relações definidas por junções na Análise da origem precisam formar uma estrutura de árvore acíclica estrita. Não é possível usar relações cíclicas.
- Requisitos da visualização de origem:as visualizações incluídas na análise de origem precisam ser tabelas de banco de dados padrão ou tabelas derivadas permanentes (PDTs, na sigla em inglês) com um nome estável. Tabelas e visualizações derivadas efêmeras (não persistentes) baseadas em outros modelos analíticos não podem ser usadas como fontes.
- Parâmetros de análise:os parâmetros dinâmicos de filtragem de tempo de execução (
sql_always_where,always_filter,access_filter) esql_always_joinna análise detalhada de origem são ignorados durante a geração do modelo analítico.
Informações importantes
Ao usar modelos analíticos no banco de dados, lembre-se das seguintes considerações e limitações:
Tipos de dados:somente os seguintes tipos de dados para dimensões e métricas são compatíveis com modelos analíticos:
- Compatível com dimensões e medidas:
stringnumberdateyesno
- Compatível apenas com dimensões:
timedate_time
- Compatível com dimensões e medidas:
Medidas:
- As medidas de base precisam ser predefinidas:no modelo analítico do banco de dados subjacente. O Looker não pode definir uma nova medida de base realizando uma agregação (como
type: sumoutype: count) em uma dimensão de um modelo analítico. Métricas baseadas em outras métricas são aceitas:use o parâmetro
sqlde uma métrica do LookML para realizar cálculos não agregados que usam métricas básicas predefinidas do modelo analítico. Ao criar uma medida com base em outras, não é possível definir a nova medida como um tipo agregado, comosumoucount. Defina a nova métrica como um tipo não agregado, comostring,number,dateouyesno. Veja o exemplo a seguir:measure: average_order_amount { type: number sql: ROUND(${total_order_amount} / NULLIF(${count_orders}, 0), 2) ;; }
- As medidas de base precisam ser predefinidas:no modelo analítico do banco de dados subjacente. O Looker não pode definir uma nova medida de base realizando uma agregação (como
Mesclas:uma Análise própria cuja visualização de base é baseada em um modelo analítico não pode incluir mesclas. Da mesma forma, uma visualização baseada em um modelo analítico não pode ser unida a uma Análise detalhada que tenha uma visualização de base padrão do LookML.
Junções implícitas:os recursos que dependem de junções implícitas não são compatíveis com modelos analíticos. Alguns exemplos de recursos que dependem de junções implícitas são calendários personalizados e campos definidos com
type: location,type: distanceoutype: zipcode.Os seguintes recursos não são compatíveis com modelos analíticos: