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