Driver JDBC non pacchettizzati

Configurazione di Looker per l'utilizzo di driver JDBC non pacchettizzati

Per alcuni dialetti supportati da Looker, il driver JDBC non può essere pacchettizzato nel file JAR di Looker per motivi relativi alle licenze. In questi casi, devi installare il driver JDBC sul server Looker, quindi configurare Looker in modo da registrare il driver non in pacchetto come descritto in questa pagina.

Tutti i dialetti con valore "No" alla voce "Supportato?" richiedono l'installazione di driver JDBC non pacchettizzati:

Dialetto Supportata?
Valanga Actia
No
Amazon Athena
Amazon Aurora MySQL
Amazon Redshift
Druid Apache
Apache Druid 0.13 o versioni successive
Apache Druid 0.18 o versioni successive
Apache Hive 2.3 o versioni successive
Apache Hive 3.1.2 o versioni successive
Apache Spark 3 e versioni successive
ClickHouse
Cloudera Impala 3.1 o versioni successive
Cloudera Impala 3.1 o versioni successive con driver nativo
No
Cloudera Impala con driver nativo
No
DataVirtuality
No
Databricks
Denodo 7
Denodo 8
Dremio
Dremio 11+
Exasol
Firebolt
SQL precedente di Google BigQuery
SQL standard di Google BigQuery
Google Cloud PostgreSQL
Google Cloud SQL
Google Spanner
Greenplum
HyperSQL
Netezza di IBM
MariaDB
PostgreSQL Microsoft Azure
Database SQL di Microsoft Azure
Microsoft Azure Synapse Analytics
Microsoft SQL Server 2008 e versioni successive
Microsoft SQL Server 2012 o versioni successive
Microsoft SQL Server 2016
Microsoft SQL Server 2017 o versioni successive
MongoBI
No
MySQL
MySQL 8.0.12 o versioni successive
Oracle
Oracle ADWC
PostgreSQL 9.5 e versioni successive
PostgreSQL pre-9.5
PrestoDB
PrestoSQL
SAP HANA 2 o versioni successive
SingleStore
SingleStore 7+
Snowflake
Teradata
No
Trino
Vettore
No
Vertica

Prerequisiti

Per connettere Looker a un database che richiede un driver JDBC non pacchettizzato, avrai bisogno di:

  • Accesso tramite riga di comando al server Looker.
  • Il driver JDBC come file JAR. La documentazione specifica del dialetto potrebbe contenere istruzioni su dove scaricare il file; in caso contrario, supponiamo che tu abbia accesso al file JAR necessario.
  • Il simbolo del conducente per il tuo dialetto. Il simbolo del conducente è un valore di stringa che Looker utilizza internamente per abbinare il dialetto al conducente. Negli esempi in questa pagina viene utilizzato il valore generico driver_symbol. Consulta l'elenco dei simboli dei driver in questa pagina per conoscere i simboli utilizzati da Looker per registrare i driver JDBC nei dialetti.
  • La voce del driver YAML per il tuo dialetto da aggiungere al file di configurazione custom_jdbc_config.yml. Per saperne di più, consulta la sezione Voci del driver nel file di configurazione YAML in questa pagina.

Voci driver nel file di configurazione YAML

Ecco un esempio di voce del driver nel file custom_jdbc_config.yml:

  - name: driver_symbol
    dir_name: driver_symbol
    module_path: com.dialect.jdbc.DialectDriver
    override_jdbc_url_subprotocol: driver_subprotocol  # optional

Quando scrivi la voce del conducente per il tuo dialetto:

  • Il file custom_jdbc_config.yml è basato su YAML, il che significa che il rientro e la spaziatura sono importanti.
  • Gli attributi name e dir_name devono essere il simbolo del driver che Looker prevede per il tuo dialetto durante la registrazione dei driver JDBC.
  • È possibile utilizzare l'attributo file_name anziché dir_name contenente il percorso relativo da custom_jdbc_drivers al file JAR del driver JDBC. dir_name è consigliato perché promuove l'isolamento di più driver nelle proprie directory e riduce la possibilità di collisione delle classi Java.
  • La proprietà module_path dipenderà dallo specifico driver JDBC. Dovrebbe essere il percorso completo della classe driver Java. In questo esempio viene utilizzato un valore generico, ma per trovare lo specifico module_path utilizzato dal conducente consulta la relativa documentazione su come register la classe del conducente.
  • override_jdbc_url_subprotocol è un argomento facoltativo utilizzato per eseguire l'override del sottoprotocollo utilizzato nella stringa JDBC che Looker invia al database. Una tipica stringa JDBC sarà simile alla seguente:
jdbc:mysql://localhost:3306/database_name[?propertyName1][=propertyValue1]

Dove mysql è il sottoprotocollo JDBC in uso.

Se specifichi override_jdbc_url_subprotocol: driver_subprotocol, la stringa JDBC diventa:

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

Questa opzione è obbligatoria se devi utilizzare un driver JDBC non pacchettizzato che richiede un sottoprotocollo dell'URL diverso da quello predefinito di Looker. Nella maggior parte dei casi, ciò non è necessario a meno che la documentazione del dialetto non specifichi esplicitamente che è necessario. MongoBI è un esempio di dialetto che richiede questa opzione.

Installazione di driver JDBC non pacchettizzati

  1. Passa alla directory base dell'applicazione Looker. Per questo documento supporremo che sia looker

    cd looker
    
  2. Crea una directory denominata custom_jdbc_drivers. Si tratta della directory di primo livello per tutte le installazioni di driver JDBC non pacchettizzati. Il percorso di questa directory deve essere looker/custom_jdbc_drivers

    mkdir custom_jdbc_drivers
    
  3. Nella directory custom_jdbc_drivers, crea una sottodirectory denominata con il simbolo del conducente del tuo dialetto. In questo esempio viene utilizzato il valore generico driver_symbol. Il percorso risultante della directory sarà simile a looker/custom_jdbc_drivers/driver_symbol

    cd custom_jdbc_drivers
    mkdir driver_symbol
    

  4. Inserisci i file del driver JDBC per il tuo dialetto in questa directory. Il metodo dipende da dove si trova il driver del dialetto e dove è possibile caricarlo sul server, ma assicurati che i file JAR pertinenti siano all'interno della directory driver_symbol: looker/custom_jdbc_drivers/driver_symbol/

    Ad esempio: looker/custom_jdbc_drivers/driver_symbol/DialectDriver.jar

    Lo spostamento dei file necessari sul server Looker varia in base a dove ricevi i file del driver e alle tue preferenze di trasferimento dei file. Esempi di comandi per trasferire file in questa directory sono wget, scp, curl e così via.

  5. Torna alla directory dell'applicazione Looker e crea un file di configurazione denominato custom_jdbc_config.yml. Il percorso di questo file deve essere looker/custom_jdbc_config.yml. Questo file conterrà le informazioni di cui Looker ha bisogno per individuare e registrare il driver JDBC personalizzato.

    cd looker
    vim custom_jdbc_config.yml
    
  6. Aggiungi una nuova voce per il dialetto nel file di configurazione custom_jdbc_config.yml. Per informazioni sulle voci del driver, consulta la sezione Voci del driver nel file di configurazione YAML in questa pagina.

    - name: driver_symbol
      dir_name: driver_symbol
      module_path: com.dialect.jdbc.DialectDriver
    
  7. Crea o aggiorna il file lookerstart.cfg in modo che l'applicazione Looker venga avviata con la configurazione del driver JDBC non pacchettizzato. Il percorso di questo file deve essere looker/lookerstart.cfg. Aggiungi l'opzione --use-custom-jdbc-config. Se sono disponibili altre opzioni, aggiungila alla fine delle opzioni di avvio di Looker:

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

    Se hai impostato LOOKERARGS in una posizione diversa da lookerstart.cfg, ad esempio in una variabile di ambiente, puoi aggiungere questo flag di avvio. In alternativa, puoi impostare LOOKERARGS="${LOOKERARGS} --use-custom-jdbc-config" in modo che i valori esistenti vengano espansi in questo file.

  8. Riavvia l'applicazione Looker. In questo comando, utilizza il nome del tuo script di avvio di Looker, ad esempio ./looker o ./looker.sh

    ./looker restart
    

    o none ./looker stop ./looker start

Più driver JDBC non pacchettizzati

Se devi configurare più di un dialetto per utilizzare driver JDBC non pacchettizzati, è comunque valida la procedura descritta nella sezione Installazione di driver JDBC non pacchettizzati. La directory custom_jdbc_drivers avrà più sottodirectory dialect con i propri JAR dei driver e il file custom_jdbc_config.yml avrà più voci:

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