Amazon RDS for MySQL

Netzwerk-Datenverkehr verschlüsseln

Es wird empfohlen, 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 an der Verwendung von SSL-Verschlüsselung interessiert sind, lesen Sie die MySQL RDS-Dokumentation.

Optionen

Aus Leistungsgründen werden in Looker häufig schreibgeschützte Replikationsdatenbanken (auch Lesereplikate genannt) verwendet. Dadurch kann die Produktionsdatenbank ihre Hauptfunktion ausführen, ohne dass sie durch Abfragen verlangsamt wird.

In diesem Dokument wird Folgendes beschrieben:

  • Ändern Sie eine vorhandene Replikatdatenbank, damit sie mit Looker verwendet werden kann
  • Neue Leserreplikatdatenbank 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 schreibgeschütztes Flag aktiviert, das verhindert, dass Looker in temporäre Tabellen schreibt. Looker ändert vorhandene Daten nie, aber MySQL benötigt trotzdem Schreibzugriff, um temporäre Tabellen zu verwenden. 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 für die Datenbank akzeptieren?

Lesereplikate sind darauf ausgelegt, Lesezugriffe zu ermöglichen. 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 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 gewähren Sie dem looker-Nutzer Schreibzugriff auf die Datenbank. 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

In AWS RDS können nur Lesereplikate mit Datenbankinstanzen erstellt werden, für die die Sicherungsaufbewahrung 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 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 Abschnitt 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 Create Read Replica DB Instance (Lesereplikat-Datenbankinstanz erstellen) die Leserreplikatdatenbank und wählen Sie Yes, Create Read Replica (Ja, Lesereplikat erstellen) aus.

Schritt 4

Während Sie auf die Erstellung der Lesereplikatdatenbank warten, können Sie die Datenbankparametergruppe einrichten. Sie enthält die Engine-Konfigurationswerte, die auf die Lesereplikatdatenbankinstanz 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. Klicken Sie dann auf das Kästchen Sofort anwenden, wählen Sie Weiter und dann Datenbankinstanz ändern aus.

Schritt 10

Stellen Sie über den 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 gilt für die meisten Datenbankdialekte. 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.

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.16 die folgenden Funktionen:

Funktion 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
Abfrage beenden
Ja
SQL-basierte Pivots
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 Describe Table
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 Aufrufe
Nein