แชร์ผ่าน


พารามิเตอร์สําหรับ Data Factory ใน Microsoft Fabric

เอกสารนี้อธิบายวิธีการใช้พารามิเตอร์ในไปป์ไลน์ของคุณสําหรับ Data Factory ใน Fabric

วิธีใช้พารามิเตอร์ นิพจน์ และฟังก์ชันในไปป์ไลน์สําหรับ Data Factory ใน Fabric

ในเอกสารนี้ เรามุ่งเน้นที่การเรียนรู้แนวคิดพื้นฐานที่มีตัวอย่างต่าง ๆ เพื่อสํารวจความสามารถในการสร้างไปป์ไลน์ข้อมูลแบบพารามิเตอร์ภายใน Data Factory ใน Fabric การกําหนดพารามิเตอร์และนิพจน์แบบไดนามิกสามารถประหยัดเวลาได้มากและช่วยให้สามารถแยก แปลง, โหลด (ETL) หรือแยก, โหลด, แปลง (ELT) ได้อย่างมาก ซึ่งช่วยลดค่าใช้จ่ายในการบํารุงรักษาโซลูชัน และเพิ่มความเร็วการนําคุณลักษณะใหม่ไปใช้ในไปป์ไลน์ที่มีอยู่ ผลกําไรเหล่านี้เป็นเพราะการกําหนดพารามิเตอร์ลดจํานวนการเขียนโค้ดอย่างหนักและเพิ่มจํานวนวัตถุและกระบวนการที่สามารถนํามาใช้ใหม่ได้ในโซลูชัน

แนวคิดพารามิเตอร์และนิพจน์

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

นิพจน์สามารถปรากฏที่ใดก็ได้ในค่าสตริงและสร้างค่าสตริงอื่นเสมอ ต่อไปนี้ รหัสผ่านเป็นพารามิเตอร์ไปป์ไลน์ในนิพจน์ ถ้าค่าพารามิเตอร์เป็นนิพจน์ เนื้อความของนิพจน์จะถูกแยกออกโดยการเอาเครื่องหมาย at-sign (@) ออก ถ้าจําเป็นต้องใช้สตริงสัญพจน์ที่ขึ้นต้นด้วย @จะต้องหลีกโดยใช้ @@ ตัวอย่างต่อไปนี้แสดงวิธีการประเมินนิพจน์

ค่าพารามิเตอร์ ผล
"พารามิเตอร์" อักขระ 'พารามิเตอร์' จะถูกส่งกลับ
"พารามิเตอร์[1]" อักขระ 'พารามิเตอร์[1]' จะถูกส่งกลับ
"@@" สตริงอักขระ 1 ตัวที่มี '@' จะถูกส่งกลับ
" @" สตริงอักขระ 2 ตัวที่มี ' @' จะถูกส่งกลับ

นิพจน์ยังสามารถปรากฏภายในสตริง โดยใช้คุณลักษณะที่เรียกว่า การประมาณค่าในช่วงสตริง ที่นิพจน์จะถูกตัดคําใน @{ ... } ตัวอย่างเช่น สตริงต่อไปนี้ประกอบด้วยค่าพารามิเตอร์และค่าสตริงสัญพจน์:

"ชื่อแรก: @{pipeline().parameters.firstName} นามสกุล: @{pipeline().parameters.lastName}"

การใช้การประมาณค่าในช่วงสตริง ผลลัพธ์จะเป็นสตริงเสมอ ตัวอย่างเช่น ถ้าคุณกําหนด myNumber เป็น 42 และ myString เป็น foo:

ค่าพารามิเตอร์ ผล
"@pipeline().parameters.myString" แสดง foo เป็นสตริง
"@{pipeline().parameters.myString}" แสดง foo เป็นสตริง
"@pipeline().parameters.myNumber" แสดง 42 เป็นตัวเลข
"@{pipeline().parameters.myNumber}" แสดง 42 เป็นสตริง
"คําตอบคือ: @{pipeline().parameters.myNumber}" แสดงสตริง Answer is: 42
"@concat('คําตอบคือ: ', string(pipeline().parameters.myNumber)"" ส่งกลับสตริง Answer is: 42
"คําตอบคือ: @@{pipeline().parameters.myNumber}" แสดงสตริง Answer is: @{pipeline().parameters.myNumber}

ตัวอย่างของการใช้พารามิเตอร์ในนิพจน์

การสร้างและการใช้พารามิเตอร์

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

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

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

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

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

สกรีนช็อตที่แสดงหน้าต่างเพิ่มเนื้อหาแบบไดนามิกที่มีพารามิเตอร์ไปป์ไลน์ที่เลือกไว้

ตัวอย่างนิพจน์ที่ซับซ้อน

ตัวอย่างต่อไปนี้แสดงตัวอย่างที่ซับซ้อนที่อ้างอิงเขตข้อมูลย่อยลึกของผลลัพธ์กิจกรรม เมื่อต้องการอ้างอิงพารามิเตอร์ไปป์ไลน์ที่ประเมินเป็นเขตข้อมูลย่อย ให้ใช้ไวยากรณ์ [] แทนตัวดําเนินการ dot(.) (เช่นเดียวกับ subfield1 และ subfield2)

@activity('*activityName*').output.*subfield1*.*subfield2*[pipeline().parameters.*subfield3*].*subfield4*

ตัวแก้ไขเนื้อหาแบบไดนามิก

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

@{toUpper('myData')}

ตัวแก้ไขเนื้อหาแบบไดนามิกแปลงเนื้อหาก่อนหน้าเป็นนิพจน์ต่อไปนี้:

MYDATA

การใช้ฟังก์ชันและตัวแปรในนิพจน์

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

ตัวแปรขอบเขตไปป์ไลน์

ตัวแปรระบบเหล่านี้สามารถอ้างอิงได้ทุกที่ในไปป์ไลน์ JSON

ชื่อตัวแปร คำอธิบาย
@pipeline().DataFactory ชื่อของข้อมูลหรือพื้นที่ทํางาน Synapse ที่เรียกใช้ไปป์ไลน์กําลังทํางานอยู่
@pipeline().Pipeline ชื่อของไปป์ไลน์
@pipeline().RunId ID ของการเรียกใช้ไปป์ไลน์เฉพาะ
@pipeline().TriggerId ID ของทริกเกอร์ที่เรียกใช้ไปป์ไลน์
@pipeline().TriggerName ชื่อของทริกเกอร์ที่เรียกใช้ไปป์ไลน์
@pipeline().TriggerTime เวลาของทริกเกอร์ที่เรียกใช้ไปป์ไลน์ นี่คือเวลาที่ทริกเกอร์ ถูกเรียกใช้จริง เพื่อเรียกใช้การเรียกใช้ไปป์ไลน์และอาจแตกต่างจากเวลาที่กําหนดไว้ของทริกเกอร์เล็กน้อย
@pipeline().GroupId รหัสของกลุ่มที่มีการเรียกใช้ไปป์ไลน์ ใน Microsoft Fabric 'กลุ่ม' หมายถึงคอลเลกชันของทรัพยากรที่เกี่ยวข้องที่สามารถจัดการร่วมกันได้ กลุ่มจะถูกใช้เพื่อจัดระเบียบและควบคุมการเข้าถึงทรัพยากร ทําให้ง่ายต่อการจัดการสิทธิ์และตรวจสอบกิจกรรมในหลายไปป์ไลน์
@pipeline()? ทริกเกอร์ ByPipelineName ชื่อของไปป์ไลน์ที่ทริกเกอร์การเรียกใช้ไปป์ไลน์ ใช้งานได้เมื่อการเรียกใช้ไปป์ไลน์ถูกทริกเกอร์โดยกิจกรรม ExecutePipeline ประเมินเพื่อ Null เมื่อใช้ในสถานการณ์อื่น ๆ จดเครื่องหมายคําถามหลังจาก @pipeline()
@pipeline()? TriggeredByPipelineRunId เรียกใช้รหัสของไปป์ไลน์ที่ทริกเกอร์การเรียกใช้ไปป์ไลน์ ใช้งานได้เมื่อการเรียกใช้ไปป์ไลน์ถูกทริกเกอร์โดยกิจกรรม ExecutePipeline ประเมินเพื่อ Null เมื่อใช้ในสถานการณ์อื่น ๆ จดเครื่องหมายคําถามหลังจาก @pipeline()

โน้ต

ตัวแปรระบบวันที่/เวลาที่เกี่ยวข้องกับทริกเกอร์ (ทั้งในไปป์ไลน์และขอบเขตทริกเกอร์) จะแสดงวันที่ UTC ในรูปแบบ ISO 8601 ตัวอย่างเช่น 2017-06-01T22:20:00.4061448Z

ฟังก์ชันสตริง

เมื่อต้องการทํางานกับสตริง คุณสามารถใช้ฟังก์ชันสตริงเหล่านี้และฟังก์ชันคอลเลกชัน บางอย่าง ฟังก์ชันสตริงทํางานกับสตริงเท่านั้น

ฟังก์ชันสตริง งาน
concat รวมสองสตริงหรือมากกว่าและส่งกลับสตริงที่รวมกัน
endsWith ตรวจสอบว่าสตริงลงท้ายด้วยซับสตริงที่ระบุหรือไม่
guid สร้างตัวระบุที่ไม่ซ้ํากันทั่วโลก (GUID) เป็นสตริง
indexOf แสดงตําแหน่งเริ่มต้นสําหรับสตริงย่อย
lastIndexOf แสดงตําแหน่งเริ่มต้นสําหรับการปรากฏครั้งล่าสุดของสตริงย่อย
แทนที่ แทนที่สตริงย่อยด้วยสตริงที่ระบุและส่งกลับสตริงที่อัปเดตแล้ว
แยก แสดงอาร์เรย์ที่มีสตริงย่อยที่คั่นด้วยเครื่องหมายจุลภาคจากสตริงที่ใหญ่กว่าโดยยึดตามอักขระตัวคั่นที่ระบุในสตริงเดิม
เริ่มต้น ตรวจสอบว่าสตริงเริ่มต้นด้วยซับสตริงเฉพาะหรือไม่
สตริงย่อย แสดงอักขระจากสตริง โดยเริ่มต้นจากตําแหน่งที่ระบุ
toLower ส่งกลับสตริงในรูปแบบตัวพิมพ์เล็ก
toUpper ส่งกลับสตริงในรูปแบบตัวพิมพ์ใหญ่
ตัดแต่ง เอาช่องว่างนําหน้าและต่อท้ายออกจากสตริง และส่งกลับสตริงที่อัปเดตแล้ว

ฟังก์ชันคอลเลกชัน

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

ฟังก์ชัน Collection งาน
ประกอบด้วย ตรวจสอบว่าคอลเลกชันมีรายการที่ระบุหรือไม่
ที่ว่างเปล่า ตรวจสอบว่าคอลเลกชันว่างเปล่าหรือไม่
แรก แสดงรายการแรกจากคอลเลกชัน
แยก แสดงคอลเลกชันที่มี เฉพาะ รายการทั่วไปในคอลเลกชันที่ระบุ
การรวม แสดงสตริงที่มี หน่วยข้อมูลทั้งหมดจากอาร์เรย์ ซึ่งคั่นด้วยอักขระที่ระบุ
ล่าสุดของ ส่งกลับรายการสุดท้ายจากคอลเลกชัน
ความยาว แสดงจํานวนรายการในสตริงหรืออาร์เรย์
ข้าม เอารายการออกจากด้านหน้าของคอลเลกชัน และส่งกลับ อื่นๆ ทั้งหมด
รับ ส่งกลับรายการจากด้านหน้าของคอลเลกชัน
สหภาพ แสดงคอลเลกชันที่มี รายการทั้งหมดจากคอลเลกชันที่ระบุ

ฟังก์ชันตรรกะ

ฟังก์ชันเหล่านี้มีประโยชน์ภายในเงื่อนไข สามารถใช้เพื่อประเมินตรรกะชนิดใดก็ได้

ฟังก์ชันการเปรียบเทียบเชิงตรรกะ งาน
และ ตรวจสอบว่านิพจน์ทั้งหมดเป็นจริงหรือไม่
เท่ากับ ตรวจสอบว่าค่าทั้งสองเท่ากันหรือไม่
ที่มากกว่า ตรวจสอบว่าค่าแรกมากกว่าค่าที่สองหรือไม่
greaterOrEquals ตรวจสอบว่าค่าแรกมากกว่าหรือเท่ากับค่าที่สองหรือไม่
ถ้า ตรวจสอบว่านิพจน์เป็นจริงหรือเท็จ ส่งกลับค่าที่ระบุ โดยยึดตามผลลัพธ์
น้อยลง ตรวจสอบว่าค่าแรกน้อยกว่าค่าที่สองหรือไม่
lessOrEquals ตรวจสอบว่าค่าแรกน้อยกว่าหรือเท่ากับค่าที่สองหรือไม่
ไม่ใช่ ตรวจสอบว่านิพจน์เป็นเท็จหรือไม่
หรือ ตรวจสอบว่านิพจน์อย่างน้อยหนึ่งรายการเป็นจริงหรือไม่

ฟังก์ชันการแปลง

ฟังก์ชันเหล่านี้จะถูกใช้เพื่อแปลงระหว่างชนิดเนทีฟแต่ละชนิดในภาษา:

  • เชือก
  • จํานวนเต็ม
  • ลอย
  • บูลีน
  • อาร์ เรย์
  • พจนานุกรม
ฟังก์ชันการแปลง งาน
อาร์เรย์ ส่งกลับอาร์เรย์จากอินพุตเดียวที่ระบุ สําหรับข้อมูลป้อนเข้าหลายรายการ โปรดดู createArray
base64 ส่งกลับเวอร์ชันที่เข้ารหัส base64 สําหรับสตริง
base64 หลัก ส่งกลับเวอร์ชันไบนารีสําหรับสตริงที่เข้ารหัส base64
base64ToString แสดงเวอร์ชันสตริงสําหรับสตริงที่เข้ารหัส base64
ไบนารี ส่งกลับเวอร์ชันไบนารีสําหรับค่าอินพุต
บูลีน ส่งกลับเวอร์ชันบูลีนสําหรับค่าที่ป้อนเข้า
coalesce ส่งกลับค่าที่ไม่ใช่ null แรกจากพารามิเตอร์อย่างน้อยหนึ่งรายการ
สร้าง Array ส่งกลับอาร์เรย์จากข้อมูลป้อนเข้าหลายรายการ
dataUri ส่งกลับ URI ข้อมูลสําหรับค่าอินพุต
dataUriToBinary ส่งกลับเวอร์ชันไบนารีสําหรับ URI ข้อมูล
dataUriToString แสดงเวอร์ชันสตริงสําหรับ URI ข้อมูล
ถอดรหัส base64 แสดงเวอร์ชันสตริงสําหรับสตริงที่เข้ารหัส base64
ถอดรหัส DataUri ส่งกลับเวอร์ชันไบนารีสําหรับ URI ข้อมูล
ถอดรหัส คอมโพเนนต์ แสดงสตริงที่แทนที่อักขระหลีกด้วยรุ่นที่ถอดรหัส
encodeUriComponent แสดงสตริงที่แทนที่อักขระที่ไม่ปลอดภัย URL ด้วยอักขระการหลีก
เลขทศนิยม ส่งกลับตัวเลขทศนิยมลอยตัวสําหรับค่าป้อนเข้า
int ส่งกลับเวอร์ชันจํานวนเต็มสําหรับสตริง
json แสดงค่าชนิด JavaScript Object Notation (JSON) หรือออบเจ็กต์สําหรับสตริงหรือ XML
สตริง แสดงเวอร์ชันสตริงสําหรับค่าอินพุต
คอมโพเนนต์ แสดงเวอร์ชันที่เข้ารหัส URI สําหรับค่าการป้อนข้อมูล โดยการแทนที่อักขระที่ไม่ปลอดภัย URL ด้วยอักขระหลีก
uriComponentToBinary ส่งกลับเวอร์ชันไบนารีสําหรับสตริงที่เข้ารหัส URI
uriComponentToString แสดงเวอร์ชันสตริงสําหรับสตริงที่เข้ารหัส URI
xml ของ แสดงเวอร์ชัน XML สําหรับสตริง
xpath ตรวจสอบ XML สําหรับโหนดหรือค่าที่ตรงกับนิพจน์ XPath (XML Path Language) และส่งกลับโหนดหรือค่าที่ตรงกัน

ฟังก์ชันทางคณิตศาสตร์

ฟังก์ชันเหล่านี้สามารถใช้สําหรับตัวเลขชนิดใดก็ตาม: จํานวนเต็ม และ ทศนิยม

ฟังก์ชันทางคณิตศาสตร์ งาน
เพิ่ม ส่งกลับผลลัพธ์จากการเพิ่มตัวเลขสองตัว
div ส่งกลับผลลัพธ์จากการหารตัวเลขสองตัว
สูงสุดของ ส่งกลับค่าสูงสุดจากชุดตัวเลขหรืออาร์เรย์
นาที ส่งกลับค่าต่ําสุดจากชุดตัวเลขหรืออาร์เรย์
mod ส่งกลับเศษที่เหลือจากการหารตัวเลขสองตัว
เหรียญ ส่งกลับผลคูณจากการคูณตัวเลขสองตัว
rand ส่งกลับจํานวนเต็มแบบสุ่มจากช่วงที่ระบุ
ช่วง ส่งกลับอาร์เรย์จํานวนเต็มที่เริ่มต้นจากจํานวนเต็มที่ระบุ
ย่อยของ ส่งกลับผลลัพธ์จากการลบตัวเลขที่สองจากตัวเลขแรก

ฟังก์ชันวันที่

ฟังก์ชัน Date หรือ Time งาน
addDays เพิ่มจํานวนวันลงในประทับเวลา
addHours เพิ่มจํานวนชั่วโมงลงในประทับเวลา
addMinutes เพิ่มจํานวนนาทีลงในการประทับเวลา
เพิ่ม วินาที เพิ่มจํานวนวินาทีลงในการประทับเวลา
addToTime เพิ่มจํานวนหน่วยเวลาลงในการประทับเวลา ดูเพิ่มเติม getFutureTime
แปลง FromUtc แปลงประทับเวลาจากค่าพิกัดเวลาสากล (UTC) เป็นโซนเวลาเป้าหมาย
แปลง โซนเวลา แปลงประทับเวลาจากโซนเวลาต้นทางเป็นโซนเวลาเป้าหมาย
แปลง ToUtc แปลงประทับเวลาจากโซนเวลาต้นทางเป็นเวลาสากลเชิงพิกัด (UTC)
วัน เดือน ส่งกลับวันของคอมโพเนนต์เดือนจากประทับเวลา
วัน สัปดาห์ ส่งกลับคอมโพเนนต์วันของสัปดาห์จากประทับเวลา
วัน ปี ส่งกลับคอมโพเนนต์วันของปีจากประทับเวลา
รูปแบบ DateTime ส่งกลับประทับเวลาเป็นสตริงในรูปแบบทางเลือก
getFutureTime ส่งกลับประทับเวลาปัจจุบันบวกกับหน่วยเวลาที่ระบุ ดูเพิ่มเติม addToTime
getPastTime ส่งกลับประทับเวลาปัจจุบันลบหน่วยเวลาที่ระบุ ดู นอกจากนี้ ลบจากเวลา
startOfDay แสดงจุดเริ่มต้นของวันสําหรับการประทับเวลา
startOfHour แสดงจุดเริ่มต้นของชั่วโมงสําหรับการประทับเวลา
startOfMonth ส่งกลับจุดเริ่มต้นของเดือนสําหรับการประทับเวลา
ลบจาก เวลา ลบจํานวนหน่วยเวลาจากประทับเวลา ดูเพิ่มเติม รับPastTime
เครื่องหมาย แสดงค่าคุณสมบัติ ticks สําหรับประทับเวลาที่ระบุ
utcNow ส่งกลับประทับเวลาปัจจุบันเป็นสตริง
  • ภาษาของนิพจน์