แชร์ผ่าน


กําหนดค่าฐานข้อมูล Azure สําหรับ PostgreSQL ในกิจกรรมการคัดลอก

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

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

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

  • ทั่วไปเกี่ยวกับ
  • แหล่งข้อมูลของ
  • ปลายทางของ
  • การแมป
  • การตั้งค่า

ทั่วไป

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

ที่มา

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

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

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

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

      • ตาราง : เลือกตารางจากรายการดรอปดาวน์ หรือเลือก ป้อนด้วยตนเอง ป้อนด้วยตนเองเพื่ออ่านข้อมูล

        สกรีนช็อตที่แสดงใช้คิวรี - ตาราง

    • ถ้าคุณเลือกคิวรี :

      • คิวรี : ระบุคิวรี SQL แบบกําหนดเองเพื่ออ่านข้อมูล ตัวอย่างเช่น: SELECT * FROM mytable หรือ SELECT * FROM "MyTable"

        โน้ต

        ใน PostgreSQL ชื่อเอนทิตีจะถือว่าไม่ตรงตามตัวพิมพ์ใหญ่-เล็ก หากไม่อ้างอิง

        สกรีนช็อตที่แสดงใช้คิวรี - คิวรี

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

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

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

    ถ้าคุณเลือก ไม่มีคุณเลือกที่จะไม่ใช้พาร์ติชัน

    ถ้าคุณเลือก พาร์ติชันจริงของตาราง:

    • ชื่อพาร์ติชัน: ระบุรายการของพาร์ติชันจริงที่จําเป็นต้องคัดลอก

      ถ้าคุณใช้คิวรีเพื่อดึงข้อมูลต้นทาง ?AdfTabularPartitionName hook ในส่วนคําสั่ง WHERE ตัวอย่างเช่น ดูสําเนาคู่ขนานจาก ฐานข้อมูล Azure สําหรับส่วน PostgreSQL

      สกรีนช็อตที่แสดงการกําหนดค่าเมื่อคุณเลือกพาร์ติชันจริงของตาราง

    ถ้าคุณเลือกช่วงไดนามิก :

    • ชื่อคอลัมน์พาร์ติชัน: ระบุชื่อของคอลัมน์ต้นทาง จํานวนเต็มหรือชนิดวันที่/วันที่เวลา (int, smallint, bigint, date, timestamp without time zone, timestamp with time zone หรือ time without time zone) ที่จะใช้โดยการกําหนดพาร์ติชันตามช่วงสําหรับสําเนาแบบขนาน ถ้าไม่ได้ระบุ คีย์หลักของตารางจะถูกตรวจพบโดยอัตโนมัติ และใช้เป็นคอลัมน์พาร์ติชัน

      ถ้าคุณใช้คิวรีเพื่อดึงข้อมูลต้นทาง ?AdfRangePartitionColumnName hook ในส่วนคําสั่ง WHERE ตัวอย่างเช่น ดูส่วน สําเนาแบบขนานจาก Azure Database สําหรับ PostgreSQL

    • Partitionที่ผูกไว้ด้านบน : ระบุค่าสูงสุดของคอลัมน์พาร์ติชันเพื่อคัดลอกข้อมูลออก

      ถ้าคุณใช้คิวรีเพื่อดึงข้อมูลต้นทาง ?AdfRangePartitionUpbound hook ในส่วนคําสั่ง WHERE ตัวอย่างเช่น ดูส่วน สําเนาแบบขนานจาก Azure Database สําหรับ PostgreSQL .

    • ที่ผูกกับพาร์ติชันที่ต่ํากว่า : ระบุค่าต่ําสุดของคอลัมน์พาร์ติชันเพื่อคัดลอกข้อมูลออก

      ถ้าคุณใช้คิวรีเพื่อดึงข้อมูลต้นทาง ?AdfRangePartitionLowbound hook ในส่วนคําสั่ง WHERE ตัวอย่างเช่น ดูส่วน สําเนาแบบขนานจาก Azure Database สําหรับ PostgreSQL

      สกรีนช็อตที่แสดงการกําหนดค่าเมื่อคุณเลือกช่วงไดนามิก

  • คอลัมน์เพิ่มเติม: เพิ่มคอลัมน์ข้อมูลเพิ่มเติมเพื่อจัดเก็บเส้นทางสัมพัทธ์หรือค่าคงที่ของไฟล์ต้นฉบับ นิพจน์ได้รับการสนับสนุนสําหรับอย่างหลัง

จุดหมาย

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

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

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

  • การเชื่อมต่อ : เลือกฐานข้อมูล Azure สําหรับการเชื่อมต่อ PostgreSQL จากรายการการเชื่อมต่อ ถ้าไม่มีการเชื่อมต่ออยู่ ให้สร้างฐานข้อมูล Azure ใหม่สําหรับการเชื่อมต่อ PostgreSQL
  • ชนิดการเชื่อมต่อ : เลือก ฐานข้อมูล Azure สําหรับ PostgreSQL
  • ตาราง : เลือกตารางจากรายการดรอปดาวน์ หรือเลือก ป้อนด้วยตนเอง ป้อนเพื่อเขียนข้อมูล

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

  • วิธีการเขียน: เลือกวิธีที่ใช้ในการเขียนข้อมูลลงในฐานข้อมูล Azure สําหรับ PostgreSQL เลือกจาก คําสั่งคัดลอก (ค่าเริ่มต้นมีประสิทธิภาพมากขึ้น) และ การแทรกจํานวนมาก

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

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

  • เขียนขนาดชุดงาน: ระบุจํานวนแถวที่โหลดลงในฐานข้อมูล Azure สําหรับ PostgreSQL ต่อชุดงาน ค่าที่อนุญาต คือจํานวนเต็มที่แสดงถึงจํานวนแถว ค่าเริ่มต้นคือ 1,000,000

การทําแผนที่

สําหรับการกําหนดค่าแท็บ Map โปรดดู กําหนดค่าการแมปของคุณภายใต้แท็บการแมป

การตั้งค่า

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

สําเนาคู่ขนานจากฐานข้อมูล Azure สําหรับ PostgreSQL

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

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

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

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

ในระหว่างการดําเนินการ บริการจะตรวจหาพาร์ติชันจริงโดยอัตโนมัติ และคัดลอกข้อมูลตามพาร์ติชัน
โหลดทั้งหมดจากตารางขนาดใหญ่ โดยไม่มีพาร์ติชันจริง ในขณะที่มีคอลัมน์จํานวนเต็มสําหรับการแบ่งพาร์ติชันข้อมูล ตัวเลือกพาร์ติชัน: ช่วงไดนามิก
คอลัมน์ Partition : ระบุคอลัมน์ที่ใช้ในการแบ่งพาร์ติชันข้อมูล ถ้าไม่ได้ระบุ จะใช้คอลัมน์คีย์หลัก
โหลดข้อมูลจํานวนมากโดยใช้คิวรีแบบกําหนดเองที่มีพาร์ติชันจริง ตัวเลือกพาร์ติชัน: พาร์ติชันจริงของตาราง
คิวรี : SELECT * FROM ?AdfTabularPartitionName WHERE <your_additional_where_clause>
ชื่อพาร์ติชัน: ระบุชื่อพาร์ติชันเพื่อคัดลอกข้อมูล ถ้าไม่ได้ระบุ บริการจะตรวจหาพาร์ติชันจริงบนตารางที่คุณระบุในชุดข้อมูล PostgreSQL โดยอัตโนมัติ

ในระหว่างการดําเนินการ บริการจะแทนที่ ?AdfTabularPartitionName ด้วยชื่อพาร์ติชันจริง และส่งไปยังฐานข้อมูล Azure สําหรับ PostgreSQL
โหลดข้อมูลจํานวนมากโดยใช้คิวรีแบบกําหนดเอง โดยไม่มีพาร์ติชันจริง ในขณะที่มีคอลัมน์จํานวนเต็มสําหรับการแบ่งพาร์ติชันข้อมูล ตัวเลือกพาร์ติชัน: ช่วงไดนามิก
คิวรี : SELECT * FROM ?AdfTabularPartitionName WHERE ?AdfRangePartitionColumnName <= ?AdfRangePartitionUpbound AND ?AdfRangePartitionColumnName >= ?AdfRangePartitionLowbound AND <your_additional_where_clause>
คอลัมน์ Partition : ระบุคอลัมน์ที่ใช้ในการแบ่งพาร์ติชันข้อมูล คุณสามารถแบ่งพาร์ติชันกับคอลัมน์ที่มีชนิดข้อมูลจํานวนเต็มหรือวันที่/วันที่เวลาได้
Partition ที่ผูก ด้านบนและ ส่วนล่างของพาร์ติชัน : ระบุว่าคุณต้องการกรองกับคอลัมน์พาร์ติชันเพื่อดึงข้อมูลระหว่างช่วงล่างและด้านบนเท่านั้น

ในระหว่างการดําเนินการ บริการจะแทนที่ ?AdfRangePartitionColumnName, ?AdfRangePartitionUpboundและ ?AdfRangePartitionLowbound ด้วยชื่อคอลัมน์จริงและช่วงค่าสําหรับแต่ละพาร์ติชัน และส่งไปยังฐานข้อมูล Azure สําหรับ PostgreSQL
ตัวอย่างเช่น ถ้าคอลัมน์พาร์ติชัน "ID" ของคุณถูกตั้งค่าด้วยส่วนที่ผูกต่ํากว่าเป็น 1 และขอบด้านบนเป็น 80 พร้อมกับการคัดลอกคู่ขนานที่ตั้งค่าเป็น 4 บริการจะดึงข้อมูลโดยพาร์ติชัน 4 รายการ ID ของพวกเขาอยู่ระหว่าง [1,20], [21, 40], [41, 60] และ [61, 80] ตามลําดับ

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

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

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

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

ข้อมูลต้นทาง

ชื่อ คำอธิบาย ค่า ต้องระบุ คุณสมบัติสคริปต์ JSON
การเชื่อมต่อ การเชื่อมต่อของคุณไปยังที่เก็บข้อมูลต้นทาง < ฐานข้อมูล Azure ของคุณสําหรับ > การเชื่อมต่อ PostgreSQL ใช่ การเชื่อมต่อ
ชนิดการเชื่อมต่อ ชนิดการเชื่อมต่อต้นทางของคุณ ฐานข้อมูล Azure สําหรับ PostgreSQL ใช่ /
ใช้ คิวรี วิธีการอ่านข้อมูล ใช้ ตาราง เพื่ออ่านข้อมูลจากตารางที่ระบุหรือใช้ คิวรี เพื่ออ่านข้อมูลโดยใช้คิวรี • ตาราง
คิวรี
ใช่ • typeProperties (ต่ํากว่า typeProperties ->source)
  - เค้าร่าง
  -โต๊ะ
•สอบถาม
หมดเวลาคิวรี (นาที) เวลารอก่อนสิ้นสุดการพยายามดําเนินการคําสั่งและสร้างข้อผิดพลาดค่าเริ่มต้นคือ 120 นาที ถ้าพารามิเตอร์ถูกตั้งค่าสําหรับคุณสมบัตินี้ ค่าที่อนุญาตคือ timespan เช่น "02:00:00" (120 นาที) สําหรับข้อมูลเพิ่มเติม โปรดดู CommandTimeout timespan ไม่ใช่ queryTimeout
ชื่อพาร์ติชัน รายการของพาร์ติชันจริงที่จําเป็นต้องคัดลอก ถ้าคุณใช้คิวรีเพื่อดึงข้อมูลต้นทาง ?AdfTabularPartitionName hook ในส่วนคําสั่ง WHERE < > ชื่อพาร์ติชันของคุณ ไม่ใช่ partitionNames
ชื่อคอลัมน์พาร์ติชัน ชื่อของคอลัมน์ต้นทาง จํานวนเต็มหรือชนิดวันที่/วันที่เวลา (int, smallint, bigint, date, timestamp without time zone, timestamp with time zone หรือ time without time zone) ที่จะใช้โดยการแบ่งพาร์ติชันช่วงสําหรับสําเนาแบบขนาน ถ้าไม่ได้ระบุ คีย์หลักของตารางจะถูกตรวจพบโดยอัตโนมัติ และใช้เป็นคอลัมน์พาร์ติชัน < ชื่อคอลัมน์พาร์ติชันของคุณ > ไม่ใช่ partitionColumnName
ขอบเขตบนของพาร์ติชัน ค่าสูงสุดของคอลัมน์พาร์ติชันเพื่อคัดลอกข้อมูลออก ถ้าคุณใช้คิวรีเพื่อดึงข้อมูลต้นทาง ?AdfRangePartitionUpbound hook ในส่วนคําสั่ง WHERE < > ขอบเขตบนของพาร์ติชันของคุณ ไม่ใช่ partitionUpperBound
ผูกพาร์ติชันที่ต่ํากว่า ค่าต่ําสุดของคอลัมน์พาร์ติชันเพื่อคัดลอกข้อมูลออก ถ้าคุณใช้คิวรีเพื่อดึงข้อมูลต้นทาง ?AdfRangePartitionLowbound hook ในส่วนคําสั่ง WHERE < > ที่ผูกไว้ต่ํากว่าพาร์ติชันของคุณ ไม่ใช่ partitionLowerBound
คอลัมน์เพิ่มเติม เพิ่มคอลัมน์ข้อมูลเพิ่มเติมเพื่อจัดเก็บเส้นทางสัมพัทธ์หรือค่าคงที่ของไฟล์ต้นฉบับ นิพจน์ได้รับการสนับสนุนสําหรับอย่างหลัง •ชื่อ
•ค่า
ไม่ใช่ additionalColumns:
•ชื่อ
•ค่า

ข้อมูลปลายทาง

ชื่อ คำอธิบาย ค่า ต้องระบุ คุณสมบัติสคริปต์ JSON
การเชื่อมต่อ การเชื่อมต่อของคุณไปยังที่เก็บข้อมูลปลายทาง < ฐานข้อมูล Azure ของคุณสําหรับ > การเชื่อมต่อ PostgreSQL ใช่ การเชื่อมต่อ
ชนิดการเชื่อมต่อ ชนิดการเชื่อมต่อปลายทางของคุณ ฐานข้อมูล Azure สําหรับ PostgreSQL ใช่ /
ตาราง ตารางข้อมูลปลายทางของคุณสําหรับเขียนข้อมูล < ชื่อของตารางปลายทางของคุณ > ใช่ typeProperties (ภายใต้ typeProperties ->sink):
  - เค้าร่าง
  -โต๊ะ
วิธีการเขียน วิธีที่ใช้ในการเขียนข้อมูลลงในฐานข้อมูล Azure สําหรับ PostgreSQL คัดลอกคําสั่ง (ค่าเริ่มต้น)
และวัว; จํานวนมากแทรก
ไม่ใช่ เขียน Method:
• CopyCommand
• BulkInsert
สคริปต์ก่อนคัดลอก คิวรี SQL สําหรับกิจกรรมการคัดลอกเพื่อดําเนินการก่อนที่คุณจะเขียนข้อมูลลงในฐานข้อมูล Azure สําหรับ PostgreSQL ในการเรียกใช้แต่ละครั้ง คุณสามารถใช้คุณสมบัตินี้ในการล้างข้อมูลที่โหลดไว้ล่วงหน้า < > สคริปต์ก่อนคัดลอกของคุณ ไม่ใช่ preCopyScript
เขียน หมดเวลาของชุดงาน เวลารอสําหรับชุดงานที่แทรกการดําเนินงานเพื่อเสร็จสิ้นก่อนที่จะหมดเวลา timespan
(ค่าเริ่มต้นคือ 00:30:00 - 30 นาที)
ไม่ใช่ writeBatchTimeout
เขียน ขนาดของชุดงาน จํานวนแถวที่โหลดลงในฐานข้อมูล Azure สําหรับ PostgreSQL ต่อชุดงาน จํานวนเต็ม
(ค่าเริ่มต้นคือ 1,000,000)
ไม่ใช่ writeBatchSize