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

  1. 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.

  2. 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âmetroDescriçãoExemplo de valor retornado
TableauServerUserO 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
TableauServerUserFullO 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
TableauAppO nome do aplicativo do Tableau.

Tableau Desktop Professional

Tableau Server

TableauVersionA versão do aplicativo do Tableau.9.3
WorkbookNameO 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;

 

Agradecemos seu feedback!Seu feedback foi enviado. Obrigado!