Drivers JDBC descompactados

Como configurar o Looker para usar drivers JDBC não empacotados

Em alguns dialetos compatíveis com o Looker, o driver JDBC não pode ser empacotado no arquivo JAR do Looker por motivos relacionados ao licenciamento. Nesses casos, é preciso instalar o driver JDBC no servidor Looker e configurá-lo para registrar o driver desempacotado, conforme descrito nesta página.

A tabela a seguir mostra os dialetos que exigem instalações de drivers JDBC não empacotados:

Pré-requisitos

Para conectar o Looker a um banco de dados que requer um driver JDBC não empacotado, você precisará de:

  • Acesso à linha de comando para seu servidor 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, presumimos que você tenha acesso ao arquivo JAR necessário.
  • O símbolo do motorista para seu dialeto. Um símbolo de driver é um valor de string que o Looker usa internamente para corresponder o dialeto ao motorista. Os exemplos nesta página usam o valor genérico driver_symbol. Consulte a lista de símbolos de driver nesta página para ver os símbolos que o Looker usa para registrar drivers JDBC em dialetos.
  • A entrada do driver YAML para que seu dialeto seja adicionado ao arquivo de configuração custom_jdbc_config.yml. Veja mais informações na seção Entradas de drivers no arquivo de configuração YAML desta página.

Entradas do driver no arquivo de configuração YAML

Veja um exemplo de entrada do 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 escrever 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 e dir_name precisam ser o símbolo do driver que o Looker espera para seu dialeto ao registrar drivers 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 arquivo JAR do driver JDBC. O dir_name é recomendado porque promove manter vários drivers isolados nos próprios diretórios e reduz a chance de colisões de classes Java.
  • A propriedade module_path depende do driver JDBC específico. Ela precisa ser o caminho totalmente qualificado para a classe de drivers Java. Esse exemplo usa um valor genérico, mas, para encontrar o module_path específico que o motorista usa, consulte a documentação dele sobre como registrar a classe do motorista.
  • O override_jdbc_url_subprotocol é um argumento opcional usado para substituir o subprotocolo usado na string JDBC que o Looker envia ao banco de dados. Uma string JDBC típica terá a seguinte aparência:
jdbc:mysql://localhost:3306/database_name[?propertyName1][=propertyValue1]

Em que mysql é o subprotocolo JDBC que está sendo usado.

Se você especificar override_jdbc_url_subprotocol: driver_subprotocol, essa string JDBC se tornará:

jdbc:driver_subprotocol://localhost:3306/database_name[?propertyName1][=propertyValue1]

Esta opção é necessária se você precisa usar um driver JDBC desempacotado que exige um subprotocolo de URL diferente do subprotocolo padrão de URL do Looker. Na maioria dos casos, isso não é necessário, a menos que a documentação do dialeto declare isso explicitamente. O MongoBI é um exemplo de dialeto que exige essa opção.

Como instalar drivers JDBC não empacotados

  1. Altere para o diretório base do aplicativo do Looker. Para este documento, presumiremos que ele é looker

    cd looker
    
  2. Crie um diretório chamado custom_jdbc_drivers. Esse é o diretório de nível superior para todas as instalações de drivers JDBC não empacotadas. O caminho para esse diretório precisa ser looker/custom_jdbc_drivers

    mkdir custom_jdbc_drivers
    
  3. No diretório custom_jdbc_drivers, crie um subdiretório chamado com o símbolo de driver do dialeto. Este exemplo usa o valor genérico driver_symbol. O caminho resultante para o diretório será semelhante a looker/custom_jdbc_drivers/driver_symbol

    cd custom_jdbc_drivers
    mkdir driver_symbol
    

  4. Coloque os arquivos do driver JDBC para seu dialeto nesse diretório. O método para isso depende de onde o driver do seu dialeto pode ser encontrado e enviado ao 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 transferência dos arquivos necessários para o servidor do Looker varia de acordo com o local em que você recebe os arquivos do driver e de sua preferência para a transferência de arquivos. wget, scp, curl etc. são exemplos de comandos para transferir arquivos para esse diretório.

  5. Volte para o diretório de aplicativos do Looker e crie um arquivo de configuração chamado custom_jdbc_config.yml. O caminho para o arquivo precisa ser looker/custom_jdbc_config.yml. Esse arquivo conterá as informações que o Looker precisa para localizar e registrar o driver JDBC personalizado.

    cd looker
    vim custom_jdbc_config.yml
    
  6. Adicione uma nova entrada para o dialeto no arquivo de configuração custom_jdbc_config.yml. Consulte a seção Entradas de drivers no arquivo de configuração YAML desta página para ver mais informações sobre entradas de drivers.

    - name: driver_symbol
      dir_name: driver_symbol
      module_path: com.dialect.jdbc.DialectDriver
    
  7. Crie ou atualize o arquivo lookerstart.cfg para que o aplicativo Looker seja iniciado com a configuração do driver JDBC desempacotado. O caminho para o arquivo precisa ser looker/lookerstart.cfg. Adicione a opção --use-custom-jdbc-config. Se houver outras opções, anexe-as ao final das opções de inicialização do Looker:

    LOOKERARGS="--use-custom-jdbc-config"
    

    Se você tiver LOOKERARGS definido em algum lugar diferente de lookerstart.cfg, como em uma variável de ambiente, poderá adicionar essa sinalização de inicialização. Como alternativa, você pode definir LOOKERARGS="${LOOKERARGS} --use-custom-jdbc-config" para que os valores existentes sejam expandidos nesse arquivo.

  8. Reinicie o aplicativo Looker. Nesse 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 não empacotados

Se você precisar configurar mais de um dialeto para usar drivers JDBC não empacotados, o processo acima ainda se aplicará. 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