หมายเหตุ
การเข้าถึงหน้านี้ต้องได้รับการอนุญาต คุณสามารถลอง ลงชื่อเข้าใช้หรือเปลี่ยนไดเรกทอรีได้
การเข้าถึงหน้านี้ต้องได้รับการอนุญาต คุณสามารถลองเปลี่ยนไดเรกทอรีได้
นําไปใช้กับ:✅ Warehouse ใน Microsoft Fabric
คุณสามารถโยกย้ายตารางไปยัง Fabric Data Warehouse ด้วยคอลัมน์คีย์ตัวแทนหลังจากปรับให้เข้ากับความแตกต่างใน IDENTITY การใช้งานใน Fabric Data Warehouse บทความนี้สรุปกลยุทธ์การโยกย้ายที่มีประสิทธิภาพเพื่อช่วยคุณเชื่อมช่องว่างนี้และย้ายสคีมาและข้อมูลของคุณไปยัง Fabric Data Warehouse ได้สําเร็จ
การโยกย้ายฐานข้อมูลไปยัง Fabric Data Warehouse นําเสนอความท้าทายที่ไม่เหมือนใครสําหรับองค์กรที่ต้องพึ่งพาคอลัมน์ตัวแทนที่มีอยู่ เช่น IDENTITY หรือ SEQUENCE ฟังก์ชันในกลไกจัดการฐานข้อมูล SQL:
- ซึ่งแตกต่างจากสภาพแวดล้อม SQL Server แบบดั้งเดิม Fabric Data Warehouse ใช้แบบจําลองแบบกระจายสําหรับการสร้างค่าข้อมูลประจําตัว ซึ่งรับประกันความเป็นเอกลักษณ์ แต่ไม่รับประกันลําดับตามลําดับ
-
IDENTITYใน Fabric Data Warehouse ไม่รองรับIDENTITY_INSERTคุณไม่สามารถแทรกค่าที่มีอยู่ได้โดยตรง -
IDENTITYใน Fabric Data Warehouse ไม่สนับสนุนการกําหนดค่าSEEDหรือINCREMENTIDENTITYค่าไม่ซ้ํากันและได้รับการจัดการโดยอัตโนมัติ
-
- เฉพาะชนิดข้อมูล bigint เท่านั้นที่ได้รับการสนับสนุนสําหรับ
IDENTITYคอลัมน์ใน Fabric Data Warehouse - Fabric Data Warehouse ไม่ได้บังคับใช้ข้อจํากัดที่สําคัญ
กระบวนการย้ายข้อมูลทีละขั้นตอน
เมื่อต้องการแสดงวิธีการที่อธิบายไว้ในบทความนี้ ให้พิจารณาสองตาราง: Customers ตารางและ Orders ตาราง
Ordersตารางอ้างอิงCustomersตารางโดยใช้CustomerIDคอลัมน์
ในการโยกย้ายตารางเหล่านี้จากแหล่งที่มาไปยังตาราง Fabric Data Warehouse ที่ใช้ IDENTITY คอลัมน์ เราจําเป็นต้องเติมน้ําให้กับตารางปลายทางด้วยรหัสใหม่และอัปเดตตารางที่อ้างอิง เราสามารถบรรลุเป้าหมายได้โดยใช้กลยุทธ์ต่อไปนี้:
- โหลดข้อมูลจากตารางต้นทางลงในตารางการจัดเตรียมใน Fabric Data Warehouse ที่ไม่ได้ใช้
IDENTITYคอลัมน์ - โหลดข้อมูลจากตารางการจัดเตรียมลงในตารางสุดท้ายที่ใช้
IDENTITYคอลัมน์ แต่คัดลอกข้อมูลต้นฉบับของคอลัมน์ ID จากตารางการจัดเตรียมไปยังคอลัมน์ชั่วคราวใหม่ในตารางสุดท้าย -
UPDATEการอ้างอิงในตารางที่เกี่ยวข้อง
ตัวอย่าง: โยกย้ายข้อมูลจากตารางที่ใช้คอลัมน์ IDENTITY ไปยัง Fabric Data Warehouse
ขั้นตอนถัดไปจะอธิบายวิธีกลยุทธ์นี้สามารถทําได้โดยใช้ IDENTITY คอลัมน์ใน Fabric Data Warehouse
ขั้นตอนที่ 1: โหลดข้อมูลต้นฉบับลงในตารางการจัดเตรียม
เริ่มต้นด้วยการสร้างตารางการจัดเตรียมใน Fabric Data Warehouse ที่สะท้อนสคีมาของตารางต้นทางของคุณ แต่สร้างตารางการจัดเตรียมด้วย IDENTITY คอลัมน์
โหลดข้อมูลต้นทางของคุณลงในตารางการจัดเตรียมเหล่านี้ รวมถึงค่าข้อมูลประจําตัวเดิม
ขั้นตอนที่ 2: แทรกข้อมูลลงในตารางปลายทางและแมปค่า IDENTITY เดิม
จากนั้น แทรกข้อมูลจากตารางการจัดเตรียมลงในตารางปลายทางในคลังสินค้าของคุณ
ตารางปลายทางควรใช้ IDENTITY บนคอลัมน์คีย์
ในระหว่างขั้นตอนนี้ ให้แมปค่าข้อมูลประจําตัวเดิมจากตารางการจัดเตรียมไปยังคอลัมน์ใหม่ในตารางปลายทาง
ตัวอย่างเช่น เมื่อย้ายตาราง Customers คุณสามารถใช้คําสั่งเช่น:
-- Pseudo code: replace ... with your own column list
INSERT INTO dbo.Customers (Name, Email, ... , LegacyCustomerID)
SELECT s.Name, s.Email, ..., s.CustomerID
FROM dbo.Staging_Customers AS s;
วิธีการนี้รักษาค่าข้อมูลประจําตัวเดิมใน LegacyCustomerID คอลัมน์เพื่อใช้ในขั้นตอนต่อๆ ไป
ทําซ้ําขั้นตอนนี้สําหรับตารางทั้งหมดในคลังสินค้าของคุณที่ใช้ IDENTITY คอลัมน์
ขั้นตอนที่ 3: อัปเดตความสัมพันธ์ของคีย์นอกโดยใช้ค่าข้อมูลประจําตัวเดิม
สําหรับตารางที่มีคีย์นอกที่ IDENTITY อ้างอิงคอลัมน์ ให้เข้าร่วมเวอร์ชันการจัดเตรียมของตารางที่อ้างอิงโดยใช้คอลัมน์รหัสดั้งเดิมชั่วคราวเพื่อรับรหัสที่สร้างขึ้นโดย Fabric Data Warehouse ใหม่
ตัวอย่างเช่น เมื่อย้ายตาราง Orders ที่อ้างอิงลูกค้า:
INSERT INTO dbo.Orders (OrderDate, ... , CustomerID)
SELECT o.OrderDate, ..., c.CustomerID
FROM dbo.Staging_Orders AS o
INNER JOIN dbo.Customers AS c
ON o.CustomerID = c.LegacyCustomerID;
วิธีการนี้ช่วยให้แน่ใจว่าความสัมพันธ์ระหว่างตารางจะถูกเก็บรักษาไว้แม้ว่า new IDENTITY จะสร้าง ID ใหม่ในอนาคต
ขั้นตอนที่ 4 (ไม่บังคับ): ล้างคอลัมน์ชั่วคราว
หลังจากยืนยันว่าความสัมพันธ์ทั้งหมดได้รับการแมปอย่างถูกต้องและรักษาความสมบูรณ์ของข้อมูลไว้
ALTER TABLE Orders
DROP COLUMN LegacyCustomerID;
หรือเก็บคอลัมน์ไว้เหมือน LegacyCustomerID ในตารางสุดท้ายสําหรับการตรวจสอบในอนาคต สายข้อมูล หรือเหตุผลในการแก้ไขปัญหา