Conectar a uma consulta de SQL personalizado

Na maioria dos bancos de dados, você pode se conectar a uma consulta específica em vez de se conectar ao conjunto inteiro de dados. Como os bancos de dados têm sintaxes SQL diferentes, o SQL personalizado que for usado para se conectar a um banco de dados pode ser diferente do SQL personalizado para se conectar a outro banco de dados. No entanto, o uso do SQL personalizado pode ser útil quando você sabe exatamente as informações de que precisa e compreende como escrever consultas SQL.

Embora haja diversas razões para se usar o SQL personalizado, é possível usá-lo para unir dados em tabelas, reformular campos para realizar uniões cruzadas entre bancos de dados, reestruturar ou reduzir o tamanho dos dados para análise, etc.

Para fonte de dados do Excel e de arquivo de texto, esta opção só está disponível em pastas de trabalho que tenham sido criadas em versões anteriores ao Tableau Desktop 8.2 ou ao usar o Tableau Desktop no Windows com a conexão herdada. Para se conectar ao Excel ou aos arquivos de texto usando a conexão herdada, conecte-se ao arquivo e, na caixa de diálogo Abrir, clique no menu suspenso Abrir e, em seguida, selecione Abrir com conexão herdada.

OBSERVAÇÃO: a partir do Tableau 2020.2, as conexões de Excel e Texto antigas não serão mais compatíveis. Consulte o documento Alternativas de conexão herdada na Comunidade do Tableau para obter alternativas para usar a conexão herdada.

Conectar a uma consulta de SQL personalizado

  1. Depois de estabelecer conexão com os dados, clique duas vezes na opção Novo SQL personalizado na página Fonte de dados.

  2. Digite ou cole a consulta na caixa de texto.

  3. Ao terminar, clique em OK.

Ao clicar em OK, a consulta é executada e a tabela de consulta de SQL personalizado aparece na camada lógica da tela. Somente os campos relevantes da consulta ao SQL personalizado são exibidos na grade de dados da página Fonte de dados.

Para obter mais informações sobre as camadas lógicas e físicas da tela, consulte O modelo de dados do Tableau.

Exemplos de consultas SQL personalizadas

Combinar as tabelas verticalmente (união)

Se você precisar anexar dados, poderá usar a opção de união de linhas diretamente na camada física da tela no Tableau. Em alguns casos, os bancos de dados não são compatíveis com essa opção. Então, você pode usar o SQL personalizado.

Por exemplo, suponha que você tenha estas duas tabelas: November (Novembro) e December (Dezembro).

Novembro Dezembro

Use a seguinte consulta SQL personalizada para anexar a segunda tabela, Dezembro, à primeira tabela, Novembro:

SELECT * FROM November UNION ALL SELECT * FROM December

O resultado da consulta tem esta aparência na grade de dados:

Para obter mais informações sobre a união de linhas, consulte Unir linhas de dados.

Alterar o tipo de dados de um campo para fazer uma união cruzada entre bancos de dados

Quando você realiza uma união de colunas entre duas tabelas na camada física da tela, o tipo de dados dos campos deve ser o mesmo. Quando o tipo de dados dos campos não é o mesmo, você pode usar o SQL personalizado para alterar o tipo de dados (cast) do campo antes de fazer a união.

Por exemplo, você quer unir duas tabelas, Main e Sub, usando os campos Root e ID, respectivamente. O campo Root é um tipo de número e o campo ID é um tipo de cadeia de caracteres. É possível usar a seguinte consulta do SQL personalizado para alterar o tipo de dados de Root de um número para uma cadeia de caracteres para assim ser possível unir as tabelas Main e Sub pelo uso dos campos Root e ID.

SELECT [Main].[Root] AS [Root_Number]
CAST([Main].[Root] AS INT] AS [Root_String]
FROM [Main]

O resultado dessa consulta mostra o campo Root original e o cast do campo Root como uma cadeia de caracteres.

Para obter mais informações sobre uniões cruzadas de banco de dados, consulte Unir colunas de dados.

Reduzir o tamanho dos dados

Você pode reduzir o tamanho de dados muitos grandes para economizar tempo.

Por exemplo, suponha que você tenha uma tabela grande denominada FischerIris. Use a seguinte consulta SQL personalizada para recuperar as colunas e os registros especificados ao reduzir o tamanho do conjunto de dados conectado no Tableau.

SELECT
[FischerIris].[Species] AS [Species],
[FischerIris].[Width] AS [Petal Width],
COUNT([FischerIris].[ID]) AS [Num of Species]
FROM [FischerIris]
WHERE [FischerIris].[Organ] = 'Petal'
AND [FischerIris].[Width] > 15.0000
GROUP BY [FischerIris].[Species], [FischerIris].[Width]

Reestruturar os dados (dinâmico)

Em alguns casos, você pode trabalhar com uma tabela que precisa ser reestruturada antes da análise. Embora esse tipo de tarefa possa ser feito diretamente na camada física da tela no Tableau com opções como dinamizar, talvez o banco de dados não seja compatível. Nesse caso, você pode usar o SQL personalizado.

Por exemplo, suponha que você tenha a seguinte tabela:

Para alterar a estrutura e otimizar os dados para análise no Tableau, você pode usar a seguinte consulta SQL personalizada:

SELECT Table1.Season ID AS [Season ID],
Table1.Items - Don't like AS [Quantity],
"Don't Like" AS [Reason]
FROM Table1
UNION ALL
SELECT Table1.Season ID AS [Season ID],
Table.Items - Defective AS [Quantity],
"Defective" AS [Reason]
FROM Table1
UNION ALL
SELECT Table1.Season ID AS [Season ID],
Table1.Items - Too big AS [Quantity],
"Too Big" AS [Reason]
FROM Table1
UNION ALL
SELECT Table1.Season ID AS Season ID,
Table1.Items - Too small AS [Quantity]
"Too Small" AS [Reason]
FROM Table1

O resultado da consulta tem esta aparência na grade de dados:

Para obter mais informações sobre a opção para dinamizar, consulte Dinamizar dados de colunas para linhas.

Combinar (unir) e agregar os dados

Se você precisar combinar tabelas e agregar dados, poderá usar opções de tipo de agregação padrão e união de colunas diretamente na camada física da tela no Tableau. Em alguns casos, talvez seja necessário usar o SQL personalizado.

Por exemplo, suponha que você tenha estas duas tabelas: Orders (Pedidos) e Vendors (Fornecedores).

Pedidos Fornecedores

Você pode usar a consulta SQL personalizada abaixo para localizar uma contagem de pedidos e fazer uma união à esquerda nas tabelas Pedidos e Fornecedores:

SELECT Vendors.Name,COUNT(Orders.Order) AS Number Of Orders
FROM Orders
LEFT JOIN Vendors
ON Orders.VendorID=Vendors.VendorID
GROUP BY Name;

O resultado da consulta tem a seguinte aparência:

Para obter mais informações sobre uniões, consulte Unir colunas de dados.

Erros quando colunas duplicadas são especificadas

Se a consulta SQL personalizada especificar colunas duplicadas, você poderá obter erros ao tentar usar uma das colunas na análise no Tableau. Isso ocorrerá mesmo que a consulta seja válida. Por exemplo, considere a seguinte consulta:

SELECT * FROM authors, titleauthor WHERE authors.au_id = titleauthor.au_id

A consulta é válida, mas o campo au_id é ambíguo porque ele existe nas tabelas “authors” e “titleauthor”. O Tableau se conectará à consulta, mas você obterá um erro a qualquer momento ao tentar usar o campo au_id . Isso ocorre porque o Tableau não sabe à qual tabela você se refere.

Observação: é uma prática recomendada definir aliases de coluna com uma cláusula AS sempre que possível em uma consulta SQL personalizada. Isso ocorre porque cada banco de dados tem suas próprias regras quando gera automaticamente um nome de coluna sempre que um alias não é usado.

Editar uma consulta SQL personalizada

Para editar uma consulta SQL personalizada

  1. Na página Fonte de dados, na tela, clique duas vezes na consulta do SQL personalizado na camada lógica.
  2. Passe o cursor do mouse sobre a tabela de SQL personalizado na camada física até que a seta seja exibida.
  3. Clique na seta selecione Editar consulta de SQL personalizado.
  4. Na caixa de diálogo, edite a consulta SQL personalizada.

Para alterar um nome de uma consulta de SQL personalizado

Ao arrastar uma consulta de SQL personalizado para a camada lógica da tela, o Tableau fornece a ela um nome padrão: consulta de SQL personalizado, consulta1 de SQL personalizado e assim por diante. Você pode alterar o nome padrão para algo mais significativo.

  1. Na página Fonte de dados, na camada lógica da tela, selecione a seta suspensa na tabela de consulta de SQL personalizado e selecione Renomear.

  2. Insira o nome que deseja usar para a consulta de SQL personalizado.

Usar parâmetros em uma consulta SQL personalizada

Você pode usar parâmetros em uma instrução de consulta SQL para substituir um valor constante por um valor dinâmico. Em seguida, você poderá atualizar o parâmetro na pasta de trabalho para modificar a conexão. Por exemplo, é possível conectar-se a uma consulta SQL personalizada que fornece dados de tráfego da Web para uma página em particular que é especificada por uma pageID. Em vez de usar um valor constante para o valor de pageID na consulta SQL, você pode inserir um parâmetro. Ao concluir a conexão, você poderá mostrar um controle de parâmetro na pasta de trabalho. Use o controle de parâmetro para desativar a pageID e extrair dados para cada página de interesse sem precisar editar ou duplicar a conexão.

No Tableau Desktop, é possível criar um parâmetro diretamente na caixa de diálogo SQL personalizado ou usar parâmetros que façam parte da pasta de trabalho. Se você criar um novo parâmetro, ele se tornará disponível para uso na pasta de trabalho como qualquer outro parâmetro. Consulte Criar parâmetros para saber mais.

Para a criação na Web (no Tableau Online ou no Tableau Server), use um parâmetro existente publicado a partir do Tableau Desktop. Não é possível criar um novo parâmetro na criação na Web.

Para adicionar um parâmetro a uma consulta SQL personalizada

  1. Na página de fonte de dados, na tela, focalize na tabela até que o ícone de edição seja exibido e depois clique no botão de edição.
  2. Na parte inferior da caixa de diálogo, clique em Inserir parâmetro.
  3. Selecione um valor constante na instrução SQL e, no menu suspenso Inserir parâmetro, selecione o parâmetro que deseja usar. Se você ainda não tiver criado um parâmetro, selecione Criar um novo parâmetro. Siga as instruções em Criar parâmetros para criar um novo parâmetro.

Observação: os parâmetros podem substituir apenas valores literais. Eles não substituem expressões ou identificadores, como nomes de tabelas.

No exemplo abaixo, a consulta SQL personalizada retorna todos os pedidos marcados como prioridade Urgente. Na instrução SQL personalizada, a prioridade do pedido é o valor constante. Se você desejar alterar a conexão para ver as ordens de Prioridade do pedido, deverá editar a fonte de dados.

Em vez de criar e manter muitas variações da mesma consulta, você pode substituir o valor de prioridade do pedido constante por um parâmetro. O parâmetro deve conter todos os valores possíveis de Prioridade do pedido.

Depois de criar um parâmetro, você poderá inseri-lo em uma instrução SQL para substituir o valor constante.

Depois que você termina de editar a conexão, o novo parâmetro é listado na área Parâmetros, na parte inferior do painel Dados, e o controle de parâmetro é exibido no lado direito da exibição. À medida que você seleciona valores diferentes, a conexão é atualizada.

Observação: se você estiver usando uma extração, deverá atualizar a extração para refletir as alterações no parâmetro. A publicação de uma fonte de dados que usa parâmetros Personalizar SQL inclui os parâmetros. Os parâmetros são transferidos para qualquer pasta de trabalho que se conecta à fonte de dados.

Suporte ao Tableau Catalog para SQL personalizado

A partir do 2019.3, o Tableau Catalog está disponível como parte do Complemento de gerenciamento de dados no Tableau Online e no Tableau Server. Para obter mais informações sobre o Tableau Catalog, consulte "Sobre o Tableau Catalog”, na Ajuda do Tableau Server ou do Tableau Online.

Consultas compatíveis

O Catalog atualmente é compatível com consultas de SQL personalizado que atendem ao padrão ANSI SQL-2003, com três exceções conhecidas:

  • Expressões de fuso horário
  • Expressões de multiconjunto
  • Parâmetros do Tableau

Recursos e funções compatíveis

O Catalog é compatível com a seguinte funcionalidade adicional para fontes de dados, pastas de trabalho e fluxos com conexões que usam os drivers Microsoft SQL Server, MySQL ou PostgreSQL, por exemplo, Amazon Aurora para MySQL, Amazon RedShift, Pivotal Greenplum Database, MemSQL, Denodo entre outros.

  • Tabela temporárias do SQL Server
  • Variáveis de tabela do SQL Server
  • Função GROUP_CONCAT do MySQL
  • Matrizes do PostgreSQL
  • Função EXTRACT() do PostgreSQL

Outros cenários e funcionalidades do SQL personalizado podem funcionar, mas o Tableau não é especificamente testado nem compatível.

Linhagem compatível

Para ver a linhagem de uma conexão que usa SQL personalizado, na página Ativos externos, navegue até a lista e selecione uma tabela. Uma página é aberta e mostra informações sobre a tabela, incluindo nome, tipo e descrição.

À direita das informações da tabela está o painel Linhagem, que mostra a relação da tabela com ativos upstream e downstream. Observe que o Catalog não é compatível com exibir informações de coluna na linhagem para metadados da tabela reunidos utilizando SQL personalizado.

Na captura de tela a seguir, a tabela factAccountOpportunityByQuarter foi indexada porque ela é usada por uma fonte de dados. No entanto, como é referenciada por uma consulta de SQL personalizado, as informações da coluna não estão disponíveis.

Em um caso que há mais de uma fonte de dados, pasta de trabalho ou fluxo, usa uma tabela, todos os ativos downstream dessa tabela que usam uma consulta de SQL personalizado são excluídos quando os filtros de nível de coluna são aplicados. Como resultado, menos ativos downstream aparecem na linhagem do que os realmente utilizados.

 

Consulte também

Usar SQL personalizado e RAWSQL para executar a análise espacial avançada(O link abre em nova janela)

Agradecemos seu feedback!