Kategorien:

Abfragesyntax

SEMANTIC_VIEW

Gibt die semantische Ansicht zur Abfrage an. Sie geben SEMANTIC_VIEW(…) in einer FROM-Klausel in einer SELECT-Anweisung an.

Bemerkung

Sie können private Fakten oder Metriken nicht abfragen oder in der WHERE-Bedingung verwenden.

Siehe auch:

FROM, Semantische Ansichten abfragen

Syntax

SEMANTIC_VIEW(
  [<namespace>.]<semantic_view_name>
  [
    {
      METRICS <metric> [ , ... ] |
      FACTS <fact_expr>  [ , ... ]
    }
  ]
  [ DIMENSIONS <dimension_expr>  [ , ... ] ]
  [ WHERE <predicate> ]
)
Copy

Parameter

[namespace.]semantic_view_name

Gibt den Bezeichner für die semantische Ansicht an, die abgefragt werden soll.

Wenn der Bezeichner Leerzeichen oder Sonderzeichen enthält, muss die gesamte Zeichenfolge in doppelte Anführungszeichen gesetzt werden. Bei Bezeichnern, die in doppelte Anführungszeichen eingeschlossen sind, ist auch die Groß- und Kleinschreibung zu beachten.

Weitere Informationen dazu finden Sie unter Anforderungen an Bezeichner.

METRICS metric [ , ... ]

Gibt die Metriken an, die Sie in den Ergebnissen zurückgeben möchten.

Bemerkung

  • Sie können keinen Ausdruck angeben, der eine Metrik verwendet. Sie können zum Beispiel nicht t1.metric_1 + 1 angeben.

  • Sie können keine privaten Metriken angeben.

Für die Namen der Metriken:

  • Sie können den Namen der Metrik qualifizieren (zum Beispiel my_logical_table.my_metric).

    Die Verwendung des nicht qualifizierten Namens funktioniert nur, wenn es keine anderen Bezeichner mit demselben nicht qualifizierten Namen in der semantischen Ansicht gibt. Wenn zum Beispiel eine Metrik und eine Dimension denselben nicht qualifizierten Namen verwenden, müssen Sie den Namen der Metrik in der Abfrage qualifizieren.

  • Um alle Metriken in einer logischen Tabelle anzugeben, verwenden Sie ein Sternchen als Platzhalter, qualifiziert durch den Namen der logischen Tabelle (z. B. my_logical_table.*).

    Sie können ein Sternchen nur dann angeben, wenn Sie es mit einem Tabellennamen qualifizieren.

Geben Sie die Metriken in der Reihenfolge an, in der sie in den Ergebnissen erscheinen sollen.

FACTS fact_expr [ , ... ]

Gibt die Fakten an, die Sie in den Ergebnissen zurückgeben möchten. Sie können auch skalare Ausdrücke angeben, die sich auf Fakten oder Dimensionen in der semantischen Ansicht beziehen. Wenn Sie einen skalaren Ausdruck angeben, müssen die Dimensionen und Fakten in diesem Ausdruck zur gleichen logischen Tabelle gehören.

Bemerkung

Sie können keine privaten Fakten angeben.

Anders als die in der DIMENSIONS-Klausel angegebenen Dimensionen gruppiert die Abfrage die in derFACTS-Klausel angegebenen Fakten nicht. Verschiedene Zeilen können denselben Wert für einen Fakt enthalten.

Geben Sie die Fakten in der Reihenfolge an, in der sie in den Ergebnissen erscheinen sollen.

DIMENSIONS dimension_expr [ , ... ]

Gibt die Dimensionen an, die Sie in den Ergebnissen zurückgeben möchten. Sie können auch skalare Ausdrücke angeben, die sich auf Dimensionen oder Fakten in der semantischen Ansicht beziehen. Wenn Sie einen skalaren Ausdruck angeben, müssen die Dimensionen und Fakten in diesem Ausdruck zur gleichen logischen Tabelle gehören.

Die Abfrage gruppiert die Ergebnisse nach den Dimensionen, die Sie hier angeben. Beispiel: Wenn eine logische Tabelle fünf unterschiedliche Werte für eine Dimension enthält, werden durch die Angabe dieser Dimension in der DIMENSIONS-Klausel fünf Zeilen zurückgegeben.

Für die Namen der Dimensionen:

  • Sie können den Namen der Dimension qualifizieren (z. B. my_logical_table.my_dimension). Die Verwendung des nicht qualifizierten Namens funktioniert nur, wenn es keine anderen Bezeichner mit demselben nicht qualifizierten Namen in der semantischen Ansicht gibt. Wenn zum Beispiel eine Metrik und eine Dimension denselben nicht qualifizierten Namen verwenden, müssen Sie den Namen der Dimension in der Abfrage qualifizieren.

  • Um alle Dimensionen in einer logischen Tabelle anzugeben, verwenden Sie ein Sternchen als Platzhalter, qualifiziert durch den Namen der logischen Tabelle (z. B. my_logical_table.*).

    Sie können ein Sternchen nur dann angeben, wenn Sie es mit einem Tabellennamen qualifizieren.

Wenn Sie einen skalaren Ausdruck angeben, können Sie nicht auf Dimensionen in anderen semantischen Ansichten oder Metriken verweisen.

Geben Sie die Dimensionen in der Reihenfolge an, in der sie in den Ergebnissen erscheinen sollen.

Bemerkung

Wenn Sie eine Fensterfunktionsmetrik zurückgeben, müssen Sie auch die Dimensionen zurückgeben, die in den Klauseln PARTITION BY dimension, PARTITION BY EXCLUDING dimension und ORDER BY dimension der CREATE SEMANTIC VIEW-Anweisung für diese semantische Ansicht angegeben sind.

Siehe Fensterfunktionsmetriken definieren und abfragen.

WHERE predicate

Ein boolescher Ausdruck. Der Ausdruck kann logische Operatoren, integrierte Funktionen und benutzerdefinierte Funktionen (UDFs) enthalten.

In der Bedingung können Sie nur auf Dimensionen, Fakten und Ausdrücke verweisen, die Dimensionen und Fakten verwenden.

Wenn Sie Fakten aus verschiedenen Entitäten angeben, muss die RELATIONSHIPS-Klausel in der Definition der semantischen Ansicht eine Beziehung zwischen diesen Entitäten definieren.

Diese Filterbedingung wird angewendet, bevor die Metriken berechnet werden.

Nutzungshinweise

  • In der SEMANTIC_VIEWS-Klausel müssen Sie mindestens eine der folgenden Klauseln angeben:

    • METRICS

    • DIMENSIONS

    • FACTS

    Sie können nicht alle dieser Klauseln in der SEMANTIC_VIEW-Klausel weglassen.

  • Wenn Sie eine Kombination dieser Klauseln angeben, ist Folgendes zu beachten:

    • Sie können FACTS und METRICS nicht in derselben SEMANTIC_VIEW -Klausel angeben.

    • Sie können FACTS und DIMENSIONS zwar in einer Abfrage angeben, sollten dies aber nur dann tun, wenn die Dimensionen die Fakten eindeutig bestimmen können.

      Die Abfrage gruppiert die Ergebnisse nach Dimensionen: Wenn die Fakten nicht von den Dimensionen abhängen, können die Ergebnisse nicht-deterministisch sein.

    • Wenn Sie FACTS und DIMENSIONS angeben, müssen alle in der Abfrage verwendeten Fakten und Dimensionen (einschließlich diejenigen, die in der WHERE-Klausel angegeben sind), in der gleichen logischen Tabelle definiert sein.

    • Wenn Sie eine Dimension und eine Metrik angeben, muss die logische Tabelle für die Dimension mit der logischen Tabelle für die Metrik in Beziehung gesetzt werden.

      Außerdem muss die logische Tabelle für die Dimension eine gleiche oder geringere Granularität aufweisen als die logische Tabelle für die Metrik.

      Um festzustellen, welche Dimensionen diese Kriterien erfüllen, können Sie den SHOW SEMANTIC DIMENSIONS FOR METRIC-Befehl ausführen.

      Weitere Details dazu finden Sie unter Auswahl der Dimensionen, die Sie für eine bestimmte Metrik zurückgeben können.

  • In der DIMENSIONS-Klausel können Sie einen Ausdruck angeben, der sich auf einen Fakt bezieht. Ähnlich verhält es sich mit der FACTS-Klausel, in der Sie einen Ausdruck angeben können, der sich auf eine Dimension bezieht. Beispiel:

    -- Dimension expression that refers to a fact
    DIMENSIONS my_table.my_fact
    
    -- Fact expression that refers to a dimension
    FACTS my_table.my_dimension
    
    Copy

    Einer der Hauptunterschiede zwischen der Verwendung von DIMENSIONS und FACTS besteht darin, dass die Abfrage die Ergebnisse nach den Dimensionen und Ausdrücken gruppiert, die in derDIMENSIONS-Klausel angegeben sind.

  • Geben Sie die METRICS-, DIMENSIONS- und FACTS-Klauseln in der Reihenfolge an, in der sie in den Ergebnissen erscheinen sollen.

    Wenn Sie möchten, dass die Abmessungen zuerst in den Ergebnissen erscheinen, geben Sie DIMENSIONS vor METRICS an. Andernfalls geben Sie zuerst METRICS an.

    Nehmen wir zum Beispiel an, dass Sie zuerst die METRICS-Klausel angeben:

    SELECT * FROM SEMANTIC_VIEW(
        tpch_analysis
        METRICS customer.customer_order_count
        DIMENSIONS customer.customer_name
      )
      ORDER BY customer_name
      LIMIT 5;
    
    Copy

    In der Ausgabe ist die erste Spalte die metrische Spalte (customer_order_count) und die zweite Spalte ist die Dimensionsspalte (customer_name):

    +----------------------+--------------------+
    | CUSTOMER_ORDER_COUNT | CUSTOMER_NAME      |
    |----------------------+--------------------|
    |                    6 | Customer#000000001 |
    |                    7 | Customer#000000002 |
    |                    0 | Customer#000000003 |
    |                   20 | Customer#000000004 |
    |                    4 | Customer#000000005 |
    +----------------------+--------------------+
    

    Wenn Sie stattdessen zuerst die DIMENSIONS-Klausel angeben:

    SELECT * FROM SEMANTIC_VIEW(
        tpch_analysis
        DIMENSIONS customer.customer_name
        METRICS customer.customer_order_count
      )
      ORDER BY customer_name
      LIMIT 5;
    
    Copy

    In der Ausgabe ist die erste Spalte die Dimensionsspalte (customer_name) und die zweite Spalte ist die metrische Spalte (customer_order_count):

    +--------------------+----------------------+
    | CUSTOMER_NAME      | CUSTOMER_ORDER_COUNT |
    |--------------------+----------------------|
    | Customer#000000001 |                    6 |
    | Customer#000000002 |                    7 |
    | Customer#000000003 |                    0 |
    | Customer#000000004 |                   20 |
    | Customer#000000005 |                    4 |
    +--------------------+----------------------+
    
  • Sie können die durch eine SEMANTIC_VIEW-Klausel definierte Beziehung in anderen SQL-Konstrukten verwenden, einschließlich JOIN, PIVOT, UNPIVOT, GROUP BY und allgemeinen Tabellenausdrücken (CTEs).

  • Die Spaltenüberschriften der Ausgabe verwenden die unqualifizierten Namen der Metriken und Dimensionen.

    Wenn Sie mehrere Metriken und Dimensionen mit denselben Namen haben, verwenden Sie einen Tabellenalias, um den Spaltenüberschriften unterschiedliche Namen zuzuweisen. Siehe Behandlung doppelter Spaltennamen in der Ausgabe.

Beispiele

Siehe Semantische Ansichten abfragen.