Como configurar o Looker para usar drivers JDBC desempacotados
Para alguns dos dialetos compatíveis com o Looker, o driver JDBC não pode ser empacotado no arquivo JAR do Looker por motivos relacionados à licença. Nesses casos, é necessário instalar o driver JDBC no servidor do Looker e configurar o Looker para registrar o driver desempacotado, conforme descrito nesta página.
Todos os dialetos com um valor de "Não" em "Suportado?" exigem instalações de driver JDBC desempacotadas:
Dialeto | Compatível? |
---|---|
Actian Avalanche | Não |
Amazon Athena | Sim |
MySQL do Amazon Aurora | Sim |
Amazon Redshift | Sim |
Apache Druid | Sim |
Apache Druid 0.13 ou mais recente | Sim |
Apache Druid 0.18 ou mais recente | Sim |
Apache Hive 2.3 ou mais recente | Sim |
Apache Hive 3.1.2 ou mais recente | Sim |
Apache Spark 3 ou mais recente | Sim |
ClickHouse | Sim |
Cloudera Impala 3.1+ | Sim |
Cloudera Impala 3.1+ com driver nativo | Não |
Cloudera Impala com driver nativo | Não |
DataVirtuality | Não |
Databricks | Sim |
Denodo 7 | Sim |
Denodo 8 | Sim |
Dremio | Sim |
Dremio 11 ou mais recente | Sim |
Exasol | Sim |
Firebolt | Sim |
SQL legado do Google BigQuery | Sim |
SQL padrão do Google BigQuery | Sim |
PostgreSQL do Google Cloud | Sim |
Google Cloud SQL | Sim |
Google Spanner | Sim |
Greenplum | Sim |
HyperSQL | Sim |
IBM Netezza | Sim |
MariaDB | Sim |
Microsoft Azure PostgreSQL | Sim |
Banco de dados SQL do Microsoft Azure | Sim |
Microsoft Azure Synapse Analytics | Sim |
Microsoft SQL Server 2008 ou mais recente | Sim |
Microsoft SQL Server 2012 ou mais recente | Sim |
Microsoft SQL Server 2016 | Sim |
Microsoft SQL Server 2017 ou mais recente | Sim |
MongoBI | Não |
MySQL | Sim |
MySQL 8.0.12 ou mais recente | Sim |
Oracle | Sim |
Oracle ADWC | Sim |
PostgreSQL 9.5 ou mais recente | Sim |
PostgreSQL anterior à versão 9.5 | Sim |
PrestoDB | Sim |
PrestoSQL | Sim |
SAP HANA 2+ | Sim |
SingleStore | Sim |
SingleStore 7+ | Sim |
Snowflake | Sim |
Teradata | Não |
Trino | Sim |
Vetor | Não |
Vertica | Sim |
Pré-requisitos
Para conectar o Looker a um banco de dados que exige um driver JDBC desempacotado, você precisa do seguinte:
- Acesso de linha de comando ao seu servidor do Looker.
- O driver JDBC como um arquivo JAR. A documentação específica do dialeto pode ter instruções sobre onde fazer o download desse arquivo. Caso contrário, presume-se que você tenha acesso ao arquivo JAR necessário.
- O símbolo do driver do seu dialeto. Um símbolo de driver é um valor de string que o Looker usa internamente para corresponder ao dialeto ao driver. Os exemplos nesta página usam o valor genérico
driver_symbol
. Consulte a documentação do Looker para cada dialeto e veja os símbolos que o Looker usa para registrar drivers JDBC em dialetos. - A entrada do driver (link em inglês) do YAML para que seu dialeto seja adicionado ao arquivo de configuração
custom_jdbc_config.yml
. Consulte a seção Entradas de driver no arquivo de configuração YAML nesta página para mais informações.
Registros de driver no arquivo de configuração YAML
Confira um exemplo de entrada de driver no arquivo custom_jdbc_config.yml
:
- name: driver_symbol
dir_name: driver_symbol
module_path: com.dialect.jdbc.DialectDriver
override_jdbc_url_subprotocol: driver_subprotocol # optional
Ao gravar a entrada do driver para seu dialeto:
- O arquivo
custom_jdbc_config.yml
é baseado em YAML, o que significa que o recuo e o espaçamento são importantes. - Os atributos
name
edir_name
precisam ser o símbolo do driver que o Looker usa para seu dialeto ao registrar drivers JDBC. - É possível usar o atributo
file_name
em vez dedir_name
, contendo o caminho relativo decustom_jdbc_drivers
para o arquivo JAR do driver JDBC. Odir_name
é recomendado porque promove a manutenção de vários drivers isolados nos próprios diretórios e reduz a chance de colisão de classes Java. - A propriedade
module_path
depende do driver JDBC específico. Ele precisa ser o caminho totalmente qualificado para a classe do driver Java. Este exemplo usa um valor genérico, mas para encontrar omodule_path
específico que o driver usa, consulte a documentação sobre como registrar a classe do driver. - O
override_jdbc_url_subprotocol
é um argumento opcional usado para substituir o subprotocolo usado na string JDBC que o Looker envia para o banco de dados. Uma string JDBC típica tem esta aparência:
jdbc:mysql://localhost:3306/database_name[?propertyName1][=propertyValue1]
em que mysql
é o subprotocolo JDBC usado.
Se você especificar override_jdbc_url_subprotocol: driver_subprotocol
, a string JDBC vai se tornar:
jdbc:driver_subprotocol://localhost:3306/database_name[?propertyName1][=propertyValue1]
Essa opção é necessária se você precisar usar um driver JDBC desempacotado que exija um subprotocolo de URL diferente do subprotocolo de URL padrão do Looker. Na maioria dos casos, isso não é necessário, a menos que a documentação do dialeto diga explicitamente que é necessário. MongoBI é um exemplo de dialeto que exige essa opção.
Como instalar drivers JDBC desempacotados
Mude para o diretório base do aplicativo Looker. Neste exemplo, usamos
looker
como o diretório base.cd looker
Crie um diretório chamado
custom_jdbc_drivers
. Esse é o diretório de nível superior para todas as instalações de driver JDBC desempacotadas. O caminho para esse diretório precisa serlooker/custom_jdbc_drivers
mkdir custom_jdbc_drivers
No diretório
custom_jdbc_drivers
, crie um subdiretório com o símbolo do driver do seu dialeto. Este exemplo usa o valor genéricodriver_symbol
. O caminho resultante para o diretório será semelhante alooker/custom_jdbc_drivers/driver_symbol
cd custom_jdbc_drivers mkdir driver_symbol
Coloque os arquivos do driver JDBC para seu dialeto neste diretório. O método para isso depende de onde o driver do seu dialeto pode ser encontrado e enviado para o servidor, mas verifique se os arquivos JAR relevantes estão no diretório
driver_symbol
:looker/custom_jdbc_drivers/driver_symbol/
Por exemplo:
looker/custom_jdbc_drivers/driver_symbol/DialectDriver.jar
A forma de mover os arquivos necessários para o servidor do Looker varia de acordo com a origem dos arquivos do driver e sua preferência de transferência de arquivos. Exemplos de comandos para transferir arquivos para esse diretório incluem
wget
,scp
ecurl
.Mude o diretório para o diretório do aplicativo do Looker e crie um arquivo de configuração chamado
custom_jdbc_config.yml
. O caminho para esse arquivo precisa serlooker/custom_jdbc_config.yml
. Esse arquivo vai conter as informações necessárias para que o Looker localize e registre o driver JDBC personalizado.cd looker vim custom_jdbc_config.yml
Adicione uma nova entrada para seu dialeto no arquivo de configuração
custom_jdbc_config.yml
. Consulte a seção Entradas de driver no arquivo de configuração YAML nesta página para saber mais sobre as entradas de driver.- name: driver_symbol dir_name: driver_symbol module_path: com.dialect.jdbc.DialectDriver
Crie ou atualize o arquivo
lookerstart.cfg
para que o aplicativo Looker seja iniciado com a configuração do driver JDBC desempacotada. O caminho para esse arquivo precisa serlooker/lookerstart.cfg
. Adicione a opção--use-custom-jdbc-config
. Se houver outras opções, adicione esta ao final das opções de inicialização do Looker:LOOKERARGS="--use-custom-jdbc-config"
Se você tiver definido
LOOKERARGS
em um local diferente delookerstart.cfg
, como em uma variável de ambiente, poderá adicionar essa flag de inicialização. Como alternativa, definaLOOKERARGS="${LOOKERARGS} --use-custom-jdbc-config"
para que os valores atuais sejam expandidos neste arquivo.Reinicie o aplicativo Looker. Neste comando, use o nome do script de inicialização do Looker, como
./looker
ou./looker.sh
../looker restart
ou
none ./looker stop ./looker start
Vários drivers JDBC desempacotados
Se você precisar configurar mais de um dialeto para usar drivers JDBC desempacotados, o processo descrito na seção Instalar drivers JDBC desempacotados ainda se aplica. O diretório custom_jdbc_drivers
terá vários subdiretórios dialect
com os próprios JARs do driver, e o arquivo custom_jdbc_config.yml
terá várias entradas:
ls looker/custom_jdbc_drivers
driver_symbol_1 driver_symbol_2
ls looker/custom_jdbc_drivers/driver_symbol_1
Dialect1Driver.jar
- name: driver_symbol_1
dir_name: driver_symbol_1
module_path: com.dialect.jdbc.Dialect1Driver
- name: driver_symbol_2
dir_name: driver_symbol_2
module_path: com.dialect.jdbc.Dialect2Driver