abgeleitete Tabelle

Nutzung

view: my_view {
derived_table: { ... }
}
Hierarchie
derived_table
Standardwert
Keine

Definition

Eine abgeleitete Tabelle kann wie eine normale Tabelle in Ihrer Datenbank behandelt werden. Sie können eine der folgenden abgeleiteten Tabellentypen erstellen:

In bestimmten Grenzfällen ist die Verwendung des Parameters sql nicht zulässig. In solchen Fällen unterstützt Looker die folgenden Parameter zum Definieren einer SQL-Abfrage für PDTs:

  • create_process
  • sql_create
  • Mit dem Parameter sql, create_process oder sql_create definieren Sie in allen diesen Fällen die abgeleitete Tabelle mit einer SQL-Abfrage, sodass sie alle als SQL-basierte abgeleitete Tabellen gelten.

    Der Parameter derived_table beginnt in einem Abschnitt von LookML, in dem Sie festlegen, wie eine abgeleitete Tabelle berechnet werden soll, welche Indexe oder Schlüssel verwendet werden sollen und wann sie neu generiert werden soll.

    Abgeleitete Tabellen können temporäre abgeleitete Tabellen sein, die ad hoc berechnet werden, wenn Nutzer Daten von ihnen anfordern, oder nichtflüchtige abgeleitete Tabellen, die in Ihrer Datenbank mithilfe einer Persistenzstrategie gespeichert werden.

    Wenn Ihr Administrator die zusätzliche Funktion Inkrementelle PDTs aktiviert hat und Ihr Assistent dies unterstützt, können Sie in Ihrem Projekt inkrementelle PDTs nutzen. Ein inkrementelles PDT ist ein PDT, das inkrementell erstellt wird, indem neue Daten an die Tabelle angehängt werden, anstatt die Tabelle vollständig neu zu erstellen. Weitere Informationen zu inkrementellen PDTs finden Sie auf der Dokumentationsseite Inkrementelle PDTs.

    Weitere Informationen zu abgeleiteten Tabellen finden Sie auf der Dokumentationsseite Abgeleitete Tabellen in Looker.

    Beispiele

    Erstellen Sie eine native customer_order_facts abgeleitete Tabelle mit dem Parameter explore_source:

    view: customer_order_facts {
      derived_table: {
        explore_source: order {
          column: customer_id { field: order.customer_id }
          column: lifetime_orders { field: order.count }
          column: lifetime_spend { field: order.total_spend }
        }
      }
    }
    

    Erstellen Sie eine abgeleitete customer_order_facts-Tabelle mit dem Parameter sql:

    view: customer_order_facts {
      derived_table: {
        sql:
          SELECT
            customer_id,
            COUNT(*) AS lifetime_orders,
            SUM(total) AS lifetime_spend
          FROM
            order
          GROUP BY
            customer_id ;;
      }
    }
    

    Wichtige Punkte

    Übermäßig abgeleitete Tabellen vermeiden, um reine SQL-Lösungen zu erstellen

    Nutzer, die besonders SQL-versiert sind, verwenden oft abgeleitete Tabellen, um Probleme mit komplexen SQL-Abfragen zu lösen, deren Ergebnisse dann Nutzern angezeigt werden können. Das kann zwar manchmal erforderlich sein, es kann aber auch die modulare, wiederverwendbare Beschaffenheit von LookML verpassen und Nutzerinnen und Nutzern möglicherweise eine starre Möglichkeit bieten, ihre Daten zu untersuchen.

    Wir empfehlen, den zugrunde liegenden Zweck Ihrer SQL-Abfrage zu definieren und diese Logik dann in LookML umzuwandeln, anstatt vorhandene Abfragen zu kopieren und in eine abgeleitete Tabelle einzufügen. Wenn Sie Unterstützung beim Erstellen von Analysen benötigen, die nicht auf abgeleiteten Tabellen basieren, helfen Ihnen die Looker-Analysten bei den Best Practices weiter.

    Unterstützte Datenbankdialekte für abgeleitete Tabellen

    Unterstützte Datenbankdialekte für temporäre abgeleitete Tabellen

    Damit Looker abgeleitete Tabellen in Ihrem Looker-Projekt unterstützen kann, müssen diese auch von Ihrem Datenbankdialekt unterstützt werden. In der folgenden Tabelle sehen Sie, welche Dialekte abgeleitete Tabellen im neuesten Release von Looker unterstützen:

    Unterstützte Datenbankdialekte für persistente abgeleitete Tabellen

    Damit Looker PDTs in Ihrem Looker-Projekt unterstützen kann, müssen diese auch von Ihrem Datenbankdialekt unterstützt werden.

    Der Dialekt muss unter anderem andere Anforderungen haben, um nichtflüchtige abgeleitete Tabellen (LookML- oder SQL-basiert) unterstützen zu können. Es gibt einige schreibgeschützte Datenbankkonfigurationen, die die Persistenz nicht zulassen (meist bei Postgres-Hot-Swap-Datenbanken). In diesen Fällen können Sie stattdessen temporäre abgeleitete Tabellen verwenden.

    In der folgenden Tabelle sind die Dialekte aufgeführt, die in der neuesten Version von Looker nichtflüchtige SQL-basierte abgeleitete Tabellen unterstützen:

    Damit persistente native abgeleitete Tabellen (mit LookML-basierten Abfragen) unterstützt werden, muss der Dialekt auch die DDL-Funktion CREATE TABLE unterstützen. Im Folgenden finden Sie eine Liste der Dialekte, die in der neuesten Version von Looker nichtflüchtige native (LookML-basierte) abgeleitete Tabellen unterstützen:

    PDTs werden für Snowflake-Verbindungen, die OAuth verwenden, nicht unterstützt.

    Unterstützte Datenbankdialekte für inkrementelle PDTs

    Damit Looker in Ihrem Looker-Projekt inkrementelle PDTs unterstützt, muss Ihr Datenbankdialekt DDL-Befehle (Data Definition Language) unterstützen, die das Löschen und Einfügen von Zeilen ermöglichen.

    Die folgende Tabelle zeigt, welche Dialekte in der neuesten Version von Looker inkrementelle PDTs unterstützen: