MySQL, Clustrix, MariaDB y SingleStore

Dialectos que usan estas instrucciones

MySQL, Clustrix, MariaDB y SingleStore (anteriormente MemSQL) comparten los requisitos de configuración de la base de datos que se describen en esta página.

Encriptar el tráfico de red

Looker recomienda que se encripte el tráfico de red entre la aplicación de Looker y su base de datos. Considera una de las opciones que se describen en la página de documentación Habilita el acceso seguro a la base de datos.

Si te interesa usar la encriptación SSL, consulta esta página de documentación de MySQL.

Usuarios y seguridad

Para crear y otorgar el acceso requerido al usuario de Looker, sigue las instrucciones en la sección adecuada para el dialecto y la versión de tu base de datos:

MySQL 8.0.X:

La opción de dialecto MySQL 8.0.X de Looker se implementa con la versión 8.0.12+ de parche debido a una baja de MySQL en el orden implícito en la cláusula GROUP BY. Esto afecta a los subtotales de Looker para las versiones 8.0.0 a 8.0.11 de MySQL, lo que causa errores de generación de SQL. Looker sugiere actualizar las bases de datos de MySQL 8.0.X a 8.0.12 como mínimo para integrarlas por completo. Sin embargo, las versiones anteriores de MySQL seguirán funcionando, excepto los subtotales.

En MySQL 8.0.X, el complemento de autenticación predeterminado es caching_sha2_password. Looker usa el complemento mysql_native_password para intentar autenticarse en bases de datos de MySQL a través del controlador JDBC. Para que esta versión de MySQL funcione correctamente, debes realizar los siguientes pasos adicionales:

  1. Configura la base de datos de MySQL para usar el complemento mysql_native_password. Esto se puede realizar de varias maneras y dependerá de cómo se implemente la base de datos de MySQL 8 y del tipo de acceso que tengas a la configuración:
    1. Comienza el proceso con la marca --default-auth=mysql_native_password
    2. Establece la propiedad en el archivo de configuración my.cnf:
      ``none [mysqld] default-Authentication-plugin=mysql_native_password ```
    3. Si tu instancia de base de datos está alojada a través de AWS RDS, configura el parámetro default_authentication_plugin a través de un grupo de parámetros de RDS que se aplique a esta instancia de base de datos.

  2. Genera las siguientes declaraciones y reemplaza some_password_here por una contraseña única y segura:

      CREATE USER looker IDENTIFIED WITH mysql_native_password BY 'some_password_here';
    GRANT SELECT ON database_name.* TO 'looker'@'%';
    

MySQL 5.7.X y versiones anteriores, Clustrix, MariaDB y SingleStore:

Genera las siguientes declaraciones y reemplaza some_password_here por una contraseña única y segura:

CREATE USER looker;
SET PASSWORD FOR looker = PASSWORD ('some_password_here');
GRANT SELECT ON database_name.* TO 'looker'@'%';

Configuración de esquema temporal para tablas derivadas persistentes

Estos dialectos de bases de datos admiten la creación de tablas derivadas persistentes (PDT). Esta función puede ser muy útil, por lo que le recomendamos habilitarla cuando sea posible.

Para habilitar los PDT, debes configurar un esquema temporal. Los siguientes comandos muestran un ejemplo de cómo crear una base de datos temporal y otorgar los privilegios necesarios al usuario looker.

Puedes especificar el nombre de la base de datos temporal en el campo Base de datos de temperatura cuando crees la conexión de la base de datos. Si no especificas un nombre de base de datos temporal, Looker generará una base de datos raspa y gana con el nombre looker_tmp. Los siguientes comandos usan looker_tmp, pero si especificaste un nombre de base de datos temporal diferente, usa el nombre de tu base de datos temporal en lugar de looker_tmp.

CREATE SCHEMA looker_tmp;
GRANT
  SELECT,
  INDEX,
  INSERT,
  UPDATE,
  DELETE,
  CREATE,
  DROP,
  ALTER,
  CREATE TEMPORARY TABLES
ON looker_tmp.* TO 'looker'@'%';

Para SingleStore, o si tu base de datos usa la replicación basada en GTID, debes usar el parámetro create_process de LookML para usar PDT, ya que GTID no admite declaraciones CREATE TABLE AS SELECT.

Configuración alternativa para tablas derivadas regulares

Si no deseas permitir la creación de tablas derivadas persistentes, puedes usar las tablas derivadas regulares. Para usar tablas derivadas regulares, debes agregar ciertos permisos a un esquema llamado looker_tmp. Sin embargo, no es necesario que el esquema looker_tmp exista en tu base de datos.

GRANT
  SELECT,
  INDEX,
  INSERT,
  DROP,
  CREATE TEMPORARY TABLES
ON looker_tmp.* TO 'looker'@'%';
-- Note that the looker_tmp schema does not need to actually exist,
-- even though these permission grants are still needed

Configura la variable max_allowed_packet

En MySQL, configura la variable max_allowed_packet de MySQL con su valor máximo, 1073741824, a fin de evitar errores de SQL Exception: Packet for query is too big.

Compatibilidad de características

Para que Looker admita algunas funciones, el dialecto de la base de datos también debe admitirlas.

En la versión más reciente de Looker, MySQL admite las siguientes características de Looker:

En la versión más reciente de Looker, MySQL 8.0.12+ es compatible con las siguientes funciones de Looker:

En la versión más reciente de Looker, Clustrix admite las siguientes funciones de Looker:

En la versión más reciente de Looker, MariaDB es compatible con las siguientes funciones de Looker:

En la versión más reciente de Looker, SingleStore es compatible con las siguientes funciones de Looker:

En la versión más reciente de Looker, SingleStore 7+ es compatible con las siguientes funciones de Looker:

Próximos pasos

Después de completar la configuración de la base de datos, puedes conectarte a la base de datos de Looker mediante estas instrucciones.

Cuando crees conexiones, asegúrate de usar el nombre de dialecto de la base de datos correcto. Si bien las instrucciones de configuración de la base de datos son las mismas para MySQL, Clustrix, MariaDB y SingleStore, asegúrate de elegir tu dialecto específico del menú desplegable Dialect en la página Connections, que se describe a continuación.