Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
W tym artykule przedstawiono składnię Spark SQL dotyczącą działań związanych z zmaterializowanymi widokami lake w usłudze Microsoft Fabric.
Tworzenie zmaterializowanego widoku jeziora
Zmaterializowany widok jeziora można zdefiniować z dowolnej tabeli lub z innego zmaterializowanego widoku jeziora w obrębie lakehouse. Poniższy kod pokazuje, jak zadeklarować zmaterializowany widok jeziora przy użyciu 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
| Parametr | Opis |
|---|---|
MLV_Identifier |
Nazwa zmaterializowanego widoku jeziora. |
CONSTRAINT |
Słowo kluczowe definiujące ograniczenie jakości danych, a następnie nazwę zdefiniowaną przez użytkownika. Ograniczenie ma zastosowanie na poziomie zmaterializowanego widoku jeziora. |
CHECK |
Parametr wymuszający warunek na podstawie określonych wartości kolumn. Obowiązkowe do użycia podczas definiowania ograniczenia. |
ON MISMATCH |
Parametr określający akcję do wykonania, jeśli ograniczenie zostanie naruszone. Możliwe akcje to DROP i FAIL. Domyślnie bez tej klauzuli akcja to FAIL. |
PARTITIONED BY |
Parametr tworzenia partycji na podstawie określonej kolumny. |
TBLPROPERTIES |
Lista par klucz/wartość do tagowania definicji zmaterializowanego widoku jeziora. |
COMMENT |
Oświadczenie opisujące zmaterializowany widok jeziora. |
AS select_statement |
Wykonaj zapytanie w celu wypełnienia danych w zmaterializowanym widoku lake przy użyciu instrukcji SELECT . |
Przykłady
Poniższy przykład ilustruje definicję zmaterializowanego widoku jeziora przy użyciu składni replace:
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
W poniższym przykładzie przedstawiono definicję zmaterializowanego widoku lake o nazwie customers_enriched , łącząc tabelę customers z tabelą orders :
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;
Uwaga / Notatka
- Jeśli nazwa obszaru roboczego zawiera spacje, umieść ją w apostrofach:
`My Workspace`.lakehouse.schema.view_name - Zmaterializowane nazwy widoków jeziora są traktowane jako case-insensitive, co oznacza, że jest ignorowana wielkość liter i są konwertowane na małe litery (np.
MyTestViewstaje sięmytestview)
W poniższym przykładzie zdefiniowano materializowany widok jeziora o nazwie customers_enriched, podzielony według kolumny city.
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;
Pobieranie listy zmaterializowanych widoków jeziora
Aby uzyskać listę wszystkich zmaterializowanych widoków jeziora w lakehouse, użyj następującego polecenia:
SHOW MATERIALIZED LAKE VIEWS <IN/FROM> Schema_Name;
Oto przykład:
SHOW MATERIALIZED LAKE VIEWS IN silver;
Pobierz zapytanie, które utworzyło zmaterializowany widok jeziora
Aby uzyskać instrukcję CREATE dla zmaterializowanego widoku jeziora, użyj następującego polecenia:
SHOW CREATE MATERIALIZED LAKE VIEW MLV_Identifier;
Oto przykład:
SHOW CREATE MATERIALIZED LAKE VIEW customers_enriched;
Aktualizowanie zmaterializowanego widoku jeziora
Aby zaktualizować definicję zmaterializowanego widoku jeziora, należy go usunąć i ponownie go utworzyć. Instrukcja jest obsługiwana ALTER tylko w przypadku zmiany nazwy zmaterializowanego widoku jeziora.
ALTER MATERIALIZED LAKE VIEW MLV_Identifier RENAME TO MLV_Identifier_New;
Oto przykład:
ALTER MATERIALIZED LAKE VIEW customers_enriched RENAME TO customers_enriched_new;
Zrezygnuj z materializowanego widoku jeziora
Zmaterializowany widok jeziora można usunąć przy użyciu opcji Usuń w eksploratorze obiektów lakehouse lub uruchamiając następujące polecenie w notesie:
DROP MATERIALIZED LAKE VIEW MLV_Identifier;
Oto przykład:
DROP MATERIALIZED LAKE VIEW customers_enriched;
Uwaga / Notatka
Usunięcie lub zmiana nazwy widoku jeziora zmaterializowanego wpływa na widok pochodzenia oraz harmonogram odświeżania. Pamiętaj, aby zaktualizować odwołanie we wszystkich zależnych zmaterializowanych widokach jeziora.
Bieżące ograniczenia
- Nazwy schematów ze wszystkimi wielkimi literami nie są obsługiwane. Możesz nadal tworzyć zmaterializowane widoki jeziora bez używania wszystkich wielkich liter w nazwie schematu.
- Właściwości Spark ustawione na poziomie sesji nie są stosowane podczas zaplanowanego odświeżania linii danych.
- Tworzenie zmaterializowanego widoku jeziora z podróżą czasową delta nie jest obsługiwane.
- Instrukcje języka DML (Data Manipulation Language) nie są obsługiwane w przypadku zmaterializowanych widoków lake.
- Funkcje zdefiniowane przez użytkownika w
CREATE TABLE AS SELECTinstrukcjach (CTAS) nie są obsługiwane. - Nie można użyć widoków tymczasowych do zdefiniowania zmaterializowanych widoków jeziora.