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 Parametersql_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ürsql_table_name
beschrieben.
Nutzung
sql_table_name: table_name ;;
}
Hierarchie
sql_table_name |
Standardwert
Name der AnsichtAkzeptiert
Tabellenname in der DatenbankSonderregeln
|
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 Parameterderived table
, der auf der Dokumentationsseite zuderived_table
beschrieben ist. Die Looker-IDE gibt einen Fehler zurück, wenn Sie sowohlsql_table_name
als auchderived_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.