Configurare Looker per l'utilizzo di driver JDBC non inclusi nel pacchetto
Per alcuni dei dialetti supportati da Looker, il driver JDBC non può essere incluso nel file JAR di Looker per motivi di licenza. In questi casi, devi installare il driver JDBC sul server Looker e poi configurare Looker per registrare il driver non incluso nel pacchetto come descritto in questa pagina.
Tutti i dialetti con un valore "No" in "Supportata?" richiedono l'installazione di driver JDBC non inclusi nel pacchetto:
| Dialetto | Supportata? |
|---|---|
| Actian Avalanche | |
| Amazon Athena | |
| Amazon Aurora MySQL | |
| Amazon Redshift | |
| Amazon Redshift 2.1+ | |
| Amazon Redshift Serverless 2.1+ | |
| Apache Druid | |
| Apache Druid 0.13.x - 0.17.x | |
| Apache Druid 0.18+ | |
| Apache Hive 2.3+ | |
| Apache Hive 3.1.2+ | |
| Apache Spark 3+ | |
| ClickHouse | |
| Cloudera Impala 3.1+ | |
| Cloudera Impala 3.1+ with Native Driver | |
| Cloudera Impala with Native Driver | |
| DataVirtuality | |
| Databricks | |
| Denodo 7 | |
| Denodo 8 & 9 | |
| Dremio | |
| Dremio 11+ | |
| Exasol | |
| Google BigQuery Legacy SQL | |
| Google BigQuery Standard SQL | |
| Google Cloud AlloyDB for PostgreSQL | |
| Google Cloud PostgreSQL | |
| Google Cloud SQL | |
| Google Spanner | |
| Greenplum | |
| HyperSQL | |
| IBM Netezza | |
| MariaDB | |
| Microsoft Azure PostgreSQL | |
| Microsoft Azure SQL Database | |
| Microsoft Azure Synapse Analytics | |
| Microsoft SQL Server 2008+ | |
| Microsoft SQL Server 2012+ | |
| Microsoft SQL Server 2016 | |
| Microsoft SQL Server 2017+ | |
| MongoBI | |
| MySQL | |
| MySQL 8.0.12+ | |
| Oracle | |
| Oracle ADWC | |
| PostgreSQL 9.5+ | |
| PostgreSQL pre-9.5 | |
| PrestoDB | |
| PrestoSQL | |
| SAP HANA | |
| SAP HANA 2+ | |
| SingleStore | |
| SingleStore 7+ | |
| Snowflake | |
| Teradata | |
| Trino | |
| Vector | |
| Vertica |
Prerequisiti
Per connettere Looker a un database che richiede un driver JDBC non incluso nel pacchetto, avrai bisogno di:
- Accesso alla riga di comando al server Looker.
- Il driver JDBC come file JAR. La documentazione specifica del dialetto potrebbe contenere istruzioni su dove scaricare questo file; in caso contrario, si presuppone che tu abbia accesso al file JAR necessario.
- Il simbolo del driver per il tuo dialetto. Un simbolo del driver è un valore stringa che Looker utilizza internamente per abbinare il dialetto al driver. Gli esempi in questa pagina utilizzano il valore generico
driver_symbol. Consulta la documentazione di Looker per ogni dialetto per i simboli che Looker utilizza 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 ulteriori informazioni, consulta la sezione Voci del driver nel file di configurazione YAML in questa pagina.
Voci del 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 driver 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
nameedir_namedevono essere il simbolo del driver che Looker utilizza per il tuo dialetto durante la registrazione dei driver JDBC. - È possibile utilizzare l'attributo
file_nameanzichédir_namecontenente il percorso relativo dacustom_jdbc_driversal file JAR del driver JDBC.dir_nameè consigliato perché promuove il mantenimento di più driver isolati nelle proprie directory e riduce la possibilità di collisioni tra classi Java. - La proprietà
module_pathdipende dal driver JDBC specifico. Deve essere il percorso completo della classe del driver Java. Questo esempio utilizza un valore generico, ma per trovare ilmodule_pathspecifico utilizzato dal driver, consulta la documentazione su come registrare la classe del driver. override_jdbc_url_subprotocolè un argomento facoltativo utilizzato per sostituire il sottoprocollo 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 sottoprocollo JDBC utilizzato.
Se specifichi override_jdbc_url_subprotocol: driver_subprotocol, questa stringa JDBC diventerà:
jdbc:driver_subprotocol://localhost:3306/database_name[?propertyName1][=propertyValue1]
Questa opzione è obbligatoria se devi utilizzare un driver JDBC non incluso nel pacchetto che richiede un sottoprocollo URL diverso da quello predefinito di Looker. Nella maggior parte dei casi, non è necessario, a meno che la documentazione del dialetto non lo indichi esplicitamente. MongoBI è un esempio di dialetto che richiede questa opzione.
Installare driver JDBC non inclusi nel pacchetto
Passa alla directory di base dell'applicazione Looker. Questo esempio utilizza
lookercome directory di base.cd lookerCrea una directory denominata
custom_jdbc_drivers. Questa è la directory di primo livello per tutte le installazioni di driver JDBC non inclusi nel pacchetto. Il percorso di questa directory deve esserelooker/custom_jdbc_driversmkdir custom_jdbc_driversNella directory
custom_jdbc_drivers, crea una sottodirectory denominata con il simbolo del driver del tuo dialetto. Questo esempio utilizza il valore genericodriver_symbol. Il percorso risultante della directory sarà simile alooker/custom_jdbc_drivers/driver_symbolcd custom_jdbc_drivers mkdir driver_symbolInserisci i file del driver JDBC per il tuo dialetto in questa directory. Il metodo dipende da dove è possibile trovare e caricare il driver del dialetto sul server, ma assicurati che i file JAR pertinenti si trovino all'interno della directory
driver_symbol:looker/custom_jdbc_drivers/driver_symbol/Ad esempio:
looker/custom_jdbc_drivers/driver_symbol/DialectDriver.jarLa modalità di spostamento dei file necessari sul server Looker varia a seconda di dove ottieni i file del driver e della tua preferenza per il trasferimento dei file. Esempi di comandi per il trasferimento di file in questa directory includono
wget,scpecurl.Passa alla directory dell'applicazione Looker e crea un file di configurazione denominato
custom_jdbc_config.yml. Il percorso di questo file deve esserelooker/custom_jdbc_config.yml. Questo file conterrà le informazioni necessarie a Looker per individuare e registrare il driver JDBC personalizzato.cd looker vim custom_jdbc_config.ymlAggiungi una nuova voce per il tuo 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.DialectDriverCrea o aggiorna il file
lookerstart.cfgin modo che l'applicazione Looker si avvii con la configurazione del driver JDBC non incluso nel pacchetto. Il percorso di questo file deve esserelooker/lookerstart.cfg. Aggiungi l'opzione--use-custom-jdbc-config. Se sono presenti altre opzioni, aggiungila alla fine delle opzioni di avvio di Looker:LOOKERARGS="--use-custom-jdbc-config"Se hai impostato
LOOKERARGSin un punto diverso dalookerstart.cfg, ad esempio in una variabile di ambiente, puoi aggiungere questo flag di avvio. In alternativa, puoi impostareLOOKERARGS="${LOOKERARGS} --use-custom-jdbc-config"in modo che i valori esistenti vengano espansi in questo file.Riavvia l'applicazione Looker. In questo comando, utilizza il nome dello script di avvio di Looker, ad esempio
./lookero./looker.sh./looker restarto
none ./looker stop ./looker start
Più driver JDBC non inclusi nel pacchetto
Se devi configurare più di un dialetto per l'utilizzo di driver JDBC non inclusi nel pacchetto, la procedura descritta nella sezione Installare driver JDBC non inclusi nel pacchetto è ancora valida. La directory custom_jdbc_drivers avrà più sottodirectory dialect con i propri JAR del 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