Configurar o Looker para usar controladores JDBC não incluídos em pacotes
Para alguns dos dialetos suportados do Looker, o controlador JDBC não pode ser incluído no ficheiro JAR do Looker por motivos relacionados com licenciamento. Nestes casos, tem de instalar o controlador JDBC no seu servidor Looker e, em seguida, configurar o Looker para registar o controlador não incluído no pacote, conforme descrito nesta página.
Todos os dialetos com o valor "Não" em "Suportado?" requerem instalações de controladores JDBC não incluídos em pacotes:
Dialeto | Compatível? |
---|---|
Actian Avalanche | Não |
Amazon Athena | Sim |
Amazon Aurora MySQL | Sim |
Amazon Redshift | Sim |
Amazon Redshift 2.1+ | Sim |
Amazon Redshift Serverless 2.1+ | Sim |
Apache Druid | Sim |
Apache Druid 0.13+ | Sim |
Apache Druid 0.18+ | Sim |
Apache Hive 2.3+ | Sim |
Apache Hive 3.1.2+ | Sim |
Apache Spark 3+ | Sim |
ClickHouse | Sim |
Cloudera Impala 3.1+ | Sim |
Cloudera Impala 3.1+ with Native Driver | Não |
Cloudera Impala with Native Driver | Não |
DataVirtuality | Não |
Databricks | Sim |
Denodo 7 | Sim |
Denodo 8 & 9 | Sim |
Dremio | Sim |
Dremio 11+ | Sim |
Exasol | Sim |
Firebolt | Sim |
Google BigQuery Legacy SQL | Sim |
Google BigQuery Standard SQL | Sim |
Google Cloud PostgreSQL | Sim |
Google Cloud SQL | Sim |
Google Spanner | Sim |
Greenplum | Sim |
HyperSQL | Sim |
IBM Netezza | Sim |
MariaDB | Sim |
Microsoft Azure PostgreSQL | Sim |
Microsoft Azure SQL Database | Sim |
Microsoft Azure Synapse Analytics | Sim |
Microsoft SQL Server 2008+ | Sim |
Microsoft SQL Server 2012+ | Sim |
Microsoft SQL Server 2016 | Sim |
Microsoft SQL Server 2017+ | Sim |
MongoBI | Não |
MySQL | Sim |
MySQL 8.0.12+ | Sim |
Oracle | Sim |
Oracle ADWC | Sim |
PostgreSQL 9.5+ | Sim |
PostgreSQL pre-9.5 | Sim |
PrestoDB | Sim |
PrestoSQL | Sim |
SAP HANA | Sim |
SAP HANA 2+ | Sim |
SingleStore | Sim |
SingleStore 7+ | Sim |
Snowflake | Sim |
Teradata | Não |
Trino | Sim |
Vector | Não |
Vertica | Sim |
Pré-requisitos
Para associar o Looker a uma base de dados que requer um controlador JDBC não incluído num pacote, precisa do seguinte:
- Acesso à linha de comandos ao seu servidor do Looker.
- O controlador JDBC como um ficheiro JAR. A documentação específica do dialeto pode ter instruções sobre onde transferir este ficheiro; caso contrário, presume-se que tem acesso ao ficheiro JAR necessário.
- O símbolo do condutor para o seu dialeto. Um símbolo de controlador é um valor de string que o Looker usa internamente para fazer corresponder o dialeto ao controlador. Os exemplos nesta página usam o valor genérico
driver_symbol
. Consulte a documentação do Looker para cada dialeto para ver os símbolos que o Looker usa para registar controladores JDBC em dialetos. - A entrada do controlador YAML para o seu dialeto a ser adicionada ao ficheiro de configuração
custom_jdbc_config.yml
. Consulte a secção Entradas de controladores no ficheiro de configuração YAML nesta página para mais informações.
Entradas de controladores no ficheiro de configuração YAML
Segue-se um exemplo de uma entrada de condutor no ficheiro 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 escrever a entrada do controlador para o seu dialeto:
- O ficheiro
custom_jdbc_config.yml
baseia-se em YAML, o que significa que o avanço e o espaçamento são importantes. - Os atributos
name
edir_name
têm de ser o símbolo do controlador que o Looker usa para o seu dialeto ao registar controladores JDBC. - É possível usar o atributo
file_name
em vez dedir_name
, que contém o caminho relativo decustom_jdbc_drivers
para o ficheiro JAR do controlador JDBC.dir_name
é recomendado porque promove a manutenção de vários controladores isolados nos respetivos diretórios e reduz a probabilidade de conflitos entre classes Java. - A propriedade
module_path
depende do controlador JDBC específico. Deve ser o caminho totalmente qualificado para a classe do controlador Java. Este exemplo usa um valor genérico, mas para encontrar omodule_path
específico que o controlador usa, consulte a respetiva documentação sobre como registar a classe do controlador. - O argumento
override_jdbc_url_subprotocol
é opcional e é usado para substituir o subprotocolo usado na string JDBC que o Looker envia para a base de dados. Uma string JDBC típica tem o seguinte aspeto:
jdbc:mysql://localhost:3306/database_name[?propertyName1][=propertyValue1]
Onde mysql
é o subprotocolo JDBC que está a ser usado.
Se especificar override_jdbc_url_subprotocol: driver_subprotocol
, esta string JDBC torna-se:
jdbc:driver_subprotocol://localhost:3306/database_name[?propertyName1][=propertyValue1]
Esta opção é necessária se precisar de usar um controlador JDBC não incluído num pacote que exija um subprotocolo de URL diferente do subprotocolo de URL predefinido do Looker. Na maioria dos casos, isto não é necessário, a menos que a documentação do dialeto indique explicitamente que é. MongoBI é um exemplo de um dialeto que requer esta opção.
Instalar controladores JDBC não incluídos em pacotes
Altere para o diretório base da aplicação Looker. Este exemplo usa
looker
como diretório base.cd looker
Cria um diretório denominado
custom_jdbc_drivers
. Este é o diretório de nível superior para todas as instalações de controladores JDBC não incluídos em pacotes. O caminho para este diretório deve serlooker/custom_jdbc_drivers
mkdir custom_jdbc_drivers
No diretório
custom_jdbc_drivers
, crie um subdiretório com o símbolo do controlador do seu dialeto. Este exemplo usa o valor genéricodriver_symbol
. O caminho resultante para o diretório tem o seguinte aspeto:looker/custom_jdbc_drivers/driver_symbol
cd custom_jdbc_drivers mkdir driver_symbol
Coloque os ficheiros do controlador JDBC para o seu dialeto neste diretório. O método para isto depende de onde o controlador do seu dialeto pode ser encontrado e carregado para o servidor, mas certifique-se de que os ficheiros 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 como move os ficheiros necessários para o servidor do Looker varia consoante a origem dos ficheiros do controlador e a sua preferência de transferência de ficheiros. Exemplos de comandos para transferir ficheiros para este diretório incluem
wget
,scp
ecurl
.Altere o diretório para o diretório da aplicação Looker e crie um ficheiro de configuração com o nome
custom_jdbc_config.yml
. O caminho para este ficheiro deve serlooker/custom_jdbc_config.yml
. Este ficheiro contém as informações de que o Looker precisa para localizar e registar o controlador JDBC personalizado.cd looker vim custom_jdbc_config.yml
Adicione uma nova entrada para o seu dialeto no ficheiro de configuração
custom_jdbc_config.yml
. Consulte a secção Entradas de controladores no ficheiro de configuração YAML nesta página para obter informações sobre as entradas de controladores.- name: driver_symbol dir_name: driver_symbol module_path: com.dialect.jdbc.DialectDriver
Crie ou atualize o ficheiro
lookerstart.cfg
para que a aplicação Looker seja iniciada com a configuração do controlador JDBC não incluído no pacote. O caminho para este ficheiro deve serlooker/lookerstart.cfg
. Adicione a opção--use-custom-jdbc-config
. Se existirem outras opções, anexe-as ao final das opções de arranque do Looker:LOOKERARGS="--use-custom-jdbc-config"
Se tiver
LOOKERARGS
definido num local diferente delookerstart.cfg
, como numa variável de ambiente, pode adicionar esta flag de arranque aí. Em alternativa, pode definirLOOKERARGS="${LOOKERARGS} --use-custom-jdbc-config"
para que os valores existentes sejam expandidos neste ficheiro.Reinicie a aplicação Looker. Neste comando, use o nome do seu script de arranque do Looker, como
./looker
ou./looker.sh
./looker restart
ou
none ./looker stop ./looker start
Vários controladores JDBC não incluídos em pacotes
Se precisar de configurar mais do que um dialeto para usar controladores JDBC não incluídos em pacotes, o processo descrito na secção Instalar controladores JDBC não incluídos em pacotes continua a aplicar-se. O diretório custom_jdbc_drivers
tem vários subdiretórios dialect
com os respetivos JARs de controladores, e o ficheiro custom_jdbc_config.yml
tem 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