Freigeben über


Spark SQL-Referenz für materialisierte Seeansichten

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. MyTestView wird zu mytestview)

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.