Looker-Host für Verbindungen einrichten
Für alle Oracle ADWC-Verbindungen ist eine SSL- und Zertifikatauthentifizierung erforderlich. Damit Looker eine Verbindung zu Ihrer Oracle ADWC-Instanz herstellen kann, müssen Sie Ihre Oracle Wallet-Dateien herunterladen und auf dem Looker-Server installieren. Wenn Sie ein vom Kunden gehosteter Looker-Nutzer sind, benötigen Sie einen Systemadministrator mit Zugriff auf den Looker-Server. Wenn Sie von Looker gehostet werden, wenden Sie sich an den Looker-Support.
So installieren Sie Ihr Oracle Wallet auf dem Looker-Server:
Lade deine Oracle Walletauf deinen lokalen Computer herunter. Sie benötigen eine ZIP-Datei mit dem Namen
Wallet_databasename.zip
.Erstellen Sie auf dem Looker-Server ein Verzeichnis, in dem die Wallet-ZIP-Datei gespeichert wird:
mkdir /home/looker/looker/credentials
Kopieren Sie die Wallet-ZIP-Datei von Ihrem lokalen Computer auf den Looker-Server. In diesem Beispiel wird
scp
verwendet und die Datei in/home/looker/looker/credentials
abgelegt:scp Wallet_databasename.zip username@remotehost:/home/looker/looker/credentials
Entpacken Sie die ZIP-Datei mit dem Wallet. In diesem Beispiel wird der Befehl
unzip
verwendet:cd /home/looker/looker/credentials unzip Wallet_databasename.zip
Prüfen Sie den Inhalt des Wallets mit dem Befehl
ls
. Diese Dateien sollten enthalten sein:ls cwallet.sso keystore.jks sqlnet.ora truststore.jks ewallet.p12 ojdbc.properties tnsnames.ora
Looker wird über Oracle Wallets mit JDBC Thin Driver 18.3 mit Oracle ADWC verbunden. Dazu benötigen Sie den TNS-Alias (Transparent Network Substrate) des Oracle ADWC Service Levels für Ihre Datenbank und den PATH zu Ihren Oracle Wallet-Dateien.
Führen Sie den folgenden Befehl aus, um den TNS-Alias Ihrer Datenbank abzurufen:
cat tnsnames.ora
Es stehen drei TNS-Aliasse zur Auswahl:
dbname_high
,dbname_medium
unddbname_low
. Diese Aliasse entsprechen verschiedenen Servicelevels. Diese Datei enthält das Protokoll, den Host, den Port, den Dienstnamen und die SSL-Informationen. In diesem Beispiel verwenden wirdbname_medium
.
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. Führen Sie den folgenden Befehl aus, wenn benötigte Tabellen nicht im generierten LookML oder SQL Runner angezeigt werden:
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='LOOKER';
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 ADWC deployment
"SERIAL#",
-- If using a clustered Oracle ADWC deployment
(SERIAL# || ',' || INST_ID) AS "SERIAL#",
AUDSID
-- If using a single node Oracle ADWC deployment
FROM V$SESSION
-- If using a clustered Oracle ADWC deployment
FROM GV$SESSION
WHERE
USERNAME='LOOKER';
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äfixSYSDBA
,ADMIN
oder unnötig sein.
Persistente abgeleitete Tabellen einrichten
Um Persistente abgeleitete Tabellen zu aktivieren, 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
Zum Einrichten von Abfragekills 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 ADWC deployment
FROM V$SESSION
-- If using a clustered Oracle ADWC deployment
FROM GV$SESSION
WHERE
username = USER
AND sid = p_sid
-- If using a single node Oracle ADWC deployment
AND serial# = p_serial#;
-- If using a clustered Oracle ADWC deployment
AND (SERIAL# || ',' || INST_ID) = p_serial#;
IF (ignore = 1)
THEN
dbms_sql.parse(cursor_name,
'ALTER SYSTEM KILL SESSION '''
|| p_sid || ',' || p_serial# || '''',
dbms_sql.native);
ignore := dbms_sql.execute(cursor_name);
ELSE
raise_application_error(-20001,
'You do not own session ''' ||
p_sid || ',' || p_serial# ||
'''');
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äfixSYSDBA
,ADMIN
oder unnötig sein.
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 gelten speziell für Oracle ADWC:
- Dialekt: Oracle ADWC.
- TNS verwenden: Verbindungen von Transparent Network Substrate (TNS) aktivieren.
- Host: Hostname oder TNS-Alias. In diesem Beispiel ist das
dbname_medium
. - Port: Übernehmen Sie die Standardeinstellung. Looker sucht den Port in der Datei
tnsnames.ora
. - Dienstname: Lassen Sie das Feld leer. Looker sucht den Dienstnamen aus der Datei
tnsnames.ora
. - 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, das als Name des Datenbanknutzers angegeben werden muss. In diesem Beispiel würden Sie das temporäre Schemawert
LOOKER
verwenden. - Zusätzliche JDBC-Parameter: Der PATH zu Ihrem Oracle-Wallet auf dem Looker-Server. In diesem Beispiel ist das
/home/looker/looker/credentials
.- Bei einer von Looker gehosteten Legacy-Bereitstellung lautet dieser Wert
/home/lookerops/looker/credentials
. - Bei einer von Looker gehosteten Bereitstellung im Hosting der nächsten Generation ist der Wert
/app/credentials
.
- Bei einer von Looker gehosteten Legacy-Bereitstellung lautet dieser Wert
- SSL und Überprüfung von SSL: Sie können diese Felder ignorieren. Looker verwendet immer SSL mit Oracle ADWC.
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. Wenn Sie auf Testen klicken, erstellt Looker einen JDBC-String wie diesen:
jdbc:oracle:thin:@dbname_medium?TNS_ADMIN=/home/looker/looker/credentials
Klicken Sie auf Verbinden, um diese Einstellungen zu speichern.
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 von Oracle ADWC die folgenden Funktionen unterstützt:
Funktion | Unterstützt? |
---|---|
Supportstufe | Integration |
Looker (Google Cloud Core) | Nein |
Symmetrische Summen | Ja |
Abgeleitete Tabellen | Ja |
Über SQL abgeleitete Tabellen | Ja |
Nichtflüchtige native abgeleitete Tabellen | Ja |
Stabile Aufrufe | Nein |
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 | Nein |
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 |