กําหนดค่าฐานข้อมูล 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 สําหรับ PostgreSQLPartitionที่ผูกไว้ด้านบน : ระบุค่าสูงสุดของคอลัมน์พาร์ติชันเพื่อคัดลอกข้อมูลออก
ถ้าคุณใช้คิวรีเพื่อดึงข้อมูลต้นทาง
?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 |