sql_table_name (für Ansichten)

Diese Seite bezieht sich auf den Parameter sql_table_name, der Teil einer Ansicht ist.

sql_table_name kann auch als Teil eines Joins verwendet werden (siehe Dokumentation zum Parameter sql_table_name (für Joins)).

sql_table_name kann auch als Teil eines explorativen Analysetools verwendet werden, wie auf der Seite mit der Parameterdokumentation für sql_table_name beschrieben.

Nutzung

view: view_name {
sql_table_name: table_name ;;
}
Hierarchie
sql_table_name
Standardwert
Name der Ansicht

Akzeptiert
Tabellenname in der Datenbank

Sonderregeln
  • Die Tabelle muss innerhalb der Datenbankverbindung zugänglich sein
  • Wenn sich die Tabelle in einem anderen Schema befindet, muss das Schema angegeben werden
  • Wenn sich die Tabelle in einer anderen Datenbank befindet, müssen die Datenbank und das Schema angegeben werden. Die andere Datenbank muss sich auf demselben Computer und im selben SQL-Dialekt befinden.

Definition

Der Parameter sql_table_name gibt die Tabelle in Ihrer Datenbank an, die von einer Ansicht abgefragt wird.

Wenn Sie eine Ansicht erstellen möchten, die auf einer abgeleiteten Tabelle basiert, verwenden Sie nicht den Parameter sql_table_name. Verwenden Sie stattdessen den Parameter derived table, der auf der Dokumentationsseite zu derived_table beschrieben ist. Die Looker-IDE gibt einen Fehler zurück, wenn Sie sowohl sql_table_name als auch derived_table in einer Ansichtsdatei haben.

Wenn eine Ansicht weder den Parameter sql_table_name noch den Parameter derived_table enthält, geht Looker davon aus, dass die Ansicht auf einer Datenbanktabelle basiert und der Name der Datenbanktabelle mit dem Namen der Ansicht übereinstimmt. Anders ausgedrückt:

view: my_name { ... }

ist logisch äquivalent zu:

view: my_name {
  sql_table_name: my_name ;;
}

Es ist durchaus üblich, dass auf dieses Standardverhalten zurückgegriffen wird und nicht sql_table_name. Es gibt jedoch einige wichtige Situationen, in denen es nützlich sein kann. Zuerst möchten Sie vielleicht, dass die Ansicht einen anderen Namen als die zugrunde liegende Tabelle hat, z. B. um einen unübersichtlichen Tabellennamen zu bereinigen:

view: orders {
  sql_table_name: prod_orders_2 ;;
}

Es gibt auch Fälle, in denen eine Ansicht auf einer Datenbank oder einem Schema basieren muss, das sich nicht im Standardsuchpfad des Datenbanknutzers befindet. Sie können dann Verweise wie die folgenden erstellen:

view: desired_view_name {
  sql_table_name: database_name.schema_name.table_name ;;
}

Föderierte Joins

Das Zusammenführen von zwei Tabellen aus verschiedenen Datenbanken wird als föderierter Join bezeichnet. Föderierte Joins können mit Looker ausgeführt werden, wenn sich die beiden Datenbanken auf demselben SQL-Dialekt befinden, sich auf demselben physischen Computer befinden und über dieselbe Verbindung in Looker zugänglich sind.

Unter diesen Bedingungen können Sie einen föderierten Join erstellen, indem Sie den Datenbanknamen jeder Tabelle im sql_table_name-Parameter für diese Ansicht angeben:

view: view_1 {
  sql_table_name: database_name.table_1 ;;
}

view: view_2 {
  sql_table_name: another_database_name.table_2 ;;
}

Verbinden Sie diese Ansichten dann mit dem Parameter sql_on:

explore: view_1 {
  join: view_2 {
    sql_on: ${view_1.view_1_ID} = ${view_2.view_2_ID} ;;
  }
}

Wenn Sie Datenbanken zusammenführen möchten, die sich in verschiedenen SQL-Dialekten befinden, sollten Sie eine Datenbank in die andere replizieren, damit Sie alle Daten aus einer einzigen Quelle abrufen können.

Wenn Sie zwei MySQL-Datenbanken auf verschiedenen Computern zusammenführen möchten, können Sie einen föderierten Join für beide Datenbankverbindungen durchführen. Dazu erstellen Sie eine FEDERATED-Tabelle mit CONNECTION. Im Wesentlichen stellen Sie eine Verbindung zu Tabellen auf einem anderen Server vollständig in Ihrer MySQL-Datenbank her. Weitere Informationen finden Sie in dieser MySQL-Dokumentation.

Beispiele

Sorgen Sie dafür, dass die Ansicht customers auf der Tabelle customer_1 aus dem Standardschema basiert:

view: customers {
  sql_table_name: customer_1 ;;
}

Sorgen Sie dafür, dass die Ansicht customers auf der Tabelle customer_1 aus dem Schema analytics basiert:

view: customers {
  sql_table_name: analytics.customer_1 ;;
}

Häufige Herausforderungen

Tabellen, auf die view verweist, müssen von der aktuellen Verbindung aus zugänglich sein

views wird von einem explore- oder join-Parameter referenziert, auf den wiederum ein Modell verweist. Das Modell bestimmt, welche Datenbankverbindung verwendet wird (siehe connection für Modell). Datenbankverbindungen selbst werden im Abschnitt Admin von Looker definiert. Wenn Sie im Parameter sql_table_name auf eine Tabelle verweisen, muss innerhalb der zugehörigen Verbindung auf die Tabelle zugegriffen werden können.

Für unfreundliche Tabellennamen ist möglicherweise eine zusätzliche Formatierung erforderlich

Bei einigen Dialekten müssen Tabellennamen mit nicht unterstützten Zeichen, auch als „unfreundliche“ Tabellennamen bezeichnet, in eckige Klammern, doppelte Anführungszeichen oder einfache Anführungszeichen gesetzt werden. Der Tabellenname Customers.PaymentInfo enthält beispielsweise einen Punkt im Tabellennamen, der als Schema PaymentInfo im Schema Customers interpretiert werden könnte. Wenn Ihr Dialekt eckige Klammern erfordert, können Sie die Tabellen folgendermaßen umschließen:

sql_table_name: [Customers.PaymentInfo] ;;

Wenn für Ihren Dialekt doppelte oder einfache Anführungszeichen erforderlich sind, ersetzen Sie die eckigen Klammern für diese Zeichen.