Cara menggunakan parameter, ekspresi dan fungsi di Azure Data Factory
BERLAKU UNTUK:Azure Data Factory Azure Synapse Analytics
Tip
Cobalah Data Factory di Microsoft Fabric, solusi analitik all-in-one untuk perusahaan. Microsoft Fabric mencakup semuanya mulai dari pergerakan data hingga ilmu data, analitik real time, kecerdasan bisnis, dan pelaporan. Pelajari cara memulai uji coba baru secara gratis!
Dalam dokumen ini, kami akan berfokus terutama pada pembelajaran konsep dasar dengan berbagai contoh untuk mengeksplorasi kemampuan membuat alur data berparameter dalam Azure Data Factory. Parameterisasi dan ekspresi dinamis adalah tambahan penting untuk ADF karena mereka dapat menghemat banyak waktu dan memungkinkan solusi Extract, Transform, Load (ETL) atau Extract, Load, Transform (ELT) yang jauh lebih fleksibel, yang secara signifikan akan mengurangi biaya pemeliharaan solusi dan mempercepat penerapan fitur-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.
Antarmuka pengguna dan parameter Azure Data Factory
Jika Anda baru menggunakan parameter Azure Data Factory di antarmuka pengguna ADF, silakan tinjau Antarmuka pengguna Azure Data Factory untuk layanan tertaut dengan parameter dan Antarmuka pengguna Azure Data Factory untuk alur yang digerakkan metadata dengan parameter untuk penjelasan visual.
Konsep parameter dan ekspresi
Anda dapat menggunakan parameter untuk meneruskan nilai eksternal ke dalam alur, himpunan data, layanan tertaut, dan alur data. 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 JSON dalam definisi dapat berupa nilai literal atau ekspresi yang dievaluasi pada waktu runtime.
Contohnya:
"name": "value"
atau
"name": "@pipeline().parameters.password"
Ekspresi dapat muncul di mana saja dalam nilai untai JSON dan selalu menghasilkan nilai JSON lain. Di sini, kata sandi adalah parameter alur dalam ekspresi. Jika nilai JSON adalah ekspresi, isi ekspresi diekstrak dengan menghapus tanda at (@). Jika diperlukan string harfiah yang dimulai dengan @, string tersebut harus diloloskan menggunakan @@. Contoh berikut menunjukkan bagaimana ekspresi dievaluasi.
Nilai JSON | 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: "name" : "First Name: @{pipeline().parameters.firstName} Last Name: @{pipeline().parameters.lastName}"
Gunakan interpolasi untai (karakter), maka hasilnya selalu berupa untai (karakter). Katakanlah saya telah menentukan myNumber
sebagai 42
dan myString
sebagai foo
:
Nilai JSON | 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
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 meng-escape karakter dalam konten Anda setelah Anda selesai mengedit. Misalnya, konten berikut di editor konten adalah interpolasi untai (karakter) dengan dua fungsi ekspresi.
{
"type": "@{if(equals(1, 2), 'Blob', 'Table' )}",
"name": "@{toUpper('myData')}"
}
Editor konten dinamis mengonversi konten di atas untuk ekspresi "{ \n \"type\": \"@{if(equals(1, 2), 'Blob', 'Table' )}\",\n \"name\": \"@{toUpper('myData')}\"\n}"
. Hasil dari ekspresi ini adalah untai (karakter) format JSON yang ditunjukkan di bawah ini.
{
"type": "Table",
"name": "MYDATA"
}
Himpunan data dengan parameter
Dalam contoh berikut, BlobDataset mengambil parameter bernama jalur. Nilainya digunakan untuk mengatur nilai untuk properti folderPath dengan menggunakan ekspresi: dataset().path
.
{
"name": "BlobDataset",
"properties": {
"type": "AzureBlob",
"typeProperties": {
"folderPath": "@dataset().path"
},
"linkedServiceName": {
"referenceName": "AzureStorageLinkedService",
"type": "LinkedServiceReference"
},
"parameters": {
"path": {
"type": "String"
}
}
}
}
Alur dengan parameter
Dalam contoh berikut, alur mengambil parameter inputPath dan outputPath. Jalur untuk himpunan data blob yang berparameter diatur menggunakan nilai parameter ini. Sintaks yang digunakan di sini adalah: pipeline().parameters.parametername
.
{
"name": "Adfv2QuickStartPipeline",
"properties": {
"activities": [
{
"name": "CopyFromBlobToBlob",
"type": "Copy",
"inputs": [
{
"referenceName": "BlobDataset",
"parameters": {
"path": "@pipeline().parameters.inputPath"
},
"type": "DatasetReference"
}
],
"outputs": [
{
"referenceName": "BlobDataset",
"parameters": {
"path": "@pipeline().parameters.outputPath"
},
"type": "DatasetReference"
}
],
"typeProperties": {
"source": {
"type": "BlobSource"
},
"sink": {
"type": "BlobSink"
}
}
}
],
"parameters": {
"inputPath": {
"type": "String"
},
"outputPath": {
"type": "String"
}
}
}
}
Memanggil fungsi dalam ekspresi
Anda dapat memanggil fungsi dalam ekspresi. Bagian berikut ini menyediakan informasi tentang fungsi yang bisa digunakan dalam ekspresi.
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 | Tugas |
---|---|
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 | Tugas |
---|---|
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 | Tugas |
---|---|
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 | Tugas |
---|---|
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 | Tugas |
---|---|
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 | Tugas |
---|---|
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. |
Contoh terperinci untuk latihan
Alur salin Azure Data Factory terperinci dengan parameter
Tutorial meneruskan parameter alur salin Azure Data Factory ini memandu Anda pada cara meneruskan parameter antara alur dan aktivitas serta di antara aktivitas.
Alur aliran data Pemetaan terperinci dengan parameter
Silakan ikuti aliran data Pemetaan dengan parameter untuk contoh komprehensif tentang cara menggunakan parameter dalam aliran data.
Alur yang digerakkan Metadata dengan parameter terperinci
Silakan ikuti Alur yang digerakkan Metadata dengan parameter untuk mempelajari lebih lanjut tentang cara menggunakan parameter untuk merancang alur yang digerakkan metadata. Ini adalah kasus penggunaan populer untuk parameter.
Konten terkait
Untuk daftar variabel sistem yang dapat Anda gunakan dalam ekspresi, lihat Variabel sistem.