แชร์ผ่าน


คำถามที่ถามบ่อยเกี่ยวกับ Azure Synapse Link for Dataverse

บทความนี้ให้ข้อมูลเกี่ยวกับคำถามที่ถามบ่อยเกี่ยวกับการส่งออกข้อมูลตาราง Microsoft Dataverse ไปยัง Azure Synapse Analytics และ Azure Data Lake

ฉันสามารถทำงานต่างๆ เช่น การสร้าง การอัปเดต การลบ หรือการตั้งค่านโยบายการข้อมูลอัตโนมัติสำหรับไฟล์ข้อมูลในที่เก็บข้อมูล Azure ที่เชื่อมต่อด้วยตนเองได้หรือไม่

ลูกค้าไม่ควรแก้ไขไฟล์ข้อมูล และไม่ควรวางไฟล์ของลูกค้าไว้ในโฟลเดอร์ข้อมูล

หมายเหตุ

หากต้องการทิ้งข้อมูลเก่าและล่าสมัยในที่จัดเก็บข้อมูลดิบโดยไม่ทำให้ Azure Synapse Link เสียหาย ให้ลองใช้คุณลักษณะ สอบถามและวิเคราะห์การอัปเดตส่วนเพิ่ม

ฉันจะเข้าถึงความสัมพันธ์ตารางของฉันได้อย่างไร

ในการเข้าถึงความสัมพันธ์แบบกลุ่มต่อกลุ่ม ความสัมพันธ์พร้อมใช้งานเป็นตารางเพื่อเลือกจากหน้า เพิ่มตาราง สำหรับลิงก์ใหม่จาก จัดการตาราง สำหรับลิงก์ที่มีอยู่แล้ว

หมายเหตุ

ข้อมูลความสัมพันธ์ทั้งหมดอยู่ในโหมดผนวกเท่านั้นตามค่าเริ่มต้น เมื่อเขียนในรูปแบบ CSV

Azure Synapse Link เป็นคุณลักษณะฟรีที่มี Dataverse การใช้ Azure Synapse Link for Dataverse ไม่มีค่าใช้จ่ายเพิ่มเติมภายใต้ Dataverse อย่างไรก็ตาม ให้พิจารณาต้นทุนที่อาจเกิดขึ้นสำหรับบริการ Azure:

จะเกิดอะไรขึ้นเมื่อฉันเพิ่มคอลัมน์

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

จะเกิดอะไรขึ้นเมื่อฉันลบคอลัมน์

เมื่อคุณลบคอลัมน์ออกจากตารางในแหล่งที่มา คอลัมน์จะไม่ถูกละทิ้งจากปลายทาง แต่แถวจะไม่ได้รับการอัปเดตอีกต่อไปและถูกทำเครื่องหมายว่าเป็นโมฆะในขณะที่รักษาแถวก่อนหน้านี้

จะเกิดอะไรขึ้นหากฉันเปลี่ยนชนิดข้อมูลของคอลัมน์

การเปลี่ยนชนิดข้อมูลของคอลัมน์ถือเป็นการเปลี่ยนแปลงครั้งใหญ่ คุณจะต้องยกเลิกการเชื่อมโยงและเชื่อมโยงใหม่

จะเกิดอะไรขึ้นเมื่อฉันลบแถว

การลบแถวจะได้รับการจัดการที่แตกต่างกันไปตามตัวเลือกการเขียนข้อมูลที่คุณเลือก:

  • การอัปเดตในตำแหน่งด้วยรูปแบบ CSV: นี่เป็นโหมดเริ่มต้น เมื่อคุณลบแถวตารางในโหมดนี้ แถวนั้นจะถูกลบออกจากพาร์ติชันข้อมูลที่เกี่ยวข้องใน Azure Data Lake ด้วย กล่าวคือ ข้อมูลจะถูกลบออกจากปลายทางอย่างหนัก
  • ผนวกเท่านั้นด้วยรูปแบบ CSV และการอัปเดตโฟลเดอร์ส่วนเพิ่ม: ในโหมดนี้ เมื่อมีการลบแถวของตาราง Dataverse ไม่ได้เป็นการลบออกจากปลายทางด้วย แถวจะถูกเพิ่มและตั้งค่าเป็น isDeleted=True ไปยังไฟล์ในพาร์ติชันข้อมูลที่เกี่ยวข้องใน Azure Data Lake แทน
  • ส่งออกเป็นรูปแบบ Delta Lake: Azure Synapse Link ดำเนินการลบข้อมูลแบบชั่วคราวในระหว่างรอบการซิงโครไนซ์เดลต้าครั้งถัดไป ตามด้วยการลบถาวรหลังจาก 30 วัน

เหตุใดฉันจึงไม่เห็นส่วนหัวคอลัมน์ในไฟล์ที่ส่งออก

Azure Synapse Link fทำตาม Common Data Model เพื่อให้สามารถแชร์ข้อมูลและความหมายที่จะมีการแบ่งปันในแอปพลิเคชันและกระบวนการทางธุรกิจ เช่น Microsoft Power Apps, Power BI, Dynamics 365 และ Azure ในแต่ละโฟลเดอร์ CDM เมตาดาต้า เช่น ส่วนหัวคอลัมน์จะถูกจัดเก็บไว้ในไฟล์ model.json ข้อมูลเพิ่มเติม: Common Data Model และ Azure Data Lake Storage รุ่น2 | Microsoft Learn

เหตุใดไฟล์ Model.json จึงเพิ่มหรือเปลี่ยนความยาวสำหรับชนิดข้อมูลและไม่เก็บสิ่งที่กำหนดไว้ใน Dataverse

Model.json เก็บความยาวฐานข้อมูลสำหรับขนาดของคอลัมน์ Dataverse มีแนวคิดเกี่ยวกับความยาวของฐานข้อมูลสำหรับแต่ละคอลัมน์ หากคุณสร้างคอลัมน์ที่มีขนาด 200 และต่อมาลดขนาดเป็น 100 Dataverse ยังคงอนุญาตให้ข้อมูลที่มีอยู่ของคุณแสดงใน Dataverse ดำเนินการได้โดยคง DBLength ไว้ที่ 200 และ MaxLength เป็น 100 สิ่งที่คุณเห็นใน Model.json คือ DBLength และหากคุณใช้รายการนั้นสำหรับกระบวนการดาวน์สตรีม คุณจะไม่สามารถจัดสรรพื้นที่น้อยลงสำหรับคอลัมน์ Dataverse ของคุณได้

หมายเหตุ

ฟิลด์บันทึกถูกกำหนดเป็น varchar(max) โดยมีความยาวสูงสุดเริ่มต้นที่ 9999

รูปแบบวันที่และเวลาใดที่สามารถคาดหวังได้ในตาราง Dataverse ที่ส่งออก

มีรูปแบบวันที่และเวลาสามแบบที่สามารถคาดหวังได้ในตาราง Dataverse ที่ส่งออก

ชื่อคอลัมน์ รูปแบบ ชนิดข้อมูล ตัวอย่างเช่น
SinkCreatedOn และ SinkModifiedOn M/d/yyyy H:mm:ss tt datetime 6/28/2021 4:34:35 PM
CreatedOn yyyy-MM-dd'T'HH:mm:ss.sssssssXXX datetimeOffset 2018-05-25T16:21:09.0000000+00:00
คอลัมน์อื่นๆ ทั้งหมด yyyy-MM-dd'T'HH:mm:ss'Z' datetime 2021-06-25T16:21:12Z

หมายเหตุ

ชนิดข้อมูลCreatedOn เปลี่ยนจาก datetime เป็น datetimeOffset ในวันที่ 07/29/2022 หากต้องการแก้ไขรูปแบบประเภทข้อมูลสำหรับตารางที่สร้างขึ้นก่อนการเปลี่ยนแปลง ให้วางและอ่านตาราง

คุณสามารถเลือกลักษณะการทำงานของคอลัมน์ต่างๆ สำหรับคอลัมน์วันที่และเวลาใน Dataverse ซึ่งจะอัปเดตรูปแบบชนิดข้อมูล ข้อมูลเพิ่มเติม: ลักษณะการทำงานและรูปแบบของคอลัมน์วันที่และเวลา

เหตุใดฉันจึงเห็นชื่อไฟล์ 1.csv หรือ 1_001.csv แทนที่จะเป็นชื่อไฟล์ที่แบ่งพาร์ติชันวันที่และเวลาปกติสำหรับตาราง Dataverse บางตาราง

ลักษณะการทำงานนี้จะเกิดขึ้นเมื่อคุณเลือกโหมดการส่งออกแบบผนวกเท่านั้น และมีตารางที่ไม่มีคอลัมน์ CreatedOn ที่ถูกต้อง Blobs ถูกจัดระเบียบเป็นไฟล์ เช่น 1.csv, 2.csv (ใช้การแบ่งพาร์ติชันแบบกำหนดเองเนื่องจากไม่มีวันสร้างที่ถูกต้อง) เมื่อพาร์ติชั่นใดๆ เข้าใกล้ MaxBlockPerBlobLimit ถึง 95% ระบบจะสร้างไฟล์ใหม่โดยอัตโนมัติ ตามที่แสดงไว้ที่นี่เป็น 1_001.csv

ฉันควรใช้กลยุทธ์พาร์ติชันรายปีหรือรายเดือนเมื่อใด

สำหรับตาราง Dataverse ที่ปริมาณข้อมูลสูงภายในหนึ่งปี เราขอแนะนำให้คุณใช้พาร์ติชันรายเดือน การทำเช่นนี้ส่งผลให้ไฟล์มีขนาดเล็กลงและประสิทธิภาพที่ดีขึ้น นอกจากนี้ ถ้าแถวในตาราง Dataverse มีการอัปเดตบ่อยครั้ง การแยกไฟล์ออกเป็นไฟล์ขนาดเล็กหลายๆ ไฟล์ จะช่วยปรับปรุงประสิทธิภาพในสถานการณ์ที่มีการอัปเดตแบบแทนที่ Delta Lake ใช้งานได้กับพาร์ติชันรายปีเท่านั้น เนื่องจากมีประสิทธิภาพที่เหนือกว่าเมื่อเทียบกับรูปแบบ CSV

โหมดผนวกเท่านั้นคืออะไร และอะไรคือความแตกต่างระหว่างโหมดผนวกเท่านั้นกับโหมดอัปเดตแบบแทนที่

ในโหมดผนอกเท่านั้น ข้อมูลส่วนเพิ่มจากตาราง Dataverse จะต่อท้ายพาร์ติชันไฟล์ที่เกี่ยวข้องในที่จัดเก็บข้อมูลดิบ สำหรับข้อมูลเพิ่มเติม: ตัวเลือกการกำหนดค่าขั้นสูงใน Azure Synapse Link

เมื่อใดที่ฉันใช้โหมดผนวกเท่านั้นสำหรับมุมมองย้อนหลังของการเปลี่ยนแปลง

โหมดต่อท้ายเท่านั้นเป็นตัวเลือกที่แนะนำสำหรับการเขียนข้อมูลตาราง Dataverse ไปยังที่จัดเก็บข้อมูลดิบ โดยเฉพาะอย่างยิ่งเมื่อปริมาณข้อมูลสูงภายในพาร์ติชันที่มีข้อมูลที่เปลี่ยนแปลงบ่อย อีกครั้ง นี่เป็นตัวเลือกที่ใช้กันทั่วไปและขอแนะนำสำหรับลูกค้าองค์กร นอกจากนี้ คุณสามารถเลือกใช้โหมดนี้สำหรับสถานการณ์ที่มีจุดประสงค์เพื่อตรวจสอบการเปลี่ยนแปลงทีละน้อยจาก Dataverse และประมวลผลการเปลี่ยนแปลงสำหรับสถานการณ์ ETL, AI และ ML โหมดผนวกเท่านั้นจัดเตรียมประวัติการเปลี่ยนแปลง แทนการเปลี่ยนแปลงล่าสุดหรือผนวกเท่านั้นการอัปเดตผนวกเท่านั้น และเปิดใช้งานอนุกรมเวลาจากสถานการณ์ AI เช่น การคาดคะเน หรือการวิเคราะห์การคาดการณ์ตามค่าในอดีต

ฉันจะดึงข้อมูลแถวล่าสุดของแต่ละเรกคอร์ดและไม่รวมแถวที่ถูกลบได้อย่างไร เมื่อฉันส่งออกข้อมูลในโหมดผนวกเท่านั้น

ในโหมดผนวกเท่านั้น คุณควรระบุเวอร์ชันล่าสุดของเรกคอร์ดที่มี ID เดียวกันโดยใช้ VersionNumber และ SinkModifiedOn จากนั้นจึงใช้ isDeleted=0 กับเวอร์ชันล่าสุด

เหตุใดฉันจึงเห็นหมายเลขเวอร์ชันที่ซ้ำกันเมื่อฉันส่งออกข้อมูลโดยใช้โหมดผนวกเท่านั้น

สำหรับโหมดผนวกเท่านั้น หาก Azure Synapse Link for Dataverse ไม่ได้รับการยอมรับจาก Azure Data Lake ว่าข้อมูลถูกยอมรับเนื่องจากสาเหตุใดก็ตาม เช่น ความล่าช้าของเครือข่าย Azure Synapse Link จะลองอีกครั้งในสถานการณ์เหล่านั้นและยอมรับข้อมูลอีกครั้ง ปริมาณการใช้ดาวน์สตรีมควรมีความยืดหยุ่นต่อสถานการณ์นี้โดยการกรองข้อมูลโดยใช้ SinkModifiedOn

เหตุใดฉันจึงเห็นความแตกต่างในคอลัมน์ Sinkmodifiedon และ Modifiedon

เป็นเรื่องปกติ Modifiedon คือวันที่เวลาที่เรกคอร์ดถูกเปลี่ยนแปลงใน Dataverse; Sinkmodifiedon เป็นวันที่และเวลาที่เรกคอร์ดถูกแก้ไขในที่จัดเก็บข้อมูลดิบ

ตาราง Dataverse ใดที่ไม่รองรับการส่งออก

ตารางที่ไม่ได้เปิดใช้งานการติดตามการเปลี่ยนแปลงจะไม่รองรับ นอกเหนือจากตารางระบบต่อไปนี้:

  • สิ่งที่แนบ
  • ปฏิทิน
  • Calendarrule

หมายเหตุ

คุณสามารถเพิ่มตารางการตรวจสอบสำหรับการส่งออกโดยใช้ Azure Synapse Link for Dataverse อย่างไรก็ตาม การส่งออกตารางการตรวจสอบรองรับเฉพาะ โพรไฟล์ Delta Lake

ฉันใช้คุณลักษณะส่งออกไปยัง Delta Lake ฉันสามารถหยุดงาน Apache Spark หรือเปลี่ยนเวลาดำเนินการได้หรือไม่

งานการแปลง Delta Lake จะถูกทริกเกอร์เมื่อมีการเปลี่ยนแปลงข้อมูลในช่วงเวลาที่กำหนดไว้ ไม่มีตัวเลือกให้หยุดหรือหยุดพูล Apache Spark ชั่วคราว อย่างไรก็ตาม คุณสามารถแก้ไขช่วงเวลาได้หลังจากการสร้างลิงก์ในส่วน จัดการตาราง > ช่วงเวลาขั้นสูง

คอลัมน์การค้นหาประกอบด้วยรหัสและค่า ค่าการค้นหาจะเปลี่ยนเฉพาะในตารางรากเท่านั้น เพื่อให้สะท้อนถึงค่าของคอลัมน์การค้นหาได้ดีขึ้น เราขอแนะนำให้รวมเข้ากับตารางรากดั้งเดิมเพื่อรับค่าล่าสุด

ใน Dataverse คอลัมน์จากการคำนวณจะเก็บเฉพาะข้อมูลสูตรเท่านั้น และค่าจริงจะขึ้นอยู่กับคอลัมน์ตารางพื้นฐาน ดังนั้นคอลัมน์จากการคำนวณจึงได้รับการสนับสนุนเมื่อคอลัมน์ทั้งหมดอยู่ภายในตารางที่ส่งออกเดียวกันเท่านั้น

ตาราง Dataverse แบบใดใช้โหมดผนวกเท่านั้นโดยค่าเริ่มต้น

ตารางทั้งหมดที่ไม่มีฟิลด์ createdOn จะถูกซิงค์โดยใช้โหมดผนวกเท่านั้นตามค่าเริ่มต้น ซึ่งรวมถึงตารางความสัมพันธ์และตาราง ActivityParty ด้วย

เหตุใดฉันจึงเห็นข้อความแสดงข้อผิดพลาด - ไม่สามารถแสดงรายการเนื้อหาของไดเรกทอรีบนเส้นทางได้

  • ข้อมูล Dataverse ที่จัดเก็บในคอนเทนเนอร์ที่เก็บข้อมูลที่เชื่อมต่อ คุณต้องมีบทบาท "ผู้สนับสนุนข้อมูลในที่เก็บข้อมูล Blob" ในบัญชีที่เก็บข้อมูลที่เชื่อมโยงเพื่อดำเนินการอ่านและสอบถามผ่าน Synapse Workspace
  • หากคุณเลือกที่จะส่งออกข้อมูลในรูปแบบ Delta Lake ไฟล์ CSV ของคุณจะถูกล้างข้อมูลหลังจากการแปลง Delta Lake คุณต้องสืบค้นข้อมูลด้วยตาราง non_partitioned ผ่านพื้นที่ทำงานของ Synapse

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

ข้อมูล Dataverse สามารถเปลี่ยนแปลงได้อย่างต่อเนื่องด้วยการสร้าง ปรับปรุง และลบธุรกรรม ข้อผิดพลาดนี้เกิดจากไฟล์พื้นฐานที่มีการเปลี่ยนแปลงเมื่อคุณอ่านข้อมูลจากไฟล์นั้น ดังนั้น สำหรับตารางที่มีการเปลี่ยนแปลงอย่างต่อเนื่อง ให้เปลี่ยนไปป์ไลน์การใช้งานของคุณเพื่อใช้ข้อมูลสแนปช็อต (ตารางที่แบ่งพาร์ติชัน) ที่จะใช้ ข้อมูลเพิ่มเติม: แก้ไขปัญหาพูล SQL แบบไม่ใช้เซิร์ฟเวอร์

Azure Synapse Link for Dataverse ได้รับการออกแบบมาเพื่อวัตถุประสงค์ในการวิเคราะห์ เราขอแนะนำให้ลูกค้าใช้การเก็บรักษาระยะยาวเพื่อวัตถุประสงค์ในการเก็บถาวร ข้อมูลเพิ่มเติม: ภาพรวมการเก็บข้อมูลระยะยาวใน Dataverse

เหตุใดฉันจึงไม่เห็นการเปลี่ยนแปลงข้อมูลใน Data Lake เมื่อเรกคอร์ดถูกลบใน Dataverse

สำหรับการเรียก SQL โดยตรงเพื่อลบเรกคอร์ด บริการ Azure Synapse Link for Dataverse จะไม่ทริกเกอร์เนื่องจาก BPO.Delete ไม่ได้ถูกเรียก ดูคุณลักษณะตัวอย่างได้ที่ วิธีล้างการเข้าถึงที่สืบทอดมา

(ดูเพิ่มเติม )

Azure Synapse Link for Dataverse