sql_table_name (para visualizações)

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

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

sql_table_name também pode ser usado como parte de uma análise detalhada, conforme descrito na página de documentação do parâmetro sql_table_name (para análises detalhadas).

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 seu banco de dados

Regras especiais

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 IDE do Looker vai 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 o parâmetro sql_table_name ou derived_table, o Looker vai presumir que ela se baseia em uma tabela de banco de dados e que o nome da tabela corresponde ao nome da visualização. Em outras palavras, isto:

view: my_name { ... }

é logicamente equivalente a:

view: my_name {
  sql_table_name: my_name ;;
}

É muito comum usar esse comportamento padrão e não usar sql_table_name. No entanto, há algumas situações importantes em que ele pode ser útil. Primeiro, em alguns casos, você vai querer que a visualização tenha um nome diferente da tabela subjacente, como 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 está no caminho de pesquisa padrão do usuário do banco de dados. Em seguida, defina o escopo do nome da tabela usando o formato <schema_name>.<table_name>, assim:

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

Nomes de tabelas de escopo

Quando você faz referência a uma tabela usando apenas o nome dela, o Looker usa o caminho de pesquisa padrão (o banco de dados e o esquema) que o administrador do Looker configurou nas configurações de conexão do banco de dados. Consulte a seção O que considerar nesta página para mais informações.

Se você precisar fazer referência a uma tabela em um banco de dados e esquema diferente que não esteja no caminho de pesquisa padrão do usuário do banco de dados, poderá definir o escopo do nome da tabela usando o formato <database_name>.<schema_name>.<table_name> para apontar para outro banco de dados ou esquema:

  • Para referenciar uma tabela de um esquema diferente, use <schema_name>.<table_name>, conforme mostrado no exemplo nesta página.
  • Para referenciar uma tabela de um banco de dados diferente, use o <database_name>.<schema_name>.<table_name> completo.

Para uma conexão do Google BigQuery, você pode referenciar uma tabela em um projeto e conjunto de dados diferentes ao definir o escopo do nome da tabela usando o formato <project_name>.<dataset_name>.<table_name>. Consulte a página de documentação Conexão do Google BigQuery para mais informações.

Junções federadas

A junção de duas tabelas de bancos de dados diferentes é chamada de junção federada. As junções federadas podem ser realizadas usando o Looker se os dois bancos de dados estiverem no mesmo dialeto SQL, se o dialeto for compatível com junções federadas e se os dois bancos de dados estiverem acessíveis na mesma conexão no Looker. Dependendo da configuração do banco de dados, as tabelas também podem precisar estar na mesma máquina física.

Nessas condições, é possível criar uma junção federada especificando o nome do banco de dados de cada tabela no parâmetro sql_table_name dessa 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, junte 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 unir bancos de dados em diferentes dialetos SQL, recomendamos replicar um banco de dados no outro para extrair todos os dados de uma única fonte.

Exemplos

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

view: customers {
  sql_table_name: customer_1 ;;
}

Neste exemplo, a visualização customers depende da tabela customer_1 de analytics ao definir o escopo do nome da tabela para incluir o nome do esquema (usando o formato <schema_name>.<table_name>):

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

Informações importantes

As tabelas referenciadas por view precisam estar acessíveis na conexão atual.

Quando o parâmetro sql_table_name é usado em um objeto view, esse objeto view pode ser referenciado em um objeto explore, que, por sua vez, é referenciado em um objeto modelo. O objeto do modelo tem um connection de banco de dados definido nele. Quando você faz referência a uma tabela de banco de dados no parâmetro sql_table_name, ela precisa estar acessível na conexão associada especificada no arquivo de modelo.

O banco de dados e o esquema padrão (ou, no caso do Google BigQuery, o projeto de faturamento e o conjunto de dados) são definidos pelo administrador do Looker ao criar a conexão do Looker com seu banco de dados.

Nomes de tabelas difíceis de usar podem exigir formatação adicional

Alguns dialetos exigem que os nomes de tabelas com caracteres não compatíveis, também conhecidos como nomes "não amigáveis", sejam colocados entre colchetes, aspas duplas ou aspas simples. Por exemplo, o nome da tabela Customers.PaymentInfo inclui um ponto, que pode ser interpretado como uma tabela chamada PaymentInfo no esquema Customers. Para corrigir isso, se o dialeto exigir colchetes, coloque o nome da tabela entre colchetes, da seguinte maneira:

sql_table_name: [Customers.PaymentInfo] ;;

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