Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
En este artículo, obtendrá información sobre la sintaxis de Spark SQL para las actividades relacionadas con las vistas de lago materializadas en Microsoft Fabric.
Creación de una vista de lago materializada
Puede definir una vista materializada del lago desde cualquier tabla o desde otra vista materializada del lago dentro de una casa de lago. En el código siguiente se describe la sintaxis para declarar una vista de lago materializada mediante 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
| Parámetro | Descripción |
|---|---|
MLV_Identifier |
Nombre de la vista materializada del lago. |
CONSTRAINT |
Palabra clave para definir una restricción de calidad de datos, seguida de un nombre definido por el usuario. La restricción se aplica en el nivel de la vista materializada del lago. |
CHECK |
Parámetro para aplicar una condición basada en determinados valores de columna. Obligatorio para usarlo cuando se define la restricción. |
ON MISMATCH |
Parámetro para especificar la acción que se va a realizar si se infringe la restricción. Las acciones posibles son DROP y FAIL. De forma predeterminada, sin esta cláusula, la acción es FAIL. |
PARTITIONED BY |
Parámetro para crear particiones basadas en la columna especificada. |
TBLPROPERTIES |
Lista de pares clave-valor para etiquetar la definición de la vista de lago materializada. |
COMMENT |
Instrucción para describir la vista materializada del lago. |
AS select_statement |
Consulte para rellenar los datos de la vista lago materializada mediante una SELECT instrucción . |
Examples
En el ejemplo siguiente se muestra la definición de una vista de lago materializada mediante la sintaxis 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
En el ejemplo siguiente se muestra la definición de una vista de lago materializada denominada customers_enriched mediante la combinación de una customers tabla con una orders tabla:
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;
Nota:
- Si el nombre del área de trabajo contiene espacios, escríbalo entre comillas invertidas:
`My Workspace`.lakehouse.schema.view_name - Los nombres de las vistas de lago materializadas no son sensibles a mayúsculas y se convierten en minúsculas (por ejemplo,
MyTestViewse convierte enmytestview)
En el ejemplo siguiente se define una vista de lago materializada denominada customers_enriched, particionada por la city columna :
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;
Obtener una lista de vistas materializadas del lago
Para obtener la lista de todas las vistas materializadas del lago en un lago, use el siguiente comando:
SHOW MATERIALIZED LAKE VIEWS <IN/FROM> Schema_Name;
Este es un ejemplo:
SHOW MATERIALIZED LAKE VIEWS IN silver;
Recuperar la instrucción que creó una vista de lago materializada
Para obtener la CREATE instrucción de una vista de lago materializada, use el siguiente comando:
SHOW CREATE MATERIALIZED LAKE VIEW MLV_Identifier;
Este es un ejemplo:
SHOW CREATE MATERIALIZED LAKE VIEW customers_enriched;
Actualizar una vista materializada de lago
Para actualizar la definición de una vista de lago materializada, debe quitarla y volver a crearla. La ALTER instrucción solo se admite para cambiar el nombre de una vista materializada del lago.
ALTER MATERIALIZED LAKE VIEW MLV_Identifier RENAME TO MLV_Identifier_New;
Este es un ejemplo:
ALTER MATERIALIZED LAKE VIEW customers_enriched RENAME TO customers_enriched_new;
Quitar una vista materializada del lago
Puede quitar una vista de lago materializada mediante la opción Eliminar en el explorador de objetos lakehouse o ejecutando el siguiente comando en el cuaderno:
DROP MATERIALIZED LAKE VIEW MLV_Identifier;
Este es un ejemplo:
DROP MATERIALIZED LAKE VIEW customers_enriched;
Nota:
Quitar o cambiar el nombre de una vista de lago materializada afecta a la vista de linaje y la actualización programada. Asegúrese de actualizar la referencia en todas las vistas de lago materializadas dependientes.
Limitaciones actuales
- No se admiten nombres de esquema con todas las letras mayúsculas. Puede seguir creando vistas materializadas del lago sin usar todas las letras mayúsculas en el nombre del esquema.
- Las propiedades de Spark establecidas en el nivel de sesión no se aplican durante una actualización de linaje programada.
- No se admite la creación de una vista materializada del lago con recorrido en tiempo delta.
- Las instrucciones del lenguaje de manipulación de datos (DML) no se admiten con vistas materializadas del lago.
- No se admiten funciones definidas por el usuario en
CREATE TABLE AS SELECTinstrucciones (CTAS). - No se pueden usar vistas temporales para definir vistas materializadas del lago.