โคลนตารางเดลต้า

คุณสามารถใช้คําสั่ง Delta Lake CLONE ใน Microsoft Fabric เพื่อสร้างสําเนาของตารางเดลต้า ณ จุดเวลาที่ระบุ โคลนจะจับตารางต้นทางตามที่มีอยู่เมื่อคุณเรียกใช้คําสั่ง หรือที่เวอร์ชันก่อนหน้าที่คุณระบุด้วยไวยากรณ์การเดินทางข้ามเวลา

การโคลนมีประโยชน์เมื่อคุณต้องการสําเนาตารางที่ปลอดภัยสําหรับการพัฒนา การตรวจสอบความถูกต้อง หรือการทดลอง ตารางต้นฉบับจะไม่ถูกแก้ไข และการเปลี่ยนแปลงที่คุณทํากับโคลนจะไม่ส่งผลต่อตารางต้นฉบับ

โคลนทําอะไร

โคลนสร้างตารางเดลต้าเป้าหมายจากสแนปช็อตตารางเดลต้าต้นทาง คุณสามารถ:

  • โคลนเวอร์ชันล่าสุดของตารางต้นฉบับ
  • โคลนเวอร์ชันตารางเฉพาะโดยใช้ VERSION AS OF
  • โคลนจุดเวลาที่เฉพาะเจาะจงโดยใช้ TIMESTAMP AS OF

เนื่องจากโคลนจะยึดตามสแนปช็อต จึงไม่ติดตามการเปลี่ยนแปลงในภายหลังในตารางต้นฉบับโดยอัตโนมัติ

โคลนตื้น

โคลนแบบตื้นจะสร้างตารางเดลต้าใหม่ที่อ้างอิงไฟล์ข้อมูลที่มีอยู่ของตารางต้นทาง Delta Lake คัดลอกข้อมูลเมตาของตารางในเวลาโคลน แต่จะไม่คัดลอกไฟล์ข้อมูลพื้นฐานไปยังที่เก็บข้อมูลใหม่

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

  • สร้างแซนด์บ็อกซ์สําหรับการพัฒนา
  • สคีมาการทดสอบหรือการเปลี่ยนแปลงการแปลงโดยไม่มีความเสี่ยง
  • เรียกใช้การทดสอบกับข้อมูลที่คล้ายกับการผลิต
  • สร้างสําเนาชั่วคราวเพื่อแก้ไขปัญหา
  • สร้างสแนปช็อต point-in-time สําหรับการตรวจสอบความถูกต้อง

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

Note

รองรับเฉพาะSHALLOW CLONEในโอเพนซอร์ส Delta Lake และ Fabric DEEP CLONE ไม่พร้อมใช้งาน

ไวยากรณ์

ใช้รูปแบบไวยากรณ์ต่อไปนี้เพื่อสร้างโคลนตารางเดลต้า

โคลนเวอร์ชันปัจจุบัน

CREATE TABLE target_table SHALLOW CLONE source_table;

โคลนเวอร์ชันเฉพาะ

CREATE TABLE target_table SHALLOW CLONE source_table VERSION AS OF 125;

โคลนจากจุดหนึ่ง

CREATE TABLE target_table SHALLOW CLONE source_table TIMESTAMP AS OF '2026-05-18T08:30:00Z';

แทนที่โคลนที่มีอยู่

ใช้เพื่อ CREATE OR REPLACE TABLE รีเฟรชเป้าหมายโคลนด้วยสแนปช็อตที่ใหม่กว่า:

CREATE OR REPLACE TABLE sandbox.sales_orders_test
SHALLOW CLONE operations.sales_orders;

ทําความเข้าใจสิ่งที่ถูกโคลน

คอมโพเนนต์ พฤติกรรม
ไฟล์ข้อมูล อ้างอิงจากไฟล์ OneLake ของตารางต้นฉบับ (ไม่ได้คัดลอก)
ข้อมูลพาร์ติชัน คัดลอก
เค้าร่าง คัดลอก
คุณสมบัติของตาราง คัดลอก
การพึ่งพาแหล่งที่มาหลังจากโคลน ใช่ - การโคลนขึ้นอยู่กับไฟล์ข้อมูลของแหล่งที่มาที่เหลืออยู่
ที่มา: ประวัติบันทึกเดลต้า ไม่ถูกคัดลอกไปยังประวัติตารางเป้าหมาย โคลนเริ่มบันทึกเดลต้าของตัวเอง

ใช้โคลนสําหรับสถานการณ์ทั่วไป

ใช้การโคลนตารางเดลต้าเมื่อคุณต้องการ:

  • สร้างสภาพแวดล้อม Sandbox สําหรับการพัฒนา
  • การเปลี่ยนแปลง Schema การทดสอบโดยไม่มีความเสี่ยงต่อตารางต้นทาง
  • ตรวจสอบความถูกต้องของการแปลงกับสแนปช็อตการผลิต
  • สร้างสําเนา point-in-time สําหรับการแก้ไขข้อบกพร่องหรือการตรวจสอบ
  • จัดเตรียมสแนปช็อตแบบอ่านอย่างเดียวสําหรับทีมดาวน์สตรีม

ข้อควรพิจารณาเกี่ยวกับ OneLake

โคลนแบบตื้นแชร์ไฟล์ OneLake พื้นฐานกับตารางต้นทาง การออกแบบนี้ทําให้โคลนตื้นรวดเร็วและประหยัดในการจัดเก็บ แต่ก็หมายความว่าโคลนขึ้นอยู่กับไฟล์ตารางต้นฉบับที่เหลืออยู่

โปรดใช้ความระมัดระวังเมื่อคุณเรียกใช้ VACUUM บนตารางต้นทาง หาก VACUUM ลบไฟล์ต้นฉบับที่โคลนตื้นยังคงอ้างอิงโคลนอาจพังได้เนื่องจากไฟล์เหล่านั้นไม่พร้อมใช้งานใน OneLake อีกต่อไป

เมื่อต้องการสร้างสําเนาอิสระที่คงทนซึ่งยังคงอยู่บน VACUUM แหล่งที่มา ให้พิจารณาคัดลอกข้อมูลด้วยการเขียนแบบเต็ม (CREATE TABLE ... AS SELECT) แทนการโคลน