Kipinän SQL-viite materialisoituja järvinäkymiä varten

Tämä artikkeli tarjoaa Spark SQL -syntaksin materiaalisoitujen järvinäkymien luomiseen, listaamiseen, uudelleennimeämiseen ja poistamiseen Fabric-ohjelmassa.

Vinkki

Ensimmäisen materialisoidun järvinäkymän luomiseksi katso Aloita materialisoiduista järvinäkymistä.

Luo materialisoitunut järvinäkymä

Voit määrittää materialisoidun järvinäkymän mistä tahansa taulukosta tai toisesta materialisoidusta järvinäkymästä lakehousessa.

Syntaksi

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 

Huomautus

  • Jos työtilasi nimi sisältää välilyöntejä, sulje se takatikkeihin: `My Workspace`.lakehouse.schema.view_name
  • Materialisoidut järvinäkymän nimet ovat kirjainkoon liittymättömiä ja muunnetaan pienaakkosiksi (esimerkiksi MyTestView muuttuu mytestview).

Argumentit

Parametri Kuvaus
OR REPLACE Korvaa kaikki olemassa olevat samanniminen järvinäkymä. Ei voi yhdistää .IF NOT EXISTS
IF NOT EXISTS Luo materialisoidun järvinäkymän vain, jos sitä ei vielä ole olemassa. Väite onnistuu virheettömästi, jos näkymä on jo määritelty. Ei voi yhdistää .OR REPLACE
MLV_Identifier Muodostettu järvinäkymän nimi. Voidaan täysin määritellä .workspace.lakehouse.schema.name
CONSTRAINT ... CHECK Määrittelee datan laadun säännön. Lauseke CHECK määrittelee Boolen lausekkeen, jonka jokaisen rivin on täytettävä. Voit määritellä useita rajoitteita.
ON MISMATCH Toimenpide, joka tehdään, kun rivi rikkoo rajoitetta. DROP hiljaa poistaa rivin; FAIL pysäyttää päivityksen virheellä. Oletusarvo on FAIL.
PARTITIONED BY Sarakkeet, joiden mukaan materiaalisoitu järvinäkymä jaetaan, mikä voi parantaa suodatettujen lukujen kyselyjen suorituskykyä.
COMMENT Vapaatekstikuvaus tallennettuna materialisoidun järven näkymän määritelmän kanssa.
TBLPROPERTIES Avain-arvoparit tallennetaan metatietoina materialisoidussa järven näkymässä.
AS select_statement Kysely SELECT , joka määrittelee datan materialisoidussa järvinäkymässä.

Esimerkkejä

Seuraava esimerkki luo materialisoidun järvinäkymän, jossa on datan laaturajoite, kommentti ja osiointi. Lauseke OR REPLACE korvaa kaikki olemassa olevat samannimisen näkymät.

CREATE OR REPLACE MATERIALIZED LAKE VIEW silver.cleaned_order_data
(
    CONSTRAINT valid_quantity CHECK (quantity > 0) ON MISMATCH DROP
)
PARTITIONED BY (category)
COMMENT "Cleaned order data joined from products and orders"
AS SELECT 
    p.productID,
    p.productName,
    p.category,
    o.orderDate,
    o.quantity,
    o.totalAmount
FROM bronze.products p INNER JOIN bronze.orders o
ON p.productID = o.productID

Seuraava esimerkki luo yksinkertaisemman materialisoidun järvinäkymän. Lauseke IF NOT EXISTS estää virheen, jos näkymä on jo olemassa, tehden siitä turvallisen käyttöönottoskripteille.

CREATE MATERIALIZED LAKE VIEW IF NOT EXISTS silver.products_with_sales AS
SELECT 
    p.productID,
    p.productName,
    p.category,
    CASE  
        WHEN COUNT(o.orderID) OVER (PARTITION BY p.productID) > 0 THEN TRUE  
        ELSE FALSE  
        END AS has_sales 
FROM bronze.products p LEFT JOIN bronze.orders o 
ON p.productID = o.productID

Vinkki

Hallinnoi järvimaisemaa maisemaa järvimajastasi

Kun olet luonut materialisoidut järven näkymät, älä järjestä niiden päivitystä muistikirjasta. Sen sijaan käytä kahta järvenrakennuksen sisäänrakennettua ominaisuutta:

  • Lineage: Fabric johtaa riippuvuusjärjestyksen materiaalisoitujen järvinäkymien välillä niiden määritelmistä. Avataksesi linjanäkymän, valitse nauhasta Materialisoidut järven näkymät -välilehti ja valitse sitten Hallinnoi. Sen jälkeen voit seurata käynnissä olevaa suoritusta ja tarkastella ylä- ja alavirran riippuvuuksia jokaiselle näkymälle.
  • Aikataulutettu päivitys: Luo samasta Hallinnoi-näkymästä yksi tai useampi aikataulu päivittääksesi kaikki materialisoidut järvinäkymät tai valitun osajoukon. Jokainen aikataulu pyörii itsenäisesti ja päivittää näkymät riippuvuusjärjestyksessä, joten alavirran näkymät lukevat aina tuoretta dataa ylävirran näkymistä. Fabric yrittää tilapäiset epäonnistumiset uudelleen puolestasi.

Käytä muistikirjoja kirjoittaaksesi ja iteroidaksesi materiaalisoituja järvinäkymän määritelmiä. Anna lineagen ja ajoitetun päivityksen hoitaa järjestys, suoritus ja uudelleenyritykset — luotettavaa, toistettavaa dataa ja vähemmän koodia ylläpidettäväksi.

Hanki luettelo toteutuneista järvinäkymistä

Saadaksesi listan kaikista materialisoituneista järvinäkymistä skeemassa, käytä seuraavaa syntaksia:

SHOW MATERIALIZED LAKE VIEWS <IN/FROM> Schema_Name;

Esimerkiksi, jos listataan kaikki materialisoidut järvinäkymät kaaviossa silver :

SHOW MATERIALIZED LAKE VIEWS IN silver;

Hae lauseke, joka loi materialisoidun järvinäkymän

Materialisoidun järvinäkymän CREATE lauseen saamiseksi käytä seuraavaa syntaksia:

SHOW CREATE MATERIALIZED LAKE VIEW MLV_Identifier;

Esimerkiksi, jotta voidaan hakea määritelmä products_with_sales:

SHOW CREATE MATERIALIZED LAKE VIEW products_with_sales;

Materialisoidun Lake-näkymän päivittäminen

Materialisoidun järvinäkymän määritelmän muuttamiseksi (kuten SELECT kyselyä, rajoitteita tai osiointia) käytä CREATE OR REPLACE -komentoa. Vaihtoehtoisesti voit poistaa olemassa olevan näkymän ja luoda sen uudelleen.

Uudelleennimetä materialisoitu järvinäkymä

Jos haluat nimetä olemassa olevan materialisoidun järvinäkymän uudelleen, käytä komentoa ALTER MATERIALIZED LAKE VIEW . Syntaksi on seuraava:

ALTER MATERIALIZED LAKE VIEW MLV_Identifier RENAME TO MLV_Identifier_New;

Esimerkiksi nimetä products_with_salesuudelleen :

ALTER MATERIALIZED LAKE VIEW products_with_sales RENAME TO products_with_sales_v2;

Huomautus

Komentoa ALTER MATERIALIZED LAKE VIEW tuetaan vain uudelleennimeämiseen. Määritelmän tai muiden ominaisuuksien (kuten SELECT kyselyn, rajoitteiden tai osiointien) muokkaamiseksi katso Päivitä materialisoitu järvinäkymä.

Poista materialisoitu järvinäkymä

Voit poistaa materialisoidun järvinäkymän käyttämällä Delete-vaihtoehtoa Lakehouse-objektin tutkijasta tai ajamalla komentoa.DROP Syntaksi on seuraava:

DROP MATERIALIZED LAKE VIEW MLV_Identifier;

Esimerkiksi poistamaan products_with_sales:

DROP MATERIALIZED LAKE VIEW products_with_sales;

Huomautus

Muodostettu järvinäkymän pudottaminen tai uudelleennimeäminen vaikuttaa historiatietonäkymään ja ajoitettuun päivitykseen. Muista päivittää viittaus kaikissa riippuvaisissa materialisoiduissa järvinäkymissä.

Nykyiset rajoitukset

Seuraavat rajoitukset koskevat Spark SQL -lauseita materialisoiduille järvinäkymille:

  • Skeeman nimet — Pelkästään isot skeeman nimet (esim. MYSCHEMA) eivät ole tuettuja. Käytä sekakirjaimia tai pieniä kirjaimia.
  • Ei datan käsittelykielen (DML) lauseita — Et voi ajaa INSERT, UPDATE, tai DELETE lauseita materialisoitua järvinäkymää vastaan. Data täytetään vain määritelmässä olevalla SELECT kyselyllä.
  • Ei aikamatkustuskyselyjä — Materialisoidun järven näkymän määritelmässä SELECT oleva kysely ei voi käyttää Delta Lake -aikamatkustussyntaksia (esimerkiksi, VERSION AS OF tai TIMESTAMP AS OF).
  • Ei käyttäjän määrittelemiä funktioita — Käyttäjän määrittelemiä funktioita (UDF) ei tueta kyselyssä SELECT , joka määrittelee materialisoidun järvinäkymän.
  • Ei väliaikaisia näkymiä lähteinä — Kysely SELECT voi viitata taulukoihin ja muihin materialisoituihin järvinäkymiin, mutta ei väliaikaisiin näkymiin.
  • Istuntotason Spark-ominaisuudet — Spark-konfiguraatio-ominaisuudet, jotka on asetettu istuntotasolla (esimerkiksi spark.conf.set(...)), ei sovelleta aikataulutetun päivityksen aikana. Aseta ominaisuudet järvenrakennuksen tai työtilan tasolle sen sijaan.