Configurar Looker para que use controladores JDBC sin empaquetar
En algunos de los dialectos compatibles con Looker, el controlador JDBC no se puede empaquetar en el archivo JAR de Looker por motivos relacionados con la licencia. En estos casos, debes instalar el controlador JDBC en tu servidor de Looker y, a continuación, configurar Looker para registrar el controlador no empaquetado, tal como se describe en esta página.
En todas las variantes con el valor "No" en la columna "¿Admitida?", es necesario instalar controladores JDBC sin empaquetar:
Dialecto | ¿Es compatible? |
---|---|
Actian Avalanche | No |
Amazon Athena | Sí |
Amazon Aurora MySQL | Sí |
Amazon Redshift | Sí |
Amazon Redshift 2.1+ | Sí |
Amazon Redshift Serverless 2.1+ | Sí |
Apache Druid | Sí |
Apache Druid 0.13+ | Sí |
Apache Druid 0.18+ | Sí |
Apache Hive 2.3+ | Sí |
Apache Hive 3.1.2+ | Sí |
Apache Spark 3+ | Sí |
ClickHouse | Sí |
Cloudera Impala 3.1+ | Sí |
Cloudera Impala 3.1+ with Native Driver | No |
Cloudera Impala with Native Driver | No |
DataVirtuality | No |
Databricks | Sí |
Denodo 7 | Sí |
Denodo 8 & 9 | Sí |
Dremio | Sí |
Dremio 11+ | Sí |
Exasol | Sí |
Firebolt | Sí |
Google BigQuery Legacy SQL | Sí |
Google BigQuery Standard SQL | Sí |
Google Cloud PostgreSQL | Sí |
Google Cloud SQL | Sí |
Google Spanner | Sí |
Greenplum | Sí |
HyperSQL | Sí |
IBM Netezza | Sí |
MariaDB | Sí |
Microsoft Azure PostgreSQL | Sí |
Microsoft Azure SQL Database | Sí |
Microsoft Azure Synapse Analytics | Sí |
Microsoft SQL Server 2008+ | Sí |
Microsoft SQL Server 2012+ | Sí |
Microsoft SQL Server 2016 | Sí |
Microsoft SQL Server 2017+ | Sí |
MongoBI | No |
MySQL | Sí |
MySQL 8.0.12+ | Sí |
Oracle | Sí |
Oracle ADWC | Sí |
PostgreSQL 9.5+ | Sí |
PostgreSQL pre-9.5 | Sí |
PrestoDB | Sí |
PrestoSQL | Sí |
SAP HANA | Sí |
SAP HANA 2+ | Sí |
SingleStore | Sí |
SingleStore 7+ | Sí |
Snowflake | Sí |
Teradata | No |
Trino | Sí |
Vector | No |
Vertica | Sí |
Requisitos previos
Para conectar Looker a una base de datos que requiera un controlador JDBC sin empaquetar, necesitará lo siguiente:
- Acceso a la línea de comandos de tu servidor de Looker.
- El controlador JDBC como archivo JAR. En la documentación específica del dialecto puede haber instrucciones sobre dónde descargar este archivo. De lo contrario, se presupone que tienes acceso al archivo JAR necesario.
- El símbolo del controlador de tu dialecto. Un símbolo de controlador es un valor de cadena que Looker usa internamente para asociar el dialecto al controlador. En los ejemplos de esta página se usa el valor genérico
driver_symbol
. Consulta la documentación de Looker de cada dialecto para ver los símbolos que usa Looker para registrar controladores JDBC en dialectos. - La entrada del controlador YAML de tu dialecto que se va a añadir al archivo de configuración
custom_jdbc_config.yml
. Consulta la sección Entradas de controladores en el archivo de configuración YAML de esta página para obtener más información.
Entradas de controladores en el archivo de configuración YAML
A continuación, se muestra un ejemplo de entrada de controlador en el archivo custom_jdbc_config.yml
:
- name: driver_symbol
dir_name: driver_symbol
module_path: com.dialect.jdbc.DialectDriver
override_jdbc_url_subprotocol: driver_subprotocol # optional
Al escribir la entrada del controlador de tu dialecto:
- El archivo
custom_jdbc_config.yml
se basa en YAML, lo que significa que la sangría y el espaciado son importantes. - Los atributos
name
ydir_name
deben ser el símbolo del controlador que Looker usa para tu dialecto al registrar controladores JDBC. - Puede usar el atributo
file_name
en lugar dedir_name
, que contiene la ruta relativa decustom_jdbc_drivers
al archivo JAR del controlador JDBC.dir_name
es recomendable porque permite que varios controladores estén aislados en sus propios directorios y reduce la probabilidad de que las clases de Java entren en conflicto. - La propiedad
module_path
dependerá del controlador JDBC específico. Debe ser la ruta completa a la clase del controlador de Java. En este ejemplo se usa un valor genérico, pero para encontrar elmodule_path
específico que usa el controlador, consulta su documentación sobre cómo registrar la clase del controlador. override_jdbc_url_subprotocol
es un argumento opcional que se usa para anular el subprotocolo que se utiliza en la cadena JDBC que Looker envía a la base de datos. Una cadena JDBC típica tendrá este aspecto:
jdbc:mysql://localhost:3306/database_name[?propertyName1][=propertyValue1]
Donde mysql
es el subprotocolo JDBC que se está usando.
Si especifica override_jdbc_url_subprotocol: driver_subprotocol
, esta cadena JDBC será:
jdbc:driver_subprotocol://localhost:3306/database_name[?propertyName1][=propertyValue1]
Esta opción es obligatoria si necesitas usar un controlador JDBC sin empaquetar que requiera un subprotocolo de URL distinto del subprotocolo de URL predeterminado de Looker. Por lo general, no es necesario, a menos que la documentación del dialecto indique explícitamente que sí lo es. MongoBI es un ejemplo de dialecto que requiere esta opción.
Instalar controladores JDBC sin empaquetar
Cambia al directorio base de la aplicación Looker. En este ejemplo, se usa
looker
como directorio base.cd looker
Crea un directorio llamado
custom_jdbc_drivers
. Este es el directorio de nivel superior de todas las instalaciones de controladores JDBC sin empaquetar. La ruta a este directorio debe serlooker/custom_jdbc_drivers
.mkdir custom_jdbc_drivers
En el directorio
custom_jdbc_drivers
, crea un subdirectorio con el símbolo del controlador de tu dialecto. En este ejemplo se usa el valor genéricodriver_symbol
. La ruta resultante del directorio será similar alooker/custom_jdbc_drivers/driver_symbol
.cd custom_jdbc_drivers mkdir driver_symbol
Coloca los archivos del controlador JDBC de tu dialecto en este directorio. El método para hacerlo depende de dónde se encuentre el controlador de tu dialecto y de dónde se pueda subir al servidor, pero asegúrate de que los archivos JAR correspondientes estén en el directorio
driver_symbol
:looker/custom_jdbc_drivers/driver_symbol/
Por ejemplo:
looker/custom_jdbc_drivers/driver_symbol/DialectDriver.jar
La forma de mover los archivos necesarios al servidor de Looker variará en función de dónde obtengas los archivos del controlador y de tus preferencias de transferencia de archivos. Algunos ejemplos de comandos para transferir archivos a este directorio son
wget
,scp
ycurl
.Cambia el directorio por el directorio de la aplicación Looker y crea un archivo de configuración llamado
custom_jdbc_config.yml
. La ruta de este archivo debe serlooker/custom_jdbc_config.yml
. Este archivo contendrá la información que Looker necesita para localizar y registrar el controlador JDBC personalizado.cd looker vim custom_jdbc_config.yml
Añade una nueva entrada para tu dialecto en el archivo de configuración
custom_jdbc_config.yml
. Consulta la sección Entradas de controladores en el archivo de configuración YAML de esta página para obtener información sobre las entradas de controladores.- name: driver_symbol dir_name: driver_symbol module_path: com.dialect.jdbc.DialectDriver
Crea o actualiza el archivo
lookerstart.cfg
para que la aplicación Looker se inicie con la configuración del controlador JDBC sin empaquetar. La ruta de este archivo debe serlooker/lookerstart.cfg
. Añade la opción--use-custom-jdbc-config
. Si hay otras opciones, añádalas al final de las opciones de inicio de Looker:LOOKERARGS="--use-custom-jdbc-config"
Si has definido
LOOKERARGS
en otro lugar que no sealookerstart.cfg
, como en una variable de entorno, puedes añadir esta marca de inicio ahí. También puede definirLOOKERARGS="${LOOKERARGS} --use-custom-jdbc-config"
para que los valores que ya tenga se incluyan en este archivo.Reinicia la aplicación Looker. En este comando, usa el nombre de tu secuencia de comandos de inicio de Looker, como
./looker
o./looker.sh
../looker restart
o
none ./looker stop ./looker start
Varios controladores JDBC sin empaquetar
Si necesitas configurar más de un dialecto para usar controladores JDBC sin empaquetar, el proceso descrito en la sección Instalar controladores JDBC sin empaquetar sigue siendo válido. El directorio custom_jdbc_drivers
tendrá varios subdirectorios dialect
con sus propios archivos JAR de controladores, y el archivo custom_jdbc_config.yml
tendrá varias 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