Netzwerk-Datenverkehr verschlüsseln
Es empfiehlt sich, den Netzwerkverkehr zwischen Looker-Anwendung und Datenbank zu verschlüsseln. Prüfen Sie eine der Optionen, die auf der Dokumentationsseite Sicheren Datenbankzugriff ermöglichen beschrieben werden.
Wenn Sie an der Verwendung von SSL-Verschlüsselung interessiert sind, informieren Sie sich in der Dokumentation zu MySQL RDS.
Optionen
Aus Leistungsgründen ist es üblich, schreibgeschützte Replikatdatenbanken (auch Lesereplikate genannt) mit Looker zu verwenden. So kann die Produktionsdatenbank ihre Hauptfunktion ausführen, ohne dass Abfragen sie potenziell verlangsamen.
In diesem Dokument wird Folgendes beschrieben:
- Vorhandene Replikatdatenbank für die Verwendung mit Looker ändern
- Neue Lesereplikat-Datenbank erstellen und für die Verwendung mit Looker konfigurieren
Vorhandenes Replikat ändern
Benutzer und Sicherheit
Ändern Sie <some_password_here> in ein eindeutiges, sicheres Passwort:
CREATE USER looker;
SET PASSWORD FOR looker = PASSWORD ('<some_password_here>');
GRANT SELECT ON database_name.* TO 'looker'@'%';
RDS und temporäre Tabellen
Bei RDS-Lesereplikaten ist standardmäßig ein Schreibschutz-Flag aktiviert, das verhindert, dass Looker in temporäre Tabellen schreibt. Looker ändert vorhandene Daten nie, aber MySQL benötigt dennoch Schreibzugriff, um temporäre Tabellen zu verwenden. Dies kann durch Ändern des Flags in RDS behoben werden. Aus den RDS-FAQs:
F: Können meine Lesereplikate nur Datenbanklesevorgänge akzeptieren?
Lesereplikate sind für die Verarbeitung von Lesetraffic konzipiert. Es kann jedoch Anwendungsfälle geben, in denen fortgeschrittene Nutzer DDL-SQL-Anweisungen (Datendefinitionssprache) für ein Lesereplikat ausführen möchten. Beispiele hierfür sind das Hinzufügen eines Datenbankindex zu einem Lesereplikat, das für die Geschäftsberichterstattung verwendet wird, ohne denselben Index der entsprechenden Quell-DB-Instanz hinzuzufügen.
Amazon RDS for MySQL kann so konfiguriert werden, dass DDL-SQL-Anweisungen für ein Lesereplikat zulässig sind. Wenn Sie andere Vorgänge als Lesevorgänge für ein bestimmtes Lesereplikat aktivieren möchten, ändern Sie die aktive DB-Parametergruppe für das Lesereplikat und setzen Sie den Parameter read_only auf 0.
Amazon RDS for PostgreSQL unterstützt derzeit nicht die Ausführung von DDL-SQL-Anweisungen für ein Lesereplikat.
Wenn Sie die DB-Parametergruppe ändern, müssen Sie das Lesereplikat neu starten, damit die Änderungen wirksam werden.
Datenbank erstellen und Berechtigungen gewähren
Erstellen Sie eine temporäre Datenbank und weisen Sie dem Nutzer looker Schreibrechte zu. Die CREATE TEMPORARY-Anweisung in MySQL muss aus Berechtigungsgründen mit einer Datenbank verknüpft sein.
CREATE SCHEMA looker_tmp;
GRANT
SELECT,
INDEX,
INSERT,
UPDATE,
DELETE,
CREATE,
DROP,
ALTER,
CREATE TEMPORARY TABLES
ON looker_tmp.* TO 'looker'@'%';
Neues Replikat erstellen
Beachten Sie, dass AWS RDS Lesereplikate nur mit Datenbankinstanzen erstellen kann, für die die Sicherungsaufbewahrung aktiviert ist.
Schritte vor AWS
Schritt 1
mysql in die Datenbank ein, die die primäre Datenbankinstanz sein wird:
mysql -h hostname.uid.region.rds.amazonaws.com -P 3306 -u root -p
Schritt 2
Erstellen Sie einen Nutzer mit dem Namen looker (ersetzen Sie <some_password_here> durch ein eindeutiges, sicheres Passwort):
CREATE USER looker IDENTIFIED BY '<some_password_here>';
Schritt 3
Erstellen Sie eine temporäre Datenbank und gewähren Sie Looker Leseberechtigungen für andere Datenbanken und Tabellen. Looker schreibt im Allgemeinen nicht in die looker_tmp-Datenbank, sondern verwendet sie zum Ausführen von CREATE TEMPORARY TABLE-Befehlen.
CREATE SCHEMA looker_tmp;
GRANT
SELECT,
INDEX,
INSERT,
UPDATE,
DELETE,
CREATE,
DROP,
ALTER,
CREATE TEMPORARY TABLES
ON looker_tmp.* TO 'looker'@'%';
GRANT
SELECT,
SHOW DATABASES
ON *.* TO 'looker'@'%';
Schritt 4
Berechtigungen löschen:
FLUSH PRIVILEGES;
AWS-Schritte
Schritt 1
Melden Sie sich an und rufen Sie das AWS-Dashboard auf. Wählen Sie im Abschnitt Datenbank die Option RDS aus.

Schritt 2
Wählen Sie im RDS-Dashboard die Datenbankinstanz aus, die Sie als primäre Datenbank festlegen möchten. Wählen Sie Instanzaktionen und dann Lesereplikat erstellen aus.

Schritt 3
Konfigurieren Sie im Pop-up-Fenster Create Read Replica DB Instance die Lesereplikat-Datenbank und wählen Sie Yes, Create Read Replica aus.

Schritt 4
Während Sie auf die Erstellung der Lesereplikat-Datenbank warten, können Sie die DB-Parametergruppe einrichten, die die Konfigurationswerte der Engine enthält, die auf die Lesereplikat-Datenbankinstanz angewendet werden. Wählen Sie in der Seitenleiste die Seite DB-Parametergruppen und dann den Button DB-Parametergruppe erstellen aus.

Schritt 5
Wählen Sie die DB-Parametergruppenfamilie und den Namen der DB-Parametergruppe aus und geben Sie eine Beschreibung der DB-Parametergruppe ein. Wählen Sie dann Ja, erstellen aus.
Schritt 6
Wählen Sie das Lupensymbol in der Zeile mit der Parametergruppe der Lesereplikat-Datenbank aus oder wählen Sie diese Zeile und dann Parameter bearbeiten aus.
Schritt 7
Suchen Sie im Feld Filter unter Parameter nach „read_only“. Ändern Sie den Parameterwert in 0. Wählen Sie dann Änderungen speichern aus.
Schritt 8
Wenn das Lesereplikat erstellt wurde, wählen Sie es in der Liste der Datenbankinstanzen aus. Klicken Sie dann auf den Button Instanzaktion und wählen Sie Ändern aus.
Schritt 9
Ändern Sie im Pop-up-Fenster Modify DB Instance (DB-Instanz ändern) die Parameter Group (Parametergruppe) der DB-Instanz in die neue Parametergruppe für Lesereplikate. Setzen Sie dann ein Häkchen bei Sofort anwenden, wählen Sie Weiter und dann DB-Instanz ändern aus.
Schritt 10
Stellen Sie mit dem MySQL-Client eine Verbindung zur Datenbankinstanz des Lesereplikats als looker her und prüfen Sie, ob auf die Daten zugegriffen werden kann.
Looker-Verbindung zu Ihrer Datenbank erstellen
Wählen Sie in Looker im Bereich Admin die Option Verbindungen aus und klicken Sie dann auf Verbindung hinzufügen.
Geben Sie die Verbindungsdetails ein. Der Großteil der Einstellungen ist für die meisten Datenbankdialekte gleich. Weitere Informationen finden Sie auf der Dokumentationsseite Looker mit Ihrer Datenbank verbinden.
Klicken Sie unten auf der Seite Verbindungseinstellungen im Bereich Statusdetails auf den Button Verbindung testen, um zu prüfen, ob die Verbindung erfolgreich hergestellt wurde.
Wenn Looker Can Connect anzeigt, klicken Sie auf Connect, um die Verbindung zu erstellen.
Ihre Datenbankverbindung wird dann der Liste auf der Looker-Seite Verbindungen Verwaltung hinzugefügt.
Unterstützte JDBC-Parameter
Für Amazon RDS for MySQL unterstützt Looker die folgenden JDBC-Parameter im Feld Zusätzliche JDBC-Parameter für die Verbindung. Informationen zu diesen Parametern finden Sie in der Dokumentation zu Ihrer Datenbank.
allowMultiQueriesautocommitcharacterSetResultsclientCertificateKeyStorePasswordclientCertificateKeyStoreUrlconnectionAttributesconnectionCollationconnectionTimeZoneconnectTimeoutdefaultAuthenticationPlugindisableSslHostnameVerificationdisconnectOnExpiredPasswordsenabledSslCipherSuitesfailOverReadOnlyfallbackToSystemTrustStoreforceConnectionTimeZoneToSessioninteractiveClientlookerFailovermaxIdleTimemaxQuerySizeToLogoldModeNoPrecisionTimestamppasswordpasswordCharacterEncodingpermitMysqlSchemepinGlobalTxToPhysicalConnectionpreserveInstantsqueryInterceptorsrestrictedAuthrewriteBatchedStatementssocketTimeoutsslModetcpKeepAlivetrustCertificateKeyStorePasswordtrustCertificateKeyStoreUrluseCompressionusePipelineAuthuseruseServerPrepStmtsverifyServerCertificateyearIsDateType
Funktionsunterstützung
Damit Looker einige Funktionen unterstützen kann, müssen diese auch von Ihrem Datenbankdialekt unterstützt werden.
MySQL unterstützt ab Looker 26.22 die folgenden Funktionen:
| Funktion | Unterstützt? |
|---|---|
| Looker (Google Cloud Core) | |
| Symmetrische Aggregate | |
| Abgeleitete Tabellen | |
| Persistente abgeleitete SQL-Tabellen | |
| Persistente, native abgeleitete Tabellen | |
| Stabile Ansichten | |
| Abfrageeabruch | |
| SQL-basierte Pivots | |
| Zeitzonen | |
| SSL | |
| Zwischensummen | |
| Zusätzliche JDBC-Parameter | |
| Groß-/Kleinschreibung beachten | |
| Standorttyp | |
| Listentyp | |
| Perzentil | |
| Perzentil der unterschiedlichen Werte | |
| SQL-Runner-Befehl – Prozesse anzeigen | |
| SQL-Runner-Funktion – Tabelle beschreiben | |
| SQL Runner-Befehl – Indexe anzeigen | |
| SQL-Runner – 10 auswählen | |
| SQL-Runner – Anzahl | |
| SQL – Erklären | |
| OAuth 2.0-Anmeldedaten | |
| Kontextkommentare | |
| Verbindungs-Pooling | |
| HLL-Skizzen | |
| Aggregate Awareness | |
| Inkrementelle PDTs | |
| Millisekunden | |
| Mikrosekunden | |
| Materialisierte Ansichten | |
| Vergleich zum vorherigen Zeitraum | |
| Ungefähre Anzahl einzelner Aufrufe | |
| In-Database-Analysemodelle | |
| Benutzerdefinierte Kalender |