MySQL, MariaDB und SingleStore

Dialekte, für die diese Anweisungen relevant sind

Die auf dieser Seite beschriebenen Anforderungen für die Einrichtung der Datenbank gelten für MySQL, MariaDB und SingleStore (ehemals MemSQL).

Netzwerkverkehr verschlüsseln

Es wird empfohlen, 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 auf dieser MySQL-Dokumentationsseite.

Nutzer und Sicherheit

Befolgen Sie zur Erstellung und Erteilung des erforderlichen Zugangs für den Looker-Benutzer die Anweisungen in dem entsprechenden Abschnitt für Ihre Datenbanksprache und -version:

MySQL 8.0.X:

In MySQL 8.0.X ist caching_sha2_password das standardmäßige Authentifizierungs-Plug-in. Looker verwendet das mysql_native_password-Plug-in, um über den JDBC-Treiber eine Authentifizierung in MySQL-Datenbanken zu versuchen. Damit diese Version von MySQL ordnungsgemäß funktioniert, müssen Sie die folgenden zusätzlichen Schritte ausführen:

  1. Konfigurieren Sie die MySQL-Datenbank so, dass das mysql_native_password-Plug-in verwendet wird. Dafür gibt es verschiedene Vorgehensweisen, die je nach Bereitstellungsvariante der MySQL 8-Datenbank und Art der Zugriffsberechtigung variieren:

    • Starten Sie den Vorgang mit dem Flag --default-auth=mysql_native_password.

    • Legen Sie das Attribut in der Konfigurationsdatei my.cnf fest:

    [mysqld]
    default-authentication-plugin=mysql_native_password
    
    • Wenn die Datenbankinstanz durch AWS RDS gehostet wird, können Sie den default_authentication_plugin-Parameter durch die Anwendung einer RDS-Parametergruppe auf die Datenbankinstanz bestimmen.
  2. Führen Sie die folgenden Befehle aus und ersetzen Sie dabei some_password_here durch ein eindeutiges, sicheres Passwort:

    CREATE USER looker IDENTIFIED WITH mysql_native_password BY 'some_password_here';
    GRANT SELECT ON database_name.* TO 'looker'@'%';
    

MySQL 5.7.X und niedriger, MariaDB und SingleStore:

Führen Sie die folgenden Befehle aus und ersetzen Sie dabei some_password_here durch ein eindeutiges, sicheres Passwort:

CREATE USER looker;
SET PASSWORD FOR looker = PASSWORD ('some_password_here');
GRANT SELECT ON database_name.* TO 'looker'@'%';

Temporäre Schema-Einrichtung für persistente abgeleitete Tabellen

Diese Datenbankdialekte unterstützen das Erstellen von persistenten abgeleiteten Tabellen (PDTs). Diese Funktion kann äußerst nützlich sein. Wir empfehlen daher, sie nach Möglichkeit zu aktivieren.

Damit PDT aktiviert werden können, müssen Sie ein temporäres Schema konfigurieren. Die folgenden Befehle zeigen ein Beispiel für die Erstellung einer temporären Datenbank und die Gewährung der erforderlichen Berechtigungen für den Nutzer looker.

Sie können den Namen der temporären Datenbank im Feld Temporäre Datenbank angeben, wenn Sie die Datenbankverbindung erstellen. Wenn Sie keinen Namen für die temporäre Datenbank festlegen, erstellt Looker eine Scratch-Datenbank namens looker_tmp. Die folgenden Befehle verwenden looker_tmp. Wenn Sie aber einen anderen Namen für die temporäre Datenbank festgelegt haben, verwenden Sie diesen anstelle von looker_tmp.

CREATE SCHEMA looker_tmp;
GRANT
  SELECT,
  INDEX,
  INSERT,
  UPDATE,
  DELETE,
  CREATE,
  DROP,
  ALTER,
  CREATE TEMPORARY TABLES
ON looker_tmp.* TO 'looker'@'%';

Bei SingleStore oder wenn Ihre Datenbank eine GTID-basierte Replikation verwendet, müssen Sie den LookML-Parameter create_process verwenden, um PDTs zu verwenden, da GTID keine CREATE TABLE AS SELECT-Anweisungen unterstützt.

Alternative Einrichtungsoption für reguläre abgeleitete Tabellen

Wenn Sie das Erstellen von persistenten abgeleiteten Tabellen nicht zulassen möchten, können Sie weiterhin normale abgeleitete Tabellen verwenden. Dazu müssen Sie jedoch einem Schema namens looker_tmp bestimmte Berechtigungen hinzufügen. Das Schema looker_tmp muss dafür nicht in Ihrer Datenbank vorhanden sein.

GRANT
  SELECT,
  INDEX,
  INSERT,
  DROP,
  CREATE TEMPORARY TABLES
ON looker_tmp.* TO 'looker'@'%';
-- Note that the looker_tmp schema does not need to actually exist,
-- even though these permission grants are still needed

Variable max_allowed_packet festlegen

Setzen Sie für MySQL die MySQL-Variable max_allowed_packet auf den Höchstwert (1073741824), um Fehler vom Typ „SQLException: Paket für Abfrage ist zu groß“ zu vermeiden.

Looker-Verbindung zu Ihrer Datenbank erstellen

Im Anschluss an die Datenbankkonfiguration können Sie in Looker eine Verbindung mit der Datenbank herstellen. So erstellen Sie die Verbindung von Looker zu Ihrer Datenbank:

  1. Wählen Sie in Looker im Bereich Verwaltung die Option Verbindungen aus und klicken Sie dann auf Verbindung hinzufügen.
  2. Wählen Sie im Drop-down-Menü Dialekt den Namen des Datenbankdialekts aus: MySQL, MySQL 8.0.12 und höher, MariaDB, SingleStore oder SingleStore 7 und höher.

  3. 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.

  4. 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.

  5. 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 25.0 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
Abfrage beenden
Ja
SQL-basierte Pivot-Tabellen
Ja
Zeitzonen
Ja
SSL
Ja
Zwischensummen
Ja
Zusätzliche JDBC-Parameter
Ja
Groß-/Kleinschreibung beachten
Nein
Standorttyp
Ja
Listentyp
Ja
Perzentil
Ja
Perzentil der unterschiedlichen Werte
Ja
SQL Runner-Prozesse anzeigen
Ja
SQL Runner Describe Table
Ja
SQL Runner-Indexe für Serien
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

MySQL 8.0.12 und höher unterstützt ab Looker 25.0 die folgenden Funktionen:

Feature Unterstützt?
Supportstufe
Unterstützt
Looker (Google Cloud Core)
Ja
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 Pivot-Tabellen
Ja
Zeitzonen
Ja
SSL
Ja
Zwischensummen
Ja
Zusätzliche JDBC-Parameter
Ja
Groß-/Kleinschreibung beachten
Nein
Standorttyp
Ja
Listentyp
Ja
Perzentil
Ja
Perzentil der unterschiedlichen Werte
Ja
SQL Runner-Prozesse anzeigen
Ja
SQL Runner Describe Table
Ja
SQL Runner-Indexe für Serien
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

MariaDB unterstützt ab Looker 25.0 die folgenden Funktionen:

Feature Unterstützt?
Supportstufe
Unterstützt
Looker (Google Cloud Core)
Ja
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 Pivot-Tabellen
Nein
Zeitzonen
Ja
SSL
Ja
Zwischensummen
Ja
Zusätzliche JDBC-Parameter
Ja
Groß-/Kleinschreibung beachten
Nein
Standorttyp
Ja
Listentyp
Ja
Perzentil
Ja
Perzentil der unterschiedlichen Werte
Ja
SQL Runner-Prozesse anzeigen
Ja
SQL Runner Describe Table
Ja
SQL Runner-Indexe für Serien
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
Nein
Millisekunden
Ja
Mikrosekunden
Ja
Materialisierte Ansichten
Nein
Ungefähre Anzahl einzelner Aufrufe
Nein

SingleStore unterstützt ab Looker 25.0 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
Abfrage beenden
Ja
SQL-basierte Pivot-Tabellen
Ja
Zeitzonen
Ja
SSL
Ja
Zwischensummen
Ja
Zusätzliche JDBC-Parameter
Ja
Groß-/Kleinschreibung beachten
Nein
Standorttyp
Ja
Listentyp
Ja
Perzentil
Nein
Perzentil der unterschiedlichen Werte
Nein
SQL Runner-Prozesse anzeigen
Ja
SQL Runner Describe Table
Ja
SQL Runner-Indexe für Serien
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
Nein
Millisekunden
Ja
Mikrosekunden
Ja
Materialisierte Ansichten
Nein
Ungefähre Anzahl einzelner Aufrufe
Nein

SingleStore 7 und höher unterstützt ab Looker 25.0 die folgenden Funktionen:

Feature Unterstützt?
Supportstufe
Unterstützt
Looker (Google Cloud Core)
Ja
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 Pivot-Tabellen
Ja
Zeitzonen
Ja
SSL
Ja
Zwischensummen
Ja
Zusätzliche JDBC-Parameter
Ja
Groß-/Kleinschreibung beachten
Nein
Standorttyp
Ja
Listentyp
Ja
Perzentil
Ja
Perzentil der unterschiedlichen Werte
Nein
SQL Runner-Prozesse anzeigen
Ja
SQL Runner Describe Table
Ja
SQL Runner-Indexe für Serien
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
Nein
Millisekunden
Ja
Mikrosekunden
Ja
Materialisierte Ansichten
Nein
Ungefähre Anzahl einzelner Aufrufe
Nein