แชร์ผ่าน


การอ้างอิง Spark SQL สําหรับมุมมองทะเลสาบที่เป็นรูปธรรม

ในบทความนี้ คุณจะได้เรียนรู้เกี่ยวกับไวยากรณ์ Spark SQL สําหรับกิจกรรมที่เกี่ยวข้องกับมุมมองทะเลสาบที่เป็นรูปธรรมใน Microsoft Fabric

สร้างมุมมองทะเลสาบที่เป็นรูปธรรม

คุณสามารถกําหนดมุมมองทะเลสาบที่เป็นรูปธรรมได้จากตารางใดก็ได้หรือจากมุมมองทะเลสาบที่เป็นรูปธรรมอื่นภายในเลคเฮาส์ โค้ดต่อไปนี้สรุปไวยากรณ์สําหรับการประกาศมุมมองทะเลสาบที่เป็นรูปธรรมโดยใช้ 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 

อาร์กิวเมนต์

พารามิเตอร์ คำอธิบาย
MLV_Identifier ชื่อของมุมมองทะเลสาบที่เป็นภาพ
CONSTRAINT คําสําคัญเพื่อกําหนดข้อจํากัดด้านคุณภาพข้อมูล ตามด้วยชื่อที่ผู้ใช้กําหนดเอง ข้อจํากัดนี้ใช้ที่ระดับของมุมมองทะเลสาบที่เป็นรูปธรรม
CHECK พารามิเตอร์สําหรับการบังคับใช้เงื่อนไขตามค่าคอลัมน์บางค่า จําเป็นต้องใช้เมื่อคุณกําหนดข้อจํากัด
ON MISMATCH พารามิเตอร์สําหรับระบุการดําเนินการที่จะดําเนินการหากมีการละเมิดข้อจํากัด การกระทําที่เป็นไปได้คือ DROP และ FAIL. โดยค่าเริ่มต้น หากไม่มีส่วนคําสั่งนี้ การกระทําคือ FAIL.
PARTITIONED BY พารามิเตอร์สําหรับการสร้างพาร์ติชันตามคอลัมน์ที่ระบุ
TBLPROPERTIES รายการคู่คีย์/ค่าสําหรับการติดแท็กคําจํากัดความของมุมมองทะเลสาบที่เป็นรูปธรรม
COMMENT คําชี้แจงเพื่ออธิบายมุมมองทะเลสาบที่เป็นรูปธรรม
AS select_statement คิวรีเพื่อเติมข้อมูลในมุมมองทะเลสาบที่เป็นรูปธรรมโดยใช้ SELECT คําสั่ง

ตัวอย่าง

ตัวอย่างต่อไปนี้แสดงให้เห็นถึงคําจํากัดความของมุมมองทะเลสาบที่เป็นรูปธรรมโดยใช้ไวยากรณ์แทนที่

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

ตัวอย่างต่อไปนี้แสดงให้เห็นถึงคําจํากัดความของมุมมองทะเลสาบที่เป็นรูปธรรมที่ระบุชื่อ customers_enriched โดยการรวม customers ตารางกับ 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; 

หมายเหตุ

  • หากชื่อพื้นที่ทํางานของคุณมีช่องว่าง ให้ใส่เครื่องหมายแบ็คติ๊ก: `My Workspace`.lakehouse.schema.view_name
  • ชื่อ Lake View ที่เป็นรูปธรรมจะคํานึงถึงตัวพิมพ์เล็กและตัวพิมพ์เล็ก (เช่น MyTestView กลายเป็น mytestview)

ตัวอย่างต่อไปนี้กําหนดมุมมองทะเลสาบที่เป็นรูปธรรมที่เรียกว่า customers_enrichedแบ่งพาร์ติชันตาม 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; 

ดูรายการวิวทะเลสาบที่เป็นรูปธรรม

หากต้องการรับรายการมุมมองทะเลสาบที่เป็นรูปธรรมทั้งหมดในเลคเฮาส์ ให้ใช้คําสั่งต่อไปนี้:

SHOW MATERIALIZED LAKE VIEWS <IN/FROM> Schema_Name;

ตัวอย่างมีดังนี้:

SHOW MATERIALIZED LAKE VIEWS IN silver;

ดึงคําสั่งที่สร้างมุมมองทะเลสาบที่เป็นรูปธรรม

เมื่อต้องการรับคําสั่ง CREATE สําหรับมุมมองทะเลสาบที่เป็นรูปธรรม ให้ใช้คําสั่งต่อไปนี้:

SHOW CREATE MATERIALIZED LAKE VIEW MLV_Identifier;

ตัวอย่างมีดังนี้:

SHOW CREATE MATERIALIZED LAKE VIEW customers_enriched;

อัปเดตมุมมองทะเลสาบที่เป็นรูปธรรม

เมื่อต้องการอัปเดตคําจํากัดความของมุมมองทะเลสาบที่เป็นรูปธรรม คุณต้องวางมุมมองนั้นและสร้างใหม่ คําสั่งนี้ ALTER รองรับเฉพาะการเปลี่ยนชื่อมุมมองทะเลสาบที่เป็นรูปธรรมเท่านั้น

ALTER MATERIALIZED LAKE VIEW MLV_Identifier RENAME TO MLV_Identifier_New;

ตัวอย่างมีดังนี้:

ALTER MATERIALIZED LAKE VIEW customers_enriched RENAME TO customers_enriched_new;

วางมุมมองทะเลสาบที่เป็นรูปธรรม

คุณสามารถวางมุมมองทะเลสาบที่เป็นรูปธรรมได้โดยใช้ตัวเลือก ลบ ในตัวสํารวจวัตถุเลคเฮาส์ หรือโดยการเรียกใช้คําสั่งต่อไปนี้ในสมุดบันทึก:

DROP MATERIALIZED LAKE VIEW MLV_Identifier;

ตัวอย่างมีดังนี้:

DROP MATERIALIZED LAKE VIEW customers_enriched;

หมายเหตุ

การวางหรือเปลี่ยนชื่อมุมมองทะเลสาบที่เป็นรูปธรรมมีผลต่อมุมมองสายข้อมูลและการรีเฟรชตามกําหนดการ อย่าลืมอัปเดตการอ้างอิงในมุมมองทะเลสาบที่เป็นรูปธรรมขึ้นกันทั้งหมด

ข้อจํากัดปัจจุบัน

  • ไม่รองรับชื่อ Schema ที่มีตัวพิมพ์ใหญ่ทั้งหมด คุณสามารถสร้างมุมมองทะเลสาบที่เป็นรูปธรรมต่อไปได้โดยไม่ต้องใช้ตัวพิมพ์ใหญ่ทั้งหมดในชื่อสคีมา
  • คุณสมบัติ Spark ที่ตั้งค่าไว้ที่ระดับเซสชันจะไม่ถูกนําไปใช้ระหว่างการรีเฟรชสายเลือดตามกําหนดการ
  • ไม่รองรับการสร้างมุมมองทะเลสาบที่เป็นรูปธรรมด้วยการเดินทางข้ามเวลาของเดลต้า
  • คําสั่ง Data Manipulation Language (DML) ไม่ได้รับการสนับสนุนกับมุมมองทะเลสาบที่เป็นรูปธรรม
  • ไม่รองรับฟังก์ชันที่ CREATE TABLE AS SELECT ผู้ใช้กําหนดในคําสั่ง (CTAS)
  • คุณไม่สามารถใช้มุมมองชั่วคราวเพื่อกําหนดมุมมองทะเลสาบที่เป็นรูปธรรมได้