Executar o SQL inicial

Observação: a versão 2019.2.2 do Tableau Prep Builder e posterior suporta o uso do SQL inicial, mas ainda não oferece suporte a todas as mesmas opções compatíveis com o Tableau Desktop . Para obter informações sobre como usar o SQL inicial com o Tableau Prep Builder, consulte Usar SQL inicial para consultar suas conexões(O link abre em nova janela) na ajuda on-line do Tableau Prep Builder.

Ao se conectar a alguns bancos de dados, você pode especificar um comando SQL inicial que será executado 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. O SQL inicial não é executado quando você atualiza a exibição. Observe que 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 simplesmente 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. Isso é útil por várias razões:

  • É 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 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.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 manter 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

Se você usar o parâmetro TableauServerUser, TableauServerUserFull em uma instrução SQL inicial, uma conexão dedicada que não pode ser compartilhada com outros usuários será criada. Isso também 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 são listadas depois de usar o SQL inicial para criar a tabela

Quando você se conecta ao MySQL, se executar uma instrução de SQL inicial, como as abaixo, as tabelas podem não aparecer devido à maneira como o Tableau constrói 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 a tabela faz com que o Tableau pare

Quando você se conecta ao Oracle e executa uma instrução de SQL inicial, como abaixo, o Tableau para com uma roda giratória devido à maneira como o Tableau constrói 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!