sql_table_name (für Ansichten)

Auf dieser Seite wird auf den Parameter sql_table_name verwiesen, der Teil einer Ansicht ist.

sql_table_name kann auch als Teil eines Joins verwendet werden. Dies wird auf der Dokumentationsseite zum Parameter sql_table_name (für Joins) beschrieben.

sql_table_name kann auch als Teil eines Explores verwendet werden. Dies wird auf der Dokumentationsseite zum Parameter sql_table_name (für Explores) beschrieben.

Nutzung

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

Akzeptiert
Ein Tabellenname in Ihrer Datenbank

Besondere Regeln

Definition

Mit dem Parameter sql_table_name wird die Tabelle in Ihrer Datenbank angegeben, die von einer Ansicht abgefragt wird.

Wenn Sie eine Ansicht auf Grundlage einer abgeleiteten Tabelle erstellen möchten, verwenden Sie den Parameter sql_table_name nicht. Verwenden Sie stattdessen den Parameter derived table, der auf der Dokumentationsseite derived_table beschrieben wird. 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 dass der Name der Datenbanktabelle mit dem Namen der Ansicht übereinstimmt. Mit anderen Worten:

view: my_name { ... }

entspricht logisch:

view: my_name {
  sql_table_name: my_name ;;
}

Es ist durchaus üblich, auf dieses Standardverhalten zurückzugreifen und sql_table_name nicht zu verwenden. Es gibt jedoch einige wichtige Situationen, in denen sie nützlich sein kann. Erstens möchten Sie in einigen Fällen einfach, 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 ;;
}

Außerdem gibt es Fälle, in denen eine Ansicht auf einer Datenbank oder einem Schema basieren muss, die sich nicht im Standardsuchpfad des Datenbanknutzers befinden. Sie können den Tabellennamen dann mit dem Format <schema_name>.<table_name> eingrenzen, wie hier gezeigt:

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

Tabellennamen eingrenzen

Wenn Sie nur den Tabellennamen angeben, verwendet Looker den Standardsuchpfad (die Datenbank und das Schema), den Ihr Looker-Administrator in den Verbindungseinstellungen für die Datenbankverbindung konfiguriert hat. Weitere Informationen finden Sie im Abschnitt Wichtige Hinweise auf dieser Seite.

Wenn Sie auf eine Tabelle in einer anderen Datenbank und einem anderen Schema verweisen müssen, die sich nicht im Standardsuchpfad des Datenbanknutzers befindet, können Sie den Tabellennamen mit dem Format <database_name>.<schema_name>.<table_name> eingrenzen, um auf eine andere Datenbank oder ein anderes Schema zu verweisen:

  • Wenn Sie auf eine Tabelle aus einem anderen Schema verweisen möchten, verwenden Sie <schema_name>.<table_name>, wie im Beispiel auf dieser Seite gezeigt.
  • Wenn Sie auf eine Tabelle aus einer anderen Datenbank verweisen möchten, verwenden Sie den vollständigen <database_name>.<schema_name>.<table_name>.

Bei einer Google BigQuery-Verbindung können Sie auf eine Tabelle in einem anderen Projekt und Dataset verweisen, indem Sie den Tabellennamen im Format <project_name>.<dataset_name>.<table_name> angeben. Weitere Informationen finden Sie auf der Dokumentationsseite Google BigQuery-Verbindung.

Föderierte Joins

Das Verknüpfen von zwei Tabellen aus verschiedenen Datenbanken wird als „föderierter Join“ bezeichnet. Föderierte Joins können mit Looker ausgeführt werden, wenn die beiden Datenbanken denselben SQL-Dialekt verwenden, der Dialekt föderierte Joins unterstützt und die beiden Datenbanken über dieselbe Verbindung in Looker zugänglich sind. Je nach Datenbankkonfiguration müssen sich die Tabellen möglicherweise auch auf demselben physischen Computer befinden.

Unter diesen Bedingungen können Sie einen föderierten Join erstellen, indem Sie den Datenbanknamen jeder Tabelle im Parameter sql_table_name 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 ;;
}

Verknüpfen 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 mit unterschiedlichen SQL-Dialekten zusammenführen möchten, empfehlen wir, eine Datenbank in die andere zu replizieren, damit Sie alle Daten aus einer einzigen Quelle abrufen können.

Beispiele

In diesem Beispiel wird die Ansicht customers von der Tabelle customer_1 aus dem Standardschema abhängig gemacht:

view: customers {
  sql_table_name: customer_1 ;;
}

In diesem Beispiel wird die Ansicht customers von der Tabelle customer_1 aus analytics abhängig gemacht, indem der Tabellenname bereichsbezogen ist und den Schemanamen enthält (im Format <schema_name>.<table_name>):

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

Wichtige Punkte

Auf Tabellen, auf die von view verwiesen wird, muss über die aktuelle Verbindung zugegriffen werden können.

Wenn der Parameter sql_table_name in einem view-Objekt verwendet wird, kann auf dieses view-Objekt in einem explore-Objekt verwiesen werden, auf das wiederum in einem model-Objekt verwiesen wird. Das Modellobjekt enthält eine definierte Datenbank connection. Wenn Sie im Parameter sql_table_name auf eine Datenbanktabelle verweisen, muss die Tabelle über die zugehörige Verbindung zugänglich sein, die in der Modelldatei angegeben ist.

Die Standard-Datenbank und das Schema (oder für Google BigQuery das Abrechnungsprojekt und das Dataset) werden von Ihrem Looker-Administrator definiert, wenn er die Looker-Verbindung zu Ihrer Datenbank für die Datenbankverbindung erstellt.

Bei nicht benutzerfreundlichen Tabellennamen ist möglicherweise eine zusätzliche Formatierung erforderlich

In 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 eingeschlossen werden. Der Tabellenname Customers.PaymentInfo enthält beispielsweise einen Punkt, der als Tabelle mit dem Namen PaymentInfo im Schema Customers interpretiert werden könnte. Wenn Ihr Dialekt eckige Klammern erfordert, können Sie den Tabellennamen so in eckige Klammern setzen:

sql_table_name: [Customers.PaymentInfo] ;;

Wenn in Ihrem Dialekt doppelte oder einfache Anführungszeichen erforderlich sind, ersetzen Sie die eckigen Klammern durch diese Zeichen.