Netzwerk-Datenverkehr verschlüsseln
Es empfiehlt sich, den Netzwerkverkehr zwischen der Looker-Anwendung und Ihrer 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 MySQL RDS-Dokumentation.
Optionen
Aus Leistungsgründen werden mit Looker häufig schreibgeschützte Replikatdatenbanken (auch als Lesereplikate bezeichnet) verwendet. So kann die Produktionsdatenbank ihre primäre Funktion ohne Beeinträchtigung durch Abfragen ausführen.
In diesem Dokument wird beschrieben, wie Sie:
- Vorhandene Replikatdatenbank für die Verwendung mit Looker ändern
- Neues Lesereplikat 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
Für RDS-Lesereplikate ist standardmäßig ein Schreibschutz-Flag aktiviert, das verhindert, dass Looker in temporäre Tabellen schreibt. Looker ändert niemals vorhandene Daten, aber MySQL erfordert trotzdem Schreibzugriff, um temporäre Tabellen zu verwenden. Dieses Problem lässt sich beheben, indem Sie das Flag in RDS ändern. 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 (Data Definition Language) für ein Lesereplikat ausführen möchten. Ein Beispiel hierfür ist das Hinzufügen eines Datenbankindex zu einem Lesereplikat, das für die Geschäftsberichterstattung verwendet wird, ohne denselben Index zur entsprechenden Quelldatenbankinstanz hinzuzufügen.
Amazon RDS for MySQL kann so konfiguriert werden, dass DDL-SQL-Anweisungen für ein Lesereplikat zulässig sind. Wenn Sie für ein bestimmtes Lesereplikat andere Vorgänge als Lesevorgänge aktivieren möchten, ändern Sie die aktive DB-Parametergruppe für das Lesereplikat und legen Sie den Parameter read_only
auf 0
fest.
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 gewähren Sie dem looker
-Nutzer Schreibzugriff darauf. 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
Mit AWS RDS können nur Lesereplikate mit Datenbankinstanzen erstellt werden, für die Backup Retention (Aufbewahrung von Sicherungen) aktiviert ist.
Schritte vor AWS
Schritt 1
mysql
in die Datenbank einfügen, die die primäre Datenbankinstanz sein soll:
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 in der Regel 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 leeren:
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 (Lesereplikat-DB-Instanz erstellen) die Lesereplikat-Datenbank und wählen Sie Yes, Create Read Replica (Ja, Lesereplikat erstellen) aus.
Schritt 4
Während Sie darauf warten, dass die Lesereplikat-Datenbank erstellt wird, können Sie die DB-Parametergruppe einrichten, die die Engine-Konfigurationswerte enthält, die auf die Lesereplikat-Datenbankinstanz angewendet werden. Wählen Sie in der Seitenleiste die Seite DB-Parametergruppen und dann die Schaltfläche DB-Parametergruppe erstellen aus.
Schritt 5
Wählen Sie die DB-Parametergruppenfamilie und den DB-Parametergruppennamen aus und geben Sie eine DB-Parametergruppenbeschreibung ein. Wählen Sie dann Ja, erstellen aus.
Schritt 6
Klicken Sie in der Zeile mit der Parametergruppe der Lesereplikat-Datenbank auf das Lupensymbol oder wählen Sie diese Zeile aus und klicken Sie auf Parameter bearbeiten.
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 auf die Schaltfläche Instance Action (Instanzaktion) und wählen Sie Modify (Ä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 das Lesereplikat. Setzen Sie dann ein Häkchen bei Sofort anwenden, wählen Sie Weiter und dann DB-Instance ändern aus.
Schritt 10
Stellen Sie mit dem MySQL-Client eine Verbindung zur Lesereplikat-Datenbankinstanz 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 gilt für die meisten Datenbankdialekte. Weitere Informationen finden Sie auf der Dokumentationsseite Looker mit Ihrer Datenbank verbinden.
Klicken Sie auf Test, um zu prüfen, ob die Verbindung erfolgreich hergestellt wurde. Informationen zur Fehlerbehebung finden Sie auf der Dokumentationsseite Datenbankkonnektivität testen.
Klicken Sie auf Verbinden, um diese Einstellungen zu speichern.
Funktionsunterstützung
Damit Looker einige Funktionen unterstützen kann, müssen diese auch von Ihrem Datenbankdialekt unterstützt werden.
MySQL unterstützt die folgenden Funktionen ab Looker 25.10:
Funktion | Unterstützt? |
---|---|
Supportstufe | Unterstützt |
Looker (Google Cloud Core) | Nein |
Symmetrische Summen | Ja |
Abgeleitete Tabellen | Ja |
Persistente SQL-basierte abgeleitete Tabellen | Ja |
Persistente native abgeleitete Tabellen | Ja |
Stabile Ansichten | Ja |
Abfrage beenden | Ja |
SQL-basierte Pivots | Ja |
Zeitzonen | Ja |
SSL | Ja |
Zwischensummen | Ja |
Zusätzliche JDBC-Parameter | Ja |
Groß- und Kleinschreibung | Nein |
Standorttyp | Ja |
Listentyp | Ja |
Perzentil | Ja |
Perzentil der unterschiedlichen Werte | Ja |
SQL Runner – Prozesse anzeigen | Ja |
SQL-Runner-Funktion „Tabelle beschreiben“ | Ja |
SQL Runner-Befehl „Show Indexes“ | Ja |
SQL Runner Select 10 | Ja |
SQL-Runner-Zählung | Ja |
SQL Explain | Ja |
OAuth 2.0-Anmeldedaten | Nein |
Kontextkommentare | Ja |
Verbindungs-Pooling | Nein |
HLL-Skizzen | Nein |
Aggregatfunktion | Ja |
Inkrementelle PDTs | Ja |
Millisekunden | Ja |
Mikrosekunden | Ja |
Materialisierte Ansichten | Nein |
Vergleich zum vorherigen Zeitraum | Nein |
Ungefähre Anzahl einzelner Aufrufe | Nein |