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.
Wenn Sie sich für die SSL-Verschlüsselung interessieren, lesen Sie die Dokumentation zu MySQL RDS.
Optionen
Aus Leistungsgründen werden schreibgeschützte Replikatdatenbanken – auch Lesereplikate genannt – mit Looker verwendet. Dadurch kann die Produktionsdatenbank ihre primäre Funktion ausführen, ohne dass Abfragen diese verlangsamen.
In diesem Dokument wird Folgendes beschrieben:
- Vorhandene Replikatdatenbank ändern, damit sie mit Looker verwendet werden kann
- Neue Lesereplikatdatenbank erstellen und für die Arbeit 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
RDS-Lesereplikate haben standardmäßig ein schreibgeschütztes Flag, das verhindert, dass Looker in temporäre Tabellen schreibt. Looker ändert vorhandene Daten nicht wirklich, aber MySQL benötigt trotzdem 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 Lesevorgänge für Datenbanken akzeptieren?
Lesereplikate sind für den Lesezugriff vorgesehen. Es gibt jedoch Anwendungsfälle, in denen erfahrene Nutzer DDL-SQL-Anweisungen (Data Definition Language) für ein Lesereplikat ausführen möchten. Beispiele hierfür sind das Hinzufügen eines Datenbankindex zu einem Lesereplikat, das für Geschäftsberichte 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 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. Die CREATE TEMPORARY
-Anweisung in MySQL muss für Berechtigungszwecke 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 nur Lesereplikate mit Datenbankinstanzen erstellen kann, für die Sicherungsaufbewahrung aktiviert ist.
Schritte vor AWS
Schritt 1
mysql
für 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 dabei <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. Normalerweise schreibt Looker nicht in die looker_tmp
-Datenbank, sondern verwendet sie, um CREATE TEMPORARY TABLE
-Befehle auszuführen.
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 zum Leeren:
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 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 Lesereplikat-DB-Instanz erstellen die Lesereplikatdatenbank 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, 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 Beschreibung der DB-Parametergruppe ein. Wählen Sie dann Ja, erstellen aus.
Schritt 6
Wählen Sie in der Zeile mit der Parametergruppe der Lesereplikatdatenbank die Lupe aus oder wählen Sie die entsprechende Zeile aus und dann Parameter bearbeiten.
Schritt 7
Suchen Sie unter Parameter im Feld Filter 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 Instanzaktion und wählen Sie dann in der Instanzaktion Ändern aus.
Schritt 9
Ändern Sie im Pop-up-Fenster DB-Instanz ändern die Parametergruppe der Datenbankinstanz in die neue Lesereplikat-Parametergruppe. Klicken Sie dann das Kästchen Sofort anwenden an, wählen Sie Weiter und dann DB-Instanz ändern aus.
Schritt 10
Stellen Sie mithilfe des MySQL-Clients als looker
eine Verbindung zur Lesereplikat-Datenbankinstanz her und testen Sie, ob die Daten zugänglich sind.
Looker-Verbindung zu Ihrer Datenbank erstellen
Wählen Sie im Bereich Admin von Looker 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 Datenbankkonnektivität testen.
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.
MySQL unterstützt die folgenden Funktionen ab Looker 24.8:
Funktion | Unterstützt? |
---|---|
Supportstufe | Unterstützt |
Looker (Google Cloud Core) | Yes |
Symmetrische Summen | Yes |
Abgeleitete Tabellen | Yes |
Abgeleitete SQL-Tabellen | Yes |
Nichtflüchtige native abgeleitete Tabellen | Yes |
Stabile Ansichten | Yes |
Abfrage beenden | Yes |
SQL-basierte Pivots | Yes |
Zeitzonen | Yes |
SSL | Yes |
Zwischensummen | Yes |
Zusätzliche JDBC-Parameter | Yes |
Groß-/Kleinschreibung beachten | Nein |
Standorttyp | Yes |
Listentyp | Yes |
Perzentil | Yes |
Unterschiedliche Perzentile | Yes |
SQL-Runner-Show-Prozesse | Yes |
SQL-Runner – Tabelle beschreiben | Yes |
SQL Runner – Indexe anzeigen | Yes |
SQL Runner Select 10 | Yes |
Anzahl der SQL-Runner | Yes |
SQL erklären | Yes |
OAuth-Anmeldedaten | Nein |
Kontextkommentare | Yes |
Verbindungs-Pooling | Nein |
HLL-Skizzen | Nein |
Aggregatfunktion | Yes |
Inkrementelle PDTs | Yes |
Millisekunden | Yes |
Mikrosekunden | Yes |
Materialisierte Ansicht | Nein |
Ungefähre Anzahl unterschiedlich | Nein |