Oracle

Looker-Unterstützung für Oracle wurde mit traditionellen Oracle-Bereitstellungen implementiert. Wenn Ihre Oracle-Datenbank ein Oracle RAC-Deployment ist, kann Looker erfolgreich eingebunden werden. Es können jedoch Probleme auftreten, weil Abfragen nicht ausgeführt werden können, weil sich die Metadaten für das Abrufen von Abfrageverbindungs-IDs von Knoten unterscheiden.

Netzwerk-Datenverkehr verschlüsseln

Looker empfiehlt dringend, den Netzwerk-Datenverkehr zwischen der Looker-Anwendung und Ihrer Datenbank zu verschlüsseln. Verwenden Sie eine der Optionen auf der Seite Sicheren Datenbankzugriff aktivieren.

Weitere Informationen zur SSL-Verschlüsselung finden Sie in der Oracle-Dokumentation.

Looker-Nutzer erstellen

Erstellen Sie zuerst einen zugewiesenen Looker-Nutzer:

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

Gewähren Sie dem neuen Looker-Nutzer die Möglichkeit, Sitzungen zu erstellen:

GRANT CREATE SESSION TO LOOKER;

Gewähren Sie dem Looker-Nutzer die entsprechenden SELECT-Berechtigungen für die Datentabellen, auf die Sie über Looker zugreifen möchten. Wenn Sie in Zukunft auf zusätzliche Tabellen zugreifen möchten, müssen Sie SELECT auch für diese neuen Tabellen gewähren.

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

Dafür sorgen, dass Looker alle Tabellen sehen kann

Looker kann möglicherweise keine Tabellen identifizieren (insbesondere leere Tabellen), ohne zuvor Statistiken in Oracle zu erfassen. Wenn Tabellen, die Sie benötigen, nicht im generierten LookML oder SQL Runner erscheinen, versuchen Sie, Folgendes auszuführen:

EXEC DBMS_STATS.GATHER_DATABASE_STATS;

Informationen zu alternativen Methoden finden Sie in der Oracle-Dokumentation.

Hauptdatenbankobjekte einrichten

Oracle DBA muss die folgenden Objekte und Berechtigungen in Oracle einrichten. Mit den folgenden Befehlen werden LOOKER_SESSION und LOOKER_SQL als Synonyme für V$SESSION und V$SQL erstellt.

Führen Sie die folgenden Befehle als Root-Nutzer aus, um die Einrichtung abzuschließen. Bei diesen Beispielen wird davon ausgegangen, dass der Name des Looker-Nutzers LOOKER ist.

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;

Symmetrische Aggregat einrichten

Ihre Oracle DBA muss die Funktion LOOKER_HASH einrichten, um symmetrische Aggregationen zu aktivieren. Die Funktion LOOKER_HASH ist ein Synonym für die Oracle-Funktion dbms_crypto.hash. Das DBA muss auch das zugehörige Synonym und die entsprechenden Berechtigungen erstellen. Bei den folgenden Befehlen wird davon ausgegangen, dass der Name des Looker-Nutzers LOOKER ist:

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;

Abhängig von Ihrer Oracle-Datenbankkonfiguration kann das SYS-Präfix SYSDBA, ADMIN oder unnötig sein.

Persistente abgeleitete Tabellen einrichten

Um persistente abgeleitete Tabellen zu verwenden, gewähren Sie dem Looker-Nutzer die Berechtigungen UNLIMITED TABLESPACE und CREATE TABLE. Bei den folgenden Befehlen wird davon ausgegangen, dass der Name des Looker-Nutzers LOOKER ist:

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

Abfragekill einrichten

Folgen Sie dieser Anleitung, um das Anfragekill für eine herkömmliche Oracle-Bereitstellung oder eine Amazon RDS-Bereitstellung zu konfigurieren.

Herkömmliche Oracle-Bereitstellungen

Wenn Sie das Beenden von Abfragen in herkömmlichen Oracle-Bereitstellungen einrichten möchten, muss das Oracle DBA-Verfahren das Verfahren LOOKER_KILL_QUERY als Synonym für ALTER SYSTEM KILL SESSION erstellen. Führen Sie dazu den folgenden Befehl aus:

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;

Das DBA muss außerdem die folgenden Befehle ausführen:

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

Abhängig von Ihrer Oracle-Datenbankkonfiguration kann das SYS-Präfix SYSDBA, ADMIN oder unnötig sein.

Amazon RDS-Bereitstellungen

In Bereitstellungen in Amazon RDS Oracle werden mit dem Verfahren rdsadmin.rdsadmin_util.kill Abfragen beendet. Dazu muss dem Looker-Datenbanknutzer die Rolle DBA zugewiesen sein.

Da DBA eine erhöhte Datenbankrolle ist, können Sie diesen Schritt überspringen und in Looker das Beenden von Abfragen überspringen.

Führen Sie den folgenden Befehl aus, um die Looker-Funktion für das Abfragen von Nutzern in der Looker-Datenbank bereitzustellen:

GRANT DBA TO LOOKER;

Looker-Verbindung zu Ihrer Datenbank erstellen

Wählen Sie im Abschnitt Admin von Looker die Option Verbindungen aus und klicken Sie auf Verbindung hinzufügen.

Geben Sie die Verbindungsdetails ein. Die meisten Einstellungen gelten für die meisten Datenbankdialekte. Informationen dazu finden Sie in der Dokumentation zum Verbinden von Looker mit Ihrer Datenbank. Die folgenden Einstellungen sind speziell für Oracle:

  • Name: Geben Sie den Namen der Verbindung an. So verweisen Sie auf die Verbindung in LookML-Projekten.
  • Dialekt: Oracle.
  • TNS verwenden: Verbindungen von Transparent Network Substrate (TNS) aktivieren.
  • Host: Hostname oder TNS-Alias.
  • Port: Datenbankport.
  • Database (Datenbank): Name der Datenbank, wenn kein TNS verwendet wird
  • Dienstname: Dienstname (bei Verwendung von TNS).
  • Nutzername: Datenbank-Nutzername oder Temporäre Datenbank, wenn PATs aktiviert sind.
  • Password (Passwort): Datenbankpasswort des Nutzers
  • PDTs aktivieren: Aktivieren Sie diese Option, um persistente abgeleitete Tabellen zu aktivieren. Wenn PATs aktiviert sind, werden im Fenster Verbindung zusätzliche PAT-Einstellungen und der Abschnitt PDT-Überschreibungen angezeigt.
  • Temporäre Datenbank: In Oracle ist ein Nutzer ein Schema, der als Name des Datenbanknutzers angegeben werden muss. In diesem Beispiel würden Sie das temporäre Schemawert LOOKER verwenden.
  • Maximale Anzahl von PAT-Builder-Verbindungen: Geben Sie die Anzahl der möglichen gleichzeitigen PAT-Builds für diese Verbindung an. Wenn dieser Wert zu hoch ist, kann sich das negativ auf die Abfragezeiten auswirken. Weitere Informationen finden Sie auf der Dokumentationsseite Verbindung zwischen Looker und Datenbank herstellen.
  • Zusätzliche JDBC-Parameter: Lassen Sie dieses Feld leer, weil Oracle keine zusätzlichen JDBC-Parameter unterstützt.
  • Datengruppe und PAT-Wartungsplan: Ein cron-Ausdruck, der angibt, wann Looker Datengruppen und persistente abgeleitete Tabellen prüfen soll. Weitere Informationen zu dieser Einstellung finden Sie in der Dokumentation zu Datagroup- und PDT-Wartungszeitplan.
  • SSL: Aktivieren Sie diese Option, um SSL-Verbindungen zu nutzen.
  • SSL bestätigen: Ignorieren Sie dieses Feld. Oracle verwendet zur Überprüfung von SSL den standardmäßigen Java Truststore.
  • Max. Verbindungen pro Knoten: Diese Einstellung kann anfangs den Standardwert übernehmen. Weitere Informationen zu dieser Einstellung finden Sie auf der Dokumentationsseite Verbindung zwischen Looker und Datenbank herstellen im Abschnitt Maximale Verbindungen pro Knoten.
  • Zeitlimit für Verbindungspool: Diese Einstellung kann anfangs den Standardwert beibehalten. Weitere Informationen zu dieser Einstellung finden Sie auf der Dokumentationsseite Verbindung zwischen Looker und Datenbank herstellen im Abschnitt Zeitlimit für den Verbindungspool.
  • SQL-Runner-Precache: Deaktivieren Sie diese Option, damit der SQL Runner keine Tabelleninformationen vorab lädt und Tabelleninformationen nur lädt, wenn eine Tabelle ausgewählt ist. Weitere Informationen zu dieser Einstellung finden Sie auf der Dokumentationsseite Verbindung zwischen Looker und Datenbank herstellen im Abschnitt SQL-Runner-Precache.
  • Zeitzone der Datenbank: Geben Sie die Zeitzone an, die in der Datenbank verwendet wird. Lassen Sie dieses Feld leer, wenn Sie keine Zeitzonenumwandlung wünschen. Weitere Informationen finden Sie auf der Dokumentationsseite Zeitzoneneinstellungen verwenden.

Klicken Sie auf Test, um zu prüfen, ob die Verbindung erfolgreich war. Informationen zur Fehlerbehebung finden Sie in der Dokumentation zum Testen der Datenbankverbindung.

Klicken Sie auf Verbinden, um diese Einstellungen zu speichern. Wählen Sie im Abschnitt Admin von Looker die Option Verbindungen aus und klicken Sie auf Verbindung hinzufügen.

Unterstützte Funktionen

Damit Looker einige Funktionen unterstützen kann, müssen diese auch von Ihrem Datenbankdialekt unterstützt werden.

Ab Looker 23.8 werden in Oracle die folgenden Funktionen unterstützt:

Funktion Unterstützt?
Supportstufe
Unterstützt
Looker (Google Cloud Core)
Ja
Symmetrische Summen
Ja
Abgeleitete Tabellen
Ja
Über SQL abgeleitete Tabellen
Ja
Nichtflüchtige native abgeleitete Tabellen
Ja
Stabile Aufrufe
Ja
Abfrageabbau
Ja
SQL-basierte Pivots
Ja
Zeitzonen
Ja
SSL
Ja
Zwischensummen
Ja
Zusätzliche JDBC-Parameter
Nein
Groß-/Kleinschreibung beachten
Ja
Standorttyp
Ja
Listentyp
Ja
Perzentil
Ja
Eindeutiges Perzentil
Nein
Prozesse der SQL Runner-Sendung
Ja
SQL-Runner-Beschreibungstabelle
Ja
SQL-Runner-Show-Indizes
Ja
SQL Runner Select 10
Ja
Anzahl der SQL-Runner
Ja
Erläuterung zu SQL
Nein
OAuth-Anmeldedaten
Nein
Kontextkommentare
Ja
Verbindungs-Pooling
Nein
HLL-Sketche
Nein
Aggregatfunktion
Ja
Inkrementelle PDTs
Nein
Millisekunden
Ja
Mikrosekunden
Ja
Materialisierte Ansichten
Nein
Ungefähre Anzahl Einzeln
Nein