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âmetrosql_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âmetrosql_table_name
(para explorações).
Uso
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 dadosRegras 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âmetroderived table
, descrito na página de documentaçãoderived_table
. O ambiente de desenvolvimento integrado do Looker retornará um erro se você tiversql_table_name
ederived_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.