อ่านในภาษาอังกฤษ

แชร์ผ่าน


พารามิเตอร์สําหรับ 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}

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

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

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

Screenshot showing the Parameters editor on the properties pages for a pipeline.

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

Screenshot showing the Source tab of a copy activity's property pages, highlighting the Add dynamic content option.

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

Screenshot showing the Add dynamic content window with a pipeline parameter selected.

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

ตัวอย่างด้านล่างแสดงตัวอย่างที่ซับซ้อนที่อ้างอิงเขตข้อมูลย่อยลึกของผลลัพธ์กิจกรรม เมื่อต้องการอ้างอิงพารามิเตอร์ไปป์ไลน์ที่ประเมินเป็นเขตข้อมูลย่อย ให้ใช้ไวยากรณ์ [] แทนตัวดําเนินการ 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 รหัสของกลุ่มที่มีการเรียกใช้ไปป์ไลน์
@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 แสดงตําแหน่งเริ่มต้นสําหรับการปรากฏครั้งล่าสุดของสตริงย่อย
แทนที่ แทนที่สตริงย่อยด้วยสตริงที่ระบุและส่งกลับสตริงที่อัปเดตแล้ว
แบ่ง แสดงอาร์เรย์ที่มีสตริงย่อยที่คั่นด้วยเครื่องหมายจุลภาคจากสตริงที่ใหญ่กว่าโดยยึดตามอักขระตัวคั่นที่ระบุในสตริงเดิม
startsWith ตรวจสอบว่าสตริงเริ่มต้นด้วยซับสตริงเฉพาะหรือไม่
สตริงย่อย แสดงอักขระจากสตริง โดยเริ่มต้นจากตําแหน่งที่ระบุ
toLower ส่งกลับสตริงในรูปแบบตัวพิมพ์เล็ก
toUpper ส่งกลับสตริงในรูปแบบตัวพิมพ์ใหญ่
ตัด เอาช่องว่างนําหน้าและต่อท้ายออกจากสตริง และส่งกลับสตริงที่อัปเดตแล้ว

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

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

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

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

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

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

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

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

  • string
  • integer
  • ลอยตัว
  • แบบบูลีน
  • อาร์ เรย์
  • พจนานุกรม
ฟังก์ชันการแปลง งาน
อาร์ เรย์ ส่งกลับอาร์เรย์จากอินพุตเดียวที่ระบุ สําหรับข้อมูลป้อนเข้าหลายรายการ ให้ดู createArray
base64 ส่งกลับเวอร์ชันที่เข้ารหัส base64 สําหรับสตริง
base64ToBinary ส่งกลับเวอร์ชันไบนารีสําหรับสตริงที่เข้ารหัส base64
base64ToString แสดงเวอร์ชันสตริงสําหรับสตริงที่เข้ารหัส base64
ไบ นารี ส่งกลับเวอร์ชันไบนารีสําหรับค่าอินพุต
bool ส่งกลับเวอร์ชันบูลีนสําหรับค่าที่ป้อนเข้า
coalesce ส่งกลับค่าที่ไม่ใช่ null แรกจากพารามิเตอร์อย่างน้อยหนึ่งรายการ
createArray ส่งกลับอาร์เรย์จากข้อมูลป้อนเข้าหลายรายการ
dataUri ส่งกลับ URI ข้อมูลสําหรับค่าอินพุต
dataUriToBinary ส่งกลับเวอร์ชันไบนารีสําหรับ URI ข้อมูล
dataUriToString แสดงเวอร์ชันสตริงสําหรับ URI ข้อมูล
decodeBase64 แสดงเวอร์ชันสตริงสําหรับสตริงที่เข้ารหัส base64
decodeDataUri ส่งกลับเวอร์ชันไบนารีสําหรับ URI ข้อมูล
decodeUriComponent แสดงสตริงที่แทนที่อักขระหลีกด้วยรุ่นที่ถอดรหัส
encodeUriComponent แสดงสตริงที่แทนที่อักขระที่ไม่ปลอดภัย URL ด้วยอักขระการหลีก
ลอย ส่งกลับตัวเลขทศนิยมลอยตัวสําหรับค่าป้อนเข้า
Int ส่งกลับเวอร์ชันจํานวนเต็มสําหรับสตริง
Json แสดงค่าชนิด JavaScript Object Notation (JSON) หรือออบเจ็กต์สําหรับสตริงหรือ XML
สาย อักขระ แสดงเวอร์ชันสตริงสําหรับค่าอินพุต
uriComponent แสดงเวอร์ชันที่เข้ารหัส URI สําหรับค่าการป้อนข้อมูล โดยการแทนที่อักขระที่ไม่ปลอดภัย URL ด้วยอักขระหลีก
uriComponentToBinary ส่งกลับเวอร์ชันไบนารีสําหรับสตริงที่เข้ารหัส URI
uriComponentToString แสดงเวอร์ชันสตริงสําหรับสตริงที่เข้ารหัส URI
Xml แสดงเวอร์ชัน XML สําหรับสตริง
Xpath ตรวจสอบ XML สําหรับโหนดหรือค่าที่ตรงกับนิพจน์ XPath (XML Path Language) และส่งกลับโหนดหรือค่าที่ตรงกัน

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

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

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

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

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