Amazon RDS for MySQL

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