constante

Uso

constant: constant_name {
  value: "string"
  export: none | override_required | override_optional
}
Hierarquia
constant
Valor padrão
Nenhum

Aceita
  • Um subparâmetro value, que aceita uma string especificando o valor da constante
  • Um subparâmetro export, que especifica se a constante precisa ser substituída quando usada na importação de projetos.

Definição

O parâmetro constant define uma constante do LookML, permitindo especificar um valor que pode ser reutilizado em um projeto. As constantes podem ser referenciadas em qualquer lugar do modelo em que strings são aceitas e com os parâmetros model e explore de um elemento do dashboard do LookML, ajudando a reduzir a repetição no código LookML.

As constantes precisam ser definidas no arquivo de manifesto do projeto. As constantes podem ser usadas em todo um projeto usando a sintaxe @{constant_name}.

Você pode usar o subparâmetro export de constant para especificar se os desenvolvedores devem substituir o valor de uma constante quando os arquivos que a referenciam são importados para outro projeto.

export

Você pode usar o subparâmetro export de constant para determinar como uma constante pode ser usada quando os arquivos que a referenciam são importados para outros projetos.

Por padrão, os arquivos importados que referenciam uma constante usam o valor especificado no arquivo de manifesto do projeto importado no projeto de importação. O parâmetro export especifica se os desenvolvedores precisam substituir o valor de uma constante fornecendo um novo valor para usar na importação de projetos. O parâmetro export tem os seguintes valores possíveis:

  • none: o valor padrão de export. O valor da constante não pode ser substituído no projeto de importação. O projeto de importação usa o valor constante especificado no arquivo de manifesto do projeto importado.
  • override_optional: o valor da constante pode ser substituído no projeto de importação. Se um valor não for fornecido no arquivo de manifesto do projeto de importação, o valor original do projeto importado será usado.
  • override_required: o projeto de importação precisa substituir o valor constante originalmente especificado no arquivo de manifesto do projeto importado. Se um novo valor constante não for fornecido no projeto de importação, o Looker vai mostrar um erro.

As constantes estão disponíveis apenas para arquivos do projeto em que foram definidas originalmente. Portanto, as constantes definidas em um projeto cujos arquivos foram importados só podem ser usadas pelos arquivos importados, e não pelos arquivos definidos no projeto de importação.

Se você quiser usar uma constante nos arquivos do projeto de importação, defina uma nova constante no arquivo de manifesto do projeto de importação. Uma constante definida dessa forma fica disponível apenas para os arquivos definidos no projeto de importação.

Ao importar arquivos que referenciam uma constante para outro projeto, é possível usar o subparâmetro override_constant de local_dependency ou remote_dependency no arquivo de manifesto do projeto de importação para fornecer um novo valor a uma constante que tenha export definido como override_optional ou override_required.

Consulte a página de documentação Importar arquivos de outros projetos para mais informações e um exemplo de substituição de constantes em projetos de importação.

Exemplos

Confira alguns exemplos de como usar o parâmetro constant para definir valores que podem ser usados em todo um projeto.

Rotular análises detalhadas com o parâmetro constant

Suponha que você queira criar duas análises detalhadas, chamadas Usuários de São Francisco e Pedidos de São Francisco na UI. Para fazer isso, defina uma constante city com o valor "San Francisco" no arquivo manifest.lkml do projeto:

constant: city {
  value: "San Francisco"
}

Essa constante pode ser referenciada em qualquer parte do projeto em que uma string é aceita, usando a sintaxe @{city}. Neste exemplo, você pode definir as análises detalhadas users e orders, especificando "@{city} Users" e "@{city} Orders" como valores para o parâmetro label, como no exemplo a seguir:


explore: users {
  label: "@{city} Users"
}

explore: orders {
  label: "@{city} Orders"
}

Neste exemplo, o Looker mostra Usuários de São Francisco e Pedidos de São Francisco no menu "Explorar" e nos títulos das análises detalhadas, em vez dos rótulos padrão Usuários e Pedidos.

Como usar o parâmetro sql_table_name com constantes

Suponha que você queira criar várias visualizações com base em tabelas no esquema 02349_sfo. Para evitar especificar o valor 02349_sfo várias vezes, crie uma constante chamada schema no arquivo manifest.lkml do seu projeto, da seguinte maneira:


constant: schema {
  value: "02349_sfo"
}

Em seguida, crie visualizações com base no esquema 02349_sfo especificando @{schema}.view_name como o valor do parâmetro sql_table_name:


view: users {
  sql_table_name: @{schema}.users ;;
}

Isso cria uma visualização chamada Usuários com base na tabela users do esquema 02349_sfo.

Usar variáveis do Liquid e HTML com constantes

Imagine que você quer que os valores de dados negativos apareçam entre parênteses e em uma fonte vermelha. Ao definir essa formatação como o valor de uma constante do LookML, é possível especificar a formatação apenas uma vez usando variáveis do Liquid e HTML. Em seguida, você pode referenciar a constante sempre que quiser aplicar essa formatação a um campo.

Por exemplo, é possível criar uma constante negative_format para aplicar essa formatação a um campo:


constant: negative_format {
  value: "{% if value < 0 %}<p style='color:red;'>({{rendered_value}})</p>{% else %} {{rendered_value}} {% endif %}"
}

Isso cria uma constante negative_format que especifica que valores de dados negativos devem ter uma fonte vermelha e estar entre parênteses. Em seguida, aplique essa formatação a dimensões e métricas no conjunto de dados usando o parâmetro html.

Por exemplo, você pode criar a métrica Valor total de type: sum e especificar @{negative_format} como o valor do parâmetro html:


measure: total_amount {
  type: sum
  value_format_name: usd
  sql: ${amount} ;;
  html: @{negative_format} ;;
}

Na sua tabela, os valores negativos da métrica Valor total serão formatados conforme especificado na definição da constante negative_format, com uma fonte vermelha e entre parênteses.

Como usar constantes em dashboards do LookML

Ao definir um elemento de painel para um painel do LookML, é possível usar constantes do LookML para definir o modelo e a Análise em que um elemento se baseia.

Por exemplo, suponha que você tenha definido as constantes model_name e explore_name no arquivo manifest.lkml do seu projeto:


constant: model_name {
  value: "thelook"
}

constant: explore_name {
  value: "orders"
}

No arquivo de painel, defina o valor de model como "@{model_name}" e o valor de explore como "@{explore_name}" para todos os elementos que você quer basear no modelo thelook e na análise detalhada orders.

Por exemplo, suponha que você esteja editando a LookML de um elemento de gráfico de colunas. No arquivo do painel, é possível especificar os valores dos parâmetros model e explore da seguinte maneira:


- dashboard: dashboard_name
  title: "dashboard title"
  layout: newspaper
  elements:
  - title: Element Title
    name: element_name
    model: "@{model_name}"
    explore: "@{explore_name}"
    type: looker_column

Informações importantes

Referência a constantes em uma definição de constante

Ao definir uma constante, é possível referenciar outras constantes definidas no arquivo de manifesto do projeto. Suponha que você já tenha declarado uma constante city:


constant: city {
  value: "San Francisco"
}

Em seguida, declare uma constante state que faça referência à constante city:


constant: city_state {
  value: "@{city}, California"
}

A constante state será resolvida como a string "São Francisco, Califórnia".

Como fazer escape da sintaxe de constante

Quando você quer escrever uma string que se parece com a sintaxe constante, mas não quer que ela seja avaliada como uma constante, é possível escapar a sintaxe constante usando o caractere de escape de barra invertida \ depois do caractere @. Exemplo:


dimension: id {
  type: string
  label: "@\{id}"
  sql: ${TABLE}.id
}

Neste exemplo, o label parâmetro mostra a string @{id} como o rótulo da dimensão id, em vez de avaliar a constante id e gerar o valor dela.

As referências constantes não serão avaliadas se os colchetes não forem fechados. Nesse caso, não é necessário usar escape na sintaxe constante. Assim, @{id no exemplo a seguir não seria avaliado como uma constante.


dimension: id {
  type: string
  label: "@{id"
  sql: ${TABLE}.id
}