Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
In diesem Artikel erfahren Sie mehr über die Spark SQL-Syntax für Aktivitäten im Zusammenhang mit materialisierten Seeansichten in Microsoft Fabric.
Erstellen einer materialisierten Seeansicht
Sie können einen materialisierten Seeblick von jedem Tisch oder aus einem anderen materialisierten Seeblick innerhalb eines Seehauses definieren. Der folgende Code beschreibt die Syntax zum Deklarieren einer materialisierten Seeansicht mithilfe von Spark SQL:
CREATE [OR REPLACE] MATERIALIZED LAKE VIEW [IF NOT EXISTS][workspace.lakehouse.schema].MLV_Identifier
[(
CONSTRAINT constraint_name1 CHECK (condition expression1)[ON MISMATCH DROP | FAIL],
CONSTRAINT constraint_name2 CHECK (condition expression2)[ON MISMATCH DROP | FAIL]
)]
[PARTITIONED BY (col1, col2, ... )]
[COMMENT "description or comment"]
[TBLPROPERTIES ("key1"="val1", "key2"="val2", ... )]
AS select_statement
Arguments
| Parameter | BESCHREIBUNG |
|---|---|
MLV_Identifier |
Name des materialisierten Seeblicks. |
CONSTRAINT |
Schlüsselwort zum Definieren einer Datenqualitätseinschränkung, gefolgt von einem benutzerdefinierten Namen. Die Einschränkung gilt auf der Ebene des materialisierten Seeblicks. |
CHECK |
Parameter zum Erzwingen einer Bedingung basierend auf bestimmten Spaltenwerten. Obligatorisch für die Verwendung beim Definieren der Einschränkung. |
ON MISMATCH |
Parameter zum Angeben der auszuführenden Aktion, wenn die Einschränkung verletzt wird. Mögliche Aktionen sind DROP und FAIL. Standardmäßig lautet FAILdie Aktion ohne diese Klausel . |
PARTITIONED BY |
Parameter zum Erstellen von Partitionen basierend auf der angegebenen Spalte. |
TBLPROPERTIES |
Liste der Schlüssel-Wert-Paare zum Kategorisieren der Definition der materialisierten Seeansicht. |
COMMENT |
Aussage zur Beschreibung des materialisierten Seeblicks. |
AS select_statement |
Abfrage zum Auffüllen der Daten in der materialisierten Seeansicht mithilfe einer SELECT Anweisung. |
Examples
Im folgenden Beispiel wird die Definition einer materialisierten Seeansicht mithilfe der Ersetzungsyntax veranschaulicht:
CREATE OR REPLACE MATERIALIZED LAKE VIEW silver.customer_orders AS
SELECT
c.customerID,
c.customerName,
c.region,
o.orderDate,
o.orderAmount
FROM bronze.customers c INNER JOIN bronze.orders o
ON c.customerID = o.customerID
Im folgenden Beispiel wird die Definition einer materialisierten Seeansicht veranschaulicht, die durch Verknüpfen einer customers_enriched Tabelle mit einer customers Tabelle benannt orders wird:
CREATE MATERIALIZED LAKE VIEW IF NOT EXISTS silver.customers_enriched AS
SELECT
c.customerID,
c.customerName,
c.contact,
CASE
WHEN COUNT(o.orderID) OVER (PARTITION BY c.customerID) > 0 THEN TRUE
ELSE FALSE
END AS has_orders
FROM bronze.customers c LEFT JOIN bronze.orders o
ON c.customerID = o.customerID;
Hinweis
- Wenn der Arbeitsbereichsname Leerzeichen enthält, schließen Sie ihn in Backticks ein:
`My Workspace`.lakehouse.schema.view_name - Materialisierte Seeansichtsnamen sind nicht case-sensitiv und werden in Kleinbuchstaben umgewandelt (z. B.
MyTestViewwird zumytestview)
Im folgenden Beispiel wird eine materialisierte Seeansicht definiert, die durch die customers_enriched Spalte partitioniert wirdcity:
CREATE MATERIALIZED LAKE VIEW IF NOT EXISTS silver.customers_enriched
COMMENT "This is a sample materialized lake view"
PARTITIONED BY (city)
AS SELECT
c.customerID,
c.customerName,
c.contact,
CASE
WHEN COUNT(o.orderID) OVER (PARTITION BY c.customerID) > 0 THEN TRUE
ELSE FALSE
END AS has_orders
FROM bronze.customers c LEFT JOIN bronze.orders o
ON c.customerID = o.customerID;
Abrufen einer Liste der materialisierten Seeansichten
Um die Liste aller materialisierten Seeansichten in einem Seehaus zu erhalten, verwenden Sie den folgenden Befehl:
SHOW MATERIALIZED LAKE VIEWS <IN/FROM> Schema_Name;
Ein Beispiel:
SHOW MATERIALIZED LAKE VIEWS IN silver;
Abrufen der Anweisung, die eine materialisierte Seeansicht erstellt hat
Verwenden Sie den folgenden Befehl, um die CREATE Anweisung für eine materialisierte Seeansicht abzurufen:
SHOW CREATE MATERIALIZED LAKE VIEW MLV_Identifier;
Ein Beispiel:
SHOW CREATE MATERIALIZED LAKE VIEW customers_enriched;
Aktualisieren einer materialisierten Seeansicht
Um die Definition einer materialisierten Seeansicht zu aktualisieren, müssen Sie sie ablegen und neu erstellen. Die ALTER Anweisung wird nur zum Umbenennen eines materialisierten Seeblicks unterstützt.
ALTER MATERIALIZED LAKE VIEW MLV_Identifier RENAME TO MLV_Identifier_New;
Ein Beispiel:
ALTER MATERIALIZED LAKE VIEW customers_enriched RENAME TO customers_enriched_new;
Entfernen eines virtuellen Seeblicks
Sie können eine materialisierte Seeansicht ablegen, indem Sie die Option "Löschen " im Seehaus-Objekt-Explorer verwenden oder den folgenden Befehl im Notizbuch ausführen:
DROP MATERIALIZED LAKE VIEW MLV_Identifier;
Ein Beispiel:
DROP MATERIALIZED LAKE VIEW customers_enriched;
Hinweis
Das Ablegen oder Umbenennen einer materialisierten Seeansicht wirkt sich auf die Linienansicht und die geplante Aktualisierung aus. Achten Sie darauf, den Verweis in allen abhängigen materialisierten Seeansichten zu aktualisieren.
Aktuelle Einschränkungen
- Schemanamen mit allen Großbuchstaben werden nicht unterstützt. Sie können weiterhin materialisierte Seeansichten erstellen, ohne alle Großbuchstaben im Schemanamen zu verwenden.
- Spark-Eigenschaften, die auf Sitzungsebene festgelegt werden, werden während einer geplanten Zeilenaktualisierung nicht angewendet.
- Die Erstellung eines materialisierten Seeblicks mit Delta-Zeitreisen wird nicht unterstützt.
- DML-Anweisungen (Data Manipulation Language) werden bei materialisierten Seeansichten nicht unterstützt.
- Benutzerdefinierte Funktionen in
CREATE TABLE AS SELECT(CTAS)-Anweisungen werden nicht unterstützt. - Sie können keine temporären Ansichten verwenden, um materialisierte Seeansichten zu definieren.