SnowCD (Connectivity Diagnostic Tool)¶
O SnowCD (isto é, a ferramenta de diagnóstico de conectividade do Snowflake) ajuda os usuários a diagnosticarem e solucionarem problemas de conexão da rede com o Snowflake.
Visão geral¶
SnowCD aproveita os endereços IP e as portas do nome de host do Snowflake listados pelas funções SYSTEM$ALLOWLIST() ou SYSTEM$ALLOWLIST_PRIVATELINK() para executar uma série de verificações de conexão a fim de avaliar e ajudar a solucionar problemas na conexão de rede com o Snowflake.
Importante
Se a sua conta Snowflake utiliza conectividade privada para se conectar ao serviço Snowflake, execute a função SYSTEM$ALLOWLIST_PRIVATELINK para obter o endereço IP e as portas do nome de host do Snowflake a fim de avaliar e solucionar problemas de conexão de rede com o Snowflake.
Para obter mais informações, consulte:
O SnowCD retorna um dos seguintes resultados:
All checks passedpara indicar uma conexão de rede saudável.Uma mensagem informando que uma ou mais verificações falharam com uma sugestão de solução do problema.
Os usuários podem usar o SnowCD para avaliar a conexão de rede com o Snowflake a qualquer momento e verificar se as configurações necessárias estão corretas. Por exemplo, os usuários podem integrar o SnowCD aos seguintes casos de uso:
Scripts de implantação automatizada.
Uma verificação de pré-requisitos antes de implantar um serviço que se conecte ao Snowflake.
Verificações de ambiente ao iniciar uma nova máquina.
Verificações periódicas em máquinas em funcionamento.
O SnowCD trabalha com conexões diretas ou conexões via servidores proxy.
O SnowCD verifica o acesso ao banco de dados Snowflake e aos estágios usados para armazenar dados temporariamente (por exemplo, para carregamento).
O SnowCD verifica se uma resposta HTTP foi devolvida pelo host HTTP. Isso pode detectar problemas como os seguintes:
Nenhum servidor HTTP está rodando na porta e no endereço IP especificados.
Houve uma falha na pesquisa de DNS (Domain Name System).
Ocorreu um ataque “man-in-the middle” que usou um certificado inválido para representar o serviço desejado.
Alguns tipos de outras falhas de rede abaixo do nível HTTP.
O SnowCD não detecta todos os problemas possíveis. As limitações conhecidas incluem:
Os estágios exigem informações adicionais de autenticação que o SnowCD não possui. Embora o SnowCD verifique o acesso básico a um estágio, o SnowCD não realiza uma verificação rigorosa do código de resposta HTTP recebido do estágio. Portanto, o SnowCD não detecta problemas como:
Negação de política de acesso aos buckets Amazon S3, armazenamento de blobs do Azure ou Google Cloud Storage para os estágios.
Problemas de conexão com o servidor proxy do cliente, por exemplo, o servidor proxy retorna um erro HTTP 403.
Como o SnowCD não detecta todos os problemas possíveis, o Snowflake recomenda que, após verificar com sucesso o acesso a um estágio pelo SnowCD, você execute um comando PUT para carregar um arquivo em um estágio. A maneira mais simples de executar um comando PUT é geralmente no SnowSQL.
Atenção
Solucionar um ou mais problemas de conexão de rede é complicado. Dependendo do ambiente, pode ser necessário usar o SnowCD com outras abordagens de solução de problemas. Por exemplo, se o SnowCD retornar informações sobre um problema com o OCSP, consulte as seções de OCSP nesta página.
Uso de SnowCD¶
Passo 1: Executar a função SYSTEM$ALLOWLIST ou SYSTEM$ALLOWLIST_PRIVATELINK¶
Esse é um passo prévio e ele só precisa ser concluído uma vez, a menos que os nomes de hosts ou as portas mudem.
Conecte-se ao Snowflake pela interface da Web.
Execute
SELECT SYSTEM$ALLOWLIST();ouSELECT SYSTEM$ALLOWLIST_PRIVATELINK();.salve o resultado da consulta em um arquivo (por exemplo,
allowlist.json).
Para obter mais informações sobre essas funções, consulte SYSTEM$ALLOWLIST ou SYSTEM$ALLOWLIST_PRIVATELINK.
Os exemplos abaixo usam JSON como formato de saída da função SQL correspondente. O SnowCD aceita os formatos JSON, CSV ou TSV como entrada para a Passo 3: Executar o SnowCD.
Para salvar o resultado da consulta no formato CSV ou TSV, na interface da Web, clique no ícone Download or View Results, selecione CSV ou TSV, e clique em Export.
Arquivo de exemplo (sem recuo e redigido)
Execute SYSTEM$ALLOWLIST e salve a saída em um arquivo (por exemplo, allowlist.json).
Onde:
<local_de_armazenamento>é o local de armazenamento (Amazon S3, Google Cloud Storage ou Microsoft Azure) que armazena o arquivo que um cliente Snowflake pode ler ou escrever.
<id_de_região>é a região do AWS onde sua conta Snowflake e VPCs estão localizadas.
Arquivo de exemplo (com recuo e redigido)
Execute SYSTEM$ALLOWLIST e salve a saída em um arquivo (por exemplo, allowlist.json).
Onde:
<local_de_armazenamento>é o local de armazenamento (Amazon S3, Google Cloud Storage ou Microsoft Azure) que armazena o arquivo que um cliente Snowflake pode ler ou escrever.
<id_de_região>é a região do AWS onde sua conta Snowflake e VPCs estão localizadas.
Arquivo de exemplo (sem recuo e redigido)
Execute SYSTEM$ALLOWLIST_PRIVATELINK e salve a saída em um arquivo (por exemplo, allowlist.json).
Onde:
<local_de_armazenamento>é o local de armazenamento (Amazon S3, Google Cloud Storage ou Microsoft Azure) que armazena o arquivo que um cliente Snowflake pode ler ou escrever.
<id_de_região>é a região do AWS onde sua conta Snowflake e VPCs estão localizadas.
Arquivo de exemplo (com recuo e redigido)
Execute SYSTEM$ALLOWLIST_PRIVATELINK e salve a saída em um arquivo (por exemplo, allowlist.json).
Onde:
<local_de_armazenamento>é o local de armazenamento (Amazon S3, Google Cloud Storage ou Microsoft Azure) que armazena o arquivo que um cliente Snowflake pode ler ou escrever.
<id_de_região>é a região do AWS onde sua conta Snowflake e VPCs estão localizadas.
Atenção
Salve o arquivo allowlist.json no local onde outras portas e nomes de hosts externos permitidos foram definidos para o seu ambiente.
Dica
Se você não quiser a saída no formato JSON e preferir o formato de tabela, execute o seguinte comando:
Passo 2: Baixar e instalar o SnowCD¶
Linux¶
Para baixar e instalar o SnowCD no Linux, realize os seguintes passos:
Baixe a versão mais recente do SnowCD da página de Download do SnowCD.
Abra o aplicativo Linux Terminal e navegue até o diretório onde você baixou o arquivo.
Verifique se as somas de verificação SHA256 correspondem.
Extraia o arquivo.
Torne o arquivo executável.
Renomeie o executável como
snowcd.
Nota
Usuários Linux rodando RHEL ou CentOS podem instalar o SnowCD usando o yum, e usuários Debian podem instalar usando o apt.
macOS¶
Para baixar e instalar o SnowCD no macOS, realize os seguintes passos:
Baixe a versão mais recente do arquivo SnowCD
pkgautenticado a partir da página Download do SnowCD.Os arquivos pkg utilizam a seguinte convenção de nomenclatura:
snowcd-<número_de_versão>-darwin_x86_64.pkg
Por exemplo:
snowcd-1.0.5-darwin_x86_64.pkg
Abra o aplicativo do terminal e navegue até o diretório onde você baixou o arquivo.
Verifique se as somas de verificação SHA256 correspondem.
Para obter a soma de verificação do arquivo, execute o comando:
Compare a soma de verificação do arquivo com a soma de verificação mostrada no site de download.
Abra o aplicativo Finder e navegue até o diretório onde você baixou o arquivo pkg.
Extraia e instale o SnowCD clicando duas vezes no arquivo pkg.
Os arquivos, incluindo o executável snowcd, serão instalados no diretório /opt/snowflake/snowcd.
Windows¶
Para baixar e instalar o SnowCD no Windows, realize os seguintes passos:
Baixe a versão mais recente do SnowCD da página de Download do SnowCD.
Execute o arquivo MSI usando o Windows Installer.
Passo 3: Executar o SnowCD¶
Antes de executar o SnowCD em ambientes macOS e Linux, você pode adicionar o diretório dele ao $PATH. Em ambientes Windows, você pode adicionar o SnowCD a suas variáveis de ambiente.
Em ambientes macOS ou Linux, você pode rodar o executável snowcd a partir da linha de comando executando
snowcd <path_to_allowlist.json> [flags].Em ambientes Windows, execute
snowcd.exe <path_to_allowlist.json> [flags].
Dica
Para obter uma descrição completa dos sinalizadores suportados pelo snowcd, execute snowcd -h.
Se todas as verificações forem válidas, o SnowCD retorna o número de verificações no número de hosts com a mensagem All checks passed, como segue.
Se você tentar executar o SnowCD sem transmitir as informações da lista de permissão JSON de SELECT SYSTEM$ALLOWLIST(), a seguinte mensagem de erro será exibida como um lembrete para incluir o arquivo, com a lista de sinalizadores suportados atualmente, o tipo de dados onde aplicável, e uma breve descrição do sinalizador.
Se o SnowCD detectar um ajuste ou configuração incorreta, as informações da(s) verificação(ões) com erro serão exibidas com uma sugestão de solução de problemas. Por exemplo, a resposta abaixo indica um nome de host inválido.
Como usar o SnowCD com um proxy HTTP¶
O SnowCD pode ser executado em um proxy HTTP para determinar seu status de conectividade.
Importante
Atualmente, o Snowflake não oferece suporte a servidores proxy com encerramento SSL.
Durante a configuração da lista de permissões do firewall e do proxy, use a passagem SSL (ou seja, ignore a descriptografia SSL).
Usando o Linux como exemplo, execute o seguinte comando para executar o SnowCD em um proxy, substituindo valores de sinalizadores quando necessário.
O registro em log é opcional e você pode adicionar os dois sinalizadores de log ao comando proxy. É importante incluir um caminho para o arquivo de log para garantir que o registro em log ocorra ao executar o comando.
Depois de executar esse comando, você pode visualizar o rastreamento no arquivo test.log.