แชร์ผ่าน


กําหนดค่า Azure Synapse Analytics ในกิจกรรมการคัดลอก

บทความนี้สรุปวิธีการใช้กิจกรรมการคัดลอกในไปป์ไลน์ข้อมูลเพื่อคัดลอกข้อมูลจากและไปยัง Azure Synapse Analytics

การกําหนดค่าที่ได้รับการสนับสนุน

สําหรับการกําหนดค่าของแต่ละแท็บภายใต้กิจกรรมการคัดลอก ให้ไปที่ส่วนต่อไปนี้ตามลําดับ

ทั่วไป

โปรดดูคําแนะนําการตั้งค่าทั่วไปเพื่อกําหนดค่าแท็บ การตั้งค่าทั่วไป

แหล่งที่มา

คุณสมบัติต่อไปนี้ได้รับการสนับสนุนสําหรับ Azure Synapse Analytics ภายใต้ แท็บแหล่งข้อมูล ของกิจกรรมการคัดลอก

สกรีนช็อตที่แสดงแท็บต้นทางและรายการคุณสมบัติ

จําเป็นต้องมีคุณสมบัติต่อไปนี้:

  • ชนิดของที่เก็บข้อมูล: เลือก ภายนอก

  • เชื่อมต่อ: เลือกการเชื่อมต่อ Azure Synapse Analytics จากรายการการเชื่อมต่อ ถ้าไม่มีการเชื่อมต่อ สร้างการเชื่อมต่อ Azure Synapse Analytics ใหม่ โดยการเลือกใหม่

  • ประเภท เชื่อมต่อ ion: เลือก Azure Synapse Analytics

  • ใช้คิวรี: คุณสามารถเลือกตาราง คิวรี หรือ Stored Procedure เพื่ออ่านข้อมูลต้นฉบับของคุณได้ รายการต่อไปนี้อธิบายถึงการกําหนดค่าของแต่ละการตั้งค่า:

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

      สกรีนช็อตที่แสดงตาราง

    • คิวรี: ระบุคิวรี SQL แบบกําหนดเองเพื่ออ่านข้อมูล ตัวอย่างคือselect * from MyTable หรือเลือกไอคอนดินสอเพื่อแก้ไขในตัวแก้ไขโค้ด

      สกรีนช็อตที่แสดงการเลือกคิวรี

    • Stored Procedure: ใช้ Stored Procedure ที่อ่านข้อมูลจากตารางแหล่งข้อมูล คําสั่ง SQL สุดท้ายต้องเป็นคําสั่ง SELECT ใน Stored Procedure

      สกรีนช็อตที่แสดงการตั้งค่ากระบวนการที่จัดเก็บไว้

      • ชื่อ Stored Procedure: เลือกกระบวนงานที่เก็บไว้ หรือระบุชื่อของกระบวนงานที่เก็บไว้ด้วยตนเองเมื่อเลือกแก้ไข
      • พารามิเตอร์ Stored Procedure: เลือกนําเข้าพารามิเตอร์เพื่อนําเข้าพารามิเตอร์ในขั้นตอนการจัดเก็บที่ระบุของคุณ หรือเพิ่มพารามิเตอร์สําหรับกระบวนงานที่เก็บไว้โดยการเลือก + ใหม่ ค่าที่อนุญาตคือคู่ชื่อหรือค่า ชื่อและปลอกของพารามิเตอร์ต้องตรงกับชื่อและการกําหนดปลอกของพารามิเตอร์ Stored Procedure

ภายใต้ ขั้นสูง คุณสามารถระบุเขตข้อมูลต่อไปนี้:

  • หมดเวลาคิวรี (นาที): ระบุการหมดเวลาสําหรับการดําเนินการคําสั่งแบบสอบถาม ค่าเริ่มต้นคือ 120 นาที ถ้าพารามิเตอร์ถูกตั้งค่าสําหรับคุณสมบัตินี้ ค่าที่ได้รับอนุญาตคือค่าช่วงเวลา เช่น "02:00:00" (120 นาที)

  • ระดับการแยก: ระบุลักษณะการทํางานของการล็อคธุรกรรมสําหรับแหล่งข้อมูล SQL ค่าที่อนุญาตคือ: ไม่มี, อ่านผูกมัด, อ่านไม่ได้ผูกมัด, อ่านซ้ําได้, อนุกรมได้ หรือสแนปช็อต ถ้าไม่ได้ระบุ จะใช้ระดับการแยกไม่มี โปรดดู IsolationLevel Enum สําหรับรายละเอียดเพิ่มเติม

    สกรีนช็อตที่แสดงการตั้งค่าระดับการแยก

  • ตัวเลือกพาร์ติชัน: ระบุตัวเลือกการแบ่งพาร์ติชันข้อมูลที่ใช้ในการโหลดข้อมูลจาก Azure Synapse Analytics ค่าที่อนุญาตคือ: ไม่มี (ค่าเริ่มต้น), พาร์ติชันจริงของตาราง และ ช่วงไดนามิก เมื่อเปิดใช้งานตัวเลือกพาร์ติชัน (นั่นคือไม่ใช่ ไม่มี) ระดับของการทํางานแบบขนานเพื่อโหลดข้อมูลจาก Azure Synapse Analytics พร้อมกันจะถูกควบคุมโดยการตั้งค่าการ คัดลอก แบบขนานบนกิจกรรมการคัดลอก

    • ไม่มี: เลือกการตั้งค่านี้เพื่อไม่ใช้พาร์ติชัน

    • พาร์ติชันจริงของตาราง: เลือกการตั้งค่านี้ถ้าคุณต้องการใช้พาร์ติชันจริง คอลัมน์และกลไกของพาร์ติชันจะถูกกําหนดโดยอัตโนมัติโดยยึดตามข้อกําหนดตารางจริงของคุณ

    • ช่วงไดนามิก: เลือกการตั้งค่านี้ถ้าคุณต้องการใช้พาร์ติชันช่วงไดนามิก เมื่อใช้คิวรีที่มีการเปิดใช้งานแบบขนาน จําเป็นต้องเลือกพารามิเตอร์พาร์ติชันช่วง (?DfDynamicRangePartitionCondition) คิวรีตัวอย่าง: SELECT * FROM <TableName> WHERE ?DfDynamicRangePartitionCondition

      สกรีนช็อตที่แสดงการตั้งค่าช่วงไดนามิก

      • ชื่อคอลัมน์พาร์ติชัน: ระบุชื่อของคอลัมน์ต้นทางใน จํานวนเต็มหรือชนิดวันที่/วันที่เวลา (int, smallint, bigint, date, smalldatetime, datetime, datetime2หรือ datetimeoffset) ที่ถูกใช้โดยช่วงการแบ่งพาร์ติชันสําหรับสําเนาแบบขนาน ถ้าไม่ได้ระบุ ดัชนีหรือคีย์หลักของตารางจะถูกตรวจหาโดยอัตโนมัติและใช้เป็นคอลัมน์พาร์ติชัน
      • ส่วนที่ผูกด้านบนของพาร์ติชัน: ระบุค่าสูงสุดของคอลัมน์พาร์ติชันสําหรับการแยกช่วงพาร์ติชัน ค่านี้ใช้เพื่อตัดสินใจว่าจะดําเนินการแบ่งพาร์ติชัน ไม่ใช่สําหรับการกรองแถวในตาราง แถวทั้งหมดในตารางหรือผลลัพธ์คิวรีจะถูกแบ่งพาร์ติชันและคัดลอก
      • ส่วนที่ผูกด้านล่างของพาร์ติชัน: ระบุค่าต่ําสุดของคอลัมน์พาร์ติชันสําหรับการแยกช่วงพาร์ติชัน ค่านี้ใช้เพื่อตัดสินใจว่าจะดําเนินการแบ่งพาร์ติชัน ไม่ใช่สําหรับการกรองแถวในตาราง แถวทั้งหมดในตารางหรือผลลัพธ์คิวรีจะถูกแบ่งพาร์ติชันและคัดลอก
  • คอลัมน์เพิ่มเติม: เพิ่มคอลัมน์ข้อมูลเพิ่มเติมเพื่อจัดเก็บเส้นทางสัมพัทธ์หรือค่าคงที่ของไฟล์ต้นฉบับ นิพจน์ได้รับการสนับสนุนสําหรับอย่างหลัง สําหรับข้อมูลเพิ่มเติม ให้ไปที่ เพิ่มคอลัมน์เพิ่มเติมในระหว่างการคัดลอก

ปลายทาง

คุณสมบัติต่อไปนี้ได้รับการสนับสนุนสําหรับ Azure Synapse Analytics ภายใต้ แท็บ ปลายทาง ของกิจกรรมการคัดลอก

สกรีนช็อตที่แสดงแท็บปลายทาง

จําเป็นต้องมีคุณสมบัติต่อไปนี้:

  • ชนิดของที่เก็บข้อมูล: เลือก ภายนอก
  • เชื่อมต่อ: เลือกการเชื่อมต่อ Azure Synapse Analytics จากรายการการเชื่อมต่อ ถ้าไม่มีการเชื่อมต่อ สร้างการเชื่อมต่อ Azure Synapse Analytics ใหม่ โดยการเลือกใหม่
  • ประเภท เชื่อมต่อ ion: เลือก Azure Synapse Analytics
  • ตัวเลือกตาราง: คุณสามารถเลือก ใช้ตารางที่มีอยู่ และ สร้างตารางอัตโนมัติได้ รายการต่อไปนี้อธิบายถึงการกําหนดค่าของแต่ละการตั้งค่า:
    • ใช้ที่มีอยู่: เลือกตารางในฐานข้อมูลของคุณจากรายการดรอปดาวน์ หรือตรวจสอบ แก้ไข เพื่อใส่ schema และชื่อตารางของคุณด้วยตนเอง
    • สร้างตารางโดยอัตโนมัติ: จะสร้างตารางโดยอัตโนมัติ (ถ้าไม่มีอยู่) ใน schema ต้นทาง

ภายใต้ ขั้นสูง คุณสามารถระบุเขตข้อมูลต่อไปนี้:

  • คัดลอกวิธีการ เลือกวิธีการที่คุณต้องการใช้เพื่อคัดลอกข้อมูล คุณสามารถเลือก คัดลอกคําสั่ง, PolyBase, Bulk insert หรือ Upsert ได้ รายการต่อไปนี้อธิบายถึงการกําหนดค่าของแต่ละการตั้งค่า:

    • คัดลอกคําสั่ง: ใช้คําสั่งคัดลอกเพื่อโหลดข้อมูลจากที่เก็บข้อมูล Azure ลงใน Azure Synapse Analytics หรือ SQL Pool

      สกรีนช็อตที่แสดงการตั้งค่าคําสั่งคัดลอก

      • อนุญาตคําสั่งคัดลอก: จําเป็นที่จะต้องเลือกเมื่อคุณเลือกคัดลอกคําสั่ง
      • ค่าเริ่มต้น: ระบุค่าเริ่มต้นสําหรับแต่ละคอลัมน์เป้าหมายใน Azure Synapse Analytics ค่าเริ่มต้นในคุณสมบัติจะเขียนทับข้อจํากัดเริ่มต้นที่ตั้งไว้ในคลังข้อมูล และคอลัมน์ข้อมูลประจําตัวไม่สามารถมีค่าเริ่มต้นได้
      • ตัวเลือกเพิ่มเติม: ตัวเลือกเพิ่มเติมที่จะถูกส่งผ่านไปยังคําสั่ง Azure Synapse Analytics COPY โดยตรงในส่วนคําสั่ง "ด้วย" ใน คําสั่งคัดลอก อ้างอิงค่าตามความจําเป็นเพื่อให้สอดคล้องกับข้อกําหนดของคําสั่งคัดลอก
    • PolyBase: PolyBase เป็นกลไกปริมาณงานสูง ใช้เพื่อโหลดข้อมูลจํานวนมากลงใน Azure Synapse Analytics หรือ SQL Pool

      สกรีนช็อตแสดงการตั้งค่า PolyBase

      • อนุญาต PolyBase: เป็นข้อบังคับให้เลือกเมื่อคุณเลือก PolyBase
      • ประเภทการปฏิเสธ: ระบุว่า ตัวเลือก ปฏิเสธค่า เป็นค่าสัญพจน์หรือเปอร์เซ็นต์ ค่าที่อนุญาตคือค่า (ค่าเริ่มต้น) และเปอร์เซ็นต์
      • ปฏิเสธค่า: ระบุจํานวนหรือเปอร์เซ็นต์ของแถวที่สามารถถูกปฏิเสธก่อนที่คิวรีจะล้มเหลว เรียนรู้เพิ่มเติมเกี่ยวกับตัวเลือกการปฏิเสธของ PolyBase ในส่วน อาร์กิวเมนต์ ของ สร้างตารางภายนอก (คําสั่ง Transact-SQL) ค่าที่อนุญาตคือ 0 (ค่าเริ่มต้น) 1, 2 และอื่น ๆ
      • ปฏิเสธค่าตัวอย่าง: กําหนดจํานวนแถวที่จะดึงข้อมูลก่อน PolyBase จะคํานวณเปอร์เซ็นต์ของแถวที่ถูกปฏิเสธใหม่ ค่าที่อนุญาตคือ 1, 2, ฯลฯ หากคุณเลือก เปอร์เซ็นต์ เป็นประเภทปฏิเสธ ของคุณ คุณสมบัตินี้จําเป็น
      • ใช้ค่าเริ่มต้นชนิด: ระบุวิธีการจัดการค่าที่หายไปในไฟล์ข้อความที่คั่นเมื่อ PolyBase ดึงข้อมูลจากไฟล์ข้อความ เรียนรู้เพิ่มเติมเกี่ยวกับคุณสมบัตินี้จากส่วน อาร์กิวเมนต์ ใน สร้างไฟล์รูปแบบภายนอก (Transact-SQL) ค่าที่อนุญาตจะถูกเลือก (ค่าเริ่มต้น) หรือไม่ได้เลือก
    • การแทรกจํานวนมาก: ใช้ การแทรก จํานวนมากเพื่อแทรกข้อมูลไปยังปลายทางเป็นกลุ่ม

      สกรีนช็อตที่แสดงการตั้งค่าการแทรกจํานวนมาก

      • ล็อคตารางการแทรกจํานวนมาก: ใช้สิ่งนี้เพื่อปรับปรุงประสิทธิภาพการคัดลอกในระหว่างการแทรกจํานวนมากบนตารางที่ไม่มีดัชนีจากหลายไคลเอ็นต์ เรียนรู้เพิ่มเติมจาก BULK INSERT (Transact-SQL)
    • Upsert: ระบุกลุ่มของการตั้งค่าสําหรับลักษณะการทํางานการเขียนเมื่อคุณต้องการ upsert ข้อมูลไปยังปลายทางของคุณ

      สกรีนช็อตที่แสดงการตั้งค่า Upsert

      • คอลัมน์คีย์: เลือกคอลัมน์ที่จะใช้เพื่อกําหนดว่าแถวจากต้นทางตรงกับแถวจากปลายทางหรือไม่

      • ล็อคตารางการแทรกจํานวนมาก: ใช้สิ่งนี้เพื่อปรับปรุงประสิทธิภาพการคัดลอกในระหว่างการแทรกจํานวนมากบนตารางที่ไม่มีดัชนีจากหลายไคลเอ็นต์ เรียนรู้เพิ่มเติมจาก BULK INSERT (Transact-SQL)

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

  • เขียนการหมดเวลาของชุดงาน: ระบุเวลารอสําหรับการดําเนินการแทรกชุดงานเพื่อเสร็จสิ้นก่อนที่จะหมดเวลา ค่าที่อนุญาตคือช่วงเวลา ค่าเริ่มต้นคือ "00:30:00" (30 นาที)

  • เขียนขนาดของชุดงาน: ระบุจํานวนแถวที่จะแทรกลงในตาราง SQL สําหรับแต่ละชุดงาน ค่าที่อนุญาตคือจํานวนเต็ม (จํานวนแถว) ตามค่าเริ่มต้น บริการจะกําหนดขนาดของชุดงานที่เหมาะสมแบบไดนามิกตามขนาดของแถว

  • การเชื่อมต่อพร้อมกันสูงสุด: ระบุขีดจํากัดสูงสุดของการเชื่อมต่อพร้อมกันที่สร้างขึ้นไปยังที่เก็บข้อมูลในระหว่างการเรียกใช้กิจกรรม ระบุค่าเมื่อคุณต้องการจํากัดการเชื่อมต่อที่เกิดขึ้นพร้อมกันเท่านั้น

  • ปิดใช้งานการวิเคราะห์เมตริกประสิทธิภาพ: การตั้งค่านี้ใช้เพื่อรวบรวมเมตริก เช่น DTU, DWU, RU และอื่นๆ เพื่อคัดลอกการเพิ่มประสิทธิภาพและคําแนะนํา หากคุณเกี่ยวข้องกับลักษณะการทํางานนี้ ให้เลือกกล่องกาเครื่องหมายนี้ ซึ่งไม่ได้ถูกเลือกตามค่าเริ่มต้น

คัดลอกโดยตรงโดยใช้คําสั่งคัดลอก

คําสั่ง Azure Synapse Analytics COPY สนับสนุน Azure Blob Storage และ Azure Data Lake Storage รุ่น2 เป็นที่เก็บข้อมูลต้นทางโดยตรง ถ้าข้อมูลต้นทางของคุณตรงตามเกณฑ์ที่อธิบายไว้ในส่วนนี้ ให้ใช้คําสั่งคัดลอกเพื่อคัดลอกโดยตรงจากที่เก็บข้อมูลต้นทางไปยัง Azure Synapse Analytics

  1. ข้อมูลต้นฉบับและรูปแบบประกอบด้วยชนิดและวิธีการรับรองความถูกต้องต่อไปนี้:

    ชนิดที่เก็บข้อมูลต้นทางที่สนับสนุน รูปแบบที่ได้รับการสนับสนุน ชนิดการรับรองความถูกต้องของแหล่งข้อมูลที่ได้รับการสนับสนุน
    ที่เก็บข้อมูล Azure Blob ข้อความที่คั่น
    Parquet
    การรับรองความถูกต้องแบบไม่ระบุชื่อ
    การรับรองความถูกต้องของคีย์บัญชี
    การรับรองความถูกต้องลายเซ็นการเข้าถึงที่ใช้ร่วมกัน
    Azure Data Lake Storage รุ่น2 ข้อความที่คั่น
    Parquet
    การรับรองความถูกต้องของคีย์บัญชี
    การรับรองความถูกต้องลายเซ็นการเข้าถึงที่ใช้ร่วมกัน
  2. คุณสามารถตั้งค่ารูปแบบต่อไปนี้ได้:

    1. สําหรับ Parquet: ประเภทการบีบอัดสามารถเป็น ไม่มี, snappy หรือ gzip
    2. สําหรับ DelimitedText:
      1. ตัวคั่นแถว: เมื่อคัดลอกข้อความที่คั่นไปยัง Azure Synapse Analytics ผ่านคําสั่งคัดลอกโดยตรง ให้ระบุตัวคั่นแถวอย่างชัดเจน (\r; \n; หรือ \r\n) เฉพาะเมื่อตัวคั่นแถวของแฟ้มต้นฉบับคือ \r\n ค่าเริ่มต้น (\r, \n หรือ \r\n) ใช้งานได้ มิฉะนั้น ให้เปิดใช้งานการจัดเตรียมสําหรับสถานการณ์ของคุณ
      2. ค่า Null ถูกปล่อยให้เป็นค่าเริ่มต้นหรือตั้งค่าเป็นสตริงว่าง ("")
      3. การเข้ารหัสถูกปล่อยให้เป็นค่าเริ่มต้นหรือตั้งค่าเป็น UTF-8 หรือ UTF-16
      4. ข้ามจํานวน บรรทัดที่เหลือเป็นค่าเริ่มต้นหรือตั้งค่าเป็น 0
      5. ชนิดการบีบอัดสามารถเป็น ไม่มี หรือ gzip
  3. ถ้าแหล่งข้อมูลของคุณเป็นโฟลเดอร์ คุณต้องเลือกกล่องกาเครื่องหมายแบบเรียกใช้ซ้ํา

  4. เวลาเริ่มต้น (UTC) และเวลาสิ้นสุด (UTC) ในตัวกรองตามการปรับเปลี่ยนครั้งล่าสุด คํานําหน้า เปิดใช้งานการค้นพบพาร์ติชัน และคอลัมน์เพิ่มเติมไม่ได้ระบุไว้

หากต้องการเรียนรู้วิธีการรวบรวมข้อมูลลงใน Azure Synapse Analytics ของคุณโดยใช้คําสั่งคัดลอก โปรดดูบทความนี้

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

การแม็ป

สําหรับการกําหนดค่าแท็บการแมป ถ้าคุณไม่ได้ใช้ Azure Synapse Analytics กับตารางสร้างอัตโนมัติเป็นปลายทางของคุณ ให้ไปที่ การแมป

ถ้าคุณใช้ Azure Synapse Analytics กับการสร้างตารางอัตโนมัติเป็นปลายทางของคุณ ยกเว้นการกําหนดค่าใน การจัดวาง คุณสามารถแก้ไขชนิดสําหรับคอลัมน์ปลายทางของคุณได้ หลังจากเลือก นําเข้า schemas คุณสามารถระบุชนิดคอลัมน์ในปลายทางของคุณได้

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

สกรีนช็อตของชนิดคอลัมน์ปลายทางการแมป

การตั้งค่า

สําหรับการตั้งค่าการกําหนดค่าแท็บ ให้ไปที่ กําหนดค่าการตั้งค่าอื่น ๆ ของคุณภายใต้แท็บ การตั้งค่า

สําเนาคู่ขนานจาก Azure Synapse Analytics

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

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

คุณแนะนําให้เปิดใช้งานสําเนาคู่ขนานกับการแบ่งพาร์ติชันข้อมูลโดยเฉพาะอย่างยิ่งเมื่อคุณโหลดข้อมูลจํานวนมากจาก Azure Synapse Analytics ของคุณ ต่อไปนี้คือการกําหนดค่าที่แนะนําสําหรับสถานการณ์ที่แตกต่างกัน เมื่อคัดลอกข้อมูลลงในที่เก็บข้อมูลตามไฟล์ ขอแนะนําให้เขียนไปยังโฟลเดอร์เป็นหลายไฟล์ (ระบุชื่อโฟลเดอร์เท่านั้น) ซึ่งในกรณีนี้ประสิทธิภาพการทํางานจะดีกว่าการเขียนไปยังไฟล์เดียว

สถานการณ์สมมติ การตั้งค่าที่แนะนํา
โหลดทั้งหมดจากตารางขนาดใหญ่ ที่มีพาร์ติชันจริง ตัวเลือกพาร์ติชัน: พาร์ติชันจริงของตาราง

ในระหว่างการดําเนินการ บริการจะตรวจหาพาร์ติชันจริงโดยอัตโนมัติ และคัดลอกข้อมูลตามพาร์ติชัน

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

ตัวอย่างเช่น ถ้าคอลัมน์พาร์ติชัน "ID" ของคุณมีค่าตั้งแต่ 1 ถึง 100 และคุณตั้งค่าขีดจํากัดล่างเป็น 20 และขีดจํากัดสูงสุดเป็น 80 พร้อมกับการคัดลอกแบบขนานเป็น 4 บริการจะดึงข้อมูลโดยพาร์ติชัน 4 ตัว - ID ในช่วง <=20, [21, 50], [51, 80], และ >=81 ตามลําดับ
โหลดข้อมูลจํานวนมากโดยใช้คิวรีแบบกําหนดเอง โดยไม่มีพาร์ติชันจริง ในขณะที่มีคอลัมน์จํานวนเต็มหรือวันที่/วันที่เวลาสําหรับการแบ่งพาร์ติชันข้อมูล ตัวเลือกพาร์ติชัน: พาร์ติชันช่วงไดนามิก
คิวรี: SELECT * FROM <TableName> WHERE ?DfDynamicRangePartitionCondition AND <your_additional_where_clause>
คอลัมน์พาร์ติชัน: ระบุคอลัมน์ที่ใช้ในการแบ่งพาร์ติชันข้อมูล
พาร์ติชันที่ผูกสูงสุด และ ขีดจํากัด ล่างของพาร์ติชัน (ไม่บังคับ): ระบุว่าคุณต้องการกําหนดการก้าวสู่พาร์ติชันหรือไม่ ซึ่งไม่ใช่สําหรับการกรองแถวในตาราง แถวทั้งหมดในผลลัพธ์คิวรีจะถูกแบ่งพาร์ติชันและคัดลอก ถ้าไม่ได้ระบุ คัดลอกกิจกรรมจะตรวจหาค่าโดยอัตโนมัติ

ตัวอย่างเช่น ถ้าคอลัมน์พาร์ติชัน "ID" ของคุณมีค่าตั้งแต่ 1 ถึง 100 และคุณตั้งค่าขีดจํากัดล่างเป็น 20 และขีดจํากัดสูงสุดเป็น 80 พร้อมกับการคัดลอกแบบขนานเป็น 4 บริการจะดึงข้อมูลตามพาร์ติชัน 4- ID ในช่วง <=20, [21, 50], [51, 80], และ >=81 ตามลําดับ

ต่อไปนี้คือตัวอย่างคิวรีเพิ่มเติมสําหรับสถานการณ์ที่แตกต่างกัน:
• คิวรีทั้งตาราง:
SELECT * FROM <TableName> WHERE ?DfDynamicRangePartitionCondition
• คิวรีจากตารางที่มีการเลือกคอลัมน์และตัวกรองส่วนคําสั่งที่เพิ่มเติม:
SELECT <column_list> FROM <TableName> WHERE ?DfDynamicRangePartitionCondition AND <your_additional_where_clause>
•คิวรีพร้อมคิวรีย่อย:
SELECT <column_list> FROM (<your_sub_query>) AS T WHERE ?DfDynamicRangePartitionCondition AND <your_additional_where_clause>
• คิวรีพร้อมพาร์ติชันในคิวรี่ย่อย:
SELECT <column_list> FROM (SELECT <your_sub_query_column_list> FROM <TableName> WHERE ?DfDynamicRangePartitionCondition) AS T

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

  • เลือกคอลัมน์ที่โดดเด่นเป็นคอลัมน์พาร์ติชัน (เช่นคีย์หลักหรือคีย์ที่ไม่ซ้ํากัน) เพื่อหลีกเลี่ยงการบิดเบือนข้อมูล
  • ถ้าตารางมีพาร์ติชันที่มีอยู่ภายใน ให้ใช้ตัวเลือก พาร์ติชัน พาร์ติชันของตาราง เพื่อให้ได้ประสิทธิภาพที่ดีขึ้น
  • Azure Synapse Analytics สามารถดําเนินการได้สูงสุด 32 คิวรีในแต่ละครั้ง การตั้งค่า ระดับการคัดลอกแบบ ขนานที่มากเกินไปอาจก่อให้เกิดปัญหาการจํากัดผลลัพธ์ของ Synapse

คิวรีตัวอย่างเพื่อตรวจสอบพาร์ติชันจริง

SELECT DISTINCT s.name AS SchemaName, t.name AS TableName, c.name AS ColumnName, CASE WHEN c.name IS NULL THEN 'no' ELSE 'yes' END AS HasPartition
FROM sys.tables AS t
LEFT JOIN sys.objects AS o ON t.object_id = o.object_id
LEFT JOIN sys.schemas AS s ON o.schema_id = s.schema_id
LEFT JOIN sys.indexes AS i ON t.object_id = i.object_id
LEFT JOIN sys.index_columns AS ic ON ic.partition_ordinal > 0 AND ic.index_id = i.index_id AND ic.object_id = t.object_id
LEFT JOIN sys.columns AS c ON c.object_id = ic.object_id AND c.column_id = ic.column_id
LEFT JOIN sys.types AS y ON c.system_type_id = y.system_type_id
WHERE s.name='[your schema]' AND t.name = '[your table name]'

ถ้าตารางมีพาร์ติชันจริง คุณจะเห็น "HasPartition" เป็น "ใช่"

ข้อมูลสรุปของตาราง

ตารางต่อไปนี้ประกอบด้วยข้อมูลเพิ่มเติมเกี่ยวกับกิจกรรมการคัดลอกใน Azure Synapse Analytics

แหล่งที่มา

ชื่อ รายละเอียด ค่า ต้องมี คุณสมบัติสคริปต์ JSON
ชนิดของที่เก็บข้อมูล ประเภทที่เก็บข้อมูลของคุณ ภายนอก ใช่ /
เชื่อมต่อชั่น การเชื่อมต่อของคุณไปยังที่เก็บข้อมูลต้นทาง < การเชื่อมต่อของคุณ > ใช่ เชื่อม ต่อ
ชนิดเชื่อมต่อ ชนิดการเชื่อมต่อต้นทางของคุณ Azure Synapse Analytics ใช่ /
ใช้คิวรี วิธีการอ่านข้อมูล •ตาราง
•แบบ สอบ ถาม
•ขั้นตอนการจัดเก็บ
ใช่ • typeProperties (ภายใต้ typeProperties ->source)
  -เค้า ร่าง
  -ตาราง
• sqlReaderQuery
• sqlReaderStoredProcedureName
  storedProcedureParameters
  -ชื่อ
  -ค่า
หมดเวลาคิวรี การหมดเวลาสําหรับการดําเนินการคําสั่งคิวรี ค่าเริ่มต้นคือ 120 นาที timespan ไม่ queryTimeout
ระดับการแยก ลักษณะการทํางานการล็อคธุรกรรมสําหรับแหล่งข้อมูล SQL •ไม่
• ยอมรับการอ่าน
•อ่านไม่ได้ผูกมัด
•ทําซ้ําอ่าน
• Serializable
•Snapshot
ไม่ isolationLevel:
 
• ReadCommitted
• ReadUncommitted
•ทําซ้ําได้อ่าน
• Serializable
•Snapshot
ตัวเลือกพาร์ติชัน ตัวเลือกการแบ่งพาร์ติชันข้อมูลที่ใช้ในการโหลดข้อมูลจากฐานข้อมูล Azure SQL •ไม่
• พาร์ติชันจริงของตาราง
•ช่วงไดนามิก
  - ชื่อคอลัมน์พาร์ติชัน
 - พาร์ติชันที่ผูกด้านบน
 - ขอบส่วนล่างของพาร์ติชัน
ไม่ partitionOption:
 
• PhysicalPartitionsOfTable
• DynamicRange
  พาร์ติชันการตั้งค่า:
  - partitionColumnName
  - พาร์ติชัน UpperBound
  - partitionLowerBound
คอลัมน์เพิ่มเติม เพิ่มคอลัมน์ข้อมูลเพิ่มเติมเพื่อจัดเก็บเส้นทางสัมพัทธ์หรือค่าคงที่ของไฟล์ต้นฉบับ นิพจน์ได้รับการสนับสนุนสําหรับอย่างหลัง • ชื่อ
•ค่า
ไม่ additionalColumns:
•ชื่อ
•ค่า

ปลายทาง

ชื่อ รายละเอียด ค่า ต้องมี คุณสมบัติสคริปต์ JSON
ชนิดของที่เก็บข้อมูล ประเภทที่เก็บข้อมูลของคุณ ภายนอก ใช่ /
เชื่อมต่อชั่น การเชื่อมต่อของคุณไปยังที่เก็บข้อมูลปลายทาง < การเชื่อมต่อของคุณ > ใช่ เชื่อม ต่อ
ชนิดเชื่อมต่อ ชนิดการเชื่อมต่อปลายทางของคุณ Azure Synapse Analytics ใช่ /
ตัวเลือกตาราง ตัวเลือกตารางข้อมูลปลายทางของคุณ • ใช้ที่มีอยู่
• สร้างตารางอัตโนมัติ
ใช่ • typeProperties (ภายใต้ typeProperties ->sink)
  -เค้า ร่าง
  -ตาราง
•ตัวเลือกตาราง:
  - สร้างอัตโนมัติ
  typeProperties (ภายใต้ typeProperties ->sink)
  -เค้า ร่าง
  -ตาราง
คัดลอกวิธีการ วิธีการที่ใช้ในการคัดลอกข้อมูล • คัดลอกคําสั่ง
• โพลิเบส
•เม็ดมีดจํานวนมาก
•Upsert
ไม่ /
เมื่อเลือก คําสั่งคัดลอก ใช้คําสั่ง COPY เพื่อโหลดข้อมูลจากที่เก็บข้อมูล Azure ลงใน Azure Synapse Analytics หรือ SQL Pool / ไม่ใช่
นําไปใช้เมื่อใช้การคัดลอก
allowCopyCommand: true
copyCommand การตั้งค่า
ค่าเริ่มต้น ระบุค่าเริ่มต้นสําหรับแต่ละคอลัมน์เป้าหมายใน Azure Synapse Analytics ค่าเริ่มต้นในคุณสมบัติจะเขียนทับข้อจํากัดเริ่มต้นที่ตั้งไว้ในคลังข้อมูล และคอลัมน์ข้อมูลประจําตัวไม่สามารถมีค่าเริ่มต้นได้ < ค่าเริ่มต้น > ไม่ defaultValues:
  - columnName
  - defaultValue
ตัวเลือกเพิ่มเติม ตัวเลือกเพิ่มเติมที่จะถูกส่งผ่านไปยังคําสั่ง Azure Synapse Analytics COPY โดยตรงในส่วนคําสั่ง "With" ใน คําสั่ง COPY อ้างอิงค่าตามความจําเป็นเพื่อให้สอดคล้องกับข้อกําหนดของคําสั่งคัดลอก < ตัวเลือกเพิ่มเติม > ไม่ ตัวเลือกเพิ่มเติม:
- <ชื่อ> คุณสมบัติ : <ค่า>
เมื่อเลือก PolyBase PolyBase เป็นกลไกปริมาณงานสูง ใช้เพื่อโหลดข้อมูลจํานวนมากลงใน Azure Synapse Analytics หรือ SQL Pool / ไม่ใช่
นําไปใช้เมื่อใช้ PolyBase
allowPolyBase: จริง
polyBase การตั้งค่า
ปฏิเสธชนิด ชนิดของค่าปฏิเสธ •ค่า
•เปอร์เซ็นต์
ไม่ rejectType:
-ค่า
-เปอร์เซ็นต์
ปฏิเสธค่า จํานวนหรือเปอร์เซ็นต์ของแถวที่สามารถปฏิเสธก่อนที่คิวรีจะล้มเหลว 0 (ค่าเริ่มต้น), 1, 2, ฯลฯ ไม่ rejectValue
ปฏิเสธค่าตัวอย่าง กําหนดจํานวนแถวที่จะดึงข้อมูลก่อน PolyBase จะคํานวณเปอร์เซ็นต์ของแถวที่ถูกปฏิเสธอีกครั้ง 1,2,ฯลฯของ ใช่ เมื่อคุณระบุ เปอร์เซ็นต์ เป็นประเภทการปฏิเสธของคุณ rejectSampleValue
ใช้ค่าเริ่มต้นของชนิด ระบุวิธีการจัดการค่าที่ขาดหายไปในไฟล์ข้อความที่คั่นเมื่อ PolyBase ดึงข้อมูลจากไฟล์ข้อความ เรียนรู้เพิ่มเติมเกี่ยวกับคุณสมบัตินี้จากส่วนอาร์กิวเมนต์ใน สร้างรูปแบบไฟล์ภายนอก (Transact-SQL) เลือกแล้ว (ค่าเริ่มต้น) หรือยกเลิกการเลือก ไม่ useTypeDefault:
จริง (ค่าเริ่มต้น) หรือ เท็จ
เมื่อเลือกการ แทรกจํานวนมาก แทรกข้อมูลไปยังปลายทางเป็นกลุ่ม / ไม่ writeBehavior: แทรก
ล็อคตารางการแทรกจํานวนมาก ใช้สิ่งนี้เพื่อปรับปรุงประสิทธิภาพการคัดลอกในระหว่างการแทรกจํานวนมากบนตารางโดยไม่มีดัชนีจากหลายไคลเอ็นต์ เรียนรู้เพิ่มเติมจาก BULK INSERT (Transact-SQL) เลือกหรือไม่เลือก (ค่าเริ่มต้น) ไม่ sqlWriterUseTableLock:
จริง หรือ เท็จ (ค่าเริ่มต้น)
เมื่อเลือก Upsert ระบุกลุ่มของการตั้งค่าสําหรับลักษณะการทํางานการเขียนเมื่อคุณต้องการเพิ่มข้อมูลไปยังปลายทางของคุณ / ไม่ writeBehavior: Upsert
คอลัมน์คีย์ ระบุว่าคอลัมน์ใดที่ใช้เพื่อกําหนดว่าแถวจากต้นทางตรงกับแถวจากปลายทางหรือไม่ < ชื่อคอลัมน์> ไม่ upsert การตั้งค่า:
  - คีย์: < ชื่อคอลัมน์ >
  - interimSchemaName
ล็อคตารางการแทรกจํานวนมาก ใช้สิ่งนี้เพื่อปรับปรุงประสิทธิภาพการคัดลอกในระหว่างการแทรกจํานวนมากบนตารางโดยไม่มีดัชนีจากหลายไคลเอ็นต์ เรียนรู้เพิ่มเติมจาก BULK INSERT (Transact-SQL) เลือกหรือไม่เลือก (ค่าเริ่มต้น) ไม่ sqlWriterUseTableLock:
จริง หรือ เท็จ (ค่าเริ่มต้น)
สคริปต์สําเนาล่วงหน้า สคริปต์สําหรับคัดลอกกิจกรรมเพื่อดําเนินการก่อนเขียนข้อมูลลงในตารางปลายทางในการเรียกใช้แต่ละครั้ง คุณสามารถใช้คุณสมบัตินี้เพื่อล้างข้อมูลที่โหลดไว้ล่วงหน้า < สคริปต์ก่อนคัดลอก >
(สตริง)
ไม่ preCopyScript
เขียนการหมดเวลาของชุดงาน เวลารอสําหรับชุดงานที่แทรกการดําเนินงานเพื่อเสร็จสิ้นก่อนที่จะหมดเวลา ค่าที่อนุญาตคือช่วงเวลา ค่าเริ่มต้นคือ "00:30:00" (30 นาที) timespan ไม่ writeBatchTimeout
เขียนขนาดของชุดงาน จํานวนแถวที่จะแทรกลงในตาราง SQL ต่อชุดงาน ตามค่าเริ่มต้น บริการจะกําหนดขนาดของชุดงานที่เหมาะสมแบบไดนามิกตามขนาดของแถว < จํานวนแถว >
(จํานวนเต็ม)
ไม่ writeBatchSize
การเชื่อมต่อพร้อมกันสูงสุด ขีดจํากัดสูงสุดของการเชื่อมต่อพร้อมกันที่สร้างขึ้นกับที่เก็บข้อมูลในระหว่างการเรียกใช้กิจกรรม ระบุค่าเมื่อคุณต้องการจํากัดการเชื่อมต่อที่เกิดขึ้นพร้อมกันเท่านั้น < ขีดจํากัดสูงสุดของการเชื่อมต่อพร้อมกัน >
(จํานวนเต็ม)
ไม่ maxConcurrent เชื่อมต่อ ions
ปิดใช้งานการวิเคราะห์เมตริกประสิทธิภาพ การตั้งค่านี้ใช้เพื่อรวบรวมเมตริก เช่น DTU, DWU, RU และอื่นๆ เพื่อการเพิ่มประสิทธิภาพการคัดลอกและคําแนะนํา หากคุณเกี่ยวข้องกับลักษณะการทํางานนี้ ให้เลือกกล่องกาเครื่องหมายนี้ เลือกหรือยกเลิกการเลือก (ค่าเริ่มต้น) ไม่ disableMetricsCollection:
จริง หรือ เท็จ (ค่าเริ่มต้น)