Parameter untuk Data Factory di Microsoft Fabric
Dokumen ini menjelaskan cara menggunakan parameter dalam alur Anda untuk Data Factory di Fabric.
Cara menggunakan parameter, ekspresi, dan fungsi dalam alur untuk Data Factory di Fabric
Dalam dokumen ini, kami berfokus pada pembelajaran konsep dasar dengan berbagai contoh untuk mengeksplorasi kemampuan untuk membuat alur data berparameter dalam Data Factory di Fabric. Parameterisasi dan ekspresi dinamis dapat menghemat waktu yang luar biasa dan memungkinkan solusi Ekstrak, Transformasi, Pemuatan (ETL) atau Ekstrak, Muat, Transformasi (ELT) yang jauh lebih fleksibel, yang akan secara dramatis mengurangi biaya pemeliharaan solusi dan mempercepat implementasi fitur baru ke dalam alur yang ada. Keuntungan ini karena parameterisasi meminimalkan jumlah pengkodean keras dan meningkatkan jumlah objek dan proses yang dapat digunakan kembali dalam solusi.
Konsep parameter dan ekspresi
Anda dapat menggunakan parameter untuk meneruskan nilai eksternal ke dalam alur. Setelah parameter diteruskan ke sumber daya, parameter tidak dapat diubah. Dengan membuat parameter sumber daya, Anda dapat menggunakannya kembali dengan nilai yang berbeda setiap saat. Parameter dapat digunakan secara individual atau sebagai bagian dari ekspresi. Nilai parameter dalam definisi dapat berupa literal atau ekspresi yang dievaluasi saat runtime.
Ekspresi dapat muncul di mana saja dalam nilai string dan selalu menghasilkan nilai string lain. Di sini, kata sandi adalah parameter alur dalam ekspresi. Jika nilai parameter adalah ekspresi, isi ekspresi diekstrak dengan menghapus tanda tangan (@). Jika diperlukan string harfiah yang dimulai dengan @, string tersebut harus diloloskan menggunakan @@. Contoh berikut menunjukkan bagaimana ekspresi dievaluasi.
Nilai parameter | Hasil |
---|---|
"parameter" | Karakter 'parameter' dikembalikan. |
"parameter[1]" | Karakter 'parameter[1]' dikembalikan. |
"@@" | String karakter 1 yang berisi '@' ditampilkan. |
" @" | String karakter 2 yang berisi ' @' ditampilkan. |
Ekspresi juga dapat muncul di dalam untai (karakter), menggunakan fitur yang disebut interpolasi untai (karakter) tempat ekspresi dibungkus @{ ... }
. Misalnya, string berikut menyertakan nilai parameter dan nilai string harfiah:
"Nama Depan: @{pipeline().parameters.firstName} Nama Belakang: @{pipeline().parameters.lastName}"
Gunakan interpolasi untai (karakter), maka hasilnya selalu berupa untai (karakter). Misalnya, jika Anda mendefinisikan myNumber
sebagai 42
dan myString
sebagai foo
:
Nilai parameter | Hasil |
---|---|
"@pipeline().parameters.myString" | Mengembalikan foo sebagai untai (karakter). |
"@{pipeline().parameters.myString}" | Mengembalikan foo sebagai untai (karakter). |
"@pipeline().parameters.myNumber" | Mengembalikan 42 sebagai angka. |
"@{pipeline().parameters.myNumber}" | Mengembalikan 42 sebagai untai (karakter). |
"Jawabannya: @{pipeline().parameters.myNumber}" | Mengembalikan untai (karakter) Answer is: 42 . |
"@concat('Answer is: ', string(pipeline().parameters.myNumber))" | Mengembalikan untai (karakter) Answer is: 42 |
"Jawaban adalah: @@{pipeline().parameters.myNumber}" | Mengembalikan untai (karakter) Answer is: @{pipeline().parameters.myNumber} . |
Contoh penggunaan parameter dalam ekspresi
Membuat dan menggunakan parameter
Untuk membuat parameter, pilih latar belakang kanvas editor alur, lalu tab Parameter dari jendela properti di bagian bawah. Pilih tombol + Baru untuk menambahkan parameter baru ke alur, beri nama, jenis data, dan nilai default:
Anda kemudian dapat menggunakan parameter di mana saja di alur Anda di mana konten dinamis didukung. Dalam contoh ini, parameter digunakan untuk secara dinamis memberikan nama penyimpanan data Lakehouse pada tab Sumber dari halaman properti aktivitas salin.
Jendela Tambahkan konten dinamis ditampilkan, memungkinkan Anda menentukan segala jenis konten dinamis, termasuk parameter, variabel sistem, fungsi, atau variabel alur. Dalam contoh ini, parameter yang ditentukan sebelumnya dipilih, dan jendela konten dinamis secara otomatis diisi dengan ekspresi yang benar untuk mereferensikan parameter.
Contoh ekspresi kompleks
Contoh di bawah ini menunjukkan contoh kompleks yang mereferensikan sub-bidang output aktivitas yang mendalam. Untuk mereferensikan parameter alur yang dievaluasi ke sub-bidang, gunakan sintaks [] bukan operator dot(.) (seperti dalam kasus subfield1 dan subfield2)
@activity('*activityName*').output.*subfield1*.*subfield2*[pipeline().parameters.*subfield3*].*subfield4*
Editor konten dinamis
Editor konten dinamis secara otomatis meloloskan karakter dalam konten Anda saat Anda selesai mengedit. Misalnya, konten berikut di editor konten adalah interpolasi string dengan fungsi ekspresi:
@{toUpper('myData')}
Editor konten dinamis mengonversi konten di atas ke ekspresi berikut:
MYDATA
Menggunakan fungsi dan variabel dalam ekspresi
Anda dapat memanggil fungsi dan menggunakan variabel dalam ekspresi. Bagian berikut ini menyediakan informasi tentang fungsi yang bisa digunakan dalam ekspresi.
Variabel cakupan alur
Variabel sistem ini dapat direferensikan di mana saja dalam JSON alur.
Nama Variabel | Deskripsi |
---|---|
@pipeline().DataFactory | Nama data atau ruang kerja Synapse tempat alur dijalankan |
@pipeline().Pipeline | Nama alur |
@pipeline().RunId | ID dari run alur tertentu |
@pipeline().TriggerId | ID pemicu yang memanggil alur |
@pipeline().TriggerName | ID pemicu yang memanggil alur |
@pipeline().TriggerTime | Waktu eksekusi pemicu yang memanggil alur. Ini adalah waktu di mana pemicu benar-benar diaktifkan untuk memanggil eksekusi alur, dan mungkin sedikit berbeda dari waktu yang dijadwalkan pemicu. |
@pipeline().GroupId | ID grup tempat alur proses berada. |
@pipeline()?.TriggeredByPipelineName | Nama alur yang memicu eksekusi alur. Berlaku jika eksekusi alur dipicu oleh aktivitas ExecutePipeline. Evaluasi ke Null jika digunakan dalam keadaan lain. Perhatikan tanda tanya setelah @pipeline() |
@pipeline()?.TriggeredByPipelineRunId | Jalankan ID alur yang memicu eksekusi alur. Berlaku jika eksekusi alur dipicu oleh aktivitas ExecutePipeline. Evaluasi ke Null jika digunakan dalam keadaan lain. Perhatikan tanda tanya setelah @pipeline() |
Catatan
Variabel sistem tanggal/waktu terkait pemicu (dalam cakupan alur dan pemicu) mengembalikan tanggal UTC dalam format ISO 8601, misalnya, 2017-06-01T22:20:00.4061448Z
.
Fungsi string
Jika ingin menggunakan string, Anda dapat menggunakan fungsi string ini dan juga beberapa fungsi koleksi. Fungsi string hanya berfungsi pada string.
Fungsi string | Task |
---|---|
concat | Gabungkan dua untai (karakter) atau lebih, dan kembalikan untai (karakter) gabungan. |
endsWith | Memeriksa apakah string berakhir dengan substring yang ditentukan. |
Guid | Membuat pengidentifikasi unik global (GUID) sebagai string. |
indexOf | Mengembalikan posisi awal untuk substring. |
lastIndexOf | Mengembalikan posisi awal untuk kemunculan terakhir substring. |
mengganti | Mengganti substring dengan string yang ditentukan, dan mengembalikan string yang diperbarui. |
belah | Mengembalikan larik yang berisi substring, dipisahkan dengan koma, dari string yang lebih besar berdasarkan karakter pembatas tertentu dalam string asli. |
startsWith | Memeriksa apakah string dimulai dengan substring tertentu. |
substring | Mengembalikan karakter dari string, dimulai dari posisi yang ditentukan. |
ToLower | Mengembalikan untai (karakter) dalam format huruf kecil. |
toUpper | Mengembalikan string dalam format huruf besar. |
trim | Menghapus spasi di depan dan di belakang pada string, dan mengembalikan string yang diperbarui. |
Fungsi pengumpulan
Jika ingin menggunakan koleksi, umumnya larik, string, dan terkadang, kamus, Anda dapat menggunakan fungsi koleksi ini.
Fungsi koleksi | Task |
---|---|
mengandung | Memeriksa apakah koleksi memiliki item tertentu. |
kosong | Memeriksa apakah koleksi kosong. |
first | Mengembalikan item pertama dari koleksi. |
persimpangan | Mengembalikan koleksi yang hanya memiliki item umum di seluruh koleksi yang ditentukan. |
join | Mengembalikan string yang memiliki semua item dari larik, dipisahkan oleh karakter yang ditentukan. |
last | Mengembalikan item terakhir dari koleksi. |
length | Mengembalikan jumlah item dalam string atau larik. |
skip | Menghapus item dari depan koleksi, dan mengembalikan semua item lainnya. |
take | Mengembalikan item dari bagian depan koleksi. |
union | Mengembalikan koleksi yang memiliki semua item dari koleksi yang ditentukan. |
Fungsi logika
Fungsi-fungsi ini berguna dalam kondisi, dapat digunakan untuk mengevaluasi segala jenis logika.
Fungsi perbandingan logika | Task |
---|---|
dan | Memeriksa apakah semua ekspresi berupa true. |
setara | Memeriksa apakah kedua nilai tersebut setara. |
lebih besar | Memeriksa apakah nilai pertama lebih besar dari nilai kedua. |
lebihbesarAtauSetara | Memeriksa apakah nilai pertama lebih besar dari atau sama dengan nilai kedua. |
if | Periksa apakah ekspresi itu true atau false. Berdasarkan hasilnya, mengembalikan nilai yang ditentukan. |
kurang | Periksa apakah nilai pertama kurang dari nilai kedua. |
kurangAtauSetara | Memeriksa apakah nilai pertama kurang dari atau sama dengan nilai kedua. |
Tidak | Periksa apakah ekspresi itu false. |
atau | Memeriksa apakah setidaknya satu ekspresi true. |
Fungsi konversi
Fungsi ini digunakan untuk mengonversi antara masing-masing jenis asli dalam bahasa pemrogram:
- string
- Integer
- float
- Boolean
- larik
- dictionaries
Fungsi konversi | Task |
---|---|
array | Mengembalikan larik dari satu input yang ditentukan. Untuk beberapa input, lihat createArray. |
base64 | Mengembalikan versi yang dienkode ke base64 untuk string. |
base64ToBinary | Mengembalikan versi biner untuk string yang dienkode ke base64. |
base64KeUntai | Mengembalikan versi string untuk string yang dienkode ke base64. |
biner | Mengembalikan versi biner untuk nilai input. |
bool | Mengembalikan versi Boolean untuk nilai input. |
gabungkan | Mengembalikan nilai non-null pertama dari satu atau beberapa parameter. |
createArray | Mengembalikan larik dari beberapa input. |
dataUri | Mengembalikan URI data untuk nilai input. |
dataUriToBinary | Mengembalikan versi biner untuk URI data. |
dataUriToString | Mengembalikan versi string untuk URI data. |
decodeBase64 | Mengembalikan versi string untuk string yang dienkode ke base64. |
decodeDataUri | Mengembalikan versi biner untuk URI data. |
decodeUriComponen | Mengembalikan string yang menggantikan escape character dengan versi yang didekodekan. |
decodeUriComponent | Mengembalikan string yang menggantikan karakter URL yang tidak aman dengan escape character. |
float | Mengembalikan angka titik mengambang untuk nilai input. |
int | Mengembalikan versi bilangan bulat untuk string. |
json | Mengembalikan nilai jenis JavaScript Object Notation (JSON) atau objek untuk string atau XML. |
string | Mengembalikan versi string untuk nilai input. |
uriComponent | Mengembalikan versi yang dienkode ke URI untuk nilai input dengan mengganti karakter URL yang tidak aman dengan escape character. |
uriComponentToBinary | Mengembalikan versi biner untuk string yang dienkode ke URI. |
uriComponentToString | Mengembalikan versi string untuk string yang dienkode ke URI. |
xml | Mengembalikan versi XML untuk string. |
xpath | Memeriksa XML untuk node atau nilai yang cocok dengan ekspresi JalurX (XML Path Language), dan mengembalikan node atau nilai yang cocok. |
Fungsi matematika
Fungsi-fungsi ini dapat digunakan untuk salah satu jenis angka: bilangan bulat dan float.
Fungsi matematika | Task |
---|---|
penambahan | Mengembalikan hasil dari penjumlahan dua angka. |
div | Mengembalikan hasil dari pembagian dua angka. |
max | Mengembalikan nilai tertinggi dari sekumpulan angka atau larik. |
min | Mengembalikan nilai terendah dari sekumpulan angka atau larik. |
mod | Mengembalikan sisa dari pembagian dua angka. |
mul | Mengembalikan produk dari perkalian dua angka. |
rand | Mengembalikan bilangan bulat acak dari rentang tertentu. |
rentang | Mengembalikan larik bilangan bulat yang dimulai dari bilangan bulat tertentu. |
sub | Mengembalikan hasil dari mengurangi angka kedua dari angka pertama. |
Fungsi tanggal
Fungsi tanggal atau waktu | Task |
---|---|
addDays | Menambahkan beberapa hari ke tanda waktu. |
addHours | Menambahkan beberapa jam ke tanda waktu. |
addMinutes | Menambahkan beberapa menit ke tanda waktu. |
addSeconds | Menambahkan beberapa detik ke tanda waktu. |
addToTime | Menambahkan sejumlah unit waktu ke tanda waktu. Lihat juga getFutureTime. |
convertFromUtc | Mengonversi tanda waktu dari Universal Time Coordinated (UTC) ke zona waktu target. |
convertTimeZone | Mengonversi tanda waktu dari zona waktu sumber ke zona waktu target. |
convertToUtc | Mengonversi tanda waktu dari zona waktu sumber ke Universal Time Coordinated (UTC). |
dayOfMonth | Mengembalikan komponen hari dalam satu bulan dari tanda waktu. |
dayOfWeek | Mengembalikan komponen hari dalam seminggu dari tanda waktu. |
dayOfYear | Mengembalikan komponen hari dalam setahun dari tanda waktu. |
formatDateTime | Mengembalikan tanda waktu sebagai untai dalam format opsional. |
getFutureTime | Mengembalikan tanda waktu saat ini ditambah unit waktu yang ditentukan. Lihat juga addToTime. |
getPastTime | Mengembalikan tanda waktu saat ini dikurangi unit waktu yang ditentukan. Lihat juga subtractFromTime. |
startOfDay | Mengembalikan awal hari untuk tanda waktu. |
startOfHour | Mengembalikan awal jam untuk tanda waktu. |
startOfMonth | Mengembalikan awal bulan untuk tanda waktu. |
subtractFromTime | Mengurangi jumlah unit waktu dari tanda waktu. Lihat juga getPastTime. |
ticks | Mengembalikan nilai properti ticks untuk tanda waktu tertentu. |
utcNow | Mengembalikan tanda waktu saat ini sebagai string. |