sql_table_name (para visualizações)

Esta página se refere ao parâmetro sql_table_name que faz parte de uma visualização.

O sql_table_name também pode ser usado como parte de uma mesclagem, descrita na página de documentação do parâmetro sql_table_name (para mesclagens).

O sql_table_name também pode ser usado como parte de uma exploração, descrita na página de documentação do parâmetro sql_table_name (para explorações).

Uso

view: view_name {
sql_table_name: table_name ;;
}
Hierarquia
sql_table_name
Valor padrão
O nome da visualização.

Aceita
Um nome de tabela no banco de dados

Regras especiais
  • A tabela precisa estar acessível na conexão do banco de dados
  • Se a tabela estiver em um esquema diferente, o esquema vai precisar ser especificado
  • Se a tabela estiver em um banco de dados diferente, o banco de dados e o esquema precisarão ser especificados e o outro banco de dados precisará estar na mesma máquina e estar no mesmo dialeto SQL

Definição

O parâmetro sql_table_name especifica a tabela no banco de dados que será consultada por uma visualização.

Se você quiser criar uma visualização com base em uma tabela derivada, não use o parâmetro sql_table_name. Em vez disso, use o parâmetro derived table, descrito na página de documentação derived_table. O ambiente de desenvolvimento integrado do Looker retornará um erro se você tiver sql_table_name e derived_table em um arquivo de visualização.

Se uma visualização não contiver os parâmetros sql_table_name ou derived_table, o Looker presumirá que ela é baseada em uma tabela de banco de dados e que o nome da tabela de banco de dados corresponde ao nome da visualização. Em outras palavras:

view: my_name { ... }

é logicamente equivalente a isto:

view: my_name {
  sql_table_name: my_name ;;
}

É muito comum recorrer a esse comportamento padrão e não usar sql_table_name. No entanto, há algumas situações em que isso pode ser útil. Primeiro, em alguns casos, você quer apenas que a visualização tenha um nome diferente da tabela subjacente, por exemplo, para limpar um nome de tabela confuso:

view: orders {
  sql_table_name: prod_orders_2 ;;
}

Além disso, há casos em que uma visualização precisa ser baseada em um banco de dados ou esquema que não esteja no caminho de pesquisa padrão do usuário do banco de dados. É possível fazer referências como estas:

view: desired_view_name {
  sql_table_name: database_name.schema_name.table_name ;;
}

Mesclagens federadas

A mesclagem de duas tabelas de diferentes bancos de dados é chamada de mesclagem federada. As mesclagens federadas poderão ser realizadas com o Looker se os dois bancos de dados estiverem no mesmo dialeto SQL, estiverem na mesma máquina física e forem acessíveis na mesma conexão no Looker.

Nessas condições, é possível criar uma mesclagem federada especificando o nome do banco de dados de cada tabela no parâmetro sql_table_name para essa visualização:

view: view_1 {
  sql_table_name: database_name.table_1 ;;
}

view: view_2 {
  sql_table_name: another_database_name.table_2 ;;
}

Em seguida, mescle essas visualizações usando o parâmetro sql_on:

explore: view_1 {
  join: view_2 {
    sql_on: ${view_1.view_1_ID} = ${view_2.view_2_ID} ;;
  }
}

Se você quiser mesclar bancos de dados que estão em diferentes dialetos SQL, recomendamos replicar um banco de dados para o outro e extrair todos os dados de uma única fonte.

Se você quiser mesclar dois bancos de dados MySQL em máquinas separadas, faça uma mesclagem federada nas duas conexões de banco de dados. Para isso, crie uma tabela FEDERATED usando CONNECTION. Basicamente, você estabelece uma conexão com tabelas em outro servidor no banco de dados MySQL. Consulte esta documentação do MySQL para saber mais.

Examples

Faça com que a visualização customers dependa da tabela customer_1 do esquema padrão:

view: customers {
  sql_table_name: customer_1 ;;
}

Faça com que a visualização customers dependa da tabela customer_1 do esquema analytics:

view: customers {
  sql_table_name: analytics.customer_1 ;;
}

Desafios comuns

As tabelas referenciadas por view precisam ser acessíveis pela conexão atual

views são referenciados por um parâmetro explore ou join, que, por sua vez, é referenciado por um modelo. O modelo determina qual conexão de banco de dados é usada. Consulte connection para ver o modelo. As próprias conexões com o banco de dados são definidas na seção Administrador do Looker. Quando você faz referência a uma tabela no parâmetro sql_table_name, ela precisa estar acessível na conexão associada.

Nomes de tabela incompatíveis podem exigir outra formatação

Alguns dialetos exigem que os nomes das tabelas com caracteres incompatíveis sejam conhecidos entre colchetes, entre aspas duplas ou aspas simples. Por exemplo, o nome da tabela Customers.PaymentInfo inclui um ponto final no nome da tabela, que pode ser interpretado como uma tabela chamada PaymentInfo no esquema Customers. Para corrigir isso, se o dialeto exigir colchetes, você pode colocar o nome da tabela entre colchetes, como neste exemplo:

sql_table_name: [Customers.PaymentInfo] ;;

Se o dialeto exigir aspas duplas ou aspas simples, substitua os colchetes por esses caracteres.