Especificação do modelo semântico Cortex Analyst¶
Por que usar modelos semânticos?¶
O Cortex Analyst permite que os usuários consultem os dados do Snowflake usando linguagem natural. No entanto, os usuários corporativos geralmente usam uma linguagem incompatível com o esquema. Embora os usuários especifiquem termos comerciais específicos do domínio em suas perguntas, os dados subjacentes geralmente são armazenados usando abreviações técnicas. Por exemplo, “CUST” é frequentemente usado para clientes. Essa desconexão, combinada com a falta de contexto semântico do esquema, dificulta o fornecimento de respostas precisas pelo Cortex Analyst.
Os modelos semânticos mapeiam a terminologia comercial para esquemas de banco de dados e acrescentam significado contextual. Por exemplo, quando um usuário pergunta sobre “receita total no mês passado”, o modelo semântico pode definir “receita” como receita líquida e “mês passado” como o mês anterior. Esse mapeamento ajuda o Cortex Analyst a entender a intenção do usuário e a fornecer respostas precisas.
Nota
Modelos semânticos são considerados metadados.
Principais conceitos¶
Nota
Neste tópico, os artefatos do banco de dados são chamados de objetos “físicos”, enquanto os artefatos do modelo semântico são chamados de objetos “lógicos”.
A estrutura e os conceitos do modelo semântico são semelhantes aos dos esquemas de banco de dados, mas os modelos semânticos permitem que você forneça mais informações semânticas sobre seus dados.
Conceitos de camada semântica¶
A estrutura e os conceitos que definem a camada semântica lógica são semelhantes aos que definem a camada física do banco de dados. A seguir estão os tipos de conceito para uma camada semântica:
Nível de tabela lógica
Nível do modelo
Contexto adicional
Conceitos lógicos em nível de tabela¶
Uma tabela lógica é um conceito fundamental do modelo semântico do Snowflake. Ela representa uma tabela do banco de dados física ou uma exibição. Normalmente, isso corresponde a entidades comerciais (como clientes, pedidos ou fornecedores) ou dimensões (como localização ou tempo). Normalmente, cada linha em uma tabela lógica representa uma instância exclusiva da entidade, como ID de um cliente.
As tabelas lógicas contêm os seguintes tipos de colunas:
Fatos (dados quantitativos sobre eventos de negócios)
Dimensões (quem, o que, onde e como)
Hora (quando o evento ocorreu)
Filtros associados à tabela lógica para permitir que os resultados de consulta sejam limitados a subconjuntos de dados específicos.
Você pode definir métricas usando agregações ou combinações de outros objetos lógicos.
Os exemplos a seguir usam o esquema TPC-H, que inclui a tabela de fatos LINEITEM. Para obter uma implementação completa do YAML, faça o download do arquivo snow_tpch.
Todos os exemplos de nível de tabela lógica a seguir pertencem à tabela lógica order_lineitems.
tables:
- name: order_lineitems
description: >
The order line items table contains detailed information about each item within an
order, including quantities, pricing, and dates.
base_table:
database: SNOWFLAKE_SAMPLE_DATA
schema: TPCH_SF1
table: LINEITEM
primary_key:
columns:
- order_key
- order_lineitem_number
Uma dimensão representa dados categóricos que fornecem contexto aos fatos, como informações sobre produtos, clientes ou locais. As dimensões normalmente contêm valores de texto descritivos, como nomes de produto ou endereços de cliente. Elas são usadas para filtrar, agrupar e rotular fatos em análises e relatórios.
Uma dimensão de tempo fornece contexto temporal para analisar fatos em diferentes períodos. Ela permite o rastreamento de métricas em intervalos de tempo específicos (datas, meses, anos) e oferece suporte a análises como identificação de tendências e comparações entre períodos.
time_dimensions:
- name: shipment_duration
synonyms:
- "shipping time"
- "shipment time"
description: The time it takes for items to be shipped.
expr: DATEDIFF(day, lineitem.L_SHIPDATE, lineitem.L_RECEIPTDATE)
data_type: NUMBER
unique: false
Fatos são dados mensuráveis e quantitativos que fornecem contexto para as análises. Os fatos representam valores numéricos relacionados aos processos de negócios, como vendas, custo ou quantidade. Um fato é um conceito não agregado, em nível de linha.
# Fact columns in the logical table.
facts:
- name: net_revenue
synonyms:
- "revenue after discount"
- "net sales"
description: Net revenue after applying discounts.
expr: lineitem.L_EXTENDEDPRICE * (1 - lineitem.L_DISCOUNT)
data_type: NUMBER
For semantic views, facts can be made private (accessible in the semantic view, but
not by end users) by setting the access_modifier field to private_access. By default, facts are public (accessible by
users).
Um filtro é uma condição que limita os resultados de consulta a subconjuntos de dados específicos com base em critérios como período de tempo, local ou categoria.
- name: north_america
synonyms:
- "NA"
- "North America region"
description: >
Filter to restrict data to orders from North America.
comments: Used for analysis focusing on North American customers.
expr: nation.N_NAME IN ('Canada', 'Mexico', 'United States')
Uma métrica é uma medida quantificável de desempenho comercial expressa como uma fórmula SQL. Você pode usar métricas como principais indicadores de desempenho (KPIs) em relatórios e painéis. É possível calcular dois tipos de métricas:
Métricas regulares agregam valores (usando funções como SUM ou AVG) em uma coluna de fatos.
Derived metrics are calculated from existing metrics, using arithmetic operations such as addition or division. Derived metrics are supported only in semantic views.
Definir métricas em seu nível mais granulares para agregação em níveis superiores. Por exemplo, defina total_revenue no nível do item de linha para permitir a agregação por cliente, fornecedor ou região.
O exemplo a seguir mostra o cálculo de duas métricas regulares: um simples e um mais complexo. Elas são definidas dentro de uma definição table, portanto, elas têm como escopo essa tabela lógica.
metrics:
# Simple metric referencing objects from the same logical table
- name: total_revenue
expr: SUM(lineitem.l_extendedprice * (1 - lineitem.l_discount))
# Complex metric referencing objects from multiple logical tables.
# The relationships between tables have been defined below.
- name: total_profit_margin
description: >
The profit margin from orders. This metric is not additive
and should always be calculated directly from the base tables.
expr: (SUM(order_lineitems.net_revenue) -
SUM(part_suppliers.part_supplier_cost * order_lineitems.lineitem_quantity))
/ SUM(order_lineitems.net_revenue)
Dica
For semantic views, metrics can be made private (accessible in the semantic view, but not by end users) by setting the
access_modifier field to private_access. By default, metrics are public (accessible by users).
Referências permitidas¶
Expressões para dimensões, fatos, filtros ou métricas regulares com escopo de tabela podem fazer referência a:
Colunas físicas de sua própria tabela base
Colunas lógicas dentro da mesma tabela lógica
Colunas lógicas de outras tabelas lógicas no modelo semântico
For semantic views, derived metrics can reference metrics defined in any logical table in the semantic view or other derived metrics.
Nota
As expressões não podem fazer referência a colunas físicas de outras tabelas físicas.
Conceitos em nível de modelo¶
As relações conectam tabelas lógicas por meio de junções de chaves compartilhadas. Por exemplo, pode haver uma relação entre as tabelas de clientes e pedidos por meio de uma junção na coluna customer_id. Você pode usar junções para analisar os dados de pedidos com atributos de clientes.
relationships:
# Relationship between orders and lineitems
- name: order_lineitems_to_orders
left_table: order_lineitems
right_table: orders
relationship_columns:
- left_column: order_key
right_column: order_key
# For semantic views, do not specify
# join_type or relationship_type.
join_type: left_outer
relationship_type: many_to_one
# Relationship between lineitems and partsuppliers
- name: order_lineitems_to_part_suppliers
left_table: order_lineitems
right_table: part_suppliers
# The relationship requires equality of multiple columns from each table
relationship_columns:
- left_column: part_key
right_column: part_key
- left_column: supplier_key
right_column: supplier_key
# For semantic views, do not specify
# join_type or relationship_type.
join_type: left_outer
relationship_type: many_to_one
Um repositório de consultas verificadas (VQR) é uma coleção de perguntas e consultas SQL correspondentes que são verificadas como corretas. Você pode usar as consultas para ajudar a melhorar a precisão dos resultados do Cortex Analyst.
Você pode usar Instruções personalizadas no Cortex Analyst para ter maior controle sobre a geração de consulta SQL do Cortex Analyst. Nas instruções personalizadas, você fornece o contexto exclusivo de seu negócio para o LLM.
Os modelos semânticos do Cortex Analyst são especificados em YAML. O modelo fornece as informações semânticas necessárias para responder a perguntas de linguagem natural com alta precisão.
Formato YAML¶
YAML é um meio-termo entre legibilidade humana e precisão. Os usuários corporativos podem entendê-lo, enquanto os engenheiros e analistas de dados podem definir claramente os conceitos técnicos.
A sintaxe geral de um modelo semântico do Cortex Analyst é a seguinte:
# Name and description of the semantic model.
name: <name>
description: <string>
comments: <string>
# Logical table-level concepts
# A semantic model can contain one or more logical tables.
tables:
# A logical table on top of a base table.
- name: <name>
description: <string>
# The fully qualified name of the base table.
base_table:
database: <database>
schema: <schema>
table: <base table name>
# Dimension columns in the logical table.
dimensions:
- name: <name>
synonyms: <array of strings>
description: <string>
expr: <SQL expression>
data_type: <data type>
unique: <boolean>
cortex_search_service:
service: <string>
literal_column: <string>
database: <string>
schema: <string>
is_enum: <boolean>
# Time dimension columns in the logical table.
time_dimensions:
- name: <name>
synonyms: <array of strings>
description: <string>
expr: <SQL expression>
data_type: <data type>
unique: <boolean>
# Fact columns in the logical table.
facts:
- name: <name>
synonyms: <array of strings>
description: <string>
access_modifier: < public_access | private_access > # Supported only for semantic views.
# Default is public_access.
expr: <SQL expression>
data_type: <data type>
# Regular metrics scoped to the logical table.
metrics:
- name: <name>
synonyms: <array of strings>
description: <string>
access_modifier: < public_access | private_access > # Supported only for semantic views.
# Default is public_access.
expr: <SQL expression>
# Commonly used filters over the logical table.
filters:
- name: <name>
synonyms: <array of strings>
description: <string>
expr: <SQL expression>
# Model-level concepts
# Relationships between logical tables
relationships:
- name: <string>
left_table: <table>
right_table: <table>
relationship_columns:
- left_column: <column>
right_column: <column>
- left_column: <column>
right_column: <column>
# For semantic views, do not specify
# join_type or relationship_type.
join_type: <left_outer | inner>
relationship_type: < one_to_one | many_to_one >
# Derived metrics scoped to the semantic view.
# Derived metrics are supported only for semantic views.
metrics:
- name: <name>
synonyms: <array of strings>
description: <string>
access_modifier: < public_access | private_access > # Default is public_access
expr: <SQL expression>
# Additional context concepts
# Verified queries with example questions and queries that answer them
verified_queries:
- name: # A descriptive name of the query.
question: # The natural language question that this query answers.
verified_at: # Optional: Time (in seconds since the UNIX epoch, January 1, 1970) when the query was verified.
verified_by: # Optional: Name of the person who verified the query.
use_as_onboarding_question: # Optional: Marks this question as an onboarding question for the end user.
sql: # The SQL query for answering the question
Para obter um exemplo de especificação, consulte o arquivo snow_tpch.yaml.
Create a semantic view using the AI-assisted model generator¶
Use the AI-assisted generator to create a semantic model that combines semantic information from multiple sources. For more information about the AI-assisted generator, see Using the AI-assisted generator to create a semantic view.
To create the model, complete the following steps:
Sign in to Snowsight.
In the navigation menu, select AI & ML » Cortex Analyst.
In the title bar, select Create new » Create new Semantic Model.
Select a location to store the semantic model after creation.
- Enter a name for the semantic model.
This name automatically populates the File name field.
For Description, specify information about the semantic model.
Optional: Enter a different file name.
Select Next.
Optional: To provide context, for SQL Queries, provide example questions and their respective SQL queries that you want to use as part of the model.
Nota
The AI-assisted generator runs EXPLAIN on these queries, so these queries should return actual data. If they do not, Snowflake doesn’t guarantee proper performance.
For Select tables, provide the data source that you’re using to create the semantic model. You must provide at least one table or view. There’s no limit on the tables or views that you can specify, but we recommend not using more than 10 for the semantic model.
Select Next.
For Select columns, select the columns that you’re using to create the semantic model. You can select all the columns or specific columns. For performance reasons, we recommend not using more than 50 columns.
Select whether you want to add sample values from each column to the semantic model.
Sample values help improve the accuracy of Cortex Analyst’s results.
Select whether you want to add AI-generated descriptions for tables and columns to the semantic model.
The AI-generated descriptions are based on the column names and sample values.
Select Create and save.
You can view the progress of the model generation, including details about the steps that the model generator is taking, on the semantic model page. The process can take a few minutes.
To make further modifications, edit the model by either using Snowsight or editing the YAML file directly.
Cortex Analyst automatically generates suggestions to improve the semantic model after creation. Cortex Analyst uses the query history accessible by the role used to create the semantic model to generate both relationships and verified query suggestions. It might take some time for the suggestions to appear. After the suggestions appear, you can review them and apply them to the model as needed.
Como abrir um modelo semântico existente¶
Após criar um modelo semântico, é possível abri-lo no Snowsight. Para abrir um modelo semântico, faça o seguinte:
Sign in to Snowsight.
In the navigation menu, select AI & ML » Cortex Analyst.
On the Semantic models tab, select the database, schema, and stage where the semantic model was saved.
From the list of semantic models, select the semantic model that you want to open.
Selecione Open.
Nota
Se você não encontrar seu modelo semântico dentro da sua área de preparação, tente atualizar a lista de modelos, não a página.
Dicas para criar um modelo semântico¶
Organize seu arquivo YAML por domínio ou tópico de negócios
Estruture seus arquivos YAML para alinhá-los a domínios ou tópicos comerciais específicos, mantendo o escopo focado. Por exemplo, crie modelos semânticos separados para análise de vendas e análise de marketing.
Adapte seus casos de uso com base no público-alvo, nas perguntas esperadas ou KPIs e nos dados necessários. Casos de uso bem definidos levam a modelos semânticos mais ricos e recuperação de dados mais eficaz.
Pense pela perspectiva do usuário final
Identifique as principais perguntas que os usuários provavelmente farão sobre o tópico e inclua apenas as tabelas e colunas necessárias para responder a essas perguntas.
Use nomes e sinônimos que sejam semelhantes ao vocabulário usado pelos usuários finais.
Inclua detalhes importantes nos campos de descrição que seriam úteis para alguém que está escrevendo consultas neste conjunto de dados pela primeira vez, como o fuso horário de uma coluna DATETIME.
Capture cálculos complexos
Incorpore consultas mais difíceis ou específicas do negócio em expressões.
Use tabelas largas em vez de tabelas longas
Se você tiver uma tabela com colunas como “métrica” e “valor”, nivele a tabela para que cada métrica seja uma coluna. Essa abordagem fornece ao modelo mais informações semânticas sobre cada métrica.
Revise as descrições geradas automaticamente
Se você estiver usando o gerador de modelo semântico, ele tentará gerar automaticamente descrições para suas tabelas e colunas. Sempre revise essas descrições para garantir que sejam razoáveis e relevantes; faça modificações conforme necessário.
Comece de forma simples e expanda gradualmente
Um arquivo semântico bem delimitado garante maior precisão e exatidão dos resultados. Comece com um pequeno número de tabelas e colunas e expanda o YAML do modelo semântico gradualmente para abranger mais tipos de perguntas. Lembre-se de que a construção do YAML é um processo contínuo.
Inclua consultas verificadas
Um repositório de consulta verificado (VQR), que é uma coleção de perguntas e consultas em inglês simples que as respondem, pode ajudar a melhorar a precisão e a confiabilidade dos resultados.
Limitações conhecidas¶
Cortex Analyst imposes a 2 MB size limit on the semantic model or semantic view to restrict the size of API inputs.
Especificação¶
Esta seção contém especificações detalhadas dos principais conceitos descritos nas seções anteriores.
Modelo semântico¶
Um modelo semântico representa uma coleção de tabelas. O modelo contém descrições de tabelas, cada uma das quais contém descrições de aspectos específicos da tabela. Cada tabela descrita no modelo é mapeada para uma tabela base física no Snowflake.
Ela possui os seguintes campos:
Obrigatório
nameUm nome descritivo para este modelo semântico.
Deve ser único e seguir os requisitos de identificadores sem aspas. Também não pode entrar em conflito com palavras-chave reservadas do Snowflake.
Opcional
Esses campos não são obrigatórios, mas devem ser incluídos sempre que possível.
descriptionUma descrição deste modelo semântico, incluindo detalhes sobre para que tipo de análise ele é útil.
tablesUma lista de tabelas lógicas neste modelo semântico.
relationshipsUma lista de junções entre tabelas lógicas.
Tabela lógica¶
Você pode pensar em uma tabela lógica como uma exibição sobre uma tabela ou exibição do banco de dados física. Ela possui os seguintes campos:
Obrigatório
nameUm nome descritivo para esta tabela.
Deve ser único e seguir os requisitos de identificadores sem aspas. Também não pode entrar em conflito com palavras-chave reservadas do Snowflake.
base_tableUm nome totalmente qualificado da tabela base subjacente no banco de dados.
Opcional
Esses campos não são obrigatórios, mas devem ser incluídos sempre que possível.
synonymsUma lista de outros termos/frases usados para se referir a esta tabela. Ela deve ser exclusiva entre sinônimos dentro da tabela lógica.
descriptionUma descrição desta tabela.
primary_keyAs colunas de chave primária dessa tabela. Necessário se você estiver definindo relações.
dimensionsUma lista de colunas de dimensão nesta tabela.
time_dimensionsUma lista de colunas de dimensão de tempo nesta tabela.
factsUma lista de colunas de fatos nessa tabela.
metricsUma lista de métricas nessa tabela.
filtersFiltros predefinidos nesta tabela, se houver.
Dimensão¶
Uma dimensão descreve valores categóricos como estado, tipo_de_usuário, plataforma etc. Ela possui os seguintes campos:
Obrigatório
nameUm nome descritivo para esta dimensão.
Deve ser único e seguir os requisitos de identificadores sem aspas. Também não pode entrar em conflito com palavras-chave reservadas do Snowflake.
exprA expressão SQL para esta dimensão. Isso pode ser uma referência a uma coluna física ou uma expressão SQL com uma ou mais colunas da tabela base subjacente.
data_typeO tipo de dados desta dimensão. Para uma visão geral de todos os tipos de dados no Snowflake, consulte Referência dos tipos de dados SQL. Observe que
VARIANT,OBJECT,GEOGRAPHYeARRAYe não são suportados atualmente.
Opcional
Esses campos não são obrigatórios, mas devem ser incluídos sempre que possível.
synonymsUma lista de outros termos/frases usados para se referir a esta dimensão. Deve ser único entre todos os sinônimos neste modelo semântico.
descriptionUma breve descrição sobre esta dimensão, incluindo quais dados ela possui.
uniqueUm valor booliano que indica que esta dimensão tem valores únicos.
sample_valuesValores de amostra desta coluna, se houver. Adicione qualquer valor que provavelmente será mencionado nas perguntas do usuário.
is_enumUm valor booliano. Se for
True, os valores no camposample_valuesserão considerados como a lista completa de valores possíveis, e o modelo só escolherá entre esses valores ao filtrar essa coluna.cortex_search_serviceEspecifica o Cortex Search Service a ser usado para esta dimensão. Ela possui os seguintes campos:
service: o nome do serviço Cortex Search Service.literal_column: (opcional) a coluna no Cortex Search Service com os valores literais.database: (opcional) o banco de dados em que o Cortex Search Service está localizado. O padrão é o banco de dados debase_table.schema: (opcional) o esquema em que o Cortex Search Service está localizado. O padrão é o esquema debase_table.
cortex_search_servicesubstitui o campocortex_search_service_name, que só podia especificar o nome.cortex_search_service_namefoi descontinuado.
Dimensão do tempo¶
Uma dimensão de tempo descreve valores de tempo, como sale_date, created_at e year. Ela possui os seguintes campos:
Obrigatório
nameUm nome descritivo para esta dimensão de tempo.
Deve ser único e seguir os requisitos de identificadores sem aspas. Também não pode entrar em conflito com palavras-chave reservadas do Snowflake.
exprA expressão SQL para esta coluna. Isso pode ser uma referência a uma coluna física ou uma expressão SQL com uma ou mais colunas da tabela base subjacente.
data_typeO tipo de dados desta dimensão de tempo. Para uma visão geral de todos os tipos de dados no Snowflake, consulte Referência dos tipos de dados SQL. Observe que
VARIANT,OBJECT,GEOGRAPHYeARRAYe não são suportados atualmente.
Opcional
Esses campos não são obrigatórios, mas devem ser incluídos sempre que possível.
synonymsUma lista de outros termos/frases usados para se referir a esta dimensão de tempo. Deve ser único entre todos os sinônimos neste modelo semântico.
descriptionUma breve descrição sobre esta dimensão, incluindo quais dados ela possui. Forneça informações que ajudarão alguém a escrever consultas usando esta tabela. Por exemplo, para colunas DATETIME, especifique o fuso horário dos dados.
unique:Um valor booliano que indica que esta coluna tem valores exclusivos.
sample_values:Valores de amostra desta coluna, se houver. Adicione quaisquer valores que provavelmente serão referenciados nas perguntas do usuário. Este campo é opcional.
Fato¶
Uma medida descreve valores numéricos, como receita, impressões e salário. Fatos usavam para ser chamados de medidas em versões anteriores de Cortex Analyst. Os fatos são compatíveis com as medidas. Os fatos têm os seguintes campos:
Obrigatório
nameUm nome descritivo para esse fato.
Deve ser único e seguir os requisitos de identificadores sem aspas. Também não pode entrar em conflito com palavras-chave reservadas do Snowflake.
exprEssa instrução SQL pode se referir a uma coluna física na mesma tabela física de base da tabela lógica ou a uma coluna lógica (fato, dimensão ou dimensão de tempo) dentro dessa tabela lógica.
data_typeO tipo de dados desse fato. Para uma visão geral de todos os tipos de dados no Snowflake, consulte Referência dos tipos de dados SQL. Observe que
VARIANT,OBJECT,GEOGRAPHYeARRAYe não são suportados atualmente.
Opcional
Os campos a seguir não são obrigatórios, mas devem ser incluídos sempre que possível.
synonymsUma lista de outros termos/frases usados para se referir a esta medida. Deve ser único entre todos os sinônimos neste modelo semântico.
descriptionUma breve descrição sobre esta medida, incluindo quais dados esta coluna possui.
uniqueUm valor booliano que indica que esta coluna tem valores exclusivos.
sample_valuesValores de amostra desta coluna, se houver. Adicione quaisquer valores que provavelmente serão referenciados nas perguntas do usuário.
O campo a seguir é opcional. Se não estiver incluído, o padrão será public_access.
access_modifierSupported only for semantic views. The possible values are
public_accessandprivate_access. If this is set toprivate_access, the fact is accessible in the semantic view, but not by end users.
Filter¶
Um filtro representa uma expressão SQL usada para filtragem. Ela possui os seguintes campos:
Obrigatório
nameUm nome descritivo para este filtro.
exprA expressão SQL deste filtro, referenciando colunas lógicas.
Opcional
Esses campos não são obrigatórios, mas devem ser incluídos sempre que possível.
synonymsUma lista de outros termos/frases usados para se referir a este filtro. Deve ser único entre todos os sinônimos neste modelo semântico.
descriptionUma breve descrição sobre esse filtro, incluindo detalhes sobre a finalidade para a qual ele é normalmente usado.
Métrica¶
Uma métrica descreve medidas quantificáveis de desempenho comercial, como receita total, valor médio do pedido ou contagem de clientes. As métricas podem ser métricas regulares ou métricas derivadas.
Métricas regulares têm escopo para uma tabela lógica e podem fazer referência a colunas lógicas (fatos, dimensões ou dimensões de tempo) dentro da mesma tabela lógica ou colunas lógicas de outras tabelas lógicas no modelo semântico. No modelo semântico, o elemento
metricestá dentro de um elementotable. Métricas regulares usam funções agregadas e de janela para calcular valores gerais para a tabela.Derived metrics (which are supported only for semantic views) are scoped to the semantic view and provide a way of combining other metrics. In the semantic model, the
metricelement is inside thesemantic_modelelement. You can refer only to other metrics (including other derived metrics) in the metric’s expression.
As métricas têm os seguintes campos.
Obrigatório
nameUm nome descritivo para esta métrica. Este nome determina se é uma métrica regular.
Deve ser único e seguir os requisitos de identificadores sem aspas. Também não pode entrar em conflito com palavras-chave reservadas do Snowflake.
exprA expressão SQL para esta coluna. O formato da expressão depende de se a métrica é uma métrica regular ou uma métrica derivada.
As métricas regulares, que são definidas para uma tabela, referenciam uma coluna lógica (fato, dimensão ou dimensão temporal) na mesma tabela lógica ou uma coluna lógica de outra tabela lógica no modelo semântico e usam funções agregadas ou de janela para calcular valores gerais.
Métricas derivadas são expressões escalares que podem fazer referência a métricas regulares ou outras métricas derivadas.
Opcional
Os campos a seguir não são obrigatórios, mas devem ser incluídos sempre que possível.
synonymsUma lista de outros termos/frases usados para se referir a essa métrica. Cada sinônimo deve ser único entre todos os sinônimos no modelo semântico.
descriptionUma breve descrição dessa métrica, incluindo quais dados essa coluna possui.
sample_valuesValores de amostra desta coluna, se houver. Adicione quaisquer valores que provavelmente serão referenciados nas perguntas do usuário.
O campo a seguir é opcional. Se não estiver incluído, o padrão será public_access.
access_modifierSupported only for semantic views. The possible values are
public_accessorprivate_access. If this is set toprivate_access, the metric is accessible in the semantic view, but not by end users.
Tabela base¶
Uma tabela base é usada para representar nomes de tabela totalmente qualificados. Esta é a tabela física para a qual uma tabela lógica é mapeada. Ela possui os seguintes campos:
Obrigatório
databaseNome do banco de dados.
schemaNome do esquema.
tableNome da tabela.
Chave primária¶
Uma chave primária representa as colunas que representam exclusivamente cada linha da tabela. A chave primária é necessária se a tabela for usada em uma relação. Ela possui os seguintes campos:
Obrigatório
columnsUma lista de colunas de dimensão que representam exclusivamente a tabela.
Relações¶
Define as relações de junção entre as tabelas lógicas. Para garantir a funcionalidade adequada de junção, as chaves primárias devem ser definidas para as tabelas envolvidas nas relações. Ela possui os seguintes campos:
Obrigatório
nameUm identificador exclusivo para a relação.
left_tableNome da tabela lógica, conforme definido anteriormente no arquivo YAML. Para relações de muitos para um, a tabela da esquerda deve ser o lado muitos da relação para obter o desempenho ideal.
right_tableNome da tabela lógica, conforme definido anteriormente no arquivo YAML. Para relações de muitos para um, a tabela correta deve ser o lado da relação para obter o desempenho ideal.
relationship_columnsUma lista de colunas iguais de cada uma das tabelas da esquerda e da direita que representam o caminho de junção.
join_typeleft_outerouinner.Do not specify this for semantic views.
relationship_typemany_to_oneouone_to_one.Do not specify this for semantic views. Instead, use unique or primary keys in the logical tables to indicate that the relationship should be many-to-one or one-to-one.
Consultas verificadas¶
Consulte Cortex Analyst Verified Query Repository para obter informações sobre a finalidade e a estrutura desta seção do arquivo YAML.
Instruções personalizadas¶
Para obter informações sobre instruções personalizadas, consulte Instruções personalizadas no Cortex Analyst.