Instalação e configuração do driver ODBC para Linux¶
O Linux usa fontes de dados nomeadas (DSNs) para conectar aplicativos clientes baseados no ODBC ao Snowflake. Você pode optar por instalar o driver ODBC usando o arquivo TGZ, o pacote RPM ou o pacote DEB oferecido no Snowflake Client Repository.
Pré-requisitos¶
Sistema operacional¶
Para obter uma lista dos sistemas operacionais compatíveis com os clientes Snowflake, consulte Suporte ao sistema operacional.
Com ODBC versão 3.0.1, o driver não suporta mais versões do CentOS 6.
Gerenciador de driver: iODBC ou unixODBC¶
Um gerenciador de driver é necessário para gerenciar a comunicação entre o Snowflake e o driver ODBC. O driver oferece suporte ao uso do iODBC ou do unixODBC como gerenciador de driver.
iODBC¶
Se o iODBC não estiver instalado no CentOS, como sudo, execute o seguinte comando:
unixODBC¶
unixODBC provides the odbcinst and isql command-line utilities used to install, configure, and test the driver. To verify whether unixODBC is installed, execute the following commands:
Se o unixODBC não estiver instalado:
Como
sudo, execute os seguintes comandos:
Verifique o diretório onde
odbcinstespera que os arquivosodbcinst.inieodbc.iniestejam localizados:A localização deve ser
/etc.
Etapa 1: verificar a assinatura do pacote (somente RPM ou DEB) — opcional¶
Nota
Se você estiver instalando o driver ODBC usando yum ou o arquivo TGZ, pule esta etapa.
Se você estiver instalando o driver ODBC usando o pacote RPM ou DEB e quiser verificar a assinatura do pacote antes da instalação, execute as seguintes tarefas:
1.1: Baixar e importar a última chave pública do Snowflake¶
A partir do servidor de chaves públicas, baixe e importe a chave pública do Snowflake GPG para a versão do ODBC que você está usando:
Para a versão 3.6.0 e superior:
$ gpg --keyserver hkp://keyserver.ubuntu.com --recv-keys 2A3149C82551A34A
Para a versão 3.5.0:
$ gpg --keyserver hkp://keyserver.ubuntu.com --recv-keys 5A125630709DD64B
Para a versão 2.25.6 a 3.4.1:
$ gpg --keyserver hkp://keyserver.ubuntu.com --recv-keys 630D9F3CAB551AF3
Para a versão 2.22.1 a 2.25.5:
$ gpg --keyserver hkp://keyserver.ubuntu.com --recv-keys 37C7086698CB005C
Para a versão 2.18.2 até 2.22.0:
$ gpg --keyserver hkp://keyserver.ubuntu.com --recv-keys EC218558EABB25A1
Para a versão 2.18.1 e inferior:
$ gpg --keyserver hkp://keyserver.ubuntu.com --recv-keys 93DB296A69BE019A
Nota
Se esse comando falhar com o seguinte erro:
depois especifique que você deseja usar a porta 80 para o servidor de chaves:
1.2: Baixar o pacote RPM ou DEB do driver¶
Baixe o pacote no Snowflake Client Repository. Para obter mais detalhes, consulte Download do driver ODBC.
1.3: Verificar a assinatura do pacote RPM ou DEB do driver¶
Assinatura do pacote RPM¶
Verifique se a chave foi importada com sucesso:
O comando deve exibir a chave do Snowflake.
Verifique a assinatura:
Nota
Se
rpmnão tiver a chave GPG que você importou, o comando informará que as assinaturas não são OK e vai gerar um avisoNOKEY:Se isso ocorrer, execute os seguintes comandos para exportar a chave GPG, importar a chave para o
rpme verificar novamente a assinatura:onde
<GPG_KEY_ID>é a ID da chave que você instalou em 1.1: Baixar e importar a última chave pública do Snowflake.
Assinatura do pacote DEB¶
Instale a ferramenta de verificação de assinatura do pacote:
Importe a chave pública para o token de autenticação:
onde
<GPG_KEY_ID>é a ID da chave que você instalou em 1.1: Baixar e importar a última chave pública do Snowflake.Configure uma política para a chave. Para obter mais detalhes, consulte
/usr/share/doc/debsig-verify. A política deve ser armazenada no diretório a seguir:onde
<GPG_KEY_ID>é a ID da chave que você instalou em 1.1: Baixar e importar a última chave pública do Snowflake.Armazene a política em um arquivo chamado
policy_name.pol, ondepolicy_nameé o nome da política. Para o nome da política, você pode usar qualquer cadeia de caracteres, porém a cadeia não pode conter espaços em branco.Aqui está um exemplo de arquivo de política de uma chave com a ID 2A3149C82551A34A:
<?xml version="1.0"?> <!DOCTYPE Policy SYSTEM "http://www.debian.org/debsig/1.0/policy.dtd"> <Policy xmlns="https://www.debian.org/debsig/1.0/"> <Origin Name="Snowflake Computing" id="2A3149C82551A34A" Description="Snowflake ODBC Driver DEB package"/> <Selection> <Required Type="origin" File="debsig.gpg" id="2A3149C82551A34A"/> </Selection> <Verification MinOptional="0"> <Required Type="origin" File="debsig.gpg" id="2A3149C82551A34A"/> </Verification> </Policy>
Verifique a assinatura:
Nota
Por padrão, a ferramenta de verificação de assinatura do pacote dpkg não verifica a assinatura quando você instala o pacote. Se você quiser verificar a assinatura toda vez que executar o dpkg, remova a linha --no-debsig no arquivo /etc/dpkg/dpkg.cfg.
1.4: Apagar a chave pública antiga do Snowflake — opcional¶
Seu ambiente local pode conter múltiplas chaves GPG. Entretanto, por razões de segurança, o Snowflake alterna periodicamente a chave pública GPG. Nossa prática recomendada é excluir a chave pública existente depois de confirmar que a última chave funciona com o último pacote assinado.
Para excluir a chave:
Etapa 2: Instalar o driver ODBC¶
Instale o driver usando uma das seguintes abordagens:
Download e instalação do driver usando o yum¶
Com a versão 2.21.1 do driver ODBC (e versões posteriores), você pode usar o yum para baixar e instalar o driver.
Para baixar e instalar o driver ODBC do Snowflake para Linux usando o yum:
Crie um arquivo chamado
/etc/yum.repos.d/snowflake-odbc.repoe adicione o seguinte texto ao arquivo:em que
VERSION_NUMBERé o número da versão específica do driver (por exemplo, 3.16.0) eGPG_KEY_IDé uma das seguintes IDs de chave:Versão do driver ODBC
ID de chave GPG
3.6.0 e superior
2A3149C82551A34A
3.5.0
5A125630709DD64B
2.25.6 até 3.4.1
630D9F3CAB551AF3
2.22.1 a 2.25.5
37C7086698CB005C
Nas configurações acima,
baseurlegpgkeyapontam para o Snowflake Client Repository no Amazon S3. Se você quiser usar o espelho nos blobs do Azure, mude o nome de host parahttps://sfc-repo.azure.snowflakecomputing.com/:Execute o seguinte comando para instalar o driver:
Instalação do arquivo TGZ¶
Para instalar o driver ODBC do Snowflake para Linux usando o arquivo TGZ que você baixou anteriormente.
Copie o arquivo baixado (
snowflake_linux_x8664_odbc-version.tgz) para um diretório de trabalho.Descompacte o arquivo:
Extraia os arquivos do arquivo .tar:
Copie a pasta
snowflake_odbcresultante para o diretório onde você deseja instalar o driver. Anote o nome desse diretório. Você precisará do local mais adiante nas instruções.
Instalação do pacote RPM¶
Nota
O pacote RPM requer o unixODBC como gerenciador de driver.
Para instalar o driver ODBC do Snowflake para Linux usando o pacote RPM que você baixou anteriormente, depois de verificar opcionalmente a assinatura do pacote, execute o seguinte comando:
Nota
O diretório de instalação é /usr/lib64/snowflake/odbc/. Você precisará do local mais adiante nas instruções.
Se o driver não conseguir encontrar a biblioteca, ele exibirá um erro Unable to locate SQLGetPrivateProfileString function. Nesse caso, você deve definir ODBCInstLib=<driver_manager_path> manualmente no arquivo de configuração simba.snowflake.ini com o nome do gerenciador de driver em seu sistema. Para obter mais informações, consulte Configuração do driver ODBC.
Por exemplo, ODBCInstLib=/usr/lib/x86_64-linux-gnu/libodbcinst.so.2.
Instalação do pacote DEB¶
Nota
O pacote DEB requer o unixODBC como gerenciador de driver. Certifique-se de que os pacotes unixodbc e odbcinst estejam instalados antes de tentar instalar o pacote DEB.
Para instalar o driver ODBC do Snowflake para Linux usando o pacote DEB que você baixou anteriormente, depois de verificar opcionalmente a assinatura do pacote, execute o seguinte comando:
Se a variável SF_ACCOUNT não estiver definida, o comando dpkg exibirá um aviso. Quando você define a variável conforme mostrado, uma conexão Snowflake é adicionada ao arquivo odbc.ini.
O comando pode falhar se alguma dependência necessária para o gerenciador de pacotes não for instalada. Se isso acontecer, instale-as agora:
Nota
O diretório de instalação é /usr/lib/snowflake/odbc/. Você precisará do local mais adiante nas instruções.
Etapa 3: configurar o ambiente (somente TGZ)¶
Nota
Se você instalou o driver ODBC usando o arquivo do pacote RPM ou DEB, pule esta etapa.
Se você instalou usando o arquivo TGZ, configure o ambiente usando o gerenciador de driver instalado (iODBC ou unixODBC).
Configuração com o iODBC¶
Em uma janela do terminal, mude para o diretório snowflake_odbc e execute o seguinte comando para instalar o ODBC do Snowflake:
Esse script realiza as seguintes etapas:
Adiciona uma conexão do Snowflake ao seu arquivo
/etc/odbc.inide nível de sistema.Adiciona as informações do driver do Snowflake ao seu arquivo
/etc/odbcinst.inide nível de sistema.Adiciona todos os certificados da autoridade de certificação (CA) exigidos pelo driver ODBC do Snowflake ao seu arquivo
simba.snowflake.inide nível de sistema.
Ao executar iodbc_setup.sh, você não precisa definir nenhuma variável de ambiente.
Alternativamente, se você não quiser que o Snowflake mude suas configurações de sistema, adicione as seguintes variáveis de ambiente ao seu arquivo de configuração do shell (por exemplo, .profile, .bash_profile):
ODBCINI = <caminho>/conf/odbc.ini
ODBCINSTINI = <caminho>/conf/odbcinst.ini
Onde path é a localização do diretório snowflake_odbc. Se você tiver configurado outros drivers ODBC em seu sistema e planejar adicionar as entradas ODBC do Snowflake aos arquivos odbc.ini e odbcinst.ini existentes na próximo etapa, então aponte ODBCINI e ODBCINSTINI para a localização desses arquivos.
Configuração com o unixODBC¶
Em uma janela do terminal, mude para o diretório snowflake_odbc e execute o seguinte comando para instalar o ODBC do Snowflake:
Esse script realiza as seguintes etapas:
Adiciona uma conexão do Snowflake ao seu arquivo
/etc/odbc.inide nível de sistema.Adiciona as informações do driver do Snowflake ao seu arquivo
/etc/odbcinst.inide nível de sistema.Adiciona todos os certificados da autoridade de certificação (CA) exigidos pelo driver ODBC do Snowflake ao seu arquivo
simba.snowflake.inide nível de sistema.
Ao executar unixodbc_setup.sh, você não precisa definir nenhuma variável de ambiente.
Alternativamente, se você não quiser que o Snowflake mude suas configurações de sistema, adicione as seguintes variáveis de ambiente ao seu arquivo de configuração do shell, por exemplo .profile, .bash_profile:
ODBCSYSINI = <caminho>/conf/
Onde path é a localização do diretório snowflake_odbc. Se você configurou outros ODBC drivers em seu sistema e planeja adicionar as entradas ODBC do Snowflake aos seus arquivos odbc.ini e odbcinst.ini existentes no próximo passo, então aponte ODBCSYSINI para a localização desses arquivos.
Etapa 4: Configurar o driver ODBC¶
A configuração do driver ODBC requer a adição de entradas aos seguintes arquivos:
<caminho>/lib/simba.snowflake.ini/etc/odbcinst.ini(ou<caminho>/conf/odbc.ini, se você estiver usando variáveis de ambiente)/etc/odbc.ini(ou<caminho>/conf/odbcinst.ini, se você estiver usando variáveis de ambiente)
Onde path é a localização do diretório snowflake_odbc.
4.1: Arquivo simba.snowflake.ini (gerenciador de driver e registro em log)¶
Adicione as seguintes entradas ao arquivo simba.snowflake.ini:
Onde:
pathé a localização do diretóriosnowflake_odbc.
driver_manager_pathé a localização do diretório do gerenciador de driver:
iODBC:
ODBCInstLib=libiodbcinst.so.2unixODBC:
ODBCInstLib=libodbcinst.soNota
Se o diretório do gerenciador de driver não estiver incluído na variável de ambiente
LD_LIBRARY_PATH, especifique aqui o caminho completo para a biblioteca do gerenciador de driver.
Verifique se você tem permissões de gravação no caminho do log.
O parâmetro ANSIENCODING especifica a codificação de caracteres do aplicativo. O padrão é UTF-8. O parâmetro é destinado ao uso somente pelo Snowflake. Os clientes não devem alterar o valor.
4.2: Arquivo odbcinst.ini (registro do driver)¶
Adicione as seguintes entradas ao arquivo odbcinst.ini:
Onde path é a localização do diretório snowflake_odbc.
4.3: Arquivo odbc.ini (entradas DSN)¶
Para cada DSN, adicione as seguintes entradas ao arquivo odbc.ini:
DSN Nome e nome do driver (SnowflakeDSIIDriver), na forma de
<dsn_name> = <driver_name>.Parâmetros:
Parâmetros de conexão necessários, tais como
server.Qualquer parâmetro adicional e opcional, como
role,databaseewarehousepadrão.
Os parâmetros são especificados no formato
<parameter_name> = <value>. Para obter mais detalhes sobre os parâmetros que podem ser definidos para cada DSN, consulte Parâmetros de configuração e conexão do ODBC.
O exemplo a seguir ilustra um arquivo odbc.ini que configura duas fontes de dados que utilizam formas diferentes de um identificador de conta no server URL:
testodbc1usa o nome da conta como um identificador para a contamyaccountna organizaçãomyorganization.testodbc2usa o localizador de contaxy12345como identificador de conta.Note que
testodbc2utiliza uma conta no AWS na região Oeste dos US (Oregon). Se a conta estiver em uma região diferente ou se a conta usar um provedor de nuvem diferente, será necessário especificar segmentos adicionais após o localizador de conta.
Observe o seguinte:
Ambos
testodbc1etestodbc2têm funções padrão.testodbc2também tem um banco de dados e um warehouse padrão.
Etapa 5: Testar o driver ODBC¶
Teste o driver usando o gerenciador de driver instalado (iODBC ou unixODBC).
Teste com o iODBC¶
Teste as DSNs que você criou. Na linha de comando, especifique o nome da DSN, nome de login de usuário e senha do usuário, usando o seguinte formato:
iodbctest "DSN=<dsn_name>;UID=<user_name>;PWD=<senha>"
Por exemplo:
Teste com o unixODBC¶
Test the DSNs you created using the isql command-line utility provided with unixODBC.
Na linha de comando, especifique o nome da DSN, o nome de login de usuário e a senha do usuário.
Por exemplo: