เปิดข้อกําหนดและรูปแบบของโซนเชื่อมโยงไปถึงมิเรอร์
บทความนี้แสดงข้อกําหนดในการดําเนินการของโซนเชื่อมโยงไปถึงและตาราง/คอลัมน์สําหรับการทํามิเรอร์แบบเปิดใน Microsoft Fabric
สำคัญ
คุณลักษณะนี้อยู่ในตัวอย่าง
เมื่อคุณสร้างฐานข้อมูลมิเรอร์เปิดของคุณผ่านพอร์ทัล Fabric หรือ API สาธารณะในพื้นที่ทํางาน Fabric ของคุณ คุณจะได้รับ URL ของโซนเริ่มต้นใน OneLake ในหน้าแรกของรายการฐานข้อมูลแบบมิเรอร์ของคุณ โซนเชื่อมโยงไปถึงนี้คือที่ที่แอปพลิเคชันของคุณสร้างไฟล์เมตาดาต้าและข้อมูลที่ดินในรูปแบบ Parquet (ไม่บีบอัด Snappy, GZIP, ZSTD)
โซนเชื่อมโยงไปถึง
สําหรับทุกฐานข้อมูลมิเรอร์ มีตําแหน่งที่เก็บที่ไม่ซ้ํากันใน 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 ใหม่
เปลี่ยนชื่อคอลัมน์
หากต้องการเปลี่ยนชื่อคอลัมน์ ให้ลบโฟลเดอร์ตารางแล้วสร้างโฟลเดอร์ที่มีข้อมูลทั้งหมดและด้วยชื่อคอลัมน์ใหม่