Exemplo: personalizar uma conexão ODBC

Ao usar um conector para um banco de dados, compatível com SQL, o Tableau gera instruções SQL que são ajustadas para esse banco de dados. Como o Tableau não tem uma representação do dialeto SQL usado por uma fonte de dados ODBC, ele deve inferir a sintaxe suportada por meio de vários testes. Caso um driver relate informações incorretas ou incompletas sobre o dialeto SQL suportado, é possível usar as personalizações do Tableau para ajustar essas informações de conexão para melhorar a funcionalidade e o desempenho.

Neste artigo, você fará uma conexão ODBC, examinará o arquivo TDS (Tableau Data Source) resultante e usará parte dele para criar um arquivo TDC (Tableau Datasource Customization), que poderá ser usado para personalizar a conexão ODBC. Antes de começar, você deve estar familiarizado com o conteúdo do Tableau e ODBC.

Observação: o Tableau fornecerá níveis razoáveis de suporte ao cliente para ajudar na solução de problemas de conexões com drivers ODBC, mas não poderá criar ou personalizar um conector para trabalhar com um driver ODBC específico.

Criar uma conexão de ODBC

Esta seção mostrar como criar uma conexão ODBC usando um exemplo. No exemplo, você se conecta a um banco de dados SQLite usando o driver ODBC do SQLite.

Pré-requisitos

A conexão ODBC neste artigo é baseada no SQLite (http://www.sqlite.org/), um banco de dados de código-aberto.

Você precisará baixar os dois itens a seguir:

Isenção de responsabilidade: estas informações se referem a um produto de terceiros. Este exemplo não é um endosso deste produto em relação a qualquer outro produto da concorrência.

Criar uma conexão

Para criar uma conexão ODBC, conecte o banco de dados Northwind usando o driver ODBC do SQLite3 e, em seguida, salve a conexão como um arquivo TDS (Tableau Data Source).

  1. Abra o Tableau Desktop.

  2. Na página inicial, em Conectar, clique em Outros bancos de dados (ODBC).

    Observação: para um banco de dados que já tem um conector compatível com o Tableau,(O link abre em nova janela)você pode clicar no nome desse conector para criar uma conexão.

  3. Em Conectar usando, selecione Driver e, em seguida, na lista suspensa, selecione Driver ODBC do SQLite3.

  4. Clique em Conectar.

  5. Próximo à caixa de texto Nome do banco de dados, clique em Procurar, procure o local do seu arquivo Northwind.sl3 e, em seguida, clique em Abrir.

  6. Clique em OK para fechar a caixa de diálogo e clique novamente em Entrar.

  7. Na página de fonte de dados, na caixa de texto Tabela, digite Orders (Pedidos).

  8. Arraste a tabela Pedidos para a tela e, em seguida, clique na guia Planilha.

    Uma mensagem "O Tableau identificou limitações para a fonte de dados do ODBC" é aberta. É possível revisar os detalhes ou desmarcar a caixa de diálogo e continuar. Para obter mais informações, consulte Como o Tableau determina os recursos do driver ODBC.

  9. Selecione Dados > Pedidos [path to Northwind.sl3] > Adicionar às fontes de dados salvas.

  10. Clique em Salvar.

  11. Feche a pasta de trabalho. Quando for solicitado para salvar as alterações, clique em Não.

Agora você pode abrir o arquivo para examinar a conexão SQLite.

Analisar a estrutura XML de um arquivo TDS

Abra o arquivo TDS (Tableau Data Source) salvo em um editor de texto para exibir a estrutura XML. Por padrão, o arquivo criado acima é denominado Northwind.sl3.tds e está no seguinte caminho:

Users\[your name]\Documents\My Tableau Repository\Datasources

ou

Users\[your name]\Documents\My Tableau Repository (Beta)\Datasources

Isto é um documento XML descrevendo a conexão do SQLite com a tabela Pedidos (Orders) de Northwind. Na seção <connection>, encontre o elemento <connection-customization>, que contém elementos <customization> que podem ser editados.

Nome do fornecedor e driver

A seção de personalização da conexão começa com os nomes detectados pelo Tableau para o driver ODBC e o fornecedor do banco de dados. O Tableau usa essas informações para associar uma personalização de conexão específica a um tipo único de fonte de dados ODBC. A seção é semelhante a esta:

<connection-customization class='genericodbc' enabled='false' version='10.1'>
<vendor name='SQLite' />
<driver name='SQLite3 ODBC Driver' />
<customizations>

Tipos de personalizações

O Tableau permite dois tipos de personalizações: Recursos específicos do Tableau, além de chamadas de API ODBC para SQLGetInfo. Essas personalizações são compostas de pares de nome/valor, com os nomes seguindo uma convenção de CAP_ para recursos do Tableau e SQL_ para as chamadas de API SQLGetInfo.

O arquivo da fonte de dados salvo contém exemplos de ambos os tipos de personalizações. Essas personalizações representam valores que o Tableau era capaz de detectar consultando o driver quando você se conectava. A lista de personalizações pode estar incompleta ou incorreta. Você pode usar a personalização para modificar e moldar o comportamento do Tableau ao conectar-se a uma fonte de dados ODBC.

Os artigos a seguir contêm uma referência completa para as personalizações. Você deve ter uma ideia de como precisará ajustar a sua conexão ODBC para funcionar conforme esperado no seu ambiente. Analise as listas para ter uma ideia das personalizações que podem ser usadas para ajustar a conexão ODBC.

Formato de valores de personalização

  • Todos os valores de personalização são representados como strings para cada par de nome/valor.

  • Todos os recursos do Tableau são valores boolianos representados por "sim" ou "não".

  • Os valores SQLGetInfo podem ser um inteiro longo, um inteiro curto ou dados da cadeia de caracteres, dependendo do valor de retorno esperado de SQLGetInfo para o identificador indicado.

  • Muitos dos campos de inteiro são máscaras de bit que representam uma coleção de recursos.

Globalização das personalizações com um arquivo TDC

Para aplicar as alterações de personalização a todas as conexões de determinada fonte de dados ODBC, é necessário criar um arquivo TDC (Tableau Data source Customization) . Este arquivo contém apenas a seção <connection-customization> e é aplicado a qualquer conexão nova do Tableau que corresponda ao nome do fornecedor do banco de dados e driver descritos no arquivo TDC (conforme observado em Nome do fornecedor e driver). Qualquer arquivo da pasta de trabalho ou da fonte de dados existente que já tenha uma seção de personalização habilitada usará apenas as personalizações fornecidas por ele, não o arquivo TDC.

Importante: o Tableau não testa nem suporta arquivos TDC. Estes arquivos devem ser usados como uma ferramenta para explorar ou ocasionalmente resolver problemas com sua conexão de dados. Criar e manter arquivos TDC exige edição manual cuidadosa e não há suporte para compartilhamento destes arquivos.

Criar um arquivo TDC

Ao criar um arquivo TDC, é necessário salvá-lo no local correto para que ele possa ser usado pela conexão. Se você criar uma pasta de trabalho que deseja publicar no Tableau Server, também é necessário salvar o arquivo TDC no servidor. Para obter mais informações, consulte O uso de um arquivo TDC com o Tableau Server(O link abre em nova janela) na base de dados de conhecimento do Tableau.

Estrutura de um arquivo TDC

Cada arquivo TDC segue esta estrutura básica:

<connection-customization class=DSCLASS enabled='true' version='10.0'>
    <vendor name=VENDOR />
    <driver name=DRIVER />
    <customizations>
        <customization name='CAP_FAST_METADATA' value='yes'/>
        ...
    </customizations>
</connection-customization>

Um arquivo TDC possui três seções principais:

  • Variáveis de personalização de conexão
  • Nomes do fornecedor e driver
  • As próprias personalizações

A seção connection-customization inclui o seguinte:

  • Classe A fonte de dados à qual você deseja se conectar e personalizar.
  • Ativado Especifica se as personalizações de conexão de arquivos TDC foram aplicadas. No arquivo TDC, sempre definido como “true”.
  • Versão O Tableau ignora o número da versão.

A próxima seção é fundamental porque identifica o nome do fornecedor e o nome do driver do provedor de banco de dados para a fonte de dados deste arquivo TDC. Cada arquivo TDC pode ser vinculado a apenas um tipo de fonte de dados. Para nossas fontes de dados nativas, esses nomes devem corresponder ao nome da classe da fonte de dados, por exemplo, “teradata” para nossas conexões Teradata. Para fontes de dados ODBC, o nome do fornecedor e o nome do driver do arquivo TDC devem corresponder ao relatório do Tableau pelo banco de dados e pelo driver, por exemplo, “SQLite” e “SQLite3 ODBC Driver”, respectivamente.

A seção final lista as personalizações de conexão reais.

Usar o arquivo TDC com o Tableau Desktop

  1. Usando um editor de texto, copie e cole a seção <connection-customization> completa do seu arquivo de fonte de dados salvo. Para referência, consulte Arquivo TDC do SQLite de exemplo.

  2. Nomeie o arquivo odbc-sqlite.tdc e salve-o em Documents\My Tableau Repository\Datasources.

    Observação: o arquivo deve ser salvo com uma extensão .tdc , sem importar o nome escolhido.

  3. Reinicie o Tableau Desktop para aplicar as alterações.

  4. Crie uma nova conexão para o SQLite, conforme descrito em Criar uma conexão.

  5. Vá até o arquivo de registro do Tableau Desktop e abra-o, procure por um registro semelhante ao exemplo abaixo para verificar se este arquivo de personalização foi aplicado à sua nova conexão.

Locais do arquivo de registroExemplo de registro
Por padrão, C:\Users\<usuário>\Documents\Meu repositório do Tableau\LogsFound matching TDC 'C:\\Users\\<name>\\Documents\\My Tableau Repository\\Datasources\\odbc-sqlite.tdc' for class='genericodbc', vendor='SQLite', and driver='SQLite3 ODBC Driver'

Usar o arquivo TDC com o Tableau Prep Builder

  1. Usando um editor de texto, copie e cole a seção <connection-customization> completa do seu arquivo de fonte de dados salvo. Para referência, consulte Arquivo TDC do SQLite de exemplo.

  2. Nomeie o arquivo odbc-sqlite.tdc e salve-o no seguinte local:

    • No Windows:

      Documents\My Tableau Prep Repository\Datasource

    • No Mac:

      Documents/My Tableau Prep Repository/Datasources

    Observação: o arquivo deve ser salvo com uma extensão .tdc , sem importar o nome escolhido.

  3. Reinicie o Prep para aplicar a alteração.

  4. Vá até o arquivo de registro e abra-o, procure por um registro semelhante ao exemplo abaixo para verificar se este arquivo de personalização foi aplicado à sua nova conexão.

Locais do arquivo de registroExemplo de registro
Por padrão, C:\Users\<usuário>\Documents\Meu repositório do Tableau Prep\LogsFound matching TDC 'C:\\Users\\<name>\\Documents\\My Tableau Prep Repository\\Datasources\\odbc-sqlite.tdc' for class='genericodbc', vendor='SQLite', and driver='SQLite3 ODBC Driver'

Usar o arquivo TDC com o Tableau Server

  1. Usando um editor de texto, copie e cole a seção <connection-customization> completa do seu arquivo de fonte de dados salvo. Para referência, consulte Arquivo TDC do SQLite de exemplo.

  2. Nomeie o arquivo odbc-sqlite.tdc e salve-o no seguinte local:

    • No Windows:

      Em versões do Tableau Server anteriores a 2018.2:

      Program Files\Tableau\Tableau Server\<version>\bin

      A partir do Tableau Server versão 2018.2:

      Program Files\Tableau\Tableau Server\packages\bin.<build number>

      Ou para todas as versões do Tableau Server:

      ProgramData\Tableau\Tableau Server\data\tabsvc\vizqlserver\Datasources

      Para salvar o arquivo, você deve ser um administrador do Windows no computador do servidor.

    • No Linux:

      /var/opt/tableau/tableau_server/data/tabsvc/vizqlserver/Datasources/

    Observação: o arquivo deve ser salvo com uma extensão .tdc , sem importar o nome escolhido. O arquivo TDC deve ser salvo em todos os nós do servidor para obter um comportamento consistente.

  3. Para o Tableau Prep Conductor (execução de fluxos) ou Criação na Web do Prep (edição de fluxos na Web), o arquivo TDC deve ser colocado em diretórios adicionais.

    Prep Conductor

    • No Windows:

      <data directory>\tabsvc\flowprocessor\Datasources

    • No Linux:

      <data directory>/tabsvc/flowprocessor/Datasources

    Criação na Web do Prep

    • No Windows:

      <data directory>\tabsvc\flowminerva\Datasources

    • No Linux:

      <data directory>/tabsvc/flowmineva/Datasources

  4. Reinicie o Tableau Server para aplicar as alterações.

  5. Vá até o arquivo de registro do Tableau Server e abra-o, procure por um registro semelhante ao exemplo abaixo para verificar se este arquivo de personalização foi aplicado à sua nova conexão.

Locais do arquivo de registroExemplo de registro

<install path>\Tableau Server\data\tabsvc\log\vizqlserver

<install path>\Tableau Server\data\tabsvc\log\backgrounder

<install path>\Tableau Server\data\tabsvc\log\dataserver

<install path>\Tableau Server\data\tabsvc\log\vizportal

Found matching TDC 'C:\\ProgramData\\Tableau\\Tableau Server\\data\\tabsvc\\vizqlserver\\Datasources\\odbc-sqlite.tdc for class='genericodbc', vendor='SQLite', and driver='SQLite3 ODBC Driver'

Arquivo TDC do SQLite de exemplo

<?xml version='1.0' encoding='utf-8' ?>
<connection-customization class='genericodbc' enabled='true' version='7.8'>
<vendor name='SQLite' />
<driver name='SQLite3 ODBC Driver' />
	<customizations>
		<customization name='CAP_CREATE_TEMP_TABLES' value='yes' />
		<customization name='CAP_QUERY_BOOLEXPR_TO_INTEXPR' value='yes' />
		<customization name='CAP_QUERY_GROUP_BY_ALIAS' value='no' />
		<customization name='CAP_QUERY_GROUP_BY_DEGREE' value='yes' />
		<customization name='CAP_QUERY_JOIN_ACROSS_SCHEMAS' value='no' />
		<customization name='CAP_QUERY_JOIN_REQUIRES_SCOPE' value='no' />
		<customization name='CAP_QUERY_SUBQUERIES' value='yes' />
		<customization name='CAP_QUERY_SUBQUERIES_WITH_TOP' value='yes' />
		<customization name='CAP_SELECT_INTO' value='no' />
		<customization name='CAP_SELECT_TOP_INTO' value='yes' />
		<customization name='SQL_AGGREGATE_FUNCTIONS' value='127' />
		<customization name='SQL_SQL_CONFORMANCE' value='4' />
	</customizations>
</connection-customization>

Personalizar a conexão ODBC

Vamos supor que você fez uma conexão ODBC com a sua fonte de dados e verificou que pode obter os metadados e dados que precisa. Agora é necessário determinar se criar uma extração ou usar a conexão em tempo real como está fornece a funcionalidade que você precisa. Se sim, o arquivo TDC criado é suficiente e não há necessidade de personalizar a conexão.

Se o arquivo TDC não estiver executando da maneira que você deseja, é possível personalizar a conexão. Você deve ter uma ideia de como precisará ajustar a sua conexão ODBC para funcionar conforme esperado no seu ambiente. Analise as listas para ver as personalizações que podem ser usadas para ajustar a conexão ODBC.

Personalizações comuns para melhorar a funcionalidade

As personalizações a seguir podem ajudar a melhorar a funcionalidade das fontes de dados com recursos padrão que não são otimizados.

  • CAP_SUPPRESS_DISCOVERY_QUERIES – Configurar este valor para true evitará que o Tableau realize qualquer consulta SQL no início da conexão para determinar os recursos do driver. Você precisará levar em consideração quais outros recursos devem ser habilitados explicitamente, porque o Tableau não poderá determiná-los automaticamente.

  • SQL_SQL_CONFORMANCE – Esta configuração indica qual nível do padrão SQL é totalmente suportado pela fonte de dados. Como o Tableau funciona melhor com pelo menos a conformidade em nível inicial, esse valor deve ser pelo menos 1, caso a fonte de dados ofereça suporte a ele.

  • SQL_AGGREGATE_FUNCTIONS – Esta definição indica quais funções de agregação são suportadas, como MIN, MAX, SUM. Um valor de '127' indica suporte para todas as funções de agregação SQL padrão.

Identificação de fontes de dados muito limitadas

Algumas fontes de dados são tão limitadas que o Tableau não consegue concluir as etapas de criação de uma conexão. Às vezes, isso se deve a falhas dentro do driver, que fazem o Tableau parar de funcionar. É possível usar um arquivo TDC global para evitar que o Tableau emita consultas ou verifique recursos que possam estar associados à instabilidade.

Para criar esse arquivo, você precisará saber o nome do fornecedor do banco de dados e o nome do driver ODBC.

  1. Crie uma nova conexão no Tableau, abra o arquivo de registro e procure uma linha como a seguinte:
    GenericODBCProtocol::Connect: Detected vendor: 'SQLite' and driver: 'SQLite3 ODBC Driver'
  2. Crie um arquivo TDC com o nome do vendor (fornecedor) listado e o nome do driver . Consulte Nome do fornecedor e driver para obter um exemplo.

  3. Use personalizações, como CAP_SUPPRESS_DISCOVERY_QUERIES para restringir a interação do Tableau com uma fonte de dados limitada.

Definição das configurações do driver ODBC

Os drivers ODBC oferecem caixas de diálogo para fornecer detalhes da conexão como, o servidor, o nome de usuário e a senha. Muitos oferecem opções avançadas para controlar o comportamento da conexão. Você deve levar em consideração essas opções ao explorar formas de melhorar a funcionalidade ou o desempenho da conexão ODBC. Em especial, procure configurações que controlem os itens listados abaixo, porque eles foram a causa de problemas passados com conexões ODBC no Tableau:

  • Isolamento da transação - Prefira READ, COMMITTED ou SERIALIZABLE para garantir que as consultas não incluam dados de transações pendentes em seus resultados.

  • Cursores - Prefira cursores fixáveis ou roláveis a cursores de streaming. Como o Tableau fecha uma transação depois de cada consulta analítica somente leitura, os cursores de streaming podem ficar truncados e levar a resultados incompletos exibidos no Tableau.

  • Buffers de linha/conjunto de resultados - Prefira tamanhos de buffer maiores para melhorar o desempenho da obtenção de várias linhas, o que pode aumentar muito a velocidade de criação de extrações. Às vezes, isso é chamado de tamanho do cache ou de tamanho da resposta.

  • Conjunto de caracteres - Em ordem de preferência decrescente: UTF-16, UTF-8, ASCII.

Personalizações avançadas do SQLite

O Tableau tem personalizações especiais para o SQLite incorporadas ao produto. Essas personalizações tem precedência sobre qualquer personalização de conexão para SQLite no arquivo da pasta de trabalho, da fonte de dados ou do TDS global. Para fazer alterações avançadas nas personalizações da conexão do SQLite, você precisará levar o Tableau a ignorar seu próprio dialeto SQLite. Você pode fazer isso alterando o nome relatado do fornecedor do banco de dados (<customization name='SQL_DBMS_NAME' value='SQLite' />) para um valor diferente como SQLite-Tableau.

Referência da documentação de ODBC

O MSDN da Microsoft tem documentações sobre o padrão ODBC. Os Apêndices ODBC(O link abre em nova janela) são os mais aplicáveis como recursos para as informações do artigo, especificamente:

Consulte também

Outros bancos de dados (ODBC) – Descreve como conectar-se aos seus dados usando o conector ODBC.

Tableau e ODBC – Fornece informações de contexto sobre o ODBC, descreve como Tableau determina a funcionalidade de um driver ODBC e lista as perguntas mais frequentes.

Referência de personalizações de recurso do Tableau – Lista as personalizações que você pode usar para definir quais recursos do Tableau são suportados pela fonte de dados.

Referência de personalizações do ODBC/SQL – Lista as personalizações que representam as partes dos padrões ODBC e SQL suportadas pelo driver ODBC.

Personalizar a cadeia de caracteres de conexão para um conector nativo(O link abre em nova janela) – Este artigo na Comunidade do Tableau descreve como modificar a conexão feita com um conector nativo usando a personalização odbc-connect-string-extras.

Agradecemos seu feedback!Seu feedback foi enviado. Obrigado!