Executar o SQL inicial
Observação: o Tableau Prep Builder versão 2019.2.2 e posterior oferece suporte ao uso de SQL inicial, mas ainda não oferece suporte a todas as mesmas opções suportadas por Tableau Desktop. Para obter informações sobre como usar o SQL inicial com o Tableau Prep Builder, consulte Use o SQL inicial para consultar suas conexões(O link abre em nova janela) na Ajuda do Salesforce do Tableau Prep Builder.
Ao se conectar a alguns bancos de dados, você pode especificar um comando SQL inicial que será executado ou usar um valor em cache quando uma conexão for feita no banco de dados, por exemplo, ao abrir a pasta de trabalho, atualizar uma extração, fazer logon ou publicar no Tableau Server.
Observação: o SQL inicial é diferente de uma conexão de SQL personalizado. Uma conexão de SQL personalizado define uma relação (ou tabela) para emitir consultas. Para obter mais informações, consulte Conectar a uma consulta de SQL personalizado.
Você pode usar este comando para:
Configurar tabelas temporárias para serem usadas durante a sessão.
Configurar um ambiente de dados personalizado.
Você tem a opção de adicionar um comando de SQL inicial na caixa de diálogo Conexão do servidor ou na página Fonte de dados.
Observação: Se a sua fonte de dados aceita a execução em uma instrução SQL, SQL inicial aparece no canto inferior esquerdo da caixa de diálogo Conexão com o servidor no Tableau Desktop. Para obter informações sobre a sua fonte de dados, consulte Conectores compatíveis.
Para usar o SQL inicial
Na caixa de diálogo Conexão com o servidor, clique em SQL inicial. Ou, na página Fonte de dados, selecione Dados > SQL inicial, ou Dados > Faixa de consulta e SQL inicial, dependendo do banco de dados ao qual você vai se conectar.
Insira o comando SQL na caixa de texto SQL inicial. É possível usar o menu suspenso Inserir para passar parâmetros para sua fonte de dados.
Observação: o Tableau não examina se há erros na instrução. Essa instrução SQL é enviada ao banco de dados na conexão.
Sua licença de software pode impedi-lo de usar o SQL inicial com sua conexão. Se você publicar no Tableau Server, o servidor deverá ser configurado para permitir as instruções de SQL inicial. Por padrão, o software do servidor é configurado para permitir que essas instruções sejam executadas quando a pasta de trabalho é carregada em um navegador da Web.
Os administradores podem configurar o servidor para ignorar instruções de SQL inicial usando o comando tsm configuration set
:
tsm configuration set -k vizqlserver.initialsql.disabled -v true
Se o servidor não permitir as instruções de SQL inicial, a pasta de trabalho será aberta, mas os comandos de SQL inicial não serão enviados.
Para obter mais informações sobre o comando tsm configuration set
, consulte a Ajuda do Tableau Server(O link abre em nova janela).
Parâmetros em uma instrução de SQL inicial
Você pode passar parâmetros para a sua fonte de dados em uma instrução de SQL inicial. A lista a seguir traz vários benefícios do uso de parâmetros em uma instrução SQL inicial.
É possível configurar a representação usando os parâmetros TableauServerUser ou TableauServerUserFull.
Se a fonte de dados for compatível, é possível configurar a segurança em nível de linha (por exemplo, para Oracle VPD ou SAP Sybase ASE), para garantir que os usuários visualizarão os dados que estão autorizados.
É possível fornecer mais detalhes no logon, por exemplo, a versão do Tableau ou o nome da pasta de trabalho.
Os parâmetros a seguir são compatíveis com uma instrução de SQL inicial:
Parâmetro | Descrição | Exemplo de valor retornado |
TableauServerUser | O nome de usuário do usuário de servidor atual. Use ao configurar a representação na servidor. Retorna uma cadeia de caracteres vazia se o usuário não estiver conectado ao Tableau Server. | jsmith |
TableauServerUserFull | O nome de usuário e o domínio do usuário do servidor atual. Use ao configurar a representação na servidor. Retorna uma cadeia de caracteres vazia se o usuário não estiver conectado ao Tableau Server. | domain.lan\jsmith |
TableauApp | O nome do aplicativo do Tableau. | Tableau Desktop Professional Tableau Server |
TableauVersion | A versão do aplicativo do Tableau. | 9.3 |
WorkbookName | O nome da pasta de trabalho do Tableau. Use apenas em pastas de trabalho com uma fonte de dados incluída. | Análise financeira |
Aviso: o Tableau Desktop não inclui o domínio. Você pode incluí-lo se não estiver usando delegação e definir tsm configuration set -k DelegationUseFullDomainName=-v true--force-keys
Os exemplos a seguir mostram maneiras diferentes de usar os parâmetros em uma instrução de SQL inicial.
- Esse exemplo define o contexto de segurança no Microsoft SQL Server:
EXECUTE AS USER = [TableauServerUser] WITH NO REVERT;
Esse exemplo mostra como, em uma fonte de dados DataStax, você pode usar os parâmetros para adicionar detalhes ao registro ou para configurar uma variável de sessão para o controle dos dados:
SET TABLEAUVERSION [TableauVersion];
Este exemplo pode ser usado para ajustar a segurança no nível de linha para Oracle VPD:
begin
DBMS_SESSION.SET_IDENTIFIER([TableauServerUser]);
end;
Observação: os blocos de Oracle PL/SQL precisam de um ponto e vírgula à direita para finalizar o bloco. Consulte a documentação da Oracle para obter a sintaxe apropriada.
Adiar a execução para o servidor
Você pode adiar uma instrução de SQL inicial, para que ela seja executada apenas no servidor. Uma razão de adiamento da execução para o servidor é se não houver permissão para executar os comandos que configuram a representação. Use as marcas <ServerOnly></ServerOnly> para colocar os comandos que serão executados somente no servidor.
Exemplo:
CREATE TEMP TABLE TempTable(x varchar(25)); INSERT INTO TempTable VALUES (1); <ServerOnly>INSERT INTO TempTable Values(2);</ServerOnly>
Segurança e representação
Quando você usar o parâmetro TableauServerUser, TableauServerUserFull em uma instrução SQL inicial, uma conexão dedicada que não poderá ser compartilhada com outros usuários será criada. Isso também poderá restringir o compartilhamento de cache, o que pode melhorar a segurança, mas também pode prejudicar o desempenho.
Solucionar problemas de 'criar tabela' para conexões MySQL e Oracle
Em conexões MySQL, as tabelas não estão listadas depois de usar o SQL inicial para criar uma tabela
Depois de se conectar ao MySQL e executar uma instrução SQL inicial, as tabelas podem não ser exibidas devido à forma como o Tableau estrutura a consulta.
CREATE TABLE TestV1.testtable77(testID int);
Para solucionar esse problema, adicione IF NOT EXISTS
à instrução SQL:
CREATE TABLE IF NOT EXISTS TestV1.TestTable(testID int);
Em conexões Oracle, usar o SQL inicial para criar uma tabela faz com que o Tableau pare
Depois que você se conecta ao Oracle e executa uma instrução SQL inicial, o Tableau fica com uma roda giratória devido à maneira como o Tableau estrutura a consulta.
CREATE TABLE TEST_TABLE (TESTid int)
Para solucionar esse problema, use a seguinte instrução SQL:
BEGIN EXECUTE IMMEDIATE 'create table test_table(testID int)'; EXCEPTION WHEN OTHERS THEN NULL; END;