บทความนี้ให้ข้อมูลเกี่ยวกับคําถามที่ถามบ่อยเกี่ยวกับการส่งออกข้อมูลตาราง Microsoft Dataverse ไปยัง Azure Synapse Analytics และ Azure Data Lake
ฉันสามารถทํางานด้วยตนเองเช่น การสร้าง การอัปเดต การลบ หรือการตั้งค่านโยบายลบอัตโนมัติสําหรับไฟล์ข้อมูลในที่เก็บข้อมูล Azure ที่เชื่อมต่อหรือไม่
ไฟล์ข้อมูลไม่ควรถูกปรับเปลี่ยนโดยลูกค้าและไม่ควรวางไฟล์ลูกค้าไว้ในโฟลเดอร์ข้อมูล
หมายเหตุ
หากต้องการวางข้อมูลเก่าและนิ่งใน data lake โดยไม่ทำให้ลิงก์ Azure Synapse Link เสียหาย ให้พิจารณาใช้คุณลักษณะ Query และวิเคราะห์การอัปเดตเชิงเพิ่ม
ฉันจะเข้าถึงความสัมพันธ์ของตารางของฉันได้อย่างไร
เพื่อเข้าถึงความสัมพันธ์แบบกลุ่ม-ต่อ-กลุ่ม ความสัมพันธ์จะพร้อมใช้งานเป็นตารางเพื่อเลือกจากหน้า เพิ่มตาราง สําหรับลิงก์ใหม่และจาก จัดการตาราง สําหรับลิงก์ที่มีอยู่ก่อน
หมายเหตุ
ข้อมูลความสัมพันธ์ทั้งหมดอยู่ในโหมดผนวกเท่านั้นตามค่าเริ่มต้นเมื่อเขียนในรูปแบบ CSV
ฉันจะรับค่าใช้จ่ายโดยประมาณก่อนที่จะเพิ่ม Azure Synapse Link ได้อย่างไร
Azure Synapse Link เป็นคุณลักษณะฟรีที่มี Dataverse การใช้ Azure Synapse Link สําหรับ Dataverse จะไม่เกิดค่าใช้จ่ายเพิ่มเติมภายใต้ Dataverse อย่างไรก็ตาม พิจารณาค่าใช้จ่ายที่อาจเกิดขึ้นสําหรับบริการ Azure:
- ที่เก็บข้อมูลใน Azure Data Lake Storage รุ่น2: ราคา Azure Storage ที่จัดเก็บข้อมูลดิบ Gen2 Microsoft Azure
- ค่าใช้จ่ายในปริมาณการใช้ข้อมูล (เช่น พื้นที่ทํางาน Synapse): การกําหนดราคา - Azure Synapse Analytics | Microsoft Microsoft Azure สําหรับข้อมูลที่ครอบคลุมการจัดการค่าใช้จ่ายของ Microsoft ให้ไปที่: วางแผนเพื่อจัดการค่าใช้จ่าย Azure - Microsoft Cost Management | Microsoft Cost Management Microsoft Learn
เกิดอะไรขึ้นเมื่อฉันเพิ่มคอลัมน์
เมื่อคุณเพิ่มคอลัมน์ใหม่ลงในตารางในแหล่งข้อมูล คอลัมน์นั้นจะถูกเพิ่มที่ส่วนท้ายของไฟล์ในปลายทางในพาร์ติชันไฟล์ที่สอดคล้องกัน ในขณะที่แถวที่มีอยู่ก่อนการเพิ่มคอลัมน์จะไม่แสดงในคอลัมน์ใหม่ แถวใหม่หรือแถวที่อัปเดตแล้วจะแสดงคอลัมน์ที่เพิ่งเพิ่มเข้าไปใหม่
จะเกิดอะไรขึ้นเมื่อฉันลบคอลัมน์
เมื่อคุณลบคอลัมน์จากตารางในแหล่งข้อมูล คอลัมน์จะไม่ถูกทิ้งจากปลายทาง แต่แถวจะไม่ถูกอัปเดตอีกต่อไปและจะถูกทําเครื่องหมายเป็น null ในขณะที่ยังรักษาแถวก่อนหน้าไว้
จะเกิดอะไรขึ้นถ้าฉันเปลี่ยนชนิดข้อมูลของคอลัมน์
การเปลี่ยนชนิดข้อมูลของคอลัมน์เป็นการเปลี่ยนแปลงการแบ่งส่วน และคุณจําเป็นต้องยกเลิกการเชื่อมโยงและเชื่อมโยงใหม่
จะเกิดอะไรขึ้นเมื่อฉันลบแถว
การลบแถวมีการจัดการที่แตกต่างกันโดยขึ้นอยู่กับตัวเลือกการเขียนข้อมูลที่คุณเลือก:
- การอัปเดตแบบแทนที่ด้วยรูปแบบ CSV: นี่คือโหมดเริ่มต้น เมื่อคุณลบแถวตารางในโหมดนี้ แถวจะถูกลบออกจากพาร์ติชันข้อมูลที่สอดคล้องกันใน Azure Data Lake กล่าวอีกนัยหนึ่ง ข้อมูลจะถูกลบออกจากปลายทางอย่างยากลําบาก
- การผนวกเฉพาะร่วมกับรูปแบบ CSV และการอัปเดตโฟลเดอร์แบบเพิ่มขึ้น: ในโหมดนี้เมื่อลบแถวตาราง Dataverse มันจะไม่ถูกลบออกจากปลายทางโดยถาวร แต่จะมีการเพิ่มแถวและตั้งค่าเป็น
isDeleted=Trueไฟล์ในพาร์ติชันข้อมูลที่สอดคล้องกันใน Azure Data Lake - ส่งออกเป็นรูปแบบ Delta lake: Azure Synapse Link ทําการลบข้อมูลเล็กน้อยในระหว่างรอบการซิงโครไนซ์เดลต้าถัดไปตามด้วยการลบอย่างหนักหลังจาก 30 วัน
เหตุใดฉันจึงไม่เห็นส่วนหัวของคอลัมน์ในไฟล์ที่ส่งออก
Azure Synapse Link ทําตาม 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 | วันที่เวลา | 6/28/2021 16:34:35 น. |
| CreatedOn | yyyy-MM-dd'T'HH:mm:ss.sssssssXXX | datetimeOffset | 2018-05-25T16:21:09.000000+00:00 |
| คอลัมน์อื่น ๆ ทั้งหมด | yyyy-MM-dd'T'HH:mm:ss'Z' | วันที่เวลา | 2021-06-25T16:21:12Z |
หมายเหตุ
CreatedOn เปลี่ยนชนิดข้อมูลจาก datetime เป็น datetimeOffset บน 07/29/2022 หากต้องการแก้ไขรูปแบบชนิดข้อมูลสําหรับตารางที่สร้างขึ้นก่อนการเปลี่ยนแปลง ให้ปล่อยและอ่านตาราง
คุณสามารถเลือกลักษณะการทำงานที่แตกต่างกันสำหรับคอลัมน์วันที่และเวลาใน Dataverse ซึ่งจะอัปเดตรูปแบบชนิดข้อมูล ข้อมูลเพิ่มเติม: ลักษณะการทํางานและรูปแบบของคอลัมน์วันที่และเวลา
เหตุใดฉันจึงเห็นชื่อแฟ้ม 1.csv หรือ 1_001.csv แทนที่จะเป็นชื่อแฟ้มที่มีการพาร์ติชันวันที่เวลาปกติสําหรับตาราง Dataverse บางตาราง
พฤติกรรมนี้เป็นไปตามคาดหากคุณเลือกใช้โหมดการส่งออกแบบผนวกเท่านั้น ถ้าหากตารางไม่มีคอลัมน์ CreatedOn ที่ถูกต้อง Blobs ถูกจัดอยู่ในไฟล์เช่น 1.csv, 2.csv (ใช้การแบ่งพาร์ติชันแบบกําหนดเองเนื่องจากไม่มีวันที่สร้างที่ถูกต้อง) เมื่อพาร์ติชันใด ๆ เข้าใกล้ 95% ของ MaxBlockPerBlobLimit ระบบจะสร้างไฟล์ใหม่โดยอัตโนมัติ ดังที่แสดงที่นี่เป็น 1_001.csv
ฉันควรใช้กลยุทธ์พาร์ติชันรายปีหรือรายเดือนเมื่อใด
สําหรับตาราง Dataverse ที่ปริมาณข้อมูลสูงภายในหนึ่งปี เราขอแนะนําให้คุณใช้พาร์ติชันรายเดือน การดําเนินการดังกล่าวส่งผลให้ไฟล์มีขนาดเล็กลงและประสิทธิภาพที่ดีขึ้น นอกจากนี้ หากมีการอัปเดตแถวในตาราง Dataverse บ่อยครั้ง การแยกเป็นไฟล์ขนาดเล็กหลายไฟล์จะช่วยปรับปรุงประสิทธิภาพในสถานการณ์การอัปเดตในสถานที่ Delta Lake ใช้งานได้กับพาร์ติชันรายปีเท่านั้นเนื่องจากประสิทธิภาพที่เหนือกว่าเมื่อเทียบกับรูปแบบ CSV
โหมดบันทึกเพิ่มเท่านั้นคืออะไรและอะไรคือความแตกต่างระหว่างโหมดบันทึกเพิ่มเท่านั้นและโหมดอัปเดตในสถานที่
ในโหมดแบบผนวกเท่านั้น ข้อมูลที่เพิ่มขึ้นจากตาราง Dataverse จะถูกผนวกเข้ากับพาร์ติชันไฟล์ที่สอดคล้องกันใน Data Lake สําหรับข้อมูลเพิ่มเติม: ตัวเลือกการกําหนดค่าขั้นสูงใน Azure Synapse Link
ฉันใช้โหมดผนวกเฉพาะสําหรับมุมมองอดีตของการเปลี่ยนแปลงเมื่อใด
โหมดผนวกเฉพาะเป็นตัวเลือกที่แนะนําสําหรับการเขียนข้อมูลตาราง Dataverse ไปยัง lake โดยเฉพาะอย่างยิ่งเมื่อปริมาณข้อมูลสูงภายในพาร์ติชันที่มีข้อมูลที่มีการเปลี่ยนแปลงบ่อย และนี่เป็นตัวเลือกที่ใช้กันทั่วไปและแนะนําเป็นอย่างยิ่งสําหรับลูกค้าระดับองค์กร นอกจากนี้ คุณสามารถเลือกที่จะใช้โหมดนี้สําหรับสถานการณ์ที่เจตนาคือการตรวจสอบการเปลี่ยนแปลงแบบเพิ่มหน่วยจาก Dataverse และประมวลผลการเปลี่ยนแปลงสําหรับสถานการณ์ ETL, AI และ ML โหมดผนวกเฉพาะมีประวัติของการเปลี่ยนแปลงแทนที่จะเป็นการเปลี่ยนแปลงล่าสุดหรือในการอัปเดตในสถานที่และเปิดใช้งานชุดข้อมูลเวลาหลายชุดจากสถานการณ์ AI เช่น การคาดการณ์หรือการคาดการณ์การวิเคราะห์ตามค่าในอดีต
ฉันจะดึงแถวล่าสุดของแต่ละระเบียนและไม่รวมแถวที่ถูกลบเมื่อฉันส่งออกข้อมูลในโหมดเพิ่มเท่านั้นได้อย่างไร
ในโหมดผนวกเฉพาะ คุณควรระบุเวอร์ชันล่าสุดของเรกคอร์ดที่มีรหัสเดียวกันโดยใช้ VersionNumber แล้ว SinkModifiedOn นําไปใช้ isDeleted=0 ในเวอร์ชันล่าสุด
ทําไมฉันจึงเห็นหมายเลขเวอร์ชันที่ซ้ํากันเมื่อฉันส่งออกข้อมูลโดยใช้โหมดผนวกเท่านั้น
สำหรับโหมดผนวกเฉพาะ ถ้า Azure Synapse Link สำหรับ Dataverse ไม่ได้รับการยืนยันจาก Azure Data Lake ว่าข้อมูลได้ถูกบันทึกแล้วเนื่องจากเหตุผลใดๆ เช่น ความล่าช้าของเครือข่าย Azure Synapse Link จะลองอีกครั้งในสถานการณ์เหล่านั้นและบันทึกข้อมูลอีกครั้ง ปริมาณการใช้ปลายทางควรมีความยืดหยุ่นต่อสถานการณ์นี้โดยการกรองข้อมูลโดยใช้SinkModifiedOn
เหตุใดฉันจึงเห็นความแตกต่างในคอลัมน์ 'SinkModifiedOn' และ 'ModifiedOn'
นี่คือลักษณะการทํางานที่คาดไว้
ModifiedOn คือวันที่และเวลาที่ระเบียนมีการเปลี่ยนแปลงครั้งล่าสุดใน Dataverse ในขณะที่ SinkModifiedOn เป็นวันที่และเวลาที่ระเบียนถูกเขียนลงใน data lake
SinkModifiedOn โดยทั่วไปจะอยู่ ModifiedOnถัดจาก และความแตกต่างจะขึ้นอยู่กับปัจจัยต่างๆ เช่น ขนาดของชุดงาน การโหลดระบบ และจํานวนเรคคอร์ดที่กําลังประมวลผล
สําหรับตารางที่ส่งออกในรูปแบบ Delta Lake หรือในโหมด CSV แบบ append-only/incremental SinkCreatedOn และ SinkModifiedOn จะแสดงเวลาเขียนเดียวกัน ด้วยเหตุนี้ ความแตกต่างระหว่าง SinkCreatedOn และ CreatedOn ในโหมดเหล่านี้ไม่ใช่ตัวบ่งชี้ที่เชื่อถือได้ของความล่าช้าในการซิงค์และไม่ควรถูกตีความเช่นนี้
สำคัญ
ในกรณีที่มีการทําธุรกรรมระยะยาวในแอปการเงินและการดําเนินงาน ระเบียนอาจถูกซิงโครไนซ์หลายครั้งเพื่อให้แน่ใจว่าไม่มีข้อมูลสูญหาย ในสถานการณ์ SinkModifiedOn นี้ สะท้อนถึงเวลาการซิงโครไนซ์ล่าสุด ไม่ใช่ครั้งแรก ตัวอย่างเช่น ถ้ามีการซิงค์ระเบียน 10 ครั้งภายในหนึ่งชั่วโมง SinkModifiedOn จะแสดงเวลาของการซิงค์ครั้งที่ 10 แม้ว่าข้อมูลมีในทะเลสาบจากการซิงค์ครั้งแรกก็ตาม ใช้ความระมัดระวังเมื่อสร้างรายงานเวลาแฝงที่ยึดตามความแตกต่างระหว่าง SinkModifiedOn และ ModifiedOnเนื่องจากอาจทําให้เข้าใจผิดเกี่ยวกับความพร้อมใช้งานข้อมูลจริง
ตาราง Dataverse ใดที่ไม่ได้รับการสนับสนุนสําหรับการส่งออก
ตารางใด ๆ ที่ไม่ได้เปิดใช้งานการติดตามการเปลี่ยนแปลงไม่ได้รับการสนับสนุนนอกเหนือจากตารางระบบต่อไปนี้:
- สิ่งที่แนบ
- ปฏิทิน
- กฎปฏิทิน
ตาราง Dataverse บางตาราง เช่น postcomment, Postregarding, Postlike, Post และ Postrole จะไม่มีให้ลูกค้าเปิดใช้งานการซิงโครไนซ์ผ่าน Azure Synapse Link
ในบางกรณี ตารางเหล่านี้อาจปรากฏขึ้นเมื่อมีการเปิดใช้งานการเก็บรักษาข้อมูลในระยะยาว ถ้าเกิดขึ้น อาจมีการส่งออกชุดย่อยหรือเรกคอร์ดทั้งหมดจากตารางเหล่านี้ นี่คือลักษณะการทํางานที่คาดไว้สําหรับสถานการณ์การเก็บรักษาระยะยาว
สำคัญ
- ไม่ควรเลือกตารางเหล่านี้สําหรับการซิงโครไนซ์
- การมีอยู่ไม่ได้ระบุการสนับสนุนเต็มรูปแบบสำหรับการซิงค์แบบทีละขั้นตอน
หมายเหตุ
คุณสามารถเพิ่มตารางการตรวจสอบสําหรับการส่งออกโดยใช้ Azure Synapse Link สําหรับ Dataverse ได้ อย่างไรก็ตาม การส่งออกตารางการตรวจสอบได้รับการสนับสนุนเฉพาะกับ โปรไฟล์ Delta Lake เท่านั้น
เหตุใดฉันจึงไม่เห็นบันทึกย่อทั้งหมดของฉัน (บันทึกคําอธิบายประกอบ) ใน data lake
Azure Synapse Link ไม่ซิงค์เนื้อหาไฟล์ที่จัดเก็บบนตาราง annotation (บันทึกย่อ) บนระเบียนบันทึกย่อ ไฟล์ที่แนบมากับบันทึกย่อจะถูกเก็บไว้ใน documentbody คอลัมน์ และเนื้อหาของไฟล์นั้นจะไม่ถูกซิงค์กับ data lake นี่คือพฤติกรรมที่เป็นไปตามการออกแบบ เป็นผลให้:
-
annotationระเบียนที่มีค่าในdocumentbodyคอลัมน์ (บันทึกย่อพร้อมสิ่งที่แนบมากับไฟล์) จะไม่ถูกส่งออกไปยัง data lake -
annotationระเบียนที่ไม่มีค่าในdocumentbody(บันทึกย่อโดยไม่มีสิ่งที่แนบมากับแฟ้ม) จะถูกซิงค์ตามที่คาดไว้
ฉันกําลังใช้การส่งออกไปยังฟีเจอร์ delta lake ฉันสามารถหยุดงาน Apache Spark หรือเปลี่ยนเวลาการดําเนินการได้หรือไม่?
งานการแปลง Delta Lake จะถูกทริกเกอร์เมื่อมีการเปลี่ยนแปลงข้อมูลในช่วงเวลาที่กําหนดค่าไว้ ไม่มีตัวเลือกสำหรับการหยุดหรือหยุดชั่วคราวการทำงานของพูล Apache Spark อย่างไรก็ตาม คุณสามารถปรับเปลี่ยนช่วงเวลาหลังจากการสร้างลิงก์ภายใต้ จัดการตาราง > ช่วงเวลาขั้นสูง
Azure Synapse Link รองรับคอลัมน์การค้นหาหรือไม่?
คอลัมน์การค้นหาสร้างขึ้นจาก ID และค่า ค่าการค้นหาจะเปลี่ยนแปลงเฉพาะในตารางรากเท่านั้น เพื่อให้แสดงค่าของคอลัมน์การค้นหาได้ดียิ่งขึ้น เราขอแนะนําให้รวมกับตารางรากเดิมเพื่อรับค่าล่าสุด
Azure Synapse Link รองรับคอลัมน์จากการคํานวณหรือไม่
ใน Dataverse คอลัมน์จากการคํานวณจะเก็บข้อมูลของสูตรเท่านั้น และค่าจริงจะขึ้นอยู่กับคอลัมน์ตารางฐาน ดังนั้น คอลัมน์จากการคํานวณได้รับการสนับสนุนเฉพาะเมื่อคอลัมน์ทั้งหมดอยู่ภายในตารางที่ส่งออกเดียวกัน
ตารางข้อมูลใดใช้โหมดผนวกเฉพาะตามค่าเริ่มต้น
ตารางทั้งหมดที่ไม่มีเขตข้อมูล createdOn จะถูกซิงค์โดยใช้โหมดผนวกเฉพาะตามค่าเริ่มต้น ซึ่งรวมถึงตารางความสัมพันธ์และตาราง ActivityParty
ทำไมฉันจึงเห็นข้อความแสดงข้อผิดพลาด - ไม่สามารถแสดงรายการเนื้อหาของไดเรกทอรีในเส้นทางได้
- ข้อมูล dataverse ถูกเก็บไว้ในคอนเทนเนอร์ที่เก็บข้อมูลที่เชื่อมต่อ คุณจำเป็นต้องมีสิทธิ "Storage Blob Data Contributor" ในบัญชีเก็บข้อมูลที่เชื่อมโยงเพื่อดำเนินการอ่านและสอบถามข้อมูลผ่าน Synapse Workspace
- หากคุณเลือกที่จะส่งออกข้อมูลด้วยรูปแบบ Delta Lake ไฟล์ CSV ของคุณจะถูกล้างหลังจากการแปลง Delta Lake คุณจำเป็นต้องสร้างคิวรีสำหรับข้อมูลด้วยตารางที่ไม่ได้แบ่งพาร์ทิชันผ่าน Synapse Workspace
ทําไมฉันจึงเห็นข้อความแสดงข้อผิดพลาด - ไม่สามารถโหลดจํานวนมากได้เนื่องจากไฟล์ไม่สมบูรณ์หรือไม่สามารถอ่านได้ (ไฟล์ CSV เท่านั้น)
ข้อมูล verse สามารถเปลี่ยนแปลงได้อย่างต่อเนื่องผ่านการสร้าง การอัปเดต และการลบธุรกรรม ข้อผิดพลาดนี้เกิดจากการเปลี่ยนแปลงไฟล์พื้นฐานเมื่อคุณอ่านข้อมูลจากไฟล์นั้น ดังนั้นสําหรับตารางที่มีการเปลี่ยนแปลงอย่างต่อเนื่อง ให้เปลี่ยนไปป์ไลน์ปริมาณการใช้ของคุณเพื่อใช้ข้อมูลสแนปช็อต (ตารางที่มีการแบ่งพาร์ติชัน) เพื่อใช้ ข้อมูลเพิ่มเติม :แก้ไขปัญหาพูล SQL แบบไร้เซิร์ฟเวอร์
มีขีดจํากัดขนาดสําหรับแต่ละเรคคอร์ดเมื่อใช้ Azure Synapse Link หรือไม่
ใช่ Azure Synapse Link อ่านแถวผ่าน Dataverse ดังนั้นทุกขีดจํากัดข้อมูลต่อระเบียนจะนําไปใช้กับการซิงค์ ขีดจํากัดที่พบบ่อยที่สุดคือ 200 MiB cap บนขนาดที่ไม่บีบอัดของระเบียนเดียวที่ส่งกลับโดยเซิร์ฟเวอร์
โดยทั่วไปข้อจํากัดนี้นําไปใช้กับตารางที่จัดเก็บเนื้อหาแบบอิสระหรือข้อมูลไบนารีขนาดใหญ่ เช่น:
-
emailเก็บเนื้อหาเต็มของข้อความไว้ -
activitypointerมีคำอธิบายแบบยาว -
activitymimeattachmentจัดเก็บไฟล์แบบอินไลน์และไฟล์ที่แนบ
นี่คือขีดจํากัดของแพลตฟอร์ม Dataverse และไม่สามารถเกิดขึ้นตามคําขอได้ บริการไม่ได้ตัดทอนหรือแก้ไขข้อมูลลูกค้า เมื่อต้องการแก้ไขปัญหา ให้ลดระเบียนขนาดใหญ่ใน Dataverse โดยการลบ ล้างเขตข้อมูลขนาดใหญ่ หรือย้ายเนื้อหาออกจาก Dataverse
ฉันจะใช้ Azure Synapse Link เพื่อเก็บถาวรข้อมูลที่สําคัญได้อย่างไร
Azure Synapse Link สําหรับ Dataverse ถูกออกแบบมาเพื่อวัตถุประสงค์ในการวิเคราะห์ เราขอแนะนําให้ลูกค้าใช้การเก็บรักษาระยะยาวเพื่อวัตถุประสงค์ในการเก็บถาวร ข้อมูลเพิ่มเติม: ภาพรวมการเก็บรักษาข้อมูลในระยะยาวแบบผันผัน
เหตุใดฉันจึงไม่เห็นการเปลี่ยนแปลงข้อมูลใดๆ ใน data lake เมื่อระเบียนถูกลบใน Dataverse
สำหรับการเรียกใช้ SQL โดยตรงเพื่อเอาระเบียนออก บริการ Azure Synapse Link สำหรับ Dataverse จะไม่ทำงาน เพราะไม่มีการเรียกใช้ BPO.Delete สําหรับคุณลักษณะตัวอย่าง ไปที่วิธีการล้างการเข้าถึงที่สืบทอด
เหตุใดฉันจึงได้รับข้อผิดพลาดในการแปลงประเภทสําหรับคอลัมน์ประทับเวลาเมื่ออ่านไฟล์ Parquet ใน Apache Spark 3.5 หรือใหม่กว่า
ทั้งในโปรไฟล์ bring your own lake และโปรไฟล์ managed data lake การประทับเวลาในไฟล์ Parquet จะถูกจัดเก็บในรูปแบบ INT64 คุณอาจพบข้อผิดพลาดในไปป์ไลน์ปลายทาง เช่น Azure Synapse การดําเนินการคัดลอกไปป์ไลน์ เมื่ออ่านไฟล์ Parquet เหล่านี้ผ่าน Apache Spark 3.5 หรือใหม่กว่า ลักษณะการทํางานนี้เกิดขึ้นเนื่องจาก INT96 ไม่เป็นโหมดค่าเริ่มต้นสําหรับการประทับเวลาใน Spark 3.5 อีกต่อไป
คุณอาจเห็นข้อผิดพลาดคล้ายกับ:
TypeConversionNotSupportedDataTypes, Exception occurred when converting value "1774478519775185" for column name 'SinkCreatedOn' from type 'Int64'
เมื่อต้องการลดปัญหานี้ ให้เพิ่มฟังก์ชัน SQL ในฐานข้อมูล SQL ปลายทางของคุณเพื่อแปลงค่าประทับเวลาจาก INT64 เป็นรูปแบบ datetime ที่เหมาะสม หรืออัปเดตไปป์ไลน์ปลายทางของคุณเพื่อใช้รูปแบบ INT64