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.
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!
Aliran data tersedia di Alur Azure Data Factory dan Azure Synapse. Artikel ini berlaku untuk memetakan aliran data. Jika Anda baru mengenal transformasi, silakan lihat artikel pengantar Transformasi data menggunakan aliran data pemetaan.
Gunakan transformasi gabungan untuk menggabungkan data dari dua sumber atau aliran dalam alur pemetaan data. Aliran output akan mencakup semua kolom dari kedua sumber yang cocok dengan kondisi gabungan.
Jenis gabungan
Alur pemetaan data saat ini mendukung lima jenis gabungan yang berbeda.
Gabungan Dalam
Gabungan dalam hanya menghasilkan baris yang memiliki nilai yang cocok di kedua tabel.
Luar Kiri
Gabungan luar kiri menghasilkan semua baris dari aliran kiri dan rekaman yang cocok dari aliran kanan. Jika baris dari aliran kiri tidak memiliki kecocokan, kolom output dari aliran kanan diatur ke NULL. Output akan menjadi baris yang dihasilkan oleh gabungan dalam ditambah dengan baris yang tidak cocok dari aliran kiri.
Catatan
Mesin Spark yang digunakan oleh aliran data terkadang akan gagal karena kemungkinan adanya produk kartesius dalam kondisi gabungan Anda. Jika ini terjadi, Anda dapat beralih ke gabungan silang kustom dan masukkan kondisi gabungan Anda secara manual. Hal ini dapat mengakibatkan penurunan performa dalam aliran data Anda karena mesin eksekusi mungkin perlu menghitung semua baris dari kedua sisi hubungan lalu memfilter baris.
Luar Kanan
Gabungan luar kanan menghasilkan semua baris dari aliran kanan dan rekaman yang cocok dari aliran kiri. Jika baris dari aliran kanan tidak memiliki kecocokan, kolom output dari aliran kiri diatur ke NULL. Output akan menjadi baris yang dihasilkan oleh gabungan dalam ditambah dengan baris yang tidak cocok dari aliran kanan.
Luar Penuh
Output gabungan luar penuh adalah semua kolom dan baris dari kedua sisi dengan nilai NULL untuk kolom yang tidak cocok.
Gabungan silang kustom
Gabungan silang menghasilkan produk silang dari dua aliran berdasarkan suatu kondisi. Jika Anda menggunakan kondisi yang tidak sama, tentukan ekspresi kustom sebagai kondisi gabungan silang Anda. Aliran output akan menjadi semua baris yang memenuhi kondisi gabungan.
Anda dapat menggunakan jenis gabungan ini untuk gabungan yang tidak sama dan kondisi OR.
Jika Anda ingin secara eksplisit menghasilkan produk kartesius lengkap, gunakan transformasi Kolom Turunan di dua aliran independen sebelum penggabungan untuk membuat kunci sintetis yang cocok. Misalnya, membuat kolom baru di dalam Kolom Turunan pada setiap aliran yang dipanggil SyntheticKey dan mengaturnya agar sama dengan 1. Kemudian gunakan a.SyntheticKey == b.SyntheticKey sebagai ekspresi gabungan kustom Anda.
Catatan
Pastikan untuk menyertakan setidaknya satu kolom dari setiap sisi hubungan kiri dan kanan Anda dalam gabungan silang kustom. Mengeksekusi gabungan silang dengan nilai statis, dan bukan dengan kolom dari setiap sisi, menghasilkan pemindaian lengkap seluruh himpunan data, serta menyebabkan aliran data Anda berperforma buruk.
Gabungan fuzzy
Anda dapat memilih untuk bergabung berdasarkan logika gabungan fuzzy alih-alih pencocokan nilai kolom yang tepat dengan mengaktifkan opsi kotak centang "Gunakan pencocokan fuzzy".
- Bagian gabungkan teks: Gunakan opsi ini untuk mencocokkan dengan menghapus spasi antar kata. Misalnya, Data Factory dicocokkan dengan DataFactory jika opsi ini diaktifkan.
- Kolom skor kesamaan: Anda dapat secara opsional memilih untuk menyimpan skor yang cocok untuk setiap baris dalam kolom dengan memasukkan nama kolom baru di sini untuk menyimpan nilai tersebut.
- Ambang kesamaan: Pilih nilai antara 60 sampai 100 sebagai persentase kecocokan antara nilai dalam kolom yang Anda pilih.
Catatan
Pencocokan fuzzy saat ini hanya berfungsi dengan jenis kolom string dan jenis gabungan bagian dalam, kiri luar, dan luar penuh. Anda harus mematikan pengoptimalan siaran saat menggunakan gabungan pencocokan fuzzing.
Konfigurasi
- Pilih aliran data mana yang akan Anda gabungkan di menu turun Aliran kanan.
- Pilih Jenis gabungan Anda
- Pilih kolom kunci yang ingin Anda cocokkan dengan kondisi gabungan Anda. Secara default, aliran data mencari persamaan antar satu kolom di tiap-tiap aliran. Untuk membandingkan melalui nilai terkomputasi, arahkan kursor ke dropdown kolom dan pilih Kolom terkomputasi.
Gabungan tidak sama
Untuk menggunakan operator kondisional, seperti tidak sama dengan (!=) atau lebih besar dari (>) dalam kondisi gabungan Anda, ubah menu menurun operator di antara dua kolom. Gabungan non-equi memerlukan setidaknya satu dari dua aliran yang akan disiarkan menggunakan siaran Tetap di tab Optimalkan.
Mengoptimalkan performa gabungan
Tidak seperti penggabungan dalam alat seperti SSIS, transformasi gabungan bukanlah operasi penggabungan wajib. Kunci gabungan tidak perlu pengurutan. Operasi gabungan dilakukan berdasarkan operasi gabungan optimal di Spark, baik gabungan siaran atau sisi peta.
Dalam gabungan, pencarian, dan transformasi exists, jika satu atau kedua aliran data cukup untuk masuk ke dalam memori node pekerja, Anda dapat mengoptimalkan performa dengan mengaktifkan Penyiaran. Secara default, mesin spark akan secara otomatis memutuskan apakah akan menyiarkan satu sisi atau tidak. Untuk memilih secara manual sisi mana yang akan disiarkan, pilih Ditetapkan.
Tidak disarankan untuk menonaktifkan penyiaran melalui opsi Nonaktif kecuali gabungan Anda mengalami kesalahan waktu habis.
Swa-Gabung
Untuk melakukan swa-gabung aliran data dengan dirinya sendiri, mengaliasing aliran yang ada dengan transformasi pilihan. Buat cabang baru dengan mengeklik ikon plus di samping transformasi dan memilih Cabang baru. Tambahkan transformasi pilihan untuk mengaliasing aliran asli. Tambahkan transformasi gabungan dan pilih aliran asli sebagai Aliran kiri dan transformasi pilihan sebagai Aliran kanan.
Menguji kondisi gabungan
Saat menguji transformasi gabungan dengan pratinjau data dalam mode debug, gunakan himpunan kecil data yang diketahui. Saat mengambil sampel baris dari himpunan data besar, Anda tidak dapat memprediksi baris dan kunci mana yang akan dibaca untuk pengujian. Hasilnya tidaklah deterministik, yang berarti bahwa kondisi gabungan Anda mungkin tidak menghasilkan kecocokan apa pun.
Skrip aliran data
Sintaks
<leftStream>, <rightStream>
join(
<conditionalExpression>,
joinType: { 'inner'> | 'outer' | 'left_outer' | 'right_outer' | 'cross' }
broadcast: { 'auto' | 'left' | 'right' | 'both' | 'off' }
) ~> <joinTransformationName>
Contoh gabungan dalam
Contoh di bawah ini adalah transformasi gabungan bernama JoinMatchedData yang mengambil aliran kiri TripData dan aliran kanan TripFare. Kondisi gabungan adalah ekspresi hack_license == { hack_license} && TripData@medallion == TripFare@medallion && vendor_id == { vendor_id} && pickup_datetime == { pickup_datetime} yang mengembalikan hasil benar jika kolom hack_license, medallion, vendor_id, dan pickup_datetime di setiap aliran cocok. joinType adalah 'inner'. Kami mengaktifkan penyiaran hanya di aliran kiri sehingga broadcast memiliki nilai 'left'.
Di UI, transformasi ini terlihat seperti gambar di bawah ini:
Skrip aliran data untuk transformasi ini ada di cuplikan di bawah ini:
TripData, TripFare
join(
hack_license == { hack_license}
&& TripData@medallion == TripFare@medallion
&& vendor_id == { vendor_id}
&& pickup_datetime == { pickup_datetime},
joinType:'inner',
broadcast: 'left'
)~> JoinMatchedData
Contoh gabungan silang kustom
Contoh di bawah ini adalah transformasi gabungan bernama JoiningColumns yang mengambil aliran kiri LeftStream dan aliran kanan RightStream. Transformasi ini mengambil dua aliran dan menggabungkan semua baris di mana kolom leftstreamcolumn lebih besar dari kolom rightstreamcolumn. joinType adalah cross. Penyiaran tidak diaktifkan, broadcast memiliki nilai 'none'.
Di UI, transformasi ini terlihat seperti gambar di bawah ini:
Skrip aliran data untuk transformasi ini ada di cuplikan di bawah ini:
LeftStream, RightStream
join(
leftstreamcolumn > rightstreamcolumn,
joinType:'cross',
broadcast: 'none'
)~> JoiningColumns
Konten terkait
Setelah menggabungkan data, buat kolom turunan dan sink data Anda ke penyimpanan data tujuan.