หมายเหตุ
การเข้าถึงหน้านี้ต้องได้รับการอนุญาต คุณสามารถลอง ลงชื่อเข้าใช้หรือเปลี่ยนไดเรกทอรีได้
การเข้าถึงหน้านี้ต้องได้รับการอนุญาต คุณสามารถลองเปลี่ยนไดเรกทอรีได้
คู่มือนี้แสดงวิธีใช้พารามิเตอร์ในไปป์ไลน์ Data Factory ของคุณใน Fabric เป็นวิธีง่ายๆ ในการทําให้เวิร์กโฟลว์ของคุณมีความยืดหยุ่นและจัดการได้ง่ายขึ้น
วิธีใช้พารามิเตอร์ นิพจน์ และฟังก์ชันในไปป์ไลน์สําหรับ Data Factory ใน Fabric
คู่มือนี้จะแนะนําคุณเกี่ยวกับพื้นฐานของการสร้างไปป์ไลน์ที่มีพารามิเตอร์ใน Data Factory for Fabric โดยใช้ตัวอย่างที่ชัดเจนไปพร้อมกัน ด้วยการใช้พารามิเตอร์และนิพจน์แบบไดนามิก คุณสามารถประหยัดเวลาได้มากและสร้างโซลูชัน ETL (Extract, Transform, Load) หรือ ELT (Extract, Load, Transform) ที่ยืดหยุ่น เทคนิคเหล่านี้ช่วยลดการเข้ารหัสแบบฮาร์ดและช่วยให้คุณนําวัตถุและกระบวนการกลับมาใช้ใหม่ ซึ่งทําให้ง่ายต่อการบํารุงรักษาไปป์ไลน์และเปิดตัวคุณสมบัติใหม่ได้เร็วขึ้น
แนวคิดพารามิเตอร์และนิพจน์
คุณสามารถใช้พารามิเตอร์เพื่อส่งผ่านค่าภายนอกไปยังไปป์ไลน์ของคุณ เมื่อตั้งค่าพารามิเตอร์แล้ว พารามิเตอร์จะยังคงเหมือนเดิมตลอดการเรียกใช้และไม่สามารถเปลี่ยนแปลงได้ เมื่อใช้พารามิเตอร์ คุณสามารถนําไปป์ไลน์เดียวกันกลับมาใช้ใหม่ด้วยค่าที่แตกต่างกันในแต่ละครั้ง สามารถใช้นิพจน์ได้เองหรือภายในนิพจน์ และค่าเหล่านั้นสามารถคงที่หรือคํานวณได้เมื่อไปป์ไลน์ทํางาน
นิพจน์สามารถไปได้ทุกที่ในค่าสตริงและส่งคืนค่าสตริงอื่นเสมอ ตัวอย่างเช่น หากคุณใช้ @passwordไปป์ไลน์จะถือว่ารหัสผ่านเป็นพารามิเตอร์ หากค่าเป็นนิพจน์ ให้ลบ @ เพื่อรับเนื้อหาจริง และถ้าคุณต้องการสตริงที่ขึ้นต้นด้วย @ ให้หลีกหนีโดยพิมพ์ @@ ด้านล่างนี้คือตัวอย่างบางส่วนเพื่อแสดงให้เห็นว่าสิ่งนี้ทํางานอย่างไรในทางปฏิบัติ
| ค่าพารามิเตอร์ | Result |
|---|---|
| "parameters" | อักขระ 'พารามิเตอร์' จะถูกส่งกลับ |
| "parameters[1]" | อักขระ 'พารามิเตอร์[1]' จะถูกส่งกลับ |
| "@@" | สตริงอักขระ 1 ตัวที่มี '@' จะถูกส่งกลับ |
| " @" | สตริงอักขระ 2 ตัวที่มี ' @' จะถูกส่งกลับ |
นิพจน์ยังสามารถปรากฏภายในสตริง โดยใช้คุณลักษณะที่เรียกว่า การประมาณค่าในช่วงสตริง ที่นิพจน์จะถูกตัดคําใน @{ ... } ตัวอย่างเช่น สตริงต่อไปนี้ประกอบด้วยค่าพารามิเตอร์และค่าสตริงสัญพจน์:
"ชื่อแรก: @{pipeline().parameters.firstName} นามสกุล: @{pipeline().parameters.lastName}"
การใช้การประมาณค่าในช่วงสตริง ผลลัพธ์จะเป็นสตริงเสมอ ตัวอย่างเช่น ถ้าคุณกําหนด myNumber เป็น 42 และ myString เป็น foo:
| ค่าพารามิเตอร์ | Result |
|---|---|
| "@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 ของหน้าคุณสมบัติของกิจกรรมการคัดลอก
หน้าต่าง เพิ่มเนื้อหาแบบไดนามิก จะแสดงขึ้นให้คุณสามารถระบุเนื้อหาแบบไดนามิกทุกชนิด รวมถึงพารามิเตอร์ ตัวแปรระบบฟังก์ชันหรือตัวแปรไปป์ไลน์ ในตัวอย่างนี้ พารามิเตอร์ที่กําหนดไว้ก่อนหน้านี้ถูกเลือก และหน้าต่างเนื้อหาแบบไดนามิกจะถูกเติมด้วยนิพจน์ที่ถูกต้องโดยอัตโนมัติเพื่ออ้างอิงพารามิเตอร์
วิธีกําหนดพารามิเตอร์การเชื่อมต่อ
การกําหนดพารามิเตอร์การเชื่อมต่อในไปป์ไลน์จําเป็นต้องใช้ GUID การเชื่อมต่อที่คุณต้องการแทนที่แบบไดนามิก
- ก่อนที่คุณจะสามารถปรับเปลี่ยนการเชื่อมต่อในไปป์ไลน์ของคุณแบบไดนามิกคุณต้องคว้า GUID สําหรับการเชื่อมต่อที่คุณต้องการตั้งค่า
- ไปที่ "การตั้งค่า" | จัดการการเชื่อมต่อและเกตเวย์
- ค้นหาชื่อของการเชื่อมต่อ แล้วคลิกจุดไข่ปลาถัดจากชื่อการเชื่อมต่อ
- เลือก การตั้งค่า และคัดลอก ID การเชื่อมต่อ
- ใช้พารามิเตอร์สตริงเพื่อวาง GUID ในพารามิเตอร์นั้นเพื่อใช้ในนิพจน์แบบไดนามิกของคุณ
ตัวอย่างนิพจน์ที่ซับซ้อน
ตัวอย่างต่อไปนี้แสดงตัวอย่างที่ซับซ้อนที่อ้างอิงเขตข้อมูลย่อยลึกของผลลัพธ์กิจกรรม เมื่อต้องการอ้างอิงพารามิเตอร์ไปป์ไลน์ที่ประเมินเป็นเขตข้อมูลย่อย ให้ใช้ไวยากรณ์ [] แทนตัวดําเนินการ dot(.) (เช่นเดียวกับ subfield1 และ subfield2)
@activity('*activityName*').output.*subfield1*.*subfield2*[pipeline().parameters.*subfield3*].*subfield4*
ตัวแก้ไขเนื้อหาแบบไดนามิก
ตัวแก้ไขเนื้อหาแบบไดนามิกจะหลีกอักขระในเนื้อหาของคุณโดยอัตโนมัติเมื่อคุณทําการแก้ไขเสร็จสิ้นแล้ว ตัวอย่างเช่น เนื้อหาต่อไปนี้ในตัวแก้ไขเนื้อหาคือการประมาณค่าในช่วงสตริงกับฟังก์ชันนิพจน์:
@{toUpper('myData')}
ตัวแก้ไขเนื้อหาแบบไดนามิกแปลงเนื้อหาก่อนหน้าเป็นนิพจน์ต่อไปนี้:
MYDATA
การใช้ฟังก์ชันและตัวแปรในนิพจน์
คุณสามารถเรียกใช้ฟังก์ชันและใช้ตัวแปรภายในนิพจน์ได้ ส่วนต่อไปนี้แสดงข้อมูลเกี่ยวกับฟังก์ชันที่สามารถใช้ในนิพจน์ได้
ตัวแปรขอบเขตไปป์ไลน์
ตัวแปรระบบเหล่านี้สามารถอ้างอิงได้ทุกที่ในไปป์ไลน์ JSON
| ชื่อตัวแปร | Description |
|---|---|
| @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() |
Note
ตัวแปรระบบวันที่/เวลาที่เกี่ยวข้องกับทริกเกอร์ (ทั้งในไปป์ไลน์และขอบเขตทริกเกอร์) จะแสดงวันที่ UTC ในรูปแบบ ISO 8601 ตัวอย่างเช่น 2017-06-01T22:20:00.4061448Z
ฟังก์ชันสตริง
เมื่อต้องการทํางานกับสตริง คุณสามารถใช้ฟังก์ชันสตริงเหล่านี้และฟังก์ชันคอลเลกชัน บางอย่าง ฟังก์ชันสตริงทํางานกับสตริงเท่านั้น
| ฟังก์ชันสตริง | Task |
|---|---|
| concat | รวมสองสตริงหรือมากกว่าและส่งกลับสตริงที่รวมกัน |
| endsWith | ตรวจสอบว่าสตริงลงท้ายด้วยซับสตริงที่ระบุหรือไม่ |
| guid | สร้างตัวระบุที่ไม่ซ้ํากันทั่วโลก (GUID) เป็นสตริง |
| indexOf | แสดงตําแหน่งเริ่มต้นสําหรับสตริงย่อย |
| lastIndexOf | แสดงตําแหน่งเริ่มต้นสําหรับการปรากฏครั้งล่าสุดของสตริงย่อย |
| replace | แทนที่สตริงย่อยด้วยสตริงที่ระบุและส่งกลับสตริงที่อัปเดตแล้ว |
| split | แสดงอาร์เรย์ที่มีสตริงย่อยที่คั่นด้วยเครื่องหมายจุลภาคจากสตริงที่ใหญ่กว่าโดยยึดตามอักขระตัวคั่นที่ระบุในสตริงเดิม |
| startsWith | ตรวจสอบว่าสตริงเริ่มต้นด้วยซับสตริงเฉพาะหรือไม่ |
| substring | แสดงอักขระจากสตริง โดยเริ่มต้นจากตําแหน่งที่ระบุ |
| toLower | ส่งกลับสตริงในรูปแบบตัวพิมพ์เล็ก |
| toUpper | ส่งกลับสตริงในรูปแบบตัวพิมพ์ใหญ่ |
| trim | เอาช่องว่างนําหน้าและต่อท้ายออกจากสตริง และส่งกลับสตริงที่อัปเดตแล้ว |
ฟังก์ชันคอลเลกชัน
เมื่อต้องการทํางานกับคอลเลกชัน โดยทั่วไปแล้วอาร์เรย์ สตริง และบางครั้ง พจนานุกรม คุณสามารถใช้ฟังก์ชันคอลเลกชันเหล่านี้ได้
| ฟังก์ชัน Collection | Task |
|---|---|
| contains | ตรวจสอบว่าคอลเลกชันมีรายการที่ระบุหรือไม่ |
| empty | ตรวจสอบว่าคอลเลกชันว่างเปล่าหรือไม่ |
| first | แสดงรายการแรกจากคอลเลกชัน |
| intersection | แสดงคอลเลกชันที่มี เฉพาะ รายการทั่วไปในคอลเลกชันที่ระบุ |
| join | แสดงสตริงที่มี หน่วยข้อมูลทั้งหมดจากอาร์เรย์ ซึ่งคั่นด้วยอักขระที่ระบุ |
| last | ส่งกลับรายการสุดท้ายจากคอลเลกชัน |
| length | แสดงจํานวนรายการในสตริงหรืออาร์เรย์ |
| skip | เอารายการออกจากด้านหน้าของคอลเลกชัน และส่งกลับ อื่นๆ ทั้งหมด |
| take | ส่งกลับรายการจากด้านหน้าของคอลเลกชัน |
| union | แสดงคอลเลกชันที่มี รายการทั้งหมดจากคอลเลกชันที่ระบุ |
ฟังก์ชันตรรกะ
ฟังก์ชันเหล่านี้มีประโยชน์ภายในเงื่อนไข สามารถใช้เพื่อประเมินตรรกะชนิดใดก็ได้
| ฟังก์ชันการเปรียบเทียบเชิงตรรกะ | Task |
|---|---|
| and | ตรวจสอบว่านิพจน์ทั้งหมดเป็นจริงหรือไม่ |
| equals | ตรวจสอบว่าค่าทั้งสองเท่ากันหรือไม่ |
| greater | ตรวจสอบว่าค่าแรกมากกว่าค่าที่สองหรือไม่ |
| greaterOrEquals | ตรวจสอบว่าค่าแรกมากกว่าหรือเท่ากับค่าที่สองหรือไม่ |
| if | ตรวจสอบว่านิพจน์เป็นจริงหรือเท็จ ส่งกลับค่าที่ระบุ โดยยึดตามผลลัพธ์ |
| less | ตรวจสอบว่าค่าแรกน้อยกว่าค่าที่สองหรือไม่ |
| lessOrEquals | ตรวจสอบว่าค่าแรกน้อยกว่าหรือเท่ากับค่าที่สองหรือไม่ |
| not | ตรวจสอบว่านิพจน์เป็นเท็จหรือไม่ |
| or | ตรวจสอบว่านิพจน์อย่างน้อยหนึ่งรายการเป็นจริงหรือไม่ |
ฟังก์ชันการแปลง
ฟังก์ชันเหล่านี้จะถูกใช้เพื่อแปลงระหว่างชนิดเนทีฟแต่ละชนิดในภาษา:
- สตริง
- จำนวนเต็ม
- float
- boolean
- arrays
- dictionaries
| ฟังก์ชันการแปลง | Task |
|---|---|
| array | ส่งกลับอาร์เรย์จากอินพุตเดียวที่ระบุ สําหรับข้อมูลป้อนเข้าหลายรายการ โปรดดู createArray |
| base64 | ส่งกลับเวอร์ชันที่เข้ารหัส base64 สําหรับสตริง |
| base64ToBinary | ส่งกลับเวอร์ชันไบนารีสําหรับสตริงที่เข้ารหัส base64 |
| base64ToString | แสดงเวอร์ชันสตริงสําหรับสตริงที่เข้ารหัส base64 |
| binary | ส่งกลับเวอร์ชันไบนารีสําหรับค่าอินพุต |
| bool | ส่งกลับเวอร์ชันบูลีนสําหรับค่าที่ป้อนเข้า |
| coalesce | ส่งกลับค่าที่ไม่ใช่ null แรกจากพารามิเตอร์อย่างน้อยหนึ่งรายการ |
| createArray | ส่งกลับอาร์เรย์จากข้อมูลป้อนเข้าหลายรายการ |
| dataUri | ส่งกลับ URI ข้อมูลสําหรับค่าอินพุต |
| dataUriToBinary | ส่งกลับเวอร์ชันไบนารีสําหรับ URI ข้อมูล |
| dataUriToString | แสดงเวอร์ชันสตริงสําหรับ URI ข้อมูล |
| decodeBase64 | แสดงเวอร์ชันสตริงสําหรับสตริงที่เข้ารหัส base64 |
| decodeDataUri | ส่งกลับเวอร์ชันไบนารีสําหรับ URI ข้อมูล |
| decodeUriComponent | แสดงสตริงที่แทนที่อักขระหลีกด้วยรุ่นที่ถอดรหัส |
| encodeUriComponent | แสดงสตริงที่แทนที่อักขระที่ไม่ปลอดภัย URL ด้วยอักขระการหลีก |
| float | ส่งกลับตัวเลขทศนิยมลอยตัวสําหรับค่าป้อนเข้า |
| int | ส่งกลับเวอร์ชันจํานวนเต็มสําหรับสตริง |
| json | แสดงค่าชนิด JavaScript Object Notation (JSON) หรือออบเจ็กต์สําหรับสตริงหรือ XML |
| string | แสดงเวอร์ชันสตริงสําหรับค่าอินพุต |
| uriComponent | แสดงเวอร์ชันที่เข้ารหัส URI สําหรับค่าการป้อนข้อมูล โดยการแทนที่อักขระที่ไม่ปลอดภัย URL ด้วยอักขระหลีก |
| uriComponentToBinary | ส่งกลับเวอร์ชันไบนารีสําหรับสตริงที่เข้ารหัส URI |
| uriComponentToString | แสดงเวอร์ชันสตริงสําหรับสตริงที่เข้ารหัส URI |
| xml | แสดงเวอร์ชัน XML สําหรับสตริง |
| xpath | ตรวจสอบ XML สําหรับโหนดหรือค่าที่ตรงกับนิพจน์ XPath (XML Path Language) และส่งกลับโหนดหรือค่าที่ตรงกัน |
ฟังก์ชันทางคณิตศาสตร์
ฟังก์ชันเหล่านี้สามารถใช้สําหรับตัวเลขชนิดใดก็ตาม: จํานวนเต็ม และ ทศนิยม
| ฟังก์ชันทางคณิตศาสตร์ | Task |
|---|---|
| add | ส่งกลับผลลัพธ์จากการเพิ่มตัวเลขสองตัว |
| div | ส่งกลับผลลัพธ์จากการหารตัวเลขสองตัว |
| max | ส่งกลับค่าสูงสุดจากชุดตัวเลขหรืออาร์เรย์ |
| min | ส่งกลับค่าต่ําสุดจากชุดตัวเลขหรืออาร์เรย์ |
| mod | ส่งกลับเศษที่เหลือจากการหารตัวเลขสองตัว |
| mul | ส่งกลับผลคูณจากการคูณตัวเลขสองตัว |
| rand | ส่งกลับจํานวนเต็มแบบสุ่มจากช่วงที่ระบุ |
| range | ส่งกลับอาร์เรย์จํานวนเต็มที่เริ่มต้นจากจํานวนเต็มที่ระบุ |
| sub | ส่งกลับผลลัพธ์จากการลบตัวเลขที่สองจากตัวเลขแรก |
ฟังก์ชันวันที่
| ฟังก์ชัน Date หรือ Time | Task |
|---|---|
| addDays | เพิ่มจํานวนวันลงในประทับเวลา |
| addHours | เพิ่มจํานวนชั่วโมงลงในประทับเวลา |
| addMinutes | เพิ่มจํานวนนาทีลงในการประทับเวลา |
| addSeconds | เพิ่มจํานวนวินาทีลงในการประทับเวลา |
| addToTime | เพิ่มจํานวนหน่วยเวลาลงในการประทับเวลา ดูเพิ่มเติม getFutureTime |
| convertFromUtc | แปลงประทับเวลาจากค่าพิกัดเวลาสากล (UTC) เป็นโซนเวลาเป้าหมาย |
| convertTimeZone | แปลงประทับเวลาจากโซนเวลาต้นทางเป็นโซนเวลาเป้าหมาย |
| convertToUtc | แปลงประทับเวลาจากโซนเวลาต้นทางเป็นเวลาสากลเชิงพิกัด (UTC) |
| dayOfMonth | ส่งกลับวันของคอมโพเนนต์เดือนจากประทับเวลา |
| dayOfWeek | ส่งกลับคอมโพเนนต์วันของสัปดาห์จากประทับเวลา |
| dayOfYear | ส่งกลับคอมโพเนนต์วันของปีจากประทับเวลา |
| formatDateTime | ส่งกลับประทับเวลาเป็นสตริงในรูปแบบทางเลือก |
| getFutureTime | ส่งกลับประทับเวลาปัจจุบันบวกกับหน่วยเวลาที่ระบุ ดูเพิ่มเติม addToTime |
| getPastTime | ส่งกลับประทับเวลาปัจจุบันลบหน่วยเวลาที่ระบุ ดู นอกจากนี้ ลบจากเวลา |
| startOfDay | แสดงจุดเริ่มต้นของวันสําหรับการประทับเวลา |
| startOfHour | แสดงจุดเริ่มต้นของชั่วโมงสําหรับการประทับเวลา |
| startOfMonth | ส่งกลับจุดเริ่มต้นของเดือนสําหรับการประทับเวลา |
| subtractFromTime | ลบจํานวนหน่วยเวลาจากประทับเวลา ดูเพิ่มเติม รับPastTime |
| ticks | แสดงค่าคุณสมบัติ ticks สําหรับประทับเวลาที่ระบุ |
| utcNow | ส่งกลับประทับเวลาปัจจุบันเป็นสตริง |