แชร์ผ่าน


เปิดข้อกําหนดและรูปแบบของโซนเชื่อมโยงไปถึงมิเรอร์

บทความนี้แสดงข้อกําหนดในการดําเนินการของโซนเชื่อมโยงไปถึงและตาราง/คอลัมน์สําหรับการทํามิเรอร์แบบเปิดใน Microsoft Fabric

สำคัญ

คุณลักษณะนี้อยู่ในตัวอย่าง

เมื่อคุณสร้างฐานข้อมูลมิเรอร์เปิดของคุณผ่านพอร์ทัล Fabric หรือ API สาธารณะในพื้นที่ทํางาน Fabric ของคุณ คุณจะได้รับ URL ของโซนเริ่มต้นใน OneLake ในหน้าแรกของรายการฐานข้อมูลแบบมิเรอร์ของคุณ โซนเชื่อมโยงไปถึงนี้คือที่ที่แอปพลิเคชันของคุณสร้างไฟล์เมตาดาต้าและข้อมูลที่ดินในรูปแบบ Parquet (ไม่บีบอัด Snappy, GZIP, ZSTD)

ภาพหน้าจอจากพอร์ทัล Fabric ที่แสดงตําแหน่งที่ตั้ง URL ของโซนเริ่มต้นในโฮมเพจของรายการฐานข้อมูลแบบมิเรอร์

โซนเชื่อมโยงไปถึง

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

ตัวอย่างเช่น ถ้าคุณมีตาราง (Table A, Table B, Table C) ที่จะสร้างในโซนเริ่มต้น ให้สร้างโฟลเดอร์เช่น URL ต่อไปนี้:

  • https://onelake.dfs.fabric.microsoft.com/<workspace id>/<mirrored database id>/Files/LandingZone/TableA
  • https://onelake.dfs.fabric.microsoft.com/<workspace id>/<mirrored database id>/Files/LandingZone/TableB
  • https://onelake.dfs.fabric.microsoft.com/<workspace id>/<mirrored database id>/Files/LandingZone/TableC

ไฟล์เมตาดาต้าในโซนเริ่มต้น

ทุกโฟลเดอร์ตารางต้องมี _metadata.json ไฟล์

ไฟล์เมตาดาต้าของตารางนี้ประกอบด้วยระเบียน JSON เพื่อระบุเฉพาะคอลัมน์คีย์ที่ไม่ซ้ํากันเป็น keyColumnsในขณะนี้

ตัวอย่างเช่น เพื่อตรวจนับคอลัมน์ C1 และ C2 เป็นคีย์ที่ไม่ซ้ํากันแบบผสมสําหรับตาราง:

{
   "keyColumns" : ["C1", "C2"]
}

ถ้า keyColumns ไม่ได้ระบุ หรือ _metadata.json จะไม่สามารถอัปเดต/ลบได้ ไฟล์นี้สามารถเพิ่มได้ทุกเมื่อ แต่ไม่สามารถเปลี่ยนแปลงได้เมื่อเพิ่ม keyColumns แล้ว

ไฟล์ข้อมูลและรูปแบบในโซนเชื่อมโยงไปถึง

การเปิดมิเรอร์รองรับ Parquet เป็นรูปแบบไฟล์โซนเชื่อมโยงไปถึงที่มีหรือไม่มีการบีบอัด รูปแบบการบีบอัดที่ได้รับการสนับสนุนได้แก่ Snappy, GZIP และ ZSTD

ไฟล์ Parquet ทั้งหมดที่เขียนไปยังโซนเชื่อมโยงไปถึงมีรูปแบบต่อไปนี้:

<RowMarker><DataColumns>

  • RowMarker: ชื่อคอลัมน์คือ __rowMarker__ (รวมถึงขีดล่างสองตัวก่อนและหลัง rowMarker)

    • RowMaker ค่า:
      • 0 สําหรับแทรก
      • 1 สําหรับอัปเดต
      • 2 สําหรับ DELETE
      • 4 สําหรับ UPSERT
  • ลําดับแถว: บันทึกทั้งหมดในไฟล์ควรอยู่ในลําดับธรรมชาติตามที่นําไปใช้ในการทําธุรกรรม ซึ่งมีความสําคัญสําหรับแถวเดียวกันที่ได้รับการอัปเดตหลายครั้ง การเปิดการมิเรอร์ใช้การเปลี่ยนแปลงโดยใช้ลําดับในไฟล์

  • ลําดับไฟล์: ไฟล์ควรถูกเพิ่มในจํานวนที่เพิ่มขึ้นเป็นตัวกระตุ้น

  • ชื่อไฟล์: ชื่อไฟล์คือ 20 หลัก เช่น 00000000000000000001.parquet สําหรับไฟล์แรก และ 00000000000000000002.parquet สําหรับไฟล์ที่สอง ชื่อไฟล์ควรเป็นตัวเลขแบบต่อเนื่อง ไฟล์จะถูกลบโดยบริการมิเรอร์โดยอัตโนมัติ แต่ไฟล์สุดท้ายจะถูกทิ้งไว้เพื่อให้ระบบผู้เผยแพร่สามารถอ้างอิงเพื่อเพิ่มไฟล์ถัดไปตามลําดับ

การโหลดเริ่มต้น

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

การเปลี่ยนแปลงแบบเพิ่มหน่วย

การเปิดการมิเรอร์จะอ่านการเปลี่ยนแปลงแบบเพิ่มหน่วยตามลําดับ และนําไปใช้กับตาราง Delta เป้าหมาย ลําดับจะโดยนัยในบันทึกการเปลี่ยนแปลงและตามลําดับของไฟล์

แถวที่อัปเดตต้องมีข้อมูลแถวทั้งหมดที่มีคอลัมน์ทั้งหมด

นี่คือตัวอย่างข้อมูล parquet ของประวัติแถวเพื่อเปลี่ยน EmployeeLocation สําหรับ EmployeeID E0001 จาก Redmond เป็น Bellevue ในสถานการณ์ EmployeeID นี้ มีการทําเครื่องหมายคอลัมน์เป็นคอลัมน์หลักใน ไฟล์เมตาดาต้าในโซนเริ่มต้น

__rowMarker__,EmployeeID,EmployeeLocation
0,E0001,Redmond
0,E0002,Redmond
0,E0003,Redmond
1,E0001,Bellevue

ถ้ามีการอัปเดตคอลัมน์คีย์ ระบบควรแสดงคอลัมน์หลัก DELETE ในคอลัมน์คีย์ก่อนหน้าและแทรกแถวด้วยคีย์และข้อมูลใหม่ ตัวอย่างเช่น ประวัติแถวเพื่อเปลี่ยนตัว RowMarker ระบุที่ไม่ซ้ํากันสําหรับ EmployeeID E0001 เป็น E0002 คุณไม่จําเป็นต้องใส่ข้อมูลคอลัมน์ทั้งหมดสําหรับแถว DELETE เฉพาะคอลัมน์หลักเท่านั้น

__rowMarker__,EmployeeID,EmployeeLocation
0,E0001,Bellevue
2,E0001,NULL
0,E0002,Bellevue

การดําเนินการตาราง

การเปิดการมิเรอร์สนับสนุนการดําเนินการตาราง เช่น เพิ่ม วาง และเปลี่ยนชื่อตาราง

เพิ่มตาราง

เปิดมิเรอร์รับตารางใด ๆ ที่เพิ่มไปยังโซนเชื่อมโยงไปถึงโดยแอปพลิเคชัน เปิดการสแกนมิเรอร์เพื่อหาตารางใหม่ในการทําซ้ําทุก ครั้ง

ทิ้งตาราง

การเปิดการมิเรอร์จะติดตามชื่อโฟลเดอร์ ถ้ามีการลบโฟลเดอร์ตาราง การเปิดการมิเรอร์จะลบตารางในฐานข้อมูลที่มิเรอร์

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

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

เปลี่ยนชื่อตาราง

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

Schema

สามารถระบุเส้นทางตารางภายในโฟลเดอร์ schema ได้ โซนเริ่มต้นของ Schema ควรมี <schemaname>.schema ชื่อโฟลเดอร์ อาจมีหลายสคีมา และอาจมีหลายตารางใน Schema

ตัวอย่างเช่น ถ้าคุณมี schema (Schema1, Schema2) และตาราง (Table A, Table B, Table C) ที่จะสร้างในโซนเริ่มต้น ให้สร้างโฟลเดอร์เช่นเส้นทางต่อไปนี้ใน OneLake:

  • https://onelake.dfs.fabric.microsoft.com/<workspace id>/<mirrored database id>/Files/LandingZone/Schema1.schema/TableA
  • https://onelake.dfs.fabric.microsoft.com/<workspace id>/<mirrored database id>/Files/LandingZone/Schema1.schema/TableB
  • https://onelake.dfs.fabric.microsoft.com/<workspace id>/<mirrored database id>/Files/LandingZone/Schema2.schema/TableC

การดําเนินการคอลัมน์ตารางและคอลัมน์

ชนิดคอลัมน์

  • ประเภทของปาร์เก้แบบง่ายได้รับการสนับสนุนในโซนเชื่อมโยงไปถึง
  • ควรเขียนชนิดที่ซับซ้อนเป็นสตริง JSON
  • ประเภทที่ซับซ้อนไบนารีเช่นภูมิศาสตร์รูปภาพ ฯลฯ สามารถจัดเก็บเป็นประเภทไบนารีในโซนเชื่อมโยงไปถึง

เพิ่มคอลัมน์

หากมีการเพิ่มคอลัมน์ใหม่ไปยังไฟล์ parquet การเปิดการมิเรอร์จะเพิ่มคอลัมน์ไปยังตาราง delta

ลบคอลัมน์

หากคอลัมน์ถูกปล่อยจากไฟล์บันทึกใหม่ ให้เปิดมิเรอร์เรอร์จัดเก็บ NULL สําหรับคอลัมน์เหล่านั้นในแถวใหม่ และแถวเก่ามีคอลัมน์อยู่ในข้อมูล หากต้องการลบคอลัมน์ ให้ วางตาราง และสร้างโฟลเดอร์ตารางในโซนเริ่มต้นอีกครั้ง ซึ่งจะส่งผลให้เกิดการสร้างตาราง Delta ใหม่ด้วย schema และข้อมูลใหม่

เปิดการมิเรอร์รวมคอลัมน์ทั้งหมดจากข้อมูลที่ถูกเพิ่มเวอร์ชันก่อนหน้าเสมอ หากต้องการลบคอลัมน์ออก ให้สร้างตาราง/โฟลเดอร์ใหม่

เปลี่ยนชนิดคอลัมน์

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

เปลี่ยนชื่อคอลัมน์

หากต้องการเปลี่ยนชื่อคอลัมน์ ให้ลบโฟลเดอร์ตารางแล้วสร้างโฟลเดอร์ที่มีข้อมูลทั้งหมดและด้วยชื่อคอลัมน์ใหม่

ขั้นตอนถัดไป