พารามิเตอร์สําหรับ Data Factory ใน Microsoft Fabric
บทความ 15/11/2566
4 ผู้สนับสนุน
คำติชม
ในบทความนี้
วิธีใช้พารามิเตอร์ นิพจน์ และฟังก์ชันในไปป์ไลน์สําหรับ Data Factory ใน 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}
ตัวอย่างของการใช้พารามิเตอร์ในนิพจน์
การสร้างและการใช้พารามิเตอร์
หากต้องการสร้างพารามิเตอร์ ให้เลือกพื้นหลังของพื้นที่ตัวแก้ไขไปป์ไลน์ จากนั้น แท็บ พารามิเตอร์ ของหน้าต่างคุณสมบัติที่ด้านล่าง เลือก ปุ่ม + ใหม่ เพื่อเพิ่มพารามิเตอร์ใหม่ไปยังไปป์ไลน์ ตั้งชื่อ ชนิดข้อมูล และค่าเริ่มต้น:
จากนั้นคุณสามารถใช้พารามิเตอร์ได้ทุกที่ในไปป์ไลน์ของคุณที่รองรับเนื้อหาแบบไดนามิก ในตัวอย่างนี้ พารามิเตอร์ถูกใช้เพื่อระบุชื่อของที่เก็บข้อมูลของเลคเฮ้าส์แบบไดนามิกบนแท็บ แหล่งข้อมูล ของหน้าคุณสมบัติของกิจกรรมการคัดลอก
หน้าต่างเพิ่มเนื้อหา แบบไดนามิกจะแสดงขึ้นให้คุณสามารถระบุเนื้อหาแบบไดนามิกชนิดใดก็ได้ รวมถึงพารามิเตอร์ ตัวแปร ระบบ ฟังก์ชัน หรือตัวแปรไปป์ไลน์ ในตัวอย่างนี้ พารามิเตอร์ที่กําหนดไว้ก่อนหน้านี้ถูกเลือก และหน้าต่างเนื้อหาแบบไดนามิกจะถูกเติมด้วยนิพจน์ที่ถูกต้องโดยอัตโนมัติเพื่ออ้างอิงพารามิเตอร์
ตัวอย่างด้านล่างแสดงตัวอย่างที่ซับซ้อนที่อ้างอิงเขตข้อมูลย่อยลึกของผลลัพธ์กิจกรรม เมื่อต้องการอ้างอิงพารามิเตอร์ไปป์ไลน์ที่ประเมินเป็นเขตข้อมูลย่อย ให้ใช้ไวยากรณ์ [] แทนตัวดําเนินการ 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
ส่งกลับผลคูณจากการคูณตัวเลขสองตัว
แรนด์
ส่งกลับจํานวนเต็มแบบสุ่มจากช่วงที่ระบุ
ช่วง
ส่งกลับอาร์เรย์จํานวนเต็มที่เริ่มต้นจากจํานวนเต็มที่ระบุ
ย่อย
ส่งกลับผลลัพธ์จากการลบตัวเลขที่สองจากตัวเลขแรก
ขยายตาราง