Configura Looker para usar controladores JDBC no empaquetados
En el caso de 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, luego, configurar Looker para registrar el controlador no empaquetado como se describe en esta página.
Todos los dialectos con un valor de "No" en "¿Es compatible?" requieren instalaciones de controladores JDBC no empaquetados:
| Dialecto | ¿Es compatible? |
|---|---|
| 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 |
Requisitos previos
Para conectar Looker a una base de datos que requiere un controlador JDBC no empaquetado, necesitarás lo siguiente:
- Acceso a la línea de comandos a tu servidor de Looker
- El controlador JDBC como un archivo JAR (la documentación específica del dialecto puede tener instrucciones sobre dónde descargar este archivo; de lo contrario, se supone que tienes acceso al archivo JAR necesario)
- El símbolo del controlador para tu dialecto (un símbolo del controlador es un valor de cadena que Looker usa internamente para hacer coincidir el dialecto con el controlador) (en los ejemplos de esta página, se usa el valor genérico
driver_symbol) (consulta la documentación de Looker para cada dialecto para ver los símbolos que Looker usa para registrar controladores JDBC en dialectos) - La entrada del controlador YAML para que tu dialecto se agregue al archivo de configuración
custom_jdbc_config.yml(para obtener más información, consulta la sección Entradas del controlador en el archivo de configuración YAML de esta página)
Entradas del controlador en el archivo de configuración YAML
A continuación, se muestra una entrada de controlador de ejemplo 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
Cuando escribas la entrada del controlador para tu dialecto, ten en cuenta lo siguiente:
- El archivo
custom_jdbc_config.ymlse basa en YAML, lo que significa que la sangría y el espaciado son importantes. - Los atributos
nameydir_namedeben ser el símbolo del controlador que Looker usa para tu dialecto cuando registra controladores JDBC. - Es posible usar el atributo
file_nameen lugar dedir_nameque contiene la ruta relativa decustom_jdbc_driversal archivo JAR del controlador JDBC. Se recomiendadir_nameporque promueve el aislamiento de varios controladores en sus propios directorios y reduce la posibilidad de que las clases de Java entren en conflicto. - La propiedad
module_pathdependerá del controlador JDBC específico. Debe ser la ruta completamente calificada a la clase del controlador de Java. En este ejemplo, se usa un valor genérico, pero para encontrar elmodule_pathespecífico que usa el controlador, consulta su documentación sobre cómo registrar la clase del controlador. override_jdbc_url_subprotocoles un argumento opcional que se usa para anular el subprotocolo que se usa en la cadena JDBC que Looker envía a la base de datos. Una cadena JDBC típica se verá de la siguiente manera:
jdbc:mysql://localhost:3306/database_name[?propertyName1][=propertyValue1]
Aquí mysql es el subprotocolo JDBC que se usa.
Si especificas override_jdbc_url_subprotocol: driver_subprotocol, esta cadena JDBC se convertirá en lo siguiente:
jdbc:driver_subprotocol://localhost:3306/database_name[?propertyName1][=propertyValue1]
Esta opción es obligatoria si necesitas usar un controlador JDBC no empaquetado que requiera un subprotocolo de URL que no sea el predeterminado de Looker. En la mayoría de los casos, esto no es necesario, a menos que la documentación del dialecto lo indique explícitamente. MongoBI es un ejemplo de un dialecto que requiere esta opción.
Instala controladores JDBC no empaquetados
Cambia al directorio base de la aplicación Looker. En este ejemplo, se usa
lookercomo directorio base.cd lookerCrea un directorio llamado
custom_jdbc_drivers. Este es el directorio de nivel superior para todas las instalaciones de controladores JDBC no empaquetados. La ruta de acceso a este directorio debe serlooker/custom_jdbc_drivers.mkdir custom_jdbc_driversEn el directorio
custom_jdbc_drivers, crea un subdirectorio con el nombre del símbolo del controlador de tu dialecto . En este ejemplo, se usa el valor genéricodriver_symbol. La ruta de acceso resultante al directorio se verá comolooker/custom_jdbc_drivers/driver_symbol.cd custom_jdbc_drivers mkdir driver_symbolColoca los archivos del controlador JDBC para tu dialecto en este directorio. El método para esto depende de dónde se pueda encontrar el controlador de tu dialecto y subirlo al servidor, pero asegúrate de que los archivos JAR pertinentes estén dentro del directorio
driver_symbol:looker/custom_jdbc_drivers/driver_symbol/Por ejemplo:
looker/custom_jdbc_drivers/driver_symbol/DialectDriver.jarLa forma en que muevas los archivos necesarios al servidor de Looker variará según dónde obtengas los archivos del controlador y tu preferencia para la transferencia de archivos. Algunos ejemplos de comandos para transferir archivos a este directorio incluyen
wget,scpycurl.Cambia el directorio al directorio de la aplicación Looker y crea un archivo de configuración llamado
custom_jdbc_config.yml. La ruta de acceso a este archivo debe serlooker/custom_jdbc_config.yml. Este archivo contendrá la información que Looker necesita para ubicar y registrar el controlador JDBC personalizado.cd looker vim custom_jdbc_config.ymlAgrega una entrada nueva para tu dialecto al archivo de configuración
custom_jdbc_config.yml. Consulta la sección Entradas del controlador en el archivo de configuración YAML de esta página para obtener información sobre las entradas del controlador.- name: driver_symbol dir_name: driver_symbol module_path: com.dialect.jdbc.DialectDriverCrea o actualiza el archivo
lookerstart.cfgpara que la aplicación Looker se inicie con la configuración del controlador JDBC no empaquetado. La ruta de acceso a este archivo debe serlooker/lookerstart.cfg. Agrega la opción--use-custom-jdbc-config. Si hay otras opciones, agrega esta al final de las opciones de inicio de Looker:LOOKERARGS="--use-custom-jdbc-config"Si tienes
LOOKERARGSconfigurado en un lugar que no sealookerstart.cfg, como en una variable de entorno, puedes agregar esta marca de inicio allí. Como alternativa, puedes configurarLOOKERARGS="${LOOKERARGS} --use-custom-jdbc-config"para que los valores existentes se expandan en este archivo.Reinicia la aplicación Looker. En este comando, usa el nombre de tu secuencia de comandos de inicio de Looker, como
./lookero./looker.sh../looker restarto
none ./looker stop ./looker start
Varios controladores JDBC no empaquetados
Si necesitas configurar más de un dialecto para usar controladores JDBC no empaquetados, se sigue aplicando el proceso descrito en la sección Instala controladores JDBC no empaquetados. El directorio custom_jdbc_drivers tendrá varios subdirectorios dialect con sus propios 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