หมายเหตุ
การเข้าถึงหน้านี้ต้องได้รับการอนุญาต คุณสามารถลอง ลงชื่อเข้าใช้หรือเปลี่ยนไดเรกทอรีได้
การเข้าถึงหน้านี้ต้องได้รับการอนุญาต คุณสามารถลองเปลี่ยนไดเรกทอรีได้
บทความนี้สรุปวิธีการใช้กิจกรรมการคัดลอกในไปป์ไลน์เพื่อคัดลอกข้อมูลจากและไปยัง Teradata
การกําหนดค่าที่ได้รับการสนับสนุน
สําหรับการกําหนดค่าของแต่ละแท็บภายใต้กิจกรรมการคัดลอก ให้ไปที่ส่วนต่อไปนี้ตามลําดับ
ทั่วไป
สําหรับการกําหนดค่าแท็บทั่วไป ไปที่ทั่วไป
แหล่งที่มา
เคล็ดลับ
หากต้องการโหลดข้อมูลจาก Teradata อย่างมีประสิทธิภาพโดยใช้การแบ่งพาร์ติชันข้อมูล ให้เรียนรู้เพิ่มเติมจากส่วนการคัดลอกคู่ขนานจากส่วน Teradata
คุณสมบัติต่อไปนี้ได้รับการสนับสนุนสําหรับ Teradata ภายใต้แท็บ แหล่งข้อมูล ของกิจกรรมการคัดลอก
คุณสมบัติต่อไปนี้ ที่จําเป็น :
การเชื่อมต่อ: เลือกการเชื่อมต่อ Teradata จากรายการการเชื่อมต่อ ถ้าไม่มีการเชื่อมต่ออยู่ ให้สร้างการเชื่อมต่อ Teradata ใหม่
ใช้คิวรี: เลือกตารางหรือคิวรี
ภายใต้ ขั้นสูง คุณสามารถระบุเขตข้อมูลต่อไปนี้:
ตัวเลือกพาร์ติชัน: ระบุตัวเลือกการแบ่งพาร์ติชันข้อมูลที่ใช้ในการโหลดข้อมูลจาก Teradata อนุญาตให้มีค่าคือ: ไม่มี (ค่าเริ่มต้น), DynamicRange และ Hash เมื่อเปิดใช้งานตัวเลือกพาร์ติชัน (นั่นคือ )
None, ระดับของการทํางานแบบขนานเพื่อโหลดข้อมูลจาก Teradata พร้อมกันจะได้รับการควบคุมโดย ระดับของการคัดลอกขนาน ในแท็บการตั้งค่ากิจกรรมการคัดลอกไม่มี: เลือกการตั้งค่านี้เพื่อไม่ใช้พาร์ติชัน
ช่วงไดนามิก: เมื่อคุณใช้คิวรีที่เปิดใช้งานแบบขนาน จําเป็นต้องใช้พารามิเตอร์ช่วงพาร์ติชัน (
?DfDynamicRangePartitionCondition) คิวรีตัวอย่าง:SELECT * FROM <TableName> WHERE ?DfDynamicRangePartitionConditionชื่อคอลัมน์พาร์ติชัน: ระบุชื่อของคอลัมน์ต้นทางในชนิดจํานวนเต็ม หรือชนิด วันที่/วันที่เวลา (
int,smallint,bigint,date,smalldatetime,datetime,datetime2หรือdatetimeoffset) ที่ใช้โดยการกําหนดพาร์ติชันช่วงสําหรับสําเนาแบบขนาน ถ้าไม่ได้ระบุ ดัชนีหรือคีย์หลักของตารางจะถูกตรวจหาโดยอัตโนมัติและใช้เป็นคอลัมน์พาร์ติชันPartitionที่ผูกไว้ด้านบน : ระบุค่าสูงสุดของคอลัมน์พาร์ติชันสําหรับการแยกช่วงพาร์ติชัน ค่านี้ใช้เพื่อตัดสินใจว่าจะดําเนินการแบ่งพาร์ติชัน ไม่ใช่สําหรับการกรองแถวในตาราง แถวทั้งหมดในตารางหรือผลลัพธ์คิวรีจะถูกแบ่งพาร์ติชันและคัดลอก
Partition ที่ผูกไว้ต่ํากว่า: ระบุค่าต่ําสุดของคอลัมน์พาร์ติชันสําหรับการแยกช่วงพาร์ติชัน ค่านี้ใช้เพื่อตัดสินใจว่าจะดําเนินการแบ่งพาร์ติชัน ไม่ใช่สําหรับการกรองแถวในตาราง แถวทั้งหมดในตารางหรือผลลัพธ์คิวรีจะถูกแบ่งพาร์ติชันและคัดลอก
แฮช: เมื่อใช้คิวรีที่เปิดใช้งานแบบขนาน จําเป็นต้องใช้พารามิเตอร์พาร์ติชันแฮช (
?AdfHashPartitionCondition) คิวรีตัวอย่าง:select * from <TableName> where ?AdfHashPartitionConditionชื่อคอลัมน์พาร์ติชัน: ระบุชื่อของคอลัมน์ต้นทางในชนิดจํานวนเต็ม หรือชนิด วันที่/วันที่เวลา (
int,smallint,bigint,date,smalldatetime,datetime,datetime2หรือdatetimeoffset) ที่ใช้โดยการกําหนดพาร์ติชันช่วงสําหรับสําเนาแบบขนาน ถ้าไม่ได้ระบุ ดัชนีหรือคีย์หลักของตารางจะถูกตรวจหาโดยอัตโนมัติและใช้เป็นคอลัมน์พาร์ติชัน
คอลัมน์เพิ่มเติม: เพิ่มคอลัมน์ข้อมูลเพิ่มเติมเพื่อจัดเก็บเส้นทางสัมพัทธ์หรือค่าคงที่ของไฟล์ต้นฉบับ นิพจน์ได้รับการสนับสนุนสําหรับอย่างหลัง
ปลายทาง
คุณสมบัติต่อไปนี้ได้รับการสนับสนุนสําหรับ Teradata ภายใต้แท็บ ปลายทาง ของกิจกรรมการคัดลอก
คุณสมบัติต่อไปนี้ ที่จําเป็น :
การเชื่อมต่อ: เลือกการเชื่อมต่อ Teradata จากรายการการเชื่อมต่อ ถ้าไม่มีการเชื่อมต่ออยู่ ให้สร้างการเชื่อมต่อ Teradata ใหม่
ตาราง: ระบุชื่อของตารางใน Teradata เพื่อเขียนข้อมูล เลือกตารางจากรายการดรอปดาวน์ หรือเลือก ป้อน ด้วยตนเอง เพื่อป้อนชื่อสคีมาและชื่อตาราง
ภายใต้ ขั้นสูง คุณสามารถระบุเขตข้อมูลต่อไปนี้:
- ตัวเลือกรูปแบบ Teradata เพิ่มเติม: ระบุตัวเลือกรูปแบบเพิ่มเติมซึ่งจะใช้ในการโหลดข้อมูลในคําสั่ง COPY ตัวอย่าง: DATE_FORMAT, TIME_FORMAT, TIMESTAMP_FORMAT สําหรับข้อมูลเพิ่มเติม ให้ดู รูปแบบ Teradata DATE คุณสมบัตินี้ใช้งานได้เฉพาะสําหรับสําเนาโดยตรงจากแหล่งข้อมูลรูปแบบ DelimitedText ไปยัง Teradata
คัดลอกโดยตรงไปยัง Teradata
ถ้าแหล่งข้อมูลที่เก็บข้อมูลและรูปแบบของคุณตรงกับเกณฑ์ที่อธิบายไว้ในส่วนนี้ คุณสามารถใช้คัดลอกกิจกรรมเพื่อคัดลอกจากแหล่งที่มาไปยัง Teradata ได้โดยตรง บริการจะตรวจสอบการตั้งค่าและล้มเหลวในการเรียกใช้กิจกรรมการคัดลอกถ้าไม่เป็นไปตามเกณฑ์ต่อไปนี้:
การเชื่อมต่อต้นทางคือที่เก็บข้อมูล Azure Blob และ Azure Data Lake Storage Gen2 พร้อมคีย์บัญชีและการรับรองความถูกต้องลายเซ็นการเข้าถึงที่ใช้ร่วมกัน
รูปแบบข้อมูลต้นทางคือ Parquet และ DelimitedText ที่มีการกําหนดค่าต่อไปนี้:
สําหรับรูปแบบ Parquet ตัวแปลงสัญญาณการบีบอัดคือ None หรือ Snappy
สําหรับรูปแบบ DelimitedText :
-
rowDelimiterคือ \n -
compressionต้องไม่มีการบีบอัดหรือ gzip ถ้าเลือกการบีบอัด gzip ไฟล์ต้องลงท้ายด้วย .gz ส่วนขยาย -
encodingNameถูกปล่อยไว้เป็นค่าเริ่มต้นหรือตั้งค่าเป็น UTF-8 -
quoteCharเป็นเครื่องหมายอัญประกาศ"หรือสตริงว่าง -
escapeCharเป็นเครื่องหมายอัญประกาศ"หรือสตริงว่าง -
nullValueเป็นสตริง Null หรือว่างเปล่า
-
ในแหล่งข้อมูล คัดลอกกิจกรรม:
- อนุญาตเฉพาะเส้นทางแบบคงที่เมื่อใช้ Azure Data Lake Storage Gen2
- เฉพาะเส้นทางแบบคงที่และ
prefixอนุญาตเมื่อใช้ที่เก็บข้อมูล Azure Blob
เส้นทางแบบคงที่จะทําหน้าที่เป็นคํานําหน้าเมื่อคัดลอกไปยัง Teradata
คัดลอกตามขั้นตอนไปยัง Teradata
เมื่อที่เก็บข้อมูลหรือรูปแบบต้นทางของคุณไม่สามารถเข้ากันได้กับคําสั่ง Teradata COPY โดยดั้งเดิมตามที่กล่าวถึงในส่วนสุดท้าย ให้เปิดใช้งานสําเนาตามลําดับขั้นที่มีอยู่ภายในโดยใช้อินสแตนซ์ที่เก็บข้อมูล Azure Blob ระหว่างกาล คุณลักษณะการคัดลอกตามลําดับขั้นยังให้ปริมาณงานที่ดีกว่าแก่คุณ บริการแปลงข้อมูลโดยอัตโนมัติเพื่อตอบสนองความต้องการรูปแบบข้อมูลของ Teradata จากนั้นจะเรียกใช้คําสั่งคัดลอกเพื่อโหลดข้อมูลลงใน Teradata ในตอนท้าย การล้างข้อมูลชั่วคราวของคุณจากที่เก็บข้อมูล blob
หากต้องการใช้คุณลักษณะนี้ ให้สร้าง การเชื่อมต่อที่เก็บข้อมูล Azure Blob ที่อ้างถึงบัญชีที่เก็บข้อมูล Azure เป็นการแสดงระยะระหว่างกลาง จากนั้นระบุ enableStaging คุณสมบัติ และ stagingSettings ในกิจกรรมการคัดลอก
หมายเหตุ
การจัดเตรียมการเชื่อมต่อ Azure Blob Storage จําเป็นต้องใช้ คีย์บัญชี หรือการรับรองความถูกต้อง ลายเซ็นการเข้าถึงที่ใช้ร่วมกัน ตามที่คําสั่งคัดลอกของ Teradata ต้องการ
การแม็ป
สําหรับการกําหนดค่าแท็บการแมป ไปที่กําหนดค่าการแมปของคุณภายใต้แท็บการแมป
ตั้งค่า
สําหรับการกําหนดค่าแท็บ การตั้งค่า ให้ไปที่ กําหนดค่าการตั้งค่าอื่น ๆ ของคุณภายใต้แท็บ การตั้งค่า
สําเนาคู่ขนานจาก Teradata
ตัวเชื่อมต่อ Teradata มีพาร์ติชันข้อมูลที่มีอยู่ภายในเพื่อคัดลอกข้อมูลจาก Teradata แบบขนาน คุณสามารถค้นหาตัวเลือกการแบ่งพาร์ติชันข้อมูลบนตาราง ต้นทาง ของกิจกรรมการคัดลอกได้
เมื่อคุณเปิดใช้งานสําเนาที่แบ่งพาร์ติชัน บริการจะเรียกใช้คิวรีแบบขนานกับแหล่งข้อมูล Teradata ของคุณเพื่อโหลดข้อมูลตามพาร์ติชัน ระดับขนานจะถูกควบคุมโดย องศาของการคัดลอกแบบขนาน ในแท็บการตั้งค่ากิจกรรมการคัดลอก ตัวอย่างเช่น ถ้าคุณตั้งค่า ระดับความขนานของสําเนา เป็นสี่ บริการจะสร้างและเรียกใช้คิวรีสี่รายการพร้อมกันโดยยึดตามตัวเลือกและการตั้งค่าพาร์ติชันที่ระบุ และแต่ละคิวรีจะดึงข้อมูลบางส่วนจาก Teradata ของคุณ
ขอแนะนําให้คุณเปิดใช้งานสําเนาคู่ขนานกับการแบ่งพาร์ติชันข้อมูลโดยเฉพาะอย่างยิ่งเมื่อคุณโหลดข้อมูลจํานวนมากจาก Teradata ของคุณ ต่อไปนี้คือการกําหนดค่าที่แนะนําสําหรับสถานการณ์ที่แตกต่างกัน เมื่อคัดลอกข้อมูลลงในที่เก็บข้อมูลตามไฟล์ ขอแนะนําให้เขียนไปยังโฟลเดอร์เป็นหลายไฟล์ (ระบุชื่อโฟลเดอร์เท่านั้น) ซึ่งในกรณีนี้ประสิทธิภาพการทํางานจะดีกว่าการเขียนไปยังไฟล์เดียว
| สถานการณ์สมมติ | การตั้งค่าที่แนะนํา |
|---|---|
| โหลดทั้งหมดจากตารางขนาดใหญ่ |
ตัวเลือกพาร์ติชัน: แฮช ในระหว่างการดําเนินการ บริการจะตรวจหาคอลัมน์ดัชนีหลัก ใช้แฮชกับคอลัมน์นั้นโดยอัตโนมัติ และคัดลอกข้อมูลตามพาร์ติชัน |
| โหลดข้อมูลจํานวนมากโดยใช้คิวรีแบบกําหนดเอง |
ตัวเลือกพาร์ติชัน: แฮช คิวรี : SELECT * FROM <TABLENAME> WHERE ?AdfHashPartitionCondition AND <your_additional_where_clause>คอลัมน์พาร์ติชัน: ระบุคอลัมน์ที่ใช้สําหรับใช้พาร์ติชันแฮช ถ้าไม่ได้ระบุ บริการจะตรวจหาคอลัมน์ PK ของตารางที่คุณระบุในข้อมูล Teradata โดยอัตโนมัติ ในระหว่างการดําเนินการ บริการจะ ?AdfHashPartitionCondition แทนที่ด้วยตรรกะของพาร์ติชันแฮช และส่งไปยัง Teradata |
| โหลดข้อมูลจํานวนมากโดยใช้คิวรีแบบกําหนดเอง มีคอลัมน์จํานวนเต็มที่มีค่ากระจายเท่าๆ กันสําหรับการแบ่งพาร์ติชันช่วง |
ตัวเลือกพาร์ติชัน: พาร์ติชันช่วงไดนามิก คิวรี : SELECT * FROM <TABLENAME> WHERE ?AdfRangePartitionColumnName <= ?AdfRangePartitionUpbound AND ?AdfRangePartitionColumnName >= ?AdfRangePartitionLowbound AND <your_additional_where_clause>คอลัมน์ Partition : ระบุคอลัมน์ที่ใช้ในการแบ่งพาร์ติชันข้อมูล คุณสามารถแบ่งพาร์ติชันกับคอลัมน์ที่มีชนิดข้อมูลจํานวนเต็มได้ พาร์ติชันที่ผูกด้านบน และ ขอบล่างของพาร์ติชัน: ระบุว่าคุณต้องการกรองกับคอลัมน์พาร์ติชันเพื่อดึงข้อมูลระหว่างช่วงล่างและด้านบนเท่านั้น ในระหว่างการดําเนินการ บริการจะแทนที่ ?AdfRangePartitionColumnName, ?AdfRangePartitionUpboundและ ?AdfRangePartitionLowbound ด้วยชื่อคอลัมน์จริงและช่วงค่าสําหรับแต่ละพาร์ติชัน และส่งไปยัง Teradata ตัวอย่างเช่น ถ้าคอลัมน์พาร์ติชัน "ID" ของคุณตั้งค่าด้วยส่วนที่ผูกต่ํากว่าเป็น 1 และขอบด้านบนเป็น 80 พร้อมกับการคัดลอกคู่ขนานที่ตั้งค่าเป็น 4 บริการจะดึงข้อมูลตามพาร์ติชัน 4 รายการ ID ของพวกเขาอยู่ระหว่าง [1,20], [21, 40], [41, 60] และ [61, 80] ตามลําดับ |
ตัวอย่าง: คิวรีที่มีพาร์ติชันแฮช
"source": {
"type": "TeradataSource",
"query": "SELECT * FROM <TABLENAME> WHERE ?AdfHashPartitionCondition AND <your_additional_where_clause>",
"partitionOption": "Hash",
"partitionSettings": {
"partitionColumnName": "<hash_partition_column_name>"
}
}
ตัวอย่าง: คิวรีที่มีพาร์ติชันช่วงไดนามิก
"source": {
"type": "TeradataSource",
"query": "SELECT * FROM <TABLENAME> WHERE ?AdfRangePartitionColumnName <= ?AdfRangePartitionUpbound AND ?AdfRangePartitionColumnName >= ?AdfRangePartitionLowbound AND <your_additional_where_clause>",
"partitionOption": "DynamicRange",
"partitionSettings": {
"partitionColumnName": "<dynamic_range_partition_column_name>",
"partitionUpperBound": "<upper_value_of_partition_column>",
"partitionLowerBound": "<lower_value_of_partition_column>"
}
}
ข้อมูลสรุปของตาราง
ตารางต่อไปนี้ประกอบด้วยข้อมูลเพิ่มเติมเกี่ยวกับกิจกรรมการคัดลอกใน Teradata
ข้อมูลต้นทาง
| ชื่อ | คำอธิบาย | ค่า | จำเป็น | คุณสมบัติสคริปต์ JSON |
|---|---|---|---|---|
| การเชื่อมต่อ | การเชื่อมต่อของคุณไปยังที่เก็บข้อมูลต้นทาง | < การเชื่อมต่อ Teradata ของคุณ > | ใช่ | การเชื่อมต่อ |
| ใช้ คิวรี | วิธีในการอ่านข้อมูลจาก Teradata ใช้ ตาราง |
• ตาราง • คิวรี |
ไม่ | / |
| สําหรับ ตาราง | ||||
| ชื่อแผนการ |
ชื่อของเค้าร่าง | < > ชื่อ Schema ของคุณ | ไม่ | Schema |
| ชื่อตาราง |
ชื่อของตาราง | < ชื่อตารางของคุณ > | ไม่ | ตาราง |
| สําหรับ คิวรี | ||||
| คิวรี | ใช้คิวรี SQL แบบกําหนดเองเพื่ออ่านข้อมูล | < > คิวรี SQL | ไม่ | การสอบถาม |
| ตัวเลือกพาร์ติชัน |
ตัวเลือกการแบ่งพาร์ติชันข้อมูลที่ใช้ในการโหลดข้อมูลจาก Teradata | • ไม่มี • ช่วงไดนามิก • แฮช |
ไม่ | / |
| สําหรับ ช่วงไดนามิก | ||||
| ชื่อคอลัมน์พาร์ติชัน |
ระบุชื่อของคอลัมน์ต้นทางในจํานวนเต็มหรือชนิดวันที่/วันที่เวลา (int, , smallint, bigintdate, smalldatetime, , datetime, datetime2หรือ datetimeoffset) ที่ใช้โดยช่วงพาร์ติชันสําหรับสําเนาคู่ขนานถ้าไม่ได้ระบุ ดัชนีหรือคีย์หลักของตารางจะถูกตรวจหาโดยอัตโนมัติและใช้เป็นคอลัมน์พาร์ติชัน |
< ชื่อคอลัมน์พาร์ติชันของคุณ > | ไม่ | partitionColumnName |
| ขอบเขตบนของพาร์ติชัน | ระบุค่าสูงสุดของคอลัมน์พาร์ติชันสําหรับการแยกช่วงพาร์ติชัน ค่านี้ใช้เพื่อตัดสินใจว่าจะดําเนินการแบ่งพาร์ติชัน ไม่ใช่สําหรับการกรองแถวในตาราง แถวทั้งหมดในตารางหรือผลลัพธ์คิวรีจะถูกแบ่งพาร์ติชันและคัดลอก | < > ขอบเขตบนของพาร์ติชันของคุณ | ไม่ | partitionUpperBound |
| ผูกพาร์ติชันที่ต่ํากว่า | ระบุค่าต่ําสุดของคอลัมน์พาร์ติชันสําหรับการแยกช่วงพาร์ติชัน ค่านี้ใช้เพื่อตัดสินใจว่าจะดําเนินการแบ่งพาร์ติชัน ไม่ใช่สําหรับการกรองแถวในตาราง แถวทั้งหมดในตารางหรือผลลัพธ์คิวรีจะถูกแบ่งพาร์ติชันและคัดลอก | < > ที่ผูกไว้ต่ํากว่าพาร์ติชันของคุณ | ไม่ | partitionLowerBound |
| สําหรับ แฮช | ||||
| ชื่อคอลัมน์พาร์ติชัน |
ระบุชื่อของคอลัมน์ต้นทางในจํานวนเต็มหรือชนิดวันที่/วันที่เวลา (int, , smallint, bigintdate, smalldatetime, , datetime, datetime2หรือ datetimeoffset) ที่ใช้โดยช่วงพาร์ติชันสําหรับสําเนาคู่ขนานถ้าไม่ได้ระบุ ดัชนีหรือคีย์หลักของตารางจะถูกตรวจหาโดยอัตโนมัติและใช้เป็นคอลัมน์พาร์ติชัน |
< ชื่อคอลัมน์พาร์ติชันของคุณ > | ไม่ | partitionColumnName |
| คอลัมน์เพิ่มเติม | เพิ่มคอลัมน์ข้อมูลเพิ่มเติมเพื่อจัดเก็บเส้นทางสัมพัทธ์หรือค่าคงที่ของไฟล์ต้นฉบับ นิพจน์ได้รับการสนับสนุนสําหรับอย่างหลัง | •ชื่อ •ค่า |
ไม่ | additionalColumns: •ชื่อ •ค่า |
ข้อมูลปลายทาง
| ชื่อ | คำอธิบาย | ค่า | จำเป็น | คุณสมบัติสคริปต์ JSON |
|---|---|---|---|---|
| การเชื่อมต่อ | การเชื่อมต่อของคุณไปยังที่เก็บข้อมูลปลายทาง | < การเชื่อมต่อ Teradata ของคุณ > | ใช่ | การเชื่อมต่อ |
| ตาราง | ตารางข้อมูลปลายทางของคุณสําหรับเขียนข้อมูล | < ชื่อตารางของคุณ > | ใช่ | / |
| ชื่อแผนการ |
ชื่อของเค้าร่าง | < > ชื่อ Schema ของคุณ | ไม่ | Schema |
| ชื่อตาราง |
ชื่อของตาราง | < ชื่อตารางของคุณ > | ไม่ | ตาราง |
| ตัวเลือกรูปแบบ Teradata เพิ่มเติม | ระบุตัวเลือกรูปแบบเพิ่มเติมที่จะใช้ในคําสั่ง COPY เพื่อโหลดข้อมูล ตัวอย่าง: DATE_FORMAT, TIME_FORMAT, TIMESTAMP_FORMAT สําหรับข้อมูลเพิ่มเติม ให้ดู รูปแบบ Teradata DATE คุณสมบัตินี้ใช้งานได้เฉพาะสําหรับสําเนาโดยตรงจากแหล่งข้อมูลรูปแบบ DelimitedText ไปยัง Teradata | • DATE_FORMAT • TIME_FORMAT • TIMESTAMP_FORMAT |
ไม่ | additionalFormatOptions: • DATE_FORMAT • TIME_FORMAT • TIMESTAMP_FORMAT |