Oracle

La compatibilité de Looker avec Oracle a été implémentée à l'aide de déploiements Oracle traditionnels. Si votre base de données Oracle est un déploiement Oracle RAC, Looker peut s'intégrer correctement, mais peut rencontrer des problèmes pour supprimer des requêtes en raison d'une différence au niveau des métadonnées lors de la récupération des ID de connexion des requêtes à partir des nœuds.

Chiffrement du trafic réseau

Il est vivement conseillé de chiffrer le trafic réseau entre l'application Looker et votre base de données. Choisissez l'une des options décrites dans la page Activer l'accès sécurisé aux bases de données.

Si vous souhaitez utiliser le chiffrement SSL, consultez la documentation Oracle.

Créer un utilisateur Looker

Commencez par créer un utilisateur Looker désigné:

-- connect / as sysdba;
CREATE USER LOOKER IDENTIFIED BY <password>
DEFAULT TABLESPACE USERS
TEMPORARY TABLESPACE TEMP;

Ensuite, autorisez le nouvel utilisateur de Looker à créer des sessions:

GRANT CREATE SESSION TO LOOKER;

Enfin, accordez à l'utilisateur Looker les autorisations SELECT appropriées pour les tables de données auxquelles vous prévoyez d'accéder depuis Looker. Si vous souhaitez accéder à des tables supplémentaires à l'avenir, vous devrez également accorder l'autorisation SELECT à ces nouvelles tables.

GRANT SELECT ON -- <all tables that will be used by looker>;

S'assurer que Looker peut afficher toutes les tables

Looker risque de ne pas pouvoir identifier les tables (en particulier les tables vides) sans collecter au préalable de statistiques dans Oracle. Si les tables dont vous avez besoin n'apparaissent pas dans l'exécuteur LookML ou SQL généré, essayez d'exécuter la commande suivante:

EXEC DBMS_STATS.GATHER_DATABASE_STATS;

Pour connaître d'autres méthodes, consultez la documentation Oracle.

Configurer des objets de base de données principaux

Votre DBA Oracle doit configurer les objets et autorisations suivants sur Oracle. Les commandes suivantes créent LOOKER_SESSION et LOOKER_SQL comme synonymes de V$SESSION et V$SQL.

Exécutez les commandes suivantes en tant qu'utilisateur racine pour terminer cette configuration. Dans ces exemples, nous partons du principe que le nom de l'utilisateur Looker est LOOKER.

CREATE OR REPLACE VIEW LOOKER_SQL
AS
  SELECT
    sql.SQL_ID,
    sql.SQL_TEXT
  FROM
    V$SQL sql,
    v$session sess
  WHERE
    sess.SQL_ADDRESS = sql.ADDRESS AND
    sess.username=&apos;LOOKER&apos;;

CREATE OR REPLACE SYNONYM LOOKER.LOOKER_SQL FOR LOOKER_SQL;

GRANT SELECT ON LOOKER.LOOKER_SQL TO LOOKER;

-- Pay special attention to the comments below:
-- the following view will be different for clustered Oracle deployments
CREATE OR REPLACE VIEW LOOKER_SESSION
AS
  SELECT
    SID,
    USERNAME,
    TYPE,
    STATUS,
    SQL_ID,
    -- If using a single node Oracle deployment
    "SERIAL#",
    -- If using a clustered Oracle deployment, like Oracle Real Application Clusters
    (SERIAL# || ',' || INST_ID) AS "SERIAL#",
    AUDSID
  -- If using a single node Oracle deployment
  FROM V$SESSION
  -- If using a clustered Oracle deployment, like Oracle Real Application Clusters
  FROM GV$SESSION
  WHERE
    USERNAME=&apos;LOOKER&apos;;

CREATE OR REPLACE SYNONYM LOOKER.LOOKER_SESSION FOR LOOKER_SESSION;

GRANT SELECT ON LOOKER.LOOKER_SESSION TO LOOKER;

Configurer des agrégations symétriques

Votre DBA Oracle doit configurer la fonction LOOKER_HASH pour activer les agrégations symétriques. LOOKER_HASH est un synonyme de la fonction Oracle dbms_crypto.hash. Le nom commercial doit également créer le synonyme et les droits associés. Les commandes suivantes supposent que le nom de l'utilisateur Looker est LOOKER:

CREATE OR REPLACE FUNCTION LOOKER_HASH(bytes raw, prec number)
  RETURN raw AS
  BEGIN
    return(dbms_crypto.HASH(bytes, prec));
  END;

CREATE OR REPLACE SYNONYM LOOKER.LOOKER_HASH FOR LOOKER_HASH;

GRANT EXECUTE ON LOOKER.LOOKER_HASH TO LOOKER;

GRANT EXECUTE ON SYS.LOOKER_HASH TO LOOKER;

Selon la configuration de votre base de données Oracle, le préfixe SYS peut être SYSDBA, ADMIN ou inutile.

Configurer des tables dérivées persistantes

Pour activer les tables dérivées persistantes, accordez à l'utilisateur Looker les autorisations UNLIMITED TABLESPACE et CREATE TABLE. Les commandes suivantes supposent que le nom de l'utilisateur Looker est LOOKER:

GRANT UNLIMITED TABLESPACE TO LOOKER;
GRANT CREATE TABLE TO LOOKER;

Configurer l'arrêt des requêtes

Suivez ces instructions pour configurer l'arrêt des requêtes pour un déploiement Oracle traditionnel ou un déploiement Amazon RDS.

Déploiements Oracle traditionnels

Pour configurer l'arrêt des requêtes dans les déploiements Oracle traditionnels, le DBA Oracle doit créer la procédure LOOKER_KILL_QUERY en tant que synonyme de ALTER SYSTEM KILL SESSION. Pour ce faire, exécutez la commande suivante:

CREATE OR REPLACE PROCEDURE LOOKER_KILL_QUERY(p_sid in varchar2,
                                              p_serial# in varchar2)
IS
  cursor_name pls_integer default dbms_sql.open_cursor;
  ignore pls_integer;

BEGIN
  SELECT
    COUNT(*) INTO ignore
  -- If using a single node Oracle deployment
  FROM V$SESSION
  -- If using a clustered Oracle deployment, like Oracle Real Application Clusters
  FROM GV$SESSION
  WHERE
    username = USER
    AND sid = p_sid
    -- If using a single node Oracle deployment
    AND serial# = p_serial#;
    -- If using a clustered Oracle deployment, like Oracle Real Application Clusters
    AND (SERIAL# || ',' || INST_ID) = p_serial#;

  IF (ignore = 1)
  THEN
    dbms_sql.parse(cursor_name,
                   &apos;ALTER SYSTEM KILL SESSION &apos;&apos;&apos;
                   || p_sid || &apos;,&apos; || p_serial# || &apos;&apos;&apos;&apos;,
                   dbms_sql.native);
    ignore := dbms_sql.execute(cursor_name);
  ELSE
    raise_application_error(-20001,
                            &apos;You do not own session &apos;&apos;&apos; ||
                            p_sid || &apos;,&apos; || p_serial# ||
                            &apos;&apos;&apos;&apos;);
  END IF;
END;

Le DBA devra également exécuter les commandes suivantes:

CREATE OR REPLACE SYNONYM LOOKER.LOOKER_KILL_QUERY FOR SYS.LOOKER_KILL_QUERY;
GRANT EXECUTE ON SYS.LOOKER_KILL_QUERY TO LOOKER;

Selon la configuration de votre base de données Oracle, le préfixe SYS peut être SYSDBA, ADMIN ou inutile.

Déploiements Amazon RDS

Dans les déploiements Amazon RDS Oracle, la procédure rdsadmin.rdsadmin_util.kill est utilisée pour arrêter les requêtes. Pour utiliser cette procédure, le rôle DBA doit être attribué à l'utilisateur de la base de données Looker.

Étant donné que l'outil de base de données est un rôle de base de données élevé, vous pouvez ignorer cette étape et abandonner la fermeture des requêtes dans Looker.

Pour permettre à l'utilisateur de la requête Looker de supprimer des requêtes, exécutez la commande suivante:

GRANT DBA TO LOOKER;

Créer la connexion Looker à votre base de données

Dans la section Administration de Looker, sélectionnez Connexions, puis cliquez sur Ajouter une connexion.

Saisissez les informations de connexion. La majorité des paramètres sont communs à la plupart des dialectes de base de données. Pour en savoir plus, consultez la page de documentation Connecter Looker à votre base de données. Les paramètres suivants sont spécifiques à Oracle:

  • Name (Nom) : spécifiez le nom de la connexion. Vous trouverez ci-dessous la référence à la connexion dans les projets LookML.
  • Dialect: Oracle.
  • Utiliser TNS: activez les connexions TNS (Transparency Network Substrate) transparentes.
  • Hôte: nom d'hôte ou alias TNS.
  • Port: port de la base de données.
  • Base de données: nom de la base de données (si vous n'utilisez pas TNS).
  • Service Name (Nom du service) : nom du service (si TNS est utilisé).
  • Nom d'utilisateur: nom d'utilisateur de la base de données ou Base de données temporaire si les tables dérivées persistantes sont activées.
  • Password (Mot de passe) : mot de passe de l'utilisateur de la base de données.
  • Activer les tables dérivées persistantes: utilisez ce bouton pour activer les tables dérivées persistantes. Lorsque les tables dérivées persistantes sont activées, la fenêtre Connexion affiche les paramètres supplémentaires des tables dérivées persistantes, ainsi que la section Remplacements pour les PDT.
  • Base de données temporaire: dans Oracle, un utilisateur est un schéma, il doit donc être spécifié comme nom d'utilisateur de la base de données. Pour cet exemple, utilisez la valeur de schéma temporaire LOOKER.
  • Nombre maximal de connexions du générateur PDT: spécifiez le nombre de générations de PDT simultanées possibles sur cette connexion. Définir une valeur trop élevée peut avoir un impact négatif sur le temps d'interrogation. Pour en savoir plus, consultez la page de documentation Connecter Looker à votre base de données.
  • Paramètres JDBC supplémentaires: laissez ce champ vide, car Oracle n'accepte pas les paramètres JDBC supplémentaires.
  • Calendrier de maintenance des groupes de données et des tables dérivées persistantes: expression cron qui indique quand Looker doit vérifier les groupes de données et les tables dérivées persistantes. Pour en savoir plus sur ce paramètre, consultez la documentation Calendrier de maintenance des groupes de données et des tables dérivées persistantes.
  • SSL: cochez cette case pour utiliser des connexions SSL.
  • Vérifier le protocole SSL: ignorez ce champ. Oracle utilisera le Truststore Java par défaut pour vérifier SSL.
  • Nombre maximal de connexions par nœud: laissez ce paramètre sur la valeur par défaut. Pour en savoir plus sur ce paramètre, consultez la section Nombre maximal de connexions par nœud de la page de documentation Connecter Looker à votre base de données.
  • Délai d'expiration du pool de connexions: vous pouvez conserver la valeur par défaut initiale de ce paramètre. Pour en savoir plus sur ce paramètre, consultez la section Délai d'expiration du pool de connexions de la page de documentation Connecter Looker à votre base de données.
  • Préchargement d'exécuteur SQL: permet de décocher l'option permettant de ne pas précharger les informations d'une table et de ne les charger que lorsqu'une table est sélectionnée. Pour en savoir plus sur ce paramètre, consultez la section Precache Runner SQL de la page de documentation Connecter Looker à votre base de données.
  • Database Time Zone (Fuseau horaire de la base de données) : spécifiez le fuseau horaire utilisé dans la base de données. Laissez ce champ vide si vous ne souhaitez pas convertir les fuseaux horaires. Pour en savoir plus, consultez la page Utiliser les paramètres de fuseau horaire.

Pour vérifier que la connexion a réussi, cliquez sur Tester. Pour en savoir plus sur le dépannage, consultez la page de test de la connectivité de la base de données.

Pour enregistrer ces paramètres, cliquez sur Connecter. Dans la section Administration de Looker, sélectionnez Connexions, puis cliquez sur Ajouter une connexion.

Prise en charge de fonctionnalités

Pour que Looker prenne en charge certaines fonctionnalités, votre dialecte de base de données doit également les prendre en charge.

Oracle est compatible avec les fonctionnalités suivantes à partir de Looker 23.8:

Caractéristique Compatible ?
Niveau d'assistance
Compatible
Looker (Google Cloud Core)
Oui
Agrégations symétriques
Oui
Tables dérivées
Oui
Tables dérivées SQL persistantes
Oui
Tables dérivées natives persistantes
Oui
Vues stables
Oui
Arrêt des requêtes
Oui
Pivots basés sur SQL
Oui
Fuseaux horaires
Oui
SSL
Oui
Sous-totaux
Oui
Paramètres JDBC supplémentaires
Non
Sensible à la casse
Oui
Type d'emplacement
Oui
Type de liste
Oui
Centile
Oui
Centile distinct
Non
Processus d'affichage de l'exécuteur SQL
Oui
Table "Décrire" de l'exécuteur SQL
Oui
Index d'émissions SQL Runner
Oui
Exécuteur SQL 10
Oui
Nombre d'exécuteurs SQL
Oui
SQL Explain
Non
Identifiants OAuth
Non
Commentaires contextuels
Oui
Pooling de connexions
Non
croquis HLL
Non
Reconnaissance d'agrégats.
Oui
Augmentation de tables PDT
Non
Millisecondes
Oui
Microsecondes
Oui
Vues matérialisées
Non
Nombre approximatif distinct
Non