Transformasi Pencarian Fuzzy

Berlaku untuk: Integration Runtime SSIS SQL Server di Azure Data Factory

Transformasi Pencarian Fuzzy melakukan tugas pembersihan data seperti menstandarkan data, mengoreksi data, dan memberikan nilai yang hilang.

Catatan

Untuk informasi lebih rinci tentang transformasi Pencarian Fuzzy, termasuk keterbatasan performa dan memori, lihat laporan resmi, Pencarian Fuzzy, dan Pengelompokan Fuzzy di SQL Server Integration Services 2005.

Transformasi Pencarian Fuzzy berbeda dari transformasi Pencarian dalam penggunaan pencocokan fuzzy. Transformasi Pencarian menggunakan equi-join untuk menemukan rekaman yang cocok dalam tabel referensi. Ini mengembalikan rekaman dengan setidaknya satu rekaman yang cocok, dan mengembalikan rekaman tanpa rekaman yang cocok. Sebaliknya, transformasi Pencarian Fuzzy menggunakan pencocokan fuzzy untuk mengembalikan satu atau beberapa kecocokan dekat dalam tabel referensi.

Transformasi Pencarian Fuzzy sering mengikuti transformasi Pencarian dalam aliran data paket. Pertama, transformasi Pencarian mencoba menemukan kecocokan yang tepat. Jika gagal, transformasi Pencarian Fuzzy menyediakan kecocokan dekat dari tabel referensi.

Transformasi memerlukan akses ke sumber data referensi yang berisi nilai yang digunakan untuk membersihkan dan memperluas data input. Sumber data referensi harus berupa tabel dalam database SQL Server. Kecocokan antara nilai dalam kolom input dan nilai dalam tabel referensi bisa sama persis atau kecocokan fuzzy. Namun, transformasi mengharuskan setidaknya satu kolom cocok untuk dikonfigurasi untuk pencocokan fuzzy. Jika Anda hanya ingin menggunakan pencocokan yang tepat, gunakan transformasi Pencarian sebagai gantinya.

Transformasi ini memiliki satu input dan satu output.

Hanya kolom input dengan jenis data DT_WSTR dan DT_STR yang dapat digunakan dalam pencocokan fuzzy. Pencocokan yang tepat dapat menggunakan jenis data DTS apa pun kecuali DT_TEXT, DT_NTEXT, dan DT_IMAGE. Untuk informasi selengkapnya, lihat Jenis Data Integration Services. Kolom yang berpartisipasi dalam gabungan antara input dan tabel referensi harus memiliki jenis data yang kompatibel. Misalnya, valid untuk menggabungkan kolom dengan DTS DT_WSTR jenis data ke kolom dengan jenis data nvarchar SQL Server, tetapi tidak valid untuk menggabungkan kolom dengan jenis data DT_WSTR ke kolom dengan jenis data int.

Anda dapat menyesuaikan transformasi ini dengan menentukan jumlah maksimum memori, algoritma perbandingan baris, dan penembolokan indeks dan tabel referensi yang digunakan transformasi.

Jumlah memori yang digunakan transformasi Pencarian Fuzzy dapat dikonfigurasi dengan mengatur properti kustom MaxMemoryUsage. Anda dapat menentukan jumlah megabyte (MB), atau menggunakan nilai 0, yang memungkinkan transformasi menggunakan jumlah memori dinamis berdasarkan kebutuhannya dan memori fisik yang tersedia. Properti kustom MaxMemoryUsage dapat diperbarui oleh ekspresi properti saat paket dimuat. Untuk informasi selengkapnya, lihat Ekspresi Integration Services (SSIS),Gunakan Ekspresi Properti dalam Paket, dan Properti Kustom Transformasi.

Mengontrol Perilaku Pencocokan Fuzzy

Transformasi Pencarian Fuzzy mencakup tiga fitur untuk menyesuaikan pencarian yang dilakukannya: jumlah maksimum kecocokan untuk dikembalikan per baris input, pemisah token, dan ambang kesamaan.

Transformasi mengembalikan nol atau lebih yang cocok hingga jumlah kecocokan yang ditentukan. Menentukan jumlah maksimum kecocokan tidak menjamin bahwa transformasi mengembalikan jumlah maksimum kecocokan; ini hanya menjamin bahwa transformasi mengembalikan paling banyak jumlah kecocokan tersebut. Jika Anda mengatur jumlah maksimum kecocokan ke nilai yang lebih besar dari 1, output transformasi dapat mencakup lebih dari satu baris per pencarian dan beberapa baris mungkin duplikat.

Transformasi ini menyediakan sekumpulan pemisah default yang digunakan untuk membuat token data, tetapi Anda dapat menambahkan pemisah token agar sesuai dengan kebutuhan data Anda. Properti Pemisah berisi pemisah default. Tokenisasi penting karena mendefinisikan unit dalam data yang dibandingkan satu sama lain.

Ambang kesamaan dapat diatur pada tingkat komponen dan gabungan. Ambang kesamaan tingkat gabungan hanya tersedia saat transformasi melakukan kecocokan fuzzy antara kolom dalam input dan tabel referensi. Rentang kesamaannya adalah 0 hingga 1. Semakin dekat ke 1 ambang batas, semakin mirip baris dan kolom harus memenuhi syarat sebagai duplikat. Anda menentukan ambang kesamaan dengan mengatur properti MinSimilarity di tingkat komponen dan gabungan. Untuk memenuhi kesamaan yang ditentukan pada tingkat komponen, semua baris harus memiliki kesamaan di semua kecocokan yang lebih besar dari atau sama dengan ambang kesamaan yang ditentukan pada tingkat komponen. Artinya, Anda tidak dapat menentukan kecocokan yang sangat dekat pada tingkat komponen kecuali kecocokan pada tingkat baris atau gabungan sama-sama dekat.

Setiap pertandingan mencakup skor kesamaan dan skor keyakinan. Skor kesamaan adalah ukuran matematika dari kesamaan teksural antara rekaman input dan rekaman yang dikembalikan transformasi Pencarian Fuzzy dari tabel referensi. Skor keyakinan adalah ukuran seberapa besar kemungkinan nilai tertentu adalah kecocokan terbaik di antara kecocokan yang ditemukan dalam tabel referensi. Skor keyakinan yang ditetapkan ke rekaman tergantung pada rekaman lain yang cocok yang dikembalikan. Misalnya, Pencocokan St. dan Saint mengembalikan skor kesamaan rendah terlepas dari kecocokan lainnya. Jika Saint adalah satu-satunya pertandingan yang dikembalikan, skor kepercayaan diri tinggi. Jika Saint dan St. muncul dalam tabel referensi, keyakinan di St. tinggi dan keyakinan terhadap Saint rendah. Namun, kesamaan tinggi mungkin tidak berarti kepercayaan diri yang tinggi. Misalnya, jika Anda mencari nilai Bab 4, hasil yang dikembalikan Bab 1, Bab 2, dan Bab 3 memiliki skor kesamaan tinggi tetapi skor keyakinan rendah karena tidak jelas mana dari hasil yang merupakan kecocokan terbaik.

Skor kesamaan diwakili oleh nilai desimal antara 0 dan 1, di mana skor kesamaan 1 berarti kecocokan yang tepat antara nilai di kolom input dan nilai dalam tabel referensi. Skor keyakinan, juga nilai desimal antara 0 dan 1, menunjukkan keyakinan dalam pertandingan. Jika tidak ada kecocokan yang dapat digunakan yang ditemukan, kesamaan dan skor keyakinan 0 ditetapkan ke baris, dan kolom output yang disalin dari tabel referensi akan berisi nilai null.

Terkadang, Pencarian Fuzzy mungkin tidak menemukan kecocokan yang sesuai dalam tabel referensi. Ini dapat terjadi jika nilai input yang digunakan dalam pencarian adalah satu kata pendek. Misalnya, helo tidak cocok dengan nilai hello dalam tabel referensi ketika tidak ada token lain yang ada di kolom tersebut atau kolom lain dalam baris.

Kolom output transformasi mencakup kolom input yang ditandai sebagai kolom pass-through, kolom yang dipilih dalam tabel pencarian, dan kolom tambahan berikut:

  • _Similarity, kolom yang menjelaskan kesamaan antara nilai dalam kolom input dan referensi.

  • _Confidence, kolom yang menjelaskan kualitas kecocokan.

Transformasi menggunakan koneksi ke database SQL Server untuk membuat tabel sementara yang digunakan algoritma pencocokan fuzzy.

Menjalankan Transformasi Pencarian Fuzzy

Saat paket pertama kali menjalankan transformasi, transformasi menyalin tabel referensi, menambahkan kunci dengan jenis data bilangan bulat ke tabel baru, dan membangun indeks pada kolom kunci. Selanjutnya, transformasi membangun indeks, yang disebut indeks kecocokan, pada salinan tabel referensi. Indeks kecocokan menyimpan hasil tokenisasi nilai dalam kolom input transformasi, dan transformasi kemudian menggunakan token dalam operasi pencarian. Indeks kecocokan adalah tabel dalam database SQL Server.

Ketika paket berjalan lagi, transformasi dapat menggunakan indeks kecocokan yang ada atau membuat indeks baru. Jika tabel referensi statis, paket dapat menghindari proses yang berpotensi mahal untuk membangun kembali indeks untuk sesi pembersihan data berulang. Jika Anda memilih untuk menggunakan indeks yang ada, indeks dibuat saat pertama kali paket berjalan. Jika beberapa transformasi Pencarian Fuzzy menggunakan tabel referensi yang sama, mereka semua dapat menggunakan indeks yang sama. Untuk menggunakan kembali indeks, operasi pencarian harus identik; pencarian harus menggunakan kolom yang sama. Anda bisa memberi nama indeks dan memilih koneksi ke database SQL Server yang menyimpan indeks.

Jika transformasi menyimpan indeks kecocokan, indeks kecocokan dapat dipertahankan secara otomatis. Ini berarti bahwa setiap kali rekaman dalam tabel referensi diperbarui, indeks kecocokan juga diperbarui. Mempertahankan indeks kecocokan dapat menghemat waktu pemrosesan, karena indeks tidak harus dibangun kembali saat paket berjalan. Anda dapat menentukan bagaimana transformasi mengelola indeks kecocokan.

Tabel berikut ini menjelaskan opsi indeks kecocokan.

Opsi Deskripsi
GenerateAndMaintainNewIndex Buat indeks baru, simpan, dan pertahankan. Transformasi menginstal pemicu pada tabel referensi untuk menjaga tabel referensi dan tabel indeks tetap sinkron.
GenerateAndPersistNewIndex Buat indeks baru dan simpan, tetapi jangan pertahankan.
HasilkanNewIndex Buat indeks baru, tetapi jangan simpan.
ReuseExistingIndex Gunakan kembali indeks yang sudah ada.

Pemeliharaan Tabel Indeks Kecocokan

Opsi GenerateAndMaintainNewIndex menginstal pemicu pada tabel referensi untuk menjaga tabel indeks kecocokan dan tabel referensi disinkronkan. Jika Anda harus menghapus pemicu yang diinstal, Anda harus menjalankan prosedur tersimpan sp_FuzzyLookupTableMaintenanceUnInstall , dan memberikan nama yang ditentukan dalam properti MatchIndexName sebagai nilai parameter input.

Anda tidak boleh menghapus tabel indeks kecocokan yang dipertahankan sebelum menjalankan prosedur tersimpan sp_FuzzyLookupTableMaintenanceUnInstall . Jika tabel indeks kecocokan dihapus, pemicu pada tabel referensi tidak akan dijalankan dengan benar. Semua pembaruan berikutnya untuk tabel referensi akan gagal sampai Anda menghilangkan pemicu secara manual pada tabel referensi.

Perintah SQL TRUNCATE TABLE tidak memanggil pemicu DELETE. Jika perintah TRUNCATE TABLE digunakan pada tabel referensi, tabel referensi dan indeks kecocokan tidak akan lagi disinkronkan dan transformasi Pencarian Fuzzy gagal. Meskipun pemicu yang mempertahankan tabel indeks kecocokan diinstal pada tabel referensi, Anda harus menggunakan perintah SQL DELETE alih-alih perintah TRUNCATE TABLE.

Catatan

Saat Anda memilih Pertahankan indeks tersimpan pada tab Tabel Referensi dari Editor Transformasi Pencarian Fuzzy, transformasi menggunakan prosedur tersimpan terkelola untuk mempertahankan indeks. Prosedur tersimpan terkelola ini menggunakan fitur integrasi runtime bahasa umum (CLR) di SQL Server. Secara default, integrasi CLR di SQL Server tidak diaktifkan. Untuk menggunakan fungsionalitas Pertahankan indeks tersimpan , Anda harus mengaktifkan integrasi CLR. Untuk informasi selengkapnya, lihat Mengaktifkan Integrasi CLR.

Karena opsi Pertahankan indeks tersimpan memerlukan integrasi CLR, fitur ini hanya berfungsi saat Anda memilih tabel referensi pada instans SQL Server tempat integrasi CLR diaktifkan.

Perbandingan Baris

Saat mengonfigurasi transformasi Pencarian Fuzzy, Anda dapat menentukan algoritma perbandingan yang digunakan transformasi untuk menemukan rekaman yang cocok dalam tabel referensi. Jika Anda mengatur properti Lengkap ke True, transformasi membandingkan setiap baris dalam input ke setiap baris dalam tabel referensi. Algoritma perbandingan ini dapat menghasilkan hasil yang lebih akurat, tetapi kemungkinan akan membuat transformasi berkinerja lebih lambat kecuali jumlah baris adalah tabel referensi kecil. Jika properti Lengkap diatur ke True, seluruh tabel referensi dimuat ke dalam memori. Untuk menghindari masalah performa, disarankan untuk mengatur properti Lengkap ke True hanya selama pengembangan paket.

Jika properti Lengkap diatur ke False, transformasi Pencarian Fuzzy hanya mengembalikan kecocokan yang memiliki setidaknya satu token atau substring terindeks (substring disebut q-gram) yang sama dengan rekaman input. Untuk memaksimalkan efisiensi pencarian, hanya subset token di setiap baris dalam tabel yang diindeks dalam struktur indeks terbalik yang digunakan transformasi Pencarian Fuzzy untuk menemukan kecocokan. Saat himpunan data input kecil, Anda dapat mengatur Lengkap ke True untuk menghindari kecocokan yang tidak ada token umum dalam tabel indeks.

Penembolokan Indeks dan Tabel Referensi

Saat mengonfigurasi transformasi Pencarian Fuzzy, Anda dapat menentukan apakah transformasi secara parsial menyimpan sebagian indeks dan tabel referensi dalam memori sebelum transformasi melakukan pekerjaannya. Jika Anda mengatur properti WarmCaches ke True, indeks dan tabel referensi dimuat ke dalam memori. Ketika input memiliki banyak baris, mengatur properti WarmCaches ke True dapat meningkatkan performa transformasi. Ketika jumlah baris input kecil, mengatur properti WarmCaches ke False dapat membuat penggunaan kembali indeks besar lebih cepat.

Tabel dan Indeks Sementara

Pada durasi, transformasi Pencarian Fuzzy membuat objek sementara, seperti tabel dan indeks, dalam database SQL Server tempat transformasi tersambung. Ukuran tabel dan indeks sementara ini sebanding dengan jumlah baris dan token dalam tabel referensi dan jumlah token yang dibuat transformasi Pencarian Fuzzy; oleh karena itu, mereka berpotensi mengonsumsi sejumlah besar ruang disk. Transformasi ini juga mengkueri tabel sementara ini. Oleh karena itu, Anda harus mempertimbangkan untuk menghubungkan transformasi Pencarian Fuzzy ke instans non-produksi database SQL Server, terutama jika server produksi memiliki ruang disk terbatas yang tersedia.

Performa transformasi ini dapat meningkat jika tabel dan indeks yang digunakannya terletak di komputer lokal. Jika tabel referensi yang digunakan transformasi Pencarian Fuzzy ada di server produksi, Anda harus mempertimbangkan untuk menyalin tabel ke server non-produksi dan mengonfigurasi transformasi Pencarian Fuzzy untuk mengakses salinan. Dengan melakukan ini, Anda dapat mencegah kueri pencarian mengonsumsi sumber daya di server produksi. Selain itu, jika transformasi Pencarian Fuzzy mempertahankan indeks kecocokan-yaitu, jika MatchIndexOptionsis diatur ke GenerateAndMaintainNewIndex-transformasi dapat mengunci tabel referensi selama durasi operasi pembersihan data dan mencegah pengguna dan aplikasi lain mengakses tabel.

Mengonfigurasi Transformasi Pencarian Fuzzy

Anda dapat mengatur properti melalui SSIS Designer atau secara terprogram.

Untuk informasi selengkapnya tentang properti yang bisa Anda atur dalam kotak dialog Editor Lanjutan atau secara terprogram, klik salah satu topik berikut ini:

Untuk detail tentang cara mengatur properti komponen aliran data, lihat Mengatur Properti Komponen Aliran Data.

Editor Transformasi Pencarian Fuzzy (Tab Tabel Referensi)

Gunakan tab Tabel Referensi dari kotak dialog Editor Transformasi Pencarian Fuzzy untuk menentukan tabel sumber dan indeks yang akan digunakan untuk pencarian. Sumber data referensi harus berupa tabel dalam database SQL Server.

Catatan

Transformasi Pencarian Fuzzy membuat salinan tabel referensi yang berfungsi. Indeks yang dijelaskan di bawah ini dibuat pada tabel kerja ini dengan menggunakan tabel khusus, bukan indeks SQL Server biasa. Transformasi tidak mengubah tabel sumber yang ada kecuali Anda memilih Pertahankan indeks tersimpan. Dalam hal ini, ini membuat pemicu pada tabel referensi yang memperbarui tabel kerja dan tabel indeks pencarian berdasarkan perubahan pada tabel referensi.

Catatan

Properti Exhaustive dan MaxMemoryUsage dari transformasi Pencarian Fuzzy tidak tersedia di Editor Transformasi Pencarian Fuzzy, tetapi dapat diatur dengan menggunakan Editor Lanjutan. Selain itu, nilai yang lebih besar dari 100 untuk MaxOutputMatchesPerInput hanya dapat ditentukan dalam Editor Lanjutan. Untuk informasi selengkapnya tentang properti ini, lihat bagian Transformasi Pencarian Fuzzy dari Properti Kustom Transformasi.

Opsi

Manajer koneksi OLE DB
Pilih pengelola koneksi OLE DB yang sudah ada dari daftar, atau buat koneksi baru dengan mengklik Baru.

Baru
Buat koneksi baru dengan menggunakan kotak dialog Konfigurasikan Pengelola Sambungan OLE DB.

Hasilkan indeks baru
Tentukan bahwa transformasi harus membuat indeks baru yang akan digunakan untuk pencarian.

Nama tabel referensi
Pilih tabel yang sudah ada untuk digunakan sebagai tabel referensi (pencarian).

Simpan indeks baru
Pilih opsi ini jika Anda ingin menyimpan indeks pencarian baru.

Nama indeks baru
Jika Anda telah memilih untuk menyimpan indeks pencarian baru, ketik nama deskriptif untuk indeks.

Pertahankan indeks tersimpan
Jika Anda telah memilih untuk menyimpan indeks pencarian baru, tentukan apakah Anda juga ingin SQL Server mempertahankan indeks.

Catatan

Saat Anda memilih Pertahankan indeks tersimpan pada tab Tabel Referensi dari Editor Transformasi Pencarian Fuzzy, transformasi menggunakan prosedur tersimpan terkelola untuk mempertahankan indeks. Prosedur tersimpan terkelola ini menggunakan fitur integrasi runtime bahasa umum (CLR) di SQL Server. Secara default, integrasi CLR di SQL Server tidak diaktifkan. Untuk menggunakan fungsionalitas Pertahankan indeks tersimpan , Anda harus mengaktifkan integrasi CLR. Untuk informasi selengkapnya, lihat Mengaktifkan Integrasi CLR.

Karena opsi Pertahankan indeks tersimpan memerlukan integrasi CLR, fitur ini hanya berfungsi saat Anda memilih tabel referensi pada instans SQL Server tempat integrasi CLR diaktifkan.

Gunakan indeks yang sudah ada
Tentukan bahwa transformasi harus menggunakan indeks yang ada untuk pencarian.

Nama indeks yang sudah ada
Pilih indeks pencarian yang dibuat sebelumnya dari daftar.

Editor Transformasi Pencarian Fuzzy (Tab Kolom)

Gunakan tab Kolom dari kotak dialog Editor Transformasi Pencarian Fuzzy untuk mengatur properti untuk kolom input dan output.

Opsi

Kolom Input yang Tersedia
Seret kolom input untuk menyambungkannya ke kolom pencarian yang tersedia. Kolom ini harus memiliki jenis data yang cocok dan didukung. Pilih garis pemetaan dan klik kanan untuk mengedit pemetaan dalam kotak dialog Buat Hubungan .

Nama
Lihat nama kolom input yang tersedia.

Melewati
Tentukan apakah akan menyertakan kolom input dalam output transformasi.

Kolom Pencarian yang Tersedia
Gunakan kotak centang untuk memilih kolom untuk melakukan operasi pencarian fuzzy.

Kolom Pencarian
Pilih kolom pencarian dari daftar kolom tabel referensi yang tersedia. Pilihan Anda tercermin dalam pilihan kotak centang dalam tabel Kolom Pencarian yang Tersedia . Memilih kolom dalam tabel Kolom Pencarian yang Tersedia membuat kolom output yang berisi nilai kolom tabel referensi untuk setiap baris yang cocok yang dikembalikan.

Output Alias
Ketik alias untuk output untuk setiap kolom pencarian. Defaultnya adalah nama kolom pencarian dengan nilai indeks numerik ditambahkan; namun, Anda dapat memilih nama yang unik dan deskriptif.

Editor Transformasi Pencarian Fuzzy (Tab Tingkat Lanjut)

Gunakan tab Tingkat Lanjut dari kotak dialog Editor Transformasi Pencarian Fuzzy untuk mengatur parameter untuk pencarian fuzzy.

Opsi

Jumlah maksimum kecocokan untuk output per pencarian
Tentukan jumlah maksimum kecocokan yang dapat dikembalikan transformasi untuk setiap baris input. Defaultnya adalah 1.

Ambang kesamaan
Atur ambang kesamaan pada tingkat komponen dengan menggunakan penggeser. Semakin dekat nilainya dengan 1, semakin dekat kesesuaian nilai pencarian dengan nilai sumber harus memenuhi syarat sebagai kecocokan. Meningkatkan ambang dapat meningkatkan kecepatan pencocokan karena lebih sedikit catatan kandidat yang perlu dipertimbangkan.

Pemisah token
Tentukan pemisah yang digunakan transformasi untuk membuat token nilai kolom.

Lihat juga

Transformasi Pencarian
Transformasi Pengelompokan Fuzzy
Transformasi Layanan Integrasi