Controladores JDBC não incluídos em pacotes

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 e dir_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 de dir_name, que contém o caminho relativo de custom_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 o module_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

  1. Altere para o diretório base da aplicação Looker. Este exemplo usa looker como diretório base.

    cd looker
    
  2. 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 ser looker/custom_jdbc_drivers

    mkdir custom_jdbc_drivers
    
  3. 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érico driver_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
    

  4. 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 e curl.

  5. 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 ser looker/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
    
  6. 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
    
  7. 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 ser looker/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 de lookerstart.cfg, como numa variável de ambiente, pode adicionar esta flag de arranque aí. Em alternativa, pode definir LOOKERARGS="${LOOKERARGS} --use-custom-jdbc-config" para que os valores existentes sejam expandidos neste ficheiro.

  8. 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