Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Petunjuk
Data Factory di Microsoft Fabric adalah generasi Azure Data Factory berikutnya, dengan arsitektur yang lebih sederhana, AI bawaan, dan fitur baru. Jika Anda baru menggunakan integrasi data, mulailah dengan Fabric Data Factory. Beban kerja ADF yang ada dapat ditingkatkan ke Fabric untuk mengakses kemampuan baru di seluruh ilmu data, analitik real time, dan pelaporan.
Dalam pemetaan aliran data, banyak properti transformasi dimasukkan sebagai ekspresi. Ekspresi ini terdiri dari nilai kolom, parameter, fungsi, operator, dan literal yang mengevaluasi ke jenis data Spark pada waktu proses. Pemetaan aliran data memiliki pengalaman khusus yang bertujuan untuk membantu Anda dalam membuat ekspresi ini yang disebut Penyusun Ekspresi. Menggunakan penyelesaian kode IntelliSense untuk penyorotan, pemeriksaan sintaks, dan pelengkapan otomatis, penyusun ekspresi dirancang untuk memudahkan pembuatan aliran data. Artikel ini menjelaskan cara menggunakan penyusun ekspresi untuk membuat logika bisnis Anda secara efektif.
Buka Penyusun Ekspresi
Ada beberapa titik masuk untuk membuka pembangun ekspresi. Ini semua tergantung pada konteks spesifik transformasi aliran data. Kasus penggunaan yang paling umum adalah dalam transformasi seperti kolom turunan dan agregat di mana pengguna membuat atau memperbarui kolom menggunakan bahasa ekspresi aliran data. Penyusun ekspresi dapat dibuka dengan memilih Buka penyusun ekspresi di atas daftar kolom. Anda juga dapat memilih konteks kolom dan membuka penyusun ekspresi langsung ke ekspresi tersebut.
Dalam beberapa transformasi seperti filter, mengklik kotak teks ekspresi biru membuka penyusun ekspresi.
Saat Anda mereferensikan kolom dalam kondisi pencocokan atau pengelompokan, ekspresi dapat mengekstrak nilai dari kolom. Untuk membuat ekspresi, pilih kolom Komputasi.
Dalam kasus di mana ekspresi atau nilai literal adalah input yang valid, pilih Tambahkan konten dinamis untuk membuat ekspresi yang dievaluasi ke nilai literal.
Elemen ekspresi
Dalam pemetaan aliran data, ekspresi dapat terdiri dari nilai kolom, parameter, fungsi, variabel lokal, operator, dan literal. Ekspresi ini harus mengevaluasi ke jenis data Spark seperti string, boolean, atau bilangan bulat.
Functions
Pemetaan aliran data memiliki fungsi dan operator bawaan yang dapat digunakan dalam ekspresi. Untuk daftar fungsi yang tersedia, lihat referensi bahasa aliran data pemetaan.
Fungsi Buatan Pengguna (Pratinjau)
Pemetaan alur data mendukung pembuatan dan penggunaan fungsi yang ditentukan pengguna. Untuk melihat cara membuat dan menggunakan fungsi yang ditentukan pengguna, lihat fungsi yang ditentukan pengguna.
Indeks alamat array
Saat Anda berhadapan dengan kolom atau fungsi yang mengembalikan jenis array, gunakan tanda kurung siku ([]) untuk mengakses elemen tertentu. Jika indeks tidak ada, ekspresi akan dievaluasi ke menjadi NULL.
Penting
Dalam pemetaan aliran data, array didasarkan pada satu, yang artinya elemen pertama direferensikan oleh indeks satu. Misalnya, myArray[1] akan mengakses elemen pertama dari array yang disebut 'myArray'.
Skema input
Jika aliran data Anda menggunakan skema yang ditentukan di salah satu sumbernya, Anda dapat mereferensikan kolom menurut nama dalam banyak ekspresi. Jika Anda menggunakan penyimpangan skema, Anda dapat mereferensikan kolom secara eksplisit menggunakan byName() fungsi atau byNames() atau pencocokan menggunakan pola kolom.
Nama kolom dengan karakter khusus
Saat Anda memiliki nama kolom yang menyertakan karakter khusus atau spasi, kelilingi nama dengan kurung kurawal untuk mereferensikannya dalam ekspresi.
{[dbo].this_is my complex name$$$}
Parameter
Parameter adalah nilai-nilai yang diteruskan ke aliran data pada waktu berjalan dari pipeline. Untuk mengacu pada parameter, pilih parameter dari tampilan elemen Ekspresi atau gunakan tanda dolar di depan namanya. Misalnya, parameter yang disebut parameter1 dirujuk oleh $parameter1. Untuk mempelajari lebih lanjut, lihat membuat parameter pemetaan aliran data.
Cache pencarian
Pencarian yang di-cache memungkinkan Anda melakukan pencarian sebaris dari output sink yang di-cache. Ada dua fungsi yang dapat digunakan pada setiap sink, lookup() dan outputs(). Sintaks untuk mereferensikan fungsi-fungsi ini adalah cacheSinkName#functionName(). Untuk informasi lebih lanjut, lihat cache sinks.
lookup() menerima kolom yang cocok dalam transformasi saat ini sebagai parameter dan menghasilkan kolom kompleks yang setara dengan baris yang cocok dengan kolom kunci di sink cache. Kolom kompleks yang dikembalikan berisi subkolom untuk setiap kolom yang dipetakan di cache sink. Misalnya, jika Anda memiliki sink cache kode galat errorCodeCache yang memiliki kolom kunci yang cocok dengan kode dan sebuah kolom bernama Message. Memanggil errorCodeCache#lookup(errorCode).Message akan menampilkan pesan yang sesuai dengan kode yang diteruskan.
outputs() tidak menerima parameter dan mengembalikan seluruh penyimpanan cache sebagai array kolom kompleks. Ini tidak dapat dipanggil jika kolom kunci ditentukan di sink dan hanya boleh digunakan jika ada beberapa baris di sink cache. Kasus penggunaan yang umum adalah menambahkan nilai maksimal dari kunci yang bertambah. Jika baris agregat tunggal yang di-cache CacheMaxKeyberisi kolomMaxKey, Anda dapat mereferensikan nilai pertama dengan memanggil CacheMaxKey#outputs()[1].MaxKey.
Penduduk setempat
Jika Anda berbagi logika di beberapa kolom atau ingin menggabungkan logika, Anda dapat membuat variabel lokal. Lokal adalah sekumpulan logika yang tidak disebarkan ke hilir ke transformasi berikut. Lokal dapat dibuat di dalam penyusun ekspresi dengan masuk ke Elemen ekspresi dan memilih Lokal. Buat yang baru dengan memilih Buat baru.
Variabel Lokal dapat mereferensikan elemen ekspresi apa pun termasuk fungsi, skema input, parameter, dan lokal lainnya. Ketika mereferensikan referensi lainnya, urutan merupakan hal yang penting karena referensi yang dirujuk harus berada "di atas" referensi saat ini.
Untuk merujuk ke lokal dalam suatu transformasi, pilih lokal dari tampilan elemen Ekspresi atau rujuk dengan titik dua di depan namanya. Misalnya, lokal bernama lokal1 akan direferensikan oleh :local1. Untuk mengedit definisi lokal, arahkan mouse ke atasnya dalam tampilan elemen ekspresi dan pilih ikon pensil.
Pratinjau hasil ekspresi
Jika mode debug diaktifkan, Anda dapat menggunakan kluster debug secara interaktif untuk melihat hasil evaluasi ekspresi Anda. Pilih Refresh di samping pratinjau data untuk memperbarui hasil pratinjau data. Anda dapat melihat output dari setiap baris yang diberikan kolom input.
Interpolasi string
Saat membuat string panjang yang menggunakan elemen ekspresi, gunakan interpolasi string untuk membuat logika string kompleks dengan mudah. Interpolasi string menghindari penggunaan ekstensif rangkaian string saat parameter disertakan dalam string kueri. Gunakan tanda kutip ganda untuk menyertakan teks string literal bersama dengan ekspresi. Anda dapat menyertakan fungsi ekspresi, kolom, dan parameter. Untuk menggunakan sintaks ekspresi, sertakan dalam kurung kurawal,
Beberapa contoh interpolasi string:
"My favorite movie is {iif(instr(title,', The')>0,"The {split(title,', The')[1]}",title)}""select * from {$tablename} where orderyear > {$year}""Total cost with sales tax is {round(totalcost * 1.08,2)}""{:playerName} is a {:playerRating} player"
Catatan
Saat menggunakan sintaks interpolasi string dalam kueri sumber SQL, string kueri harus berada dalam satu baris, tanpa '/n'.
Ekspresi komentar
Tambahkan komentar ke ekspresi Anda dengan menggunakan sintaks komentar satu baris dan multibaris.
Berikut adalah contoh komentar yang valid:
/* This is my comment *//* This is amulti-line comment */
Jika Anda meletakkan komentar di bagian atas ekspresi Anda, komentar akan muncul di kotak teks transformasi untuk mendokumentasikan ekspresi transformasi Anda.
Ekspresi reguler
Banyak fungsi bahasa ekspresi menggunakan sintaks ekspresi reguler. Saat Anda menggunakan fungsi ekspresi reguler, Penyusun Ekspresi mencoba menafsirkan garis miring terbalik (\) sebagai urutan karakter keluar. Saat Anda menggunakan garis miring terbalik dalam ekspresi reguler Anda, sertakan seluruh regex dalam tanda garis miring terbalik (`) atau gunakan garis miring terbalik ganda.
Contoh yang menggunakan backticks:
regex_replace('100 and 200', `(\d+)`, 'digits')
Contoh yang menggunakan garis miring ganda:
regex_replace('100 and 200', '(\\d+)', 'digits')
Pintasan papan ketik
Di bawah ini adalah daftar pintasan yang dapat digunakan di penyusun ekspresi. Sebagian besar pintasan intellisense tersedia saat membuat ekspresi.
- Ctrl+K Ctrl+C: Komentari seluruh baris.
- Ctrl+K Ctrl+U: Hapus komentar.
- F1: Berikan perintah bantuan editor.
- Alt+Tombol panah bawah: Pindahkan garis saat ini ke bawah.
- Alt+Tombol panah atas: Pindahkan baris saat ini ke atas.
- Ctrl+Spasi: Tampilkan bantuan konteks.
Ekspresi yang umum digunakan
Mengonversi ke tanggal atau tanda waktu
Untuk menyertakan literal string dalam output tanda waktu Anda, bungkus konversi Anda dalam toString().
toString(toTimestamp('12/31/2016T00:12:00', 'MM/dd/yyyy\'T\'HH:mm:ss'), 'MM/dd /yyyy\'T\'HH:mm:ss')
Untuk mengonversi milidetik dari epoch ke tanggal atau tanda waktu, gunakan toTimestamp(<number of milliseconds>). Jika waktu diberikan dalam hitungan detik, kalikan dengan 1.000.
toTimestamp(1574127407*1000l)
Akhiran "l" di akhir ekspresi sebelumnya menandakan konversi ke tipe long sebagai sintaksis inline.
Cari waktu dari epoch atau Waktu Unix
toLong( currentTimestamp() - toTimestamp('1970-01-01 00:00:00.000', 'yyyy-MM-dd HH:mm:ss.SSS') ) * 1000l
Evaluasi waktu aliran data
Pemrosesan aliran data hingga mencapai milidetik. Untuk 2018-07-31T20:00:00.2170000, Anda akan melihat 2018-07-31T20:00:00.217 dalam output. Di portal untuk layanan, tanda waktu ditampilkan di pengaturan browser saat ini, yang dapat menghilangkan bagian milidetik (217), tetapi ketika Anda menjalankan aliran data secara end to end, bagian milidetik (217) juga diproses. Anda dapat menggunakan toString(myDateTimeColumn) sebagai ekspresi dan melihat data dengan presisi penuh dalam pratinjau. Proses tanggal dan waktu sebagai jenis tanggal dan waktu, bukan sebagai string, untuk semua tujuan praktis.