CREATE SEMANTIC VIEW

Erstellt eine neue semantische Ansicht im aktuellen/angegebenen Schema.

Siehe auch::

DESCRIBE SEMANTIC VIEW, DROP SEMANTIC VIEW, SHOW SEMANTIC VIEWS

Syntax

CREATE [ OR REPLACE ] SEMANTIC VIEW [ IF NOT EXISTS ] <name>
  TABLES ( logicalTable [ , ... ] )
  [ RELATIONSHIPS ( relationshipDef [ , ... ] ) ]
  [ FACTS ( semanticExpression [ , ... ] ) ]
  [ DIMENSIONS ( semanticExpression [ , ... ] ) ]
  [ METRICS ( semanticExpression [ , ... ] ) ]
  [ COMMENT = '<comment_about_semantic_view>' ]
  [ COPY GRANTS ]
Copy

Wobei:

logicalTable ::=
  [ <table_alias> AS ] <table_name>
  [ PRIMARY KEY ( <primary_key_column_name> [ , ... ] ) ]
  [
    UNIQUE ( <unique_column_name> [ , ... ] )
    [ ... ]
  ]
  [ WITH SYNONYMS [ = ] ( '<synonym>' [ , ... ] ) ]
  [ COMMENT = '<comment_about_table>' ]
Copy
relationshipDef ::=
  [ <relationship_identifier> AS ]
  <table_alias> ( <column_name> [ , ... ] )
  REFERENCES
  <ref_table_alias> [ ( <ref_column_name> [ , ... ] ) ]
Copy
semanticExpression ::=
  <table_alias>.<dim_fact_or_metric> AS <sql_expr>
  [ WITH SYNONYMS [ = ] ( '<synonym>' [ , ... ] ) ]
  [ COMMENT = '<comment_about_dim_fact_or_metric>' ]
Copy

Bemerkung

Die Reihenfolge der Klauseln ist wichtig. Sie müssen zum Beispiel die FACTS-Klausel vor der DIMENSIONS-Klausel angeben.

Sie können sich auf semantische Ausdrücke beziehen, die in späteren Klauseln definiert werden. Selbst wenn beispielsweise fact_2 nach fact_1 definiert ist, können Sie fact_2 in der Definition von fact_1 verwenden.

Erforderliche Parameter

name

Gibt den Namen der semantischen Ansicht an; der Name muss für das Schema, in dem die Tabelle erstellt wird, eindeutig sein.

Darüber hinaus muss der Bezeichner mit einem Buchstaben beginnen und darf keine Leer- oder Sonderzeichen enthalten, es sei denn, die gesamte Bezeichnerzeichenfolge wird in doppelte Anführungszeichen gesetzt (z. B. "My object"). Bei Bezeichnern, die in doppelte Anführungszeichen eingeschlossen sind, ist auch die Groß-/Kleinschreibung zu beachten.

Weitere Informationen dazu finden Sie unter Anforderungen an Bezeichner.

Optionale Parameter

COMMENT = 'comment_about_semantic_view'

Gibt einen Kommentar zur semantischen Ansicht an.

COPY GRANTS

Wenn Sie OR REPLACE angeben, um eine bestehende semantische Ansicht durch eine neue semantische Ansicht zu ersetzen, können Sie diesen Parameter so einstellen, dass alle Berechtigungen, die für die bestehende semantische Ansicht gewährt wurden, in die neue semantische Ansicht kopiert werden.

Der Befehl kopiert alle Berechtigungen außer OWNERSHIP aus der bestehenden semantischen Ansicht in die neue semantische Ansicht. Die Rolle, die die Anweisung CREATE SEMANTIC VIEW ausführt, ist Eigentümer der neuen Ansicht.

Die neue semantische Ansicht übernimmt keine zukünftigen Berechtigungen, die für den Objekttyp im Schema definiert werden.

Die Operation zum Kopieren von Berechtigungen erfolgt atomar mit der Anweisung CREATE SEMANTIC VIEW (mit anderen Worten, innerhalb derselben Transaktion).

Wenn Sie COPY GRANTS weglassen, erbt die neue semantische Ansicht keine expliziten Zugriffsrechte, die für die bestehende semantische Ansicht gewährt wurden, aber sie erbt alle zukünftigen Berechtigungen, die für den Objekttyp im Schema definiert sind.

Parameter für logische Tabellen (logicalTable)

table_alias AS

Gibt einen optionalen Alias für die logische Tabelle an.

  • Wenn Sie einen Alias angeben, müssen Sie diesen Alias verwenden, wenn Sie sich in Beziehungen, Fakten, Dimensionen und Metriken auf die logische Tabelle beziehen.

  • Wenn Sie keinen Alias angeben, verwenden Sie den unqualifizierten logischen Tabellennamen, um auf die Tabelle zu verweisen.

table_name

Gibt den Namen der logischen Tabelle an.

PRIMARY KEY ( primary_key_column_name [ , ... ] )

Gibt die Namen von einer oder mehreren Spalten in der logischen Tabelle an, die als Primärschlüssel der Tabelle dienen.

UNIQUE ( unique_column_name [ , ... ] )

Gibt den Namen einer Spalte an, die einen eindeutigen Wert enthält, oder die Namen von Spalten, die eindeutige Kombinationen von Werten enthalten.

Wenn zum Beispiel die Spalte service_id eindeutige Werte enthält, geben Sie Folgendes an:

TABLES(
  ...
  product_table UNIQUE (service_id)
Copy

Wenn die Kombination der Werte in den Spalten product_area_id und product_id eindeutig ist, geben Sie Folgendes an:

TABLES(
  ...
  product_table UNIQUE (product_area_id, product_id)
  ...
Copy

Sie können mehrere Spalten und mehrere Kombinationen von Spalten als eindeutig in einer bestimmten logischen Tabelle identifizieren:

TABLES(
  ...
  product_table UNIQUE (product_area_id, product_id) UNIQUE (service_id)
  ...
Copy

Bemerkung

Wenn Sie eine Spalte bereits als Primärschlüsselspalte identifiziert haben (indem Sie PRIMARY KEY verwenden), fügen Sie die Klausel UNIQUE für diese Spalte nicht hinzu.

WITH SYNONYMS [ = ] ( 'synonym' [ , ... ] )

Gibt ein oder mehrere Synonyme für die logische Tabelle an. Im Gegensatz zu Aliasen werden Synonyme nur zu Informationszwecken verwendet. Sie verwenden Synonyme nicht, um in Beziehungen, Dimensionen, Metriken und Fakten auf die logische Tabelle zu verweisen.

COMMENT = 'comment_about_table'

Gibt einen Kommentar zu der logischen Tabelle an.

Parameter für Beziehungen (relationshipDef)

relationship_identifier AS

Gibt einen optionalen Bezeichner für die Beziehung an.

table_alias ( column_name [ , ... ] )

Gibt eine der logischen Tabellen und eine oder mehrere ihrer Spalten an, die sich auf Spalten in einer anderen logischen Tabelle beziehen.

ref_table_alias [ ( ref_column_name [ , ... ] ) ]

Gibt die andere logische Tabelle und eine oder mehrere ihrer Spalten an, die von der ersten logischen Tabelle referenziert werden.

Die Spalten müssen als PRIMARY KEY oder UNIQUE in der logischen Tabellendefinition gekennzeichnet sein.

Parameter für Fakten, Dimensionen und Metriken (semanticExpression)

In einer semantischen Ansicht müssen Sie mindestens eine Dimension oder Metrik definieren, was bedeutet, dass Sie mindestens eine DIMENSIONS- oder METRICS-Klausel angeben müssen.

Verwenden Sie die folgenden Parameter, um den Fakt, die Dimension oder die Metrik zu definieren:

table_alias.semantic_expression_name AS sql_expr

Gibt einen Namen für eine Dimension, einen Fakt oder eine Metrik und den SQL-Ausdruck für die Berechnung dieser Dimension, dieses Fakts oder dieser Metrik an.

WITH SYNONYMS [ = ] ( 'synonym' [ , ... ] )

Gibt ein oder mehrere optionale Synonyme für die Dimension, den Fakt oder die Metrik an. Beachten Sie, dass die Synonyme nur zu Informationszwecken verwendet werden. Sie können Synonyme nicht verwenden, um sich auf eine Dimension, einen Fakt oder eine Metrik in einer anderen Dimension, einem anderen Fakt oder einer anderen Metrik zu beziehen.

COMMENT = 'comment_about_dim_fact_or_metric'

Gibt einen optionalen Kommentar zu der Dimension, dem Fakt oder der Metrik an.

Anforderungen an die Zugriffssteuerung

Eine Rolle, die zur Ausführung dieser Operation verwendet wird, muss mindestens die folgenden Berechtigungen haben:

Berechtigung

Objekt

Anmerkungen

CREATE SEMANTIC VIEW

Schema

Erforderlich, um eine neue semantische Ansicht zu erstellen.

SELECT

Tabelle, Ansicht

Erforderlich für alle in der Definition der semantischen Ansicht verwendeten Tabellen und/oder Ansichten.

USAGE-Berechtigung für die übergeordnete Datenbank und das Schema ist erforderlich, um Operationen an einem beliebigen Objekt in einem Schema durchzuführen.

Eine Anleitung zum Erstellen einer kundenspezifischen Rolle mit einer bestimmten Gruppe von Berechtigungen finden Sie unter Erstellen von kundenspezifischen Rollen.

Allgemeine Informationen zu Rollen und Berechtigungen zur Durchführung von SQL-Aktionen auf sicherungsfähigen Objekten finden Sie unter Übersicht zur Zugriffssteuerung.

Nutzungshinweise

  • Metadaten:

    Achtung

    Kunden müssen sicherstellen, dass bei der Nutzung des Snowflake-Dienstes keine personenbezogenen Daten (außer für ein Objekt „User“), sensible Daten, exportkontrollierte Daten oder andere regulierte Daten als Metadaten eingegeben werden. Weitere Informationen dazu finden Sie unter Metadatenfelder in Snowflake.

  • CREATE OR REPLACE <Objekt>-Anweisungen sind atomar. Das heißt, wenn ein Objekt ersetzt wird, erfolgt das Löschen des alten Objekts und das Erstellen des neuen Objekts in einer einzigen Transaktion.

Beispiele

Siehe Erstellen einer semantischen Ansicht.