Netzwerk-Datenverkehr verschlüsseln
Es empfiehlt sich, den Netzwerkverkehr zwischen der Looker-Anwendung und Ihrer Datenbank zu verschlüsseln. Sehen Sie sich eine der Optionen an, die auf der Dokumentationsseite Sicheren Datenbankzugriff aktivieren beschrieben werden.
Informationen zur Verwendung der SSL-Verschlüsselung finden Sie in der Dokumentation zu MySQL RDS.
Optionen
Aus Leistungsgründen werden schreibgeschützte Replikatdatenbanken – auch Lesereplikate genannt – mit Looker häufig verwendet. Dadurch kann die Produktionsdatenbank ihre Hauptfunktion ausführen, ohne dass sie durch Abfragen verlangsamt wird.
In diesem Dokument wird Folgendes beschrieben:
- Vorhandene Replikationsdatenbank für die Verwendung mit Looker ändern
- Erstellen Sie eine neue Lesereplikat-Datenbank und konfigurieren Sie sie für Looker.
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 schreibgeschütztes Flag aktiviert, das verhindert, dass Looker in temporäre Tabellen schreibt. Looker ändert keine vorhandenen Daten, aber MySQL benötigt weiterhin Schreibzugriff, um temporäre Tabellen verwenden zu können. Dieses Problem lässt sich beheben, indem Sie das Flag in RDS ändern. Aus den FAQs zu RDS:
F: Können meine Lesereplikate nur Lesevorgänge aus der Datenbank annehmen?
Lesereplikate sind darauf ausgelegt, Lesezugriffe zu ermöglichen. Es kann jedoch Anwendungsfälle geben, in denen erfahrene 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 zugelassen werden. 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, indem Sie den Parameter read_only
auf 0
setzen.
Amazon RDS for PostgreSQL unterstützt derzeit nicht die Ausführung von DDL SQL-Anweisungen für ein Lesereplikat.
Wenn Sie die Datenbankparametergruppe ändern, müssen Sie das Leserreplikat neu starten, damit die Änderungen wirksam werden.
Datenbank erstellen und Berechtigungen gewähren
Erstellen Sie eine temporäre Datenbank und räumen Sie dem Nutzer looker
Schreibzugriff dafür ein. Die Anweisung CREATE TEMPORARY
in MySQL muss zu Berechtigungszwecken einer Datenbank zugeordnet 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 nur Lesereplikate mit Datenbankinstanzen erstellen kann, für die Sicherungsaufbewahrung aktiviert ist.
Schritte vor AWS
Schritt 1
mysql
in die Datenbank, 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 normalerweise nicht in die Datenbank looker_tmp
, verwendet sie aber 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 Bereich Datenbank die Option RDS aus.
Schritt 2
Wählen Sie in Ihrem 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 Lesereplikat-Datenbankinstanz erstellen die Lesereplikat-Datenbank und wählen Sie Ja, Lesereplikat erstellen aus.
Schritt 4
Während Sie auf das Erstellen der Lesereplikat-Datenbank warten, können Sie die DB-Parametergruppe einrichten. Diese enthält die Engine-Konfigurationswerte, die auf die Lesereplikat-Datenbankinstanz angewendet werden. Wählen Sie in der Seitenleiste die Seite DB-Parametergruppen aus und klicken Sie dann auf die Schaltfläche DB-Parametergruppe erstellen.
Schritt 5
Wählen Sie die Familie der DB-Parametergruppe 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
Klicken Sie auf das Lupensymbol in der Zeile, die die Parametergruppe der Lesereplikat-Datenbank enthält, oder wählen Sie die 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 aus der Liste der Datenbankinstanzen aus. Klicken Sie auf die Schaltfläche Instanzaktion und dann in der Instanzaktion auf Ändern.
Schritt 9
Ändern Sie im Pop-up-Fenster DB-Instanz ändern die Parametergruppe der Datenbankinstanz in die neue Lesereplikat-Parametergruppe. Setzen Sie dann ein Häkchen in das Kästchen Sofort anwenden, wählen Sie Weiter und dann DB-Instanz ändern aus.
Schritt 10
Stellen Sie über den MySQL-Client als looker
eine Verbindung zur Lesereplikat-Datenbankinstanz her und testen Sie, ob Daten zugänglich sind.
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. Die meisten Einstellungen sind den meisten Datenbankdialekten gemeinsam. Weitere Informationen finden Sie auf der Dokumentationsseite Looker mit Ihrer Datenbank verbinden.
Klicken Sie auf Testen, um zu prüfen, ob die Verbindung erfolgreich hergestellt wurde. Informationen zur Fehlerbehebung finden Sie auf der Dokumentationsseite Datenbankverbindung 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 ab Looker 24.14 die folgenden Funktionen:
Feature | Unterstützt? |
---|---|
Supportstufe | Unterstützt |
Looker (Google Cloud Core) | Nein |
Symmetrische Summen | Ja |
Abgeleitete Tabellen | Ja |
Persistente SQL-Abgeleitete Tabellen | Ja |
Nichtflüchtige native abgeleitete Tabellen | Ja |
Stabile Ansichten | Ja |
Anfrage wird abgebrochen | Ja |
SQL-basierte Drehpunkte | Ja |
Zeitzonen | Ja |
SSL | Ja |
Zwischensummen | Ja |
Zusätzliche JDBC-Parameter | Ja |
Groß-/Kleinschreibung beachten | Nein |
Standorttyp | Ja |
Listentyp | Ja |
Perzentil | Ja |
Unterschiedliches Perzentil | Ja |
SQL Runner – Prozesse anzeigen | Ja |
SQL Runner – Tabelle beschreiben | Ja |
SQL Runner – Indexe anzeigen | Ja |
SQL Runner Select 10 | Ja |
Anzahl der SQL-Runner | Ja |
SQL Explain | Ja |
OAuth-Anmeldedaten | Nein |
Kontextkommentare | Ja |
Verbindungs-Pooling | Nein |
HLL-Skizzen | Nein |
Aggregatfunktion | Ja |
Inkrementelle PDTs | Ja |
Millisekunden | Ja |
Mikrosekunden | Ja |
Materialisierte Ansichten | Nein |
Ungefähre Anzahl einzelner | Nein |