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

บทความนี้ให้ไวยากรณ์ Spark SQL สําหรับการสร้าง รายการ เปลี่ยนชื่อ และลบวิวทะเลสาบที่ปรากฏใน Fabric

เคล็ดลับ

หากต้องการสร้างมุมมองทะเลสาบที่เป็นรูปธรรมครั้งแรก โปรดดู เริ่มต้นใช้งานมุมมองทะเลสาบที่เป็นรูปธรรม

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

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

ไวยากรณ์

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] 
)]
[(
    REFRESH_HINT <hint_name> UNIQUE (<column1> [, <column2>, ...])
)]
[PARTITIONED BY (col1, col2, ... )] 
[COMMENT "description or comment"] 
[TBLPROPERTIES ("key1"="val1", "key2"="val2", ... )] 
AS select_statement 

หมายเหตุ

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

พารามิเตอร์ คำอธิบาย
OR REPLACE เขียนทับมุมมองทะเลสาบที่เป็นรูปธรรมที่มีอยู่ด้วยชื่อเดียวกัน ใช้ร่วมกับ IF NOT EXISTS.
IF NOT EXISTS สร้างมุมมองทะเลสาบที่เป็นรูปธรรมก็ต่อเมื่อยังไม่มีอยู่ คําสั่งจะสําเร็จโดยไม่มีข้อผิดพลาดหากมีการกําหนดมุมมองไว้แล้ว ใช้ร่วมกับ OR REPLACE.
MLV_Identifier ชื่อของมุมมองทะเลสาบที่เป็นภาพ สามารถมีคุณสมบัติครบถ้วนเป็นworkspace.lakehouse.schema.name
CONSTRAINT ... CHECK กําหนดกฎคุณภาพข้อมูล CHECKส่วนคําสั่งระบุนิพจน์บูลีนที่แต่ละแถวต้องตอบสนอง คุณสามารถกําหนดข้อจํากัดได้หลายอย่าง
ON MISMATCH การดําเนินการเมื่อแถวละเมิดข้อจํากัด DROP ลบแถวอย่างเงียบ ๆ FAIL หยุดการรีเฟรชด้วยข้อผิดพลาด ค่าเริ่มต้นคือ FAIL.
REFRESH_HINT ประกาศคอลัมน์หนึ่งหรือมากกว่าที่ระบุแถวอย่างเฉพาะเจาะจงสําหรับการประมวลผลอัปเดตและลบแบบเพิ่มทีละน้อย (พรีวิว)
PARTITIONED BY คอลัมน์เพื่อแบ่งพาร์ติชันมุมมองทะเลสาบที่เป็นรูปธรรม ซึ่งสามารถปรับปรุงประสิทธิภาพการสืบค้นสําหรับการอ่านที่กรองได้
COMMENT คําอธิบายข้อความอิสระที่จัดเก็บพร้อมกับคําจํากัดความมุมมองทะเลสาบที่เป็นรูปธรรม
TBLPROPERTIES คู่คีย์-ค่าที่จัดเก็บเป็นข้อมูลเมตาในมุมมองทะเลสาบที่เป็นรูปธรรม
AS select_statement SELECTคิวรีที่กําหนดข้อมูลในมุมมองทะเลสาบที่เป็นรูปธรรม

ตัวอย่าง

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

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

ตัวอย่างต่อไปนี้สร้างมุมมองทะเลสาบที่เป็นรูปธรรมที่เรียบง่ายกว่า IF NOT EXISTSส่วนคําสั่งจะป้องกันข้อผิดพลาดหากมีมุมมองอยู่แล้ว ทําให้ปลอดภัยสําหรับสคริปต์การปรับใช้

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

เคล็ดลับ

จัดการการรีเฟรชมุมมองทะเลสาบที่เป็นรูปธรรมจากเลคเฮาส์ของคุณ

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

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

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

นําเข้าไฟล์ด้วย USING OneLake_Files

นอกจากการกําหนดมุมมองทะเลสาบที่สร้างขึ้นจากตารางแล้ว คุณยังสามารถกําหนดมุมมองที่นําเข้าไฟล์ CSV หรือ Parquet โดยตรงจาก OneLake ได้ มุมมอง การรับไฟล์ ใช้ USING OneLake_Files ร่วมกับโฟลเดอร์ OneLake จริง, ทางลัดโฟลเดอร์ OneLake หรือเส้นทางไฟล์เดียว คุณสามารถใช้ FROM-less AS SELECT clause เพื่อกรอง จัดรูปร่าง และรวมแหล่งข้อมูลเมื่อนําเข้าได้

ตารางต่อไปนี้แสดงไวยากรณ์ที่ใช้กับแต่ละสไตล์การเขียน:

แอสเพ็กต์ มุมมองทะเลสาบแบบวัตถุที่อิงตาราง มุมมองทะเลสาบที่สร้างขึ้นในรูปแบบไฟล์
แหล่งข้อมูลของ โต๊ะหรือภาพวิวทะเลสาบที่สร้างขึ้นจริง โฟลเดอร์ OneLake แบบกายภาพ, ทางลัดโฟลเดอร์ OneLake หรือไฟล์เดียว
คำนิยาม AS select_statement USING OneLake_Files + OPTIONS + ตัวเลือก FROM-less AS SELECT
รูปแบบ ตารางที่สามารถสอบถามได้ทุกตาราง CSV, ปาร์เก้
เค้าร่าง ได้มาจาก SELECT schema_mode = DYNAMIC หรือ FIXED
สายพันธุ์ต้นทาง ตาราง/มุมมองต้นน้ํา ตําแหน่งต้นทาง;สามารถฉาย __filepath__ คอลัมน์เมตาดาต้าต้นทางได้หากต้องการการติดตามไฟล์ต่อแถว
เลเยอร์ทั่วไป เงิน ทอง Bronze
ข้อจํากัดด้านคุณภาพของข้อมูล ได้รับการสนับสนุน รองรับขณะนําเข้าข้อมูล

ไวยากรณ์

CREATE [OR REPLACE] MATERIALIZED LAKE VIEW [IF NOT EXISTS] [workspace.lakehouse.schema].MLV_Identifier
[(
    CONSTRAINT constraint_name CHECK (condition) ON MISMATCH DROP | FAIL
)]
USING OneLake_Files
OPTIONS (
    'format' = 'csv' | 'parquet',
    'path'   = 'abfss://<workspace>@<host>/<lakehouse>/Files/<folder-or-file>',
    ['header' = 'true' | 'false',]
    ['delimiter' = '<char>',]
    [...]
)
[PARTITIONED BY (column_name [, ...])]
[COMMENT "description"]
[TBLPROPERTIES (
    'schema_mode'  = 'DYNAMIC' | 'FIXED',
    'refresh_mode' = 'APPEND_ONLY' | 'FULL' | 'MIRROR'
)]
[AS SELECT select_expression [...] [WHERE condition]
    [GROUP BY expression [, ...]] [HAVING condition]]

หมายเหตุ

อย่าระบุ FROM clause ในการนําเข้า AS SELECTไฟล์ ซอร์สโค้ดถูกผูกมัดไว้แล้วด้วยUSING OneLake_Filespathตัวเลือก

อ้างอิง OPTIONS

ตัวเลือก นำไปใช้กับ คำอธิบาย
format CSV, ปาร์เก้ รูปแบบไฟล์ต้นทาง ค่าที่รองรับคือ csv และparquet
path CSV, ปาร์เก้ โฟลเดอร์ OneLake แบบกายภาพ, ทางลัดโฟลเดอร์ OneLake หรือเส้นทาง ABFSS แบบไฟล์เดียว ไฟล์ที่มีอยู่ในโฟลเดอร์ย่อยซ้อนกันจะถูกนําเข้าแบบวนซ้ําเมื่อสร้างมุมมอง ใช้เครื่องหมายสแลชท้ายโฟลเดอร์ หรือใส่นามสกุลไฟล์สําหรับไฟล์เดียว
header CSV ระบุว่าแถวแรกของแต่ละไฟล์มีชื่อคอลัมน์หรือไม่ ค่าเริ่มต้นเป็นfalse
delimiter CSV ตัวคั่นฟิลด์ (เช่น , หรือ |) ค่าเริ่มต้นเป็นเครื่องหมายจุลภาค
sep CSV ชื่อเล่นสําหรับ delimiter.
quote CSV อักขระที่ใช้อ้างอิงค่า
escape CSV อักขระที่ใช้หลบหนีคําพูดภายในค่าที่อ้างอิงไว้แล้ว
nullValue CSV สตริงที่แสดงค่า null
ignoreLeadingWhiteSpace CSV ว่าจะลบช่องว่างนําหน้าออกจากค่าหรือไม่
ignoreTrailingWhiteSpace CSV ว่าจะลบช่องว่างท้ายออกจากค่าหรือไม่
multiLine CSV ว่าค่าที่ใส่เครื่องหมายอัญประกาศสามารถครอบคลุมหลายบรรทัดได้หรือไม่ ค่าเริ่มต้นเป็นfalse
dateFormat CSV รูปแบบวันที่ Java ที่ใช้ในการแยกแยะค่าของวันที่ เช่น MM/dd/yyyy.
timestampFormat CSV รูปแบบ timestamp ของ Java ใช้ในการแยกวิเคราะห์ค่า timestamp
encoding CSV การเข้ารหัสอักขระ เช่น UTF-8, ISO-8859-1, , UTF-16หรือ Windows-1252.
comment CSV อักขระที่ทําเครื่องหมายบรรทัดเป็นคอมเมนต์เพื่อข้าม
inferSchema CSV จะอนุมานประเภทคอลัมน์หรือไม่ เมื่อ falseคอลัมน์จะถูกอ่านเป็นสตริง ใช้ FIXED โหมดสคีมาเมื่อปิดการอนุมาน
columnNameOfCorruptRecord CSV ชื่อคอลัมน์สตริงที่รับข้อความดิบสําหรับแถวที่ผิดรูป แถวที่ถูกต้องมีอยู่ใน NULL คอลัมน์นี้ รวมคอลัมน์นี้ใน AS SELECT ผลลัพธ์

Important

Fabric จัดการกับการจัดการแถวที่ผิดรูป อย่าตั้งค่าตัวเลือก Spark CSV mode

อ้างอิงคุณสมบัติ TBL

ทรัพย์สิน ค่า คำอธิบาย
schema_mode DYNAMIC (ค่าเริ่มต้น), FIXED DYNAMIC เพิ่มคอลัมน์ที่ค้นพบใหม่และเขียน NULL เมื่อไฟล์ไม่มีคอลัมน์ที่กําหนดไว้ FIXED ตรึงสคีมาไว้ที่การสร้างและปฏิเสธการลอยตัวที่ตามมา
refresh_mode APPEND_ONLY, FULL, MIRROR สําหรับโฟลเดอร์ APPEND_ONLY จะเพิ่มแถวจากไฟล์ FULL ใหม่ ประมวลผลโฟลเดอร์ปัจจุบันเป็น snapshot MIRROR และสะท้อนการเพิ่มและลบไฟล์ ซอร์สไฟล์เดียวใช้ FULL ความหมายของการรีเจรช

ตัวอย่าง

ตัวอย่างต่อไปนี้นําเข้าโฟลเดอร์ไฟล์ CSV ที่มีแถวหัวเรื่องเข้าสู่มุมมองบรอนซ์ แต่ละแถวจะได้รับ __filepath__ คอลัมน์ที่บันทึกไฟล์ต้นทางที่อ่านมา

CREATE MATERIALIZED LAKE VIEW bronze.raw_orders
USING OneLake_Files
OPTIONS (
    'format' = 'csv',
    'path'   = 'abfss://SalesWorkspace@onelake.dfs.fabric.microsoft.com/SalesLake.Lakehouse/Files/orders/',
    'header' = 'true'
)
TBLPROPERTIES (
    'schema_mode'  = 'DYNAMIC',
    'refresh_mode' = 'APPEND_ONLY'
);

จากนั้นคุณสามารถสร้างวิวทะเลสาบที่สร้างขึ้นเป็นสีเงินและทองด้านล่าง โดยเลือกจาก bronze.raw_orders;Fabric จะบันทึกการพึ่งพาและรีเฟรชตามลําดับ หากต้องการติดตามไฟล์ผ่าน pipeline ดูที่ Manage Fabric materialized lake views lineage

กรอง แปลง และตรวจสอบไฟล์ระหว่างการนําเข้าข้อมูล

ใช้ FROM-less AS SELECT เพื่อเลือกคอลัมน์ กรองแถว แปลงค่า เพิ่มคอลัมน์ที่คํานวณได้ รวมข้อมูล หรือใช้ฟังก์ชันหน้าต่าง ข้อจํากัดการนําเข้าไฟล์จะทํางานกับผลลัพธ์ที่ฉาย ดังนั้นข้อจํากัดจึงสามารถอ้างอิงถึงนามแฝงที่คํานวณได้

ตัวอย่างต่อไปนี้จับแถวที่ผิดรูป ใช้กฎคุณภาพข้อมูลระดับแถว กรองอินพุต และแบ่งส่วนผลลัพธ์ที่เกิดขึ้นจริง:

CREATE MATERIALIZED LAKE VIEW silver.valid_orders
(
    CONSTRAINT positive_amount
        CHECK (order_amount > 0) ON MISMATCH DROP
)
USING OneLake_Files
OPTIONS (
    'format' = 'csv',
    'path' = 'abfss://SalesWorkspace@onelake.dfs.fabric.microsoft.com/SalesLake.Lakehouse/Files/orders/',
    'header' = 'true',
    'multiLine' = 'true',
    'dateFormat' = 'MM/dd/yyyy',
    'timestampFormat' = 'MM/dd/yyyy HH:mm:ss',
    'encoding' = 'ISO-8859-1',
    'comment' = '#',
    'columnNameOfCorruptRecord' = '_corrupt_record'
)
PARTITIONED BY (region)
COMMENT "Valid orders ingested from CSV"
TBLPROPERTIES (
    'schema_mode' = 'DYNAMIC',
    'refresh_mode' = 'FULL'
)
AS SELECT
    order_id,
    region,
    CAST(amount AS DECIMAL(18,2)) AS order_amount,
    CASE WHEN amount >= 1000 THEN 'high' ELSE 'standard' END AS order_band,
    _corrupt_record,
    __filepath__,
    current_timestamp() AS ingested_at;

ค้นหาแถวที่จับได้เพื่อการตรวจสอบหรือแก้ไข:

SELECT
    _corrupt_record,
    __filepath__,
    ingested_at
FROM silver.valid_orders
WHERE _corrupt_record IS NOT NULL;

คุณยังสามารถสร้างผลลัพธ์แบบรวมหรือแบบหน้าต่างได้โดยตรงจากไฟล์:

CREATE MATERIALIZED LAKE VIEW gold.sales_by_region
USING OneLake_Files
OPTIONS (
    'format' = 'parquet',
    'path' = 'abfss://SalesWorkspace@onelake.dfs.fabric.microsoft.com/SalesLake.Lakehouse/Files/sales/'
)
TBLPROPERTIES ('schema_mode' = 'DYNAMIC', 'refresh_mode' = 'FULL')
AS SELECT
    region,
    COUNT(*) AS order_count,
    SUM(amount) AS total_amount,
    AVG(amount) AS average_amount
GROUP BY region
HAVING SUM(amount) > 0;

นิพจน์ที่รองรับได้แก่ ฟังก์ชันคํานวณมาตรฐานของ Spark SQL, ฟังก์ชันรวม, สถิติ, หน้าต่าง และการจัดอันดับ

นําเข้าไฟล์เดียว

ตั้งค่า path เป็นไฟล์ CSV หรือ Parquet แทนโฟลเดอร์ ซอร์สไฟล์เดียวจะใช้ FULL ความหมายของการรีเฟรช ดังนั้นการแทนที่ไฟล์จะแทนที่ผลลัพธ์ที่เกิดขึ้นจริง

CREATE MATERIALIZED LAKE VIEW bronze.monthly_snapshot
USING OneLake_Files
OPTIONS (
    'format' = 'parquet',
    'path' = 'abfss://SalesWorkspace@onelake.dfs.fabric.microsoft.com/SalesLake.Lakehouse/Files/snapshots/2026-08.parquet'
)
TBLPROPERTIES (
    'schema_mode' = 'FIXED',
    'refresh_mode' = 'FULL'
);

หมายเหตุ

เมื่อคุณใช้ FIXED schema และโฟลเดอร์ต้นทางมีไฟล์หลายไฟล์ที่มี schema ต่างกัน ในขณะเริ่มต้น CREATE, view จะล้มเหลวเพราะไม่สามารถกระทบ schema ที่แก้ไขได้เพียงชุดเดียว มุมมองจุดที่ FIXED ไฟล์ที่ใช้สคีมาเดียวกัน หรือใช้ DYNAMIC. นี่เป็นข้อจํากัดที่รู้จักกันดี คล้ายกับพฤติกรรมของสคีมาแบบคงที่ในการแปลงทางลัด

Important

เส้นทางต้นทางที่มีพื้นที่ดิบหรือไม่ %20 ได้รับการยอมรับในขณะนั้น คุณสามารถใช้ทางลัดโฟลเดอร์ OneLake เป็นแหล่งที่มา: การสร้างจะนําเข้าไฟล์ที่มีอยู่ที่ทางลัดรากและในโฟลเดอร์ซ้อน Managed refresh จะค้นหาไฟล์ใหม่ที่เพิ่มที่ root ทางลัด แต่จะไม่ค้นหาไฟล์ใหม่ที่เพิ่มในโฟลเดอร์ทางลัดซ้อนแบบวนซ้ํา

เคล็ดลับ

หากต้องการประมวลผลโฟลเดอร์ต้นทางทั้งหมดตามต้องการ ให้รัน REFRESH MATERIALIZED LAKE VIEW <name> FULL;. เช่นเดียวกับมุมมองแบบตาราง อย่าจัดการการรีเฟรชอย่างต่อเนื่องจากสมุดบันทึก — ใช้ Lineage และ Scheduled refresh เพื่อเก็บไฟล์ใหม่โดยอัตโนมัติ

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

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

SHOW MATERIALIZED LAKE VIEWS <IN/FROM> Schema_Name;

ตัวอย่างเช่น เมื่อต้องการแสดงรายการมุมมองทะเลสาบที่เป็นรูปธรรมทั้งหมดใน silver Schema:

SHOW MATERIALIZED LAKE VIEWS IN silver;

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

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

SHOW CREATE MATERIALIZED LAKE VIEW MLV_Identifier;

ตัวอย่างเช่น เพื่อดึงคําจํากัดความของ products_with_sales:

SHOW CREATE MATERIALIZED LAKE VIEW products_with_sales;

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

หากต้องการแก้ไขคําจํากัดความของมุมมองทะเลสาบที่เป็นรูปธรรม (เช่น SELECT การสืบค้น ข้อจํากัด หรือการแบ่งพาร์ติชัน) ให้ใช้คําสั่ง CREATE OR REPLACE หรือคุณสามารถ ลบ มุมมองที่มีอยู่และสร้างใหม่ได้

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

หากต้องการเปลี่ยนชื่อมุมมองทะเลสาบที่เป็นรูปธรรมที่มีอยู่ ให้ใช้ ALTER MATERIALIZED LAKE VIEW คําสั่ง ไวยากรณ์คือ:

ALTER MATERIALIZED LAKE VIEW MLV_Identifier RENAME TO MLV_Identifier_New;

ตัวอย่างเช่น หากต้องการเปลี่ยนชื่อ products_with_sales:

ALTER MATERIALIZED LAKE VIEW products_with_sales RENAME TO products_with_sales_v2;

หมายเหตุ

คําสั่งนี้ ALTER MATERIALIZED LAKE VIEW รองรับเฉพาะการเปลี่ยนชื่อเท่านั้น หากต้องการแก้ไขข้อกําหนดหรือคุณสมบัติอื่นๆ (เช่น SELECT คิวรี ข้อจํากัด หรือการแบ่งพาร์ติชัน) โปรดดู อัปเดตมุมมองทะเลสาบที่เป็นรูปธรรม

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

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

DROP MATERIALIZED LAKE VIEW MLV_Identifier;

ตัวอย่างเช่น หากต้องการลบ products_with_sales:

DROP MATERIALIZED LAKE VIEW products_with_sales;

หมายเหตุ

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

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

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

  • ชื่อ Schema — ไม่รองรับชื่อ Schema ตัวพิมพ์ใหญ่ทั้งหมด (เช่น MYSCHEMA) ใช้ตัวพิมพ์แบบผสมหรือตัวพิมพ์เล็ก
  • ไม่มีคําสั่งภาษาการจัดการข้อมูล (DML) — คุณไม่สามารถเรียกใช้ INSERTหรือUPDATEDELETEคําสั่งกับมุมมองทะเลสาบที่เป็นรูปธรรมได้ ข้อมูลจะถูกเติมข้อมูลโดย SELECT คิวรีในข้อกําหนดเท่านั้น
  • ไม่มีคิวรีการเดินทางข้ามเวลา — SELECT คิวรีในข้อกําหนดมุมมองทะเลสาบที่เป็นรูปธรรมไม่สามารถใช้ไวยากรณ์ การเดินทางข้ามเวลา ของเดลต้าเลคได้ (เช่น VERSION AS OF หรือ TIMESTAMP AS OF)
  • ไม่มีฟังก์ชันที่ผู้ใช้กําหนด — ฟังก์ชันที่ผู้ใช้กําหนดเอง (UDF) ไม่ได้รับการสนับสนุนใน SELECT คิวรีที่กําหนดมุมมองทะเลสาบที่เป็นรูปธรรม
  • ไม่มีมุมมองชั่วคราวเป็นแหล่งที่มา — SELECT การสืบค้นสามารถอ้างอิงตารางและมุมมองทะเลสาบที่เป็นรูปธรรมอื่นๆ ได้ แต่ไม่ใช่มุมมองชั่วคราว
  • คุณสมบัติ Spark ระดับเซสชัน — คุณสมบัติการกําหนดค่า Spark ที่ตั้งค่าที่ระดับเซสชัน (ตัวอย่างเช่น spark.conf.set(...)) จะไม่ถูกนําไปใช้ระหว่างการรีเฟรชตามกําหนดการ ตั้งค่าคุณสมบัติที่ระดับเลคเฮาส์หรือพื้นที่ทํางานแทน
  • การรับไฟล์ — มุมมองการรับข้อมูลรองรับเฉพาะ CSV และ Parquet เท่านั้น FIXEDมุมมอง -schema จะล้มเหลวหากโฟลเดอร์ต้นทางเก็บไฟล์ที่มี schema ต่างกันขณะสร้าง เส้นทางต้นทางไม่สามารถมีช่องว่างได้ ทางลัดโฟลเดอร์ OneLake รองรับเป็นแหล่งข้อมูล แต่ managed refresh จะไม่ค้นหาไฟล์ที่เพิ่มภายใต้โฟลเดอร์ทางลัดซ้อนแบบวนซ้ํา