Snowflake

Este artigo descreve como conectar o Tableau a um data warehouse do Snowflake e configurar a fonte de dados.

Notas de uso: autenticação de par de chaves com Snowflake

  • Para aceitar o uso de autenticação de par de chaves com Snowflake, você deve instalar um driver de ODBC do Snowflake com versão 3.4.0 ou posterior.
  • A autenticação de par de chaves está disponível para Tableau Desktop e Tableau Cloud a partir da versão 2024.3. Ela estará disponível no Tableau Server em uma versão futura.
  • A publicação de pastas de trabalho com autenticação de par de chaves Snowflake não é aceita na criação na Web. Você deve usar o Tableau Desktop para criar as pastas de trabalho, que podem ser publicadas em Tableau Cloud.

Antes de começar

Antes de começar, colete estas informações de conexão:

  • Nome do servidor ao qual deseja se conectar
  • Método de autenticação:
    • OAuth: use este método se quiser habilitar a federação de um IDP.
    • Nome de usuário e senha: use este método se quiser armazenar credenciais de usuário no Snowflake.
    • Nome de usuário e senha do Okta: use este método se você planeja usar o Okta para gerenciar sua autenticação.
    • Autenticação de par de chaves: use credenciais de pares de chaves públicas e privadas para uma conexão de segurança mais forte.
  • As credenciais de logon necessárias para o método de autenticação escolhido.
    Observação: se você estiver usando autenticação de par de chaves, precisará usar o OpenSSL versão 3.x ou mais recente para criar as chaves.
  • (Opcional) Instrução de SQL Inicial para execução sempre que o Tableau se conecta.
  • (Opcional) Quaisquer parâmetros de driver personalizados ou um novo tamanho VARCHAR padrão para usar com esta conexão.

Observação: para usar o Tableau Cloud com autenticação de par de chaves, você também deve salvar credenciais no Tableau Cloud antes de poder publicar pastas de trabalho para compartilhamento. Para obter mais informações, consulte Configurar Snowflake para autenticação de par de chaves.

Driver necessário

Este conector exige um driver para se comunicar com o banco de dados. Se o driver não estiver instalado no computador, o Tableau exibirá uma mensagem na caixa de diálogo de conexão com um link para a página Download do driver(O link abre em nova janela), na qual é possível encontrar links para o driver e instruções de instalação.

Observação: para aceitar o uso de autenticação de par de chaves, você com Snowflake, você deve instalar um driver de ODBC do Snowflake com versão 3.4.0 ou posterior.

Fazer a conexão e configurar a fonte de dados

Depois de selecionar Snowflake como conexão, um diálogo é exibido com três guias. Use a guia Geral para selecionar o Servidor, Warehouse e tipo de autenticação. Selecione a guia SQL inicial se quiser executar um comando de SQL no início de cada conexão. Para obter mais informações, consulte Executar o SQL inicial. Por fim, você pode usar a guia Avançado para adicionar opcionalmente parâmetros de driver personalizados e um tamanho VARCHAR padrão.

Para obter informações sobre como configurar o OAuth para conexões entre o Tableau e o Snowflake, consulte Configurar OAuth para conexões do Snowflake(O link abre em nova janela) e OAuth externo para Snowflake.

Conectar o Tableau a seus dados

  1. Na tela Conectar , abaixo de Para um servidor, selecione Mais e, em seguida, selecione Snowflake.
  2. Na guia Geral, insira o nome do servidor ao qual você deseja se conectar.
  3. (Opcional) Insira a Função e Warehouse.
  4. Selecione o método de autenticação que você usará: Nome de usuário e senha, Nome de usuário e senha do Okta, Entrar com OAuth, ou Entrar com o par de chaves.
  5. (Opcional) Selecione SQL inicial se quiser executar um comando de SQL no início de cada conexão. Para obter mais informações, consulte Executar o SQL inicial.
  6. (Opcional) Para Tableau Desktop e Server, insira quaisquer parâmetros personalizados na guia Avançado que você deseja usar para esta conexão. (Não disponível no Tableau Cloud)
  7. Conclua as etapas de login para o método de autenticação selecionado:
    • Entrar usando OAuth:
      1. Clique em Fazer logon.
      2. Na página da Web que é aberta, entre no Snowflake inserindo seu Nome de usuário e Senha e selecione Logon. Como alternativa, selecione Logon único se o Snowflake estiver configurado para oferecer suporte a SSO.
      3. Clique em OK para confirmar a autorização para acessar seus dados do Snowflake.
    • Nome de usuário e senha:
      1. Insira o nome de usuário e senha opcional.
      2. Clique em Fazer logon.
    • Nome de usuário e senha do Okta:
      1. Insira o nome de usuário e senha opcional.
      2. Insira o IdP SAML opcional (a URL do servidor Okta).
      3. Clique em Fazer logon.
    • Entre usando o par de chaves
      1. Em Servidor, insira o endereço do servidor Snowflake.
      2. Entre no Warehouse e opcionalmente a Função.
      3. Em Autenticação, selecione Entrar usando par de chaves.
      4. Entre no Nome de usuário associado a essas chaves.
      5. Em Arquivo de chave privada, navegue até o arquivo .p8 que contém sua chave privada.
      6. (Opcional) Insira Senha do arquivo de chave privada se for protegido por uma.
  8. Em seguida, siga as instruções em Configurar a fonte de dados.
  9. Se o Tableau não conseguir fazer a conexão, verifique se as suas credenciais estão corretas. Se ainda assim não conseguir se conectar, seu computador está enfrentando problemas para localizar o servidor. Entre em contato com o administrador de rede ou de banco de dados para obter assistência.

Tempo limite do token de acesso: sempre validar o TDC do token de acesso

O token de acesso Snowflake expira após 10 minutos. Em determinados processos de atualização de extração, novas conexões são estabelecidas posteriormente na tarefa, quando o token de acesso expirar. Para resolver esse problema, adicionamos um novo recurso, que é habilitado por padrão a partir do Tableau 2024.2. Para ativar esse recurso em versões mais antigas, você pode usar o TDC a seguir.

<connection-customization class='snowflake' enabled='true' version='10.0'>
    <vendor name='snowflake' />
    <driver name='snowflake' />
    <customizations>
        <customization name='CAP_OAUTH_VALIDATE_ALWAYS' value='yes'/>
    </customizations>
</connection-customization>

Este TDC pode ser usado com o Tableau Desktop ou o Tableau Server incluindo-o na pasta de fontes de dados do repositório do Tableau. No Tableau Cloud, você pode usar o Bridge e configurar um TDC personalizado conectando-se por ele. Para obter mais informações, consulte Personalizar e ajustar uma conexão.

Observação: os TDCs inseridos não são compatíveis com fluxos.

Personalizar a conexão usando parâmetros de driver

Você pode modificar a conexão feita com o conector Snowflake anexando parâmetros do driver à cadeia de conexão na guia Avançado.

Observação: não é possível alterar os parâmetros do driver gerados pelo Tableau; você pode anexar somente parâmetros.

Por exemplo, esta sintaxe especifica um servidor proxy a ser usado quando os valores no_proxy não são atendidos e nomes de host têm permissão para ignorar o servidor proxy:

Proxy=http://proxyserver.company:80;no_proxy=.trustedserver.com;

Para outro exemplo de parâmetros personalizados do driver, consulte Usar um proxy para o Snowflake.

Você também pode inserir um tamanho alternativo para VARCHAR no campo Tamanho VARCHAR padrão (bytes). Para obter mais detalhes sobre o uso deste campo e os impactos no desempenho, consulte a documentação do Snowflake ODBC.

Observação: se desejar personalização sem inseri-lo na fonte de dados, você pode configurar parâmetros no registro do Windows (apenas os parâmetros marcados como "Parâmetros de configuração" estão disponíveis). Para obter detalhes sobre os parâmetros de driver, consulte Parâmetros de configuração e conexão do ODBC no site da Snowflake.

Configurar a fontes de dados

Na página da fonte de dados, faça o seguinte:

  1. (Opcional) Selecione o nome da fonte de dados padrão na parte superior da página e, em seguida, insira um nome de fonte de dados exclusivo para uso no Tableau. Por exemplo, use uma convenção de nomeação de fonte de dados que ajude os outros usuários da fonte de dados a deduzir a qual fonte de dados devem se conectar.

  2. Na lista suspensa Warehouse, selecione o warehouse ou use a caixa de texto para pesquisá-lo pelo nome.

    Observação: se você deixar isso em branco e não selecionar um warehouse, o Tableau usará o warehouse virtual padrão do Snowflake.

    Para obter mais informações, consulte Warehouses virtuais padrão no Snowflake.

  3. Na lista suspensa Banco de dados, selecione um banco de dados ou use a caixa de texto para pesquisá-lo pelo nome.
  4. Na lista suspensa Esquema, selecione um esquema ou use a caixa de texto para pesquisá-lo pelo nome.
  5. Em Tabela, selecione uma tabela ou use a caixa de texto para procurar uma tabela pelo nome.
  6. Arraste uma tabela para a tela e selecione a guia da planilha para iniciar sua análise.

Observação: se você estiver publicando suas pastas de trabalho ao usar a autenticação de par de chaves, certifique-se de selecionar o tipo de autenticação adequado na seção Gerenciar fontes de dados da janela Publicar pasta de trabalho.

Fazer logon em um Mac

Se você usa o Tableau Desktop em um Mac, quando inserir o nome de servidor com o qual se conectar, use um nome de domínio totalmente qualificado, como mydb.test.example.lan, em vez de um nome de domínio relativo, como mydb ou mydb.test.

Como alternativa, é possível adicionar o domínio à lista de Domínios de Pesquisa no computador Mac para que, quando você se conectar, seja necessário fornecer apenas um nome de servidor. Para atualizar a lista de Domínios de Pesquisa, vá para Preferências do Sistema > Rede > Avançado e depois abra a guia DNS.

Warehouses virtuais padrão no Snowflake

Quando você cria uma fonte de dados do Snowflake, cria um warehouse Snowflake (para recursos computacionais) e os bancos de dados Snowflake (para recursos de dados). Tanto warehouse quanto bancos de dados exigem permissões para acessá-los. Você pode usar diferentes warehouses para acessar o mesmo banco de dados, dependendo do poder de computação que você precisa, assumindo que você tem permissões para cada warehouse e banco de dados.

Quando você cria uma fonte de dados, tem a opção de escolher um warehouse em uma lista de drop-down. Se você deixar isso em branco e não selecionar um warehouse, o Tableau usará o warehouse virtual padrão do Snowflake. Se você publicar posteriormente essa fonte de dados ou livro de trabalho, quando um usuário se conectar, o Tableau usará o warehouse virtual padrão do Snowflake dessa pessoa.

Cada usuário deve receber um warehouse padrão para que o Tableau possa usar esse como padrão para abrir uma pasta de trabalho em uma fonte de dados do Snowflake.

Usar um proxy para o Snowflake

Conecte-se a partir do Tableau por meio de um proxy ao Snowflake. Se estiver usando o Tableau version 2019.4 ou posterior, poderá configurá-lo com a caixa de diálogo do conector digitando os parâmetros necessários na guia Avançado.

Por exemplo:

proxy=http://proxyserver.company:80

Para obter informações sobre os parâmetros que você deve usar, consulte a documentação do Snowflake(O link abre em nova janela).

Observação: o Tableau não usa um DSN para se conectar ao Snowflake, então você pode ignorar as instruções na documentação do Snowflake sobre o uso de um DSN.

Se você estiver usando a versão do Tableau anterior à versão 2019.4, poderá configurá-lo ao inserir os parâmetros em um arquivo TDC usando odbc-extras.

Por exemplo:

Copiar
<connection-customization class='snowflake' enabled='true' version='19.1'>
        <vendor name='snowflake' />
            <driver name='snowflake' />
                <customizations>
                <customization name='odbc-connect-string-extras' value='proxy=http://proxyserver.company:80' />
                </customizations></connection-customization>

Para obter mais informações, consulte Personalizar a cadeia de caracteres de conexão de um Conector nativo(O link abre em nova janela).

Solução de problemas

Desempenho e tamanho da busca

Para obter o melhor desempenho, especialmente para extrações, o Tableau precisa determinar um tamanho de busca ideal. Há duas maneiras de melhorar isso: definindo limites em campos de comprimento variável e habilitando buffers de busca redimensionáveis. Para obter os melhores resultados, você deve usar ambos.

Determinando o tamanho atual da busca

O tamanho da busca usado é registrado nos logs do tabprotosrv. Tabprotosrv é o processo sandbox do driver. Vejamos um exemplo:

ODBCRowsetSource::ODBCRowsetSource: tentando definir o tamanho da busca de linha para 4128 linhas, com 254 bytes por linha

Observação: algumas das sugestões abaixo exigem TDCs, mas elas não funcionarão no Tableau Cloud, a menos que você esteja usando o Tableau Bridge. Com o Tableau Bridge, você poderá instalar o TDC no host da ponte para que ele seja aplicado a todas as conexões que passam por esse host.

Limites de comprimento de campo variável

Ao usar campos VARCHAR ou VARBINARY ilimitados, o driver retornará o tamanho do campo como 16 MB. Isso faz com que o Tableau use um tamanho de busca pequeno para permanecer dentro dos limites de memória, o que resulta em velocidade de consulta lenta. Há algumas maneiras de resolver isso:

  • Adicione um limite à definição da coluna no banco de dados, como VARCHAR(256), ou envolva a tabela em uma exibição que faça o mesmo.
  • Use o campo “Tamanho VARCHAR padrão (bytes)” na guia Avançado ao conectar-se ao Snowflake no Tableau Desktop. O nome foi alterado de “Tamanho máximo do VARCHAR” no Tableau 2024.3, mas tem a mesma função. Ele define o parâmetro default_varchar_size para o driver ODBC, o que limitará o tamanho do campo retornado ao Tableau. Para obter mais informações, consulte https://docs.snowflake.com/en/developer-guide/odbc/odbc-parameters(O link abre em nova janela).
  • Use uma personalização de TDC como abaixo:

<connection-customization class='snowflake' enabled='true' version='10.0'>
<vendor name='snowflake' />
<driver name='snowflake' />
<customizations>
<customization name='CAP_ODBC_FETCH_BUFFERS_RESIZABLE' value='yes'/>
<customization name='odbc-connect-string-extras' value='default_varchar_size=512;default_binary_size=512'/>
</customizations>
</connection-customization>

Habilitar CAP_ODBC_FETCH_BUFFERS_RESIZABLE

Está habilitado por padrão desde o Tableau 2024.3. Antes disso, você pode usar um TDC. Você usaria um TDC como o abaixo se quisesse configurar default_varchar_size no banco de dados.

<connection-customization class='snowflake' enabled='true' version='10.0'>
<vendor name='snowflake' />
<driver name='snowflake' />
<customizations>
<customization name='CAP_ODBC_FETCH_BUFFERS_RESIZABLE' value='yes'/>
</customizations>
</connection-customization>

Perguntas frequentes

Aqui estão alguns problemas comuns e as etapas de resolução.

Eu tenho um erro "Este campo XXX não existe" o que eu faço?

Este erro aparece quando você estiver usando um campo de cálculo, adicionando-o à planilha e substituindo a fonte de dados pelos dados do Snowflake (CustomSQL).

Use a função Substituir referências de campo para resolver o erro. Para obter informações adicionais sobre a substituição de referências de campo, consulte Substituir referências de campo.

 

Consulte também

Agradecemos seu feedback!Seu feedback foi enviado. Obrigado!