Bagikan melalui


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:

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

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.

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

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.

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

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.