SHOW SEMANTIC DIMENSIONS FOR METRIC¶
Listet die Abmessungen auf, die Sie zurückgeben können, wenn Sie eine bestimmte Metrik in einer semantischen Ansicht abfragen.
Wenn Sie eine Dimension und eine Metrik in einer Abfrage nach einer semantischen Ansicht angeben, muss die Basistabelle für die Dimension mit der Basistabelle für die Metrik in Verbindung stehen. Außerdem muss die Basistabelle für die Dimension eine gleiche oder geringere Granularität aufweisen als die Basistabelle für die Metrik.
Um festzustellen, welche Dimensionen diese Kriterien erfüllen, können Sie diesen Befehl ausführen.
Weitere Details dazu finden Sie unter Auswahl der Dimensionen, die Sie für eine bestimmte Metrik zurückgeben können.
- Siehe auch:
CREATE SEMANTIC VIEW, ALTER SEMANTIC VIEW, DESCRIBE SEMANTIC VIEW, DROP SEMANTIC VIEW, SHOW SEMANTIC VIEWS, SHOW SEMANTIC DIMENSIONS, SHOW SEMANTIC METRICS
Syntax¶
SHOW SEMANTIC DIMENSIONS [ LIKE '<pattern>' ]
IN <semantic_view_name>
FOR METRIC <metric_name>
[ STARTS WITH '<name_string>' ]
[ LIMIT <rows> ]
Parameter¶
LIKE 'pattern'
Filtert optional die Befehlsausgabe nach dem Objektnamen. Der Filter verwendet einen Musterabgleich ohne Berücksichtigung der Groß-/Kleinschreibung, aber mit Unterstützung von SQL-Platzhalterzeichen (
%
und_
).Die folgenden Muster geben beispielsweise die gleichen Ergebnisse zurück:
... LIKE '%testing%' ...
... LIKE '%TESTING%' ...
. Standard: Kein Wert (die Ausgabe wird nicht gefiltert).
IN semantic_view_name
Gibt den Namen der semantischen Ansicht an, die die Dimensionen und die Kennzahl enthält.
FOR METRIC metric_name
Gibt den Namen der Metrik an, für die die zugehörigen Dimensionen angezeigt werden sollen.
STARTS WITH 'name_string'
Filtert die Befehlsausgabe optional anhand der Zeichen, die am Anfang des Objektnamens angezeigt werden. Die Zeichenfolge muss in einfache Anführungszeichen gesetzt werden, wobei zwischen Groß-/Kleinschreibung unterschieden wird.
Die folgenden Zeichenfolgen geben beispielsweise unterschiedliche Ergebnisse zurück:
... STARTS WITH 'B' ...
... STARTS WITH 'b' ...
. Standard: Kein Wert (die Ausgabe wird nicht gefiltert)
LIMIT rows
Begrenzt optional die maximale Anzahl der zurückgegebenen Zeilen. Die tatsächliche Anzahl der zurückgegebenen Zeilen kann geringer sein als das angegebene Limit. Beispielsweise ist die Anzahl der vorhandenen Objekte geringer als das angegebene Limit.
Standard: Kein Wert (die Ausgabe wird nicht begrenzt).
Ausgabe¶
Die Ausgabe des Befehls enthält die folgenden Spalten, die die Eigenschaften und Metadaten des Objekts beschreiben:
Spalte |
Beschreibung |
---|---|
|
Name der Basistabelle für die Dimension. |
|
Name der Dimension. |
|
Datentyp der Dimension. |
|
Gibt an, ob die Dimension für die Metrik erforderlich ist. |
|
Alternative Namen oder Synonyme für die Dimension. |
|
Kommentar zur Dimension. |
Anforderungen an die Zugriffssteuerung¶
Eine Rolle, die zur Ausführung dieses SQL-Befehls verwendet wird, muss mindestens eine der folgenden Berechtigungen haben:
Berechtigung |
Objekt |
Anmerkungen |
---|---|---|
Beliebig |
Semantische Ansicht |
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¶
Für die Ausführung des Befehls ist kein aktives Warehouse erforderlich.
Der Befehl gibt nur Objekte zurück, für die der aktuellen Rolle des aktuellen Benutzers mindestens ein Zugriffsrecht zugewiesen wurde.
Das Zugriffsrecht MANAGE GRANTS gibt seinem Eigentümer implizit die Möglichkeit, jedes Objekt im Konto anzuzeigen. Standardmäßig haben nur der Kontoadministrator (Benutzer mit der Rolle ACCOUNTADMIN) und der Systemadministrator (Benutzer mit der Rolle SECURITYADMIN) die Berechtigung MANAGE GRANTS.
Um die Ausgabe dieses Befehls nachzubearbeiten, können Sie den Befehl Pipe-Operator (
->>
) oder die RESULT_SCAN-Funktion verwenden. Beide Konstrukte behandeln die Ausgabe als Resultset, das Sie abfragen können.Die Namen der Ausgabespalten für diesen Befehl werden in Kleinbuchstaben generiert. Wenn Sie ein Resultset dieses Befehls mit dem Pipe-Operator oder der RESULT_SCAN-Funktion verbrauchen, verwenden Sie Bezeichner mit doppelten Anführungszeichen für die Spaltennamen in der Abfrage, um sicherzustellen, dass sie mit den Spaltennamen in der gescannten Ausgabe übereinstimmen. Wenn der Name einer Ausgabespalte beispielsweise
type
lautet, geben Sie"type"
für den Bezeichner an.
Der Befehl gibt maximal zehntausend Datensätze für den angegebenen Objekttyp zurück, entsprechend den Zugriffsrechten für die zur Ausführung des Befehls verwendete Rolle. Datensätze, die die Grenze von zehntausend Datensätzen überschreiten, werden nicht zurückgegeben, selbst wenn ein Filter angewendet wurde.
Um Ergebnisse anzuzeigen, für die mehr als zehntausend Datensätze existieren, fragen Sie die entsprechende Ansicht (sofern vorhanden) in Snowflake Information Schema ab.
Der Wert für
LIMIT rows
darf10000
nicht überschreiten. WennLIMIT rows
nicht angegeben wird und das Resultset mehr als 10.000 Zeilen hat, führt der Befehl zu einem Fehler.Um Ergebnisse anzuzeigen, für die mehr als 10.000 Datensätze vorhanden sind, fügen Sie entweder
LIMIT rows
ein oder fragen Sie die entsprechende Ansicht im Snowflake Information Schema ab.
Beispiele¶
Im folgenden Beispiel werden die Dimensionen aufgelistet, die Sie in einer Abfrage für die order_average_value
-Metric in der tpch_rev_analysis
semantische Ansicht spezifizieren können:
SHOW SEMANTIC DIMENSIONS IN tpch_rev_analysis FOR METRIC order_average_value;
+------------+---------------+-------------+----------+-------------------+--------------------------------+
| table_name | name | data_type | required | synonyms | comment |
|------------+---------------+-------------+----------+-------------------+--------------------------------|
| CUSTOMERS | CUSTOMER_NAME | VARCHAR(25) | false | ["customer name"] | Name of the customer |
| ORDERS | ORDER_DATE | DATE | false | NULL | Date when the order was placed |
| ORDERS | ORDER_YEAR | NUMBER(4,0) | false | NULL | Year when the order was placed |
+------------+---------------+-------------+----------+-------------------+--------------------------------+
Im folgenden Beispiel werden die Dimensionen aufgelistet, die erforderlich sind, wenn Sie eine Metrik einer Fensterfunktion abfragen.
Dieses Beispiel verwendet die semantische Ansicht, die Sie in definiert haben in Fensterfunktions-Metriken definieren. Das Beispiel gibt die Dimensionen zurück, die Sie in der Abfrage für die avg_7_days_sales_quantity
-Metrik angeben können.
SHOW SEMANTIC DIMENSIONS IN sv_window_function_example FOR METRIC avg_7_days_sales_quantity;
+------------+-----------+--------------+----------+----------+---------+
| table_name | name | data_type | required | synonyms | comment |
|------------+-----------+--------------+----------+----------+---------|
| DATE | DATE | DATE | true | NULL | NULL |
| DATE | D_DATE_SK | NUMBER(38,0) | false | NULL | NULL |
| DATE | YEAR | NUMBER(38,0) | true | NULL | NULL |
+------------+-----------+--------------+----------+----------+---------+
Beachten Sie, dass die required
Spalte true
enthält für die Dimensionen date
und year
. Dies liegt daran, dass die Definition der avg_7_days_sales_quantity
-Metrik die Dimensionen date
und year
angibt in PARTITION BY EXCLUDING:
CREATE OR REPLACE SEMANTIC VIEW sv_window_function_example
...
METRICS (
...
store_sales.avg_7_days_sales_quantity as AVG(total_sales_quantity)
OVER (PARTITION BY EXCLUDING date.date, date.year ORDER BY date.date
RANGE BETWEEN INTERVAL '6 days' PRECEDING AND CURRENT ROW)
WITH SYNONYMS = ('Running 7-day average of total sales quantity'),
Aus diesem Grund sind die Dimensionen date
und year
in jeder Abfrage der avg_7_days_sales_quantity
-Metrik erforderlich. Sie müssen diese Dimensionen in der Abfrage angeben:
SELECT * FROM SEMANTIC_VIEW (
sv_window_function_example
DIMENSIONS date.date, date.year
METRICS store_sales.avg_7_days_sales_quantity
);