Rekam pencocokan dengan AWS Lake Formation FindMatches - AWS Glue

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Rekam pencocokan dengan AWS Lake Formation FindMatches

catatan

Pencocokan rekaman saat ini tidak tersedia di Wilayah berikut di AWS Glue konsol: Timur Tengah (UEA), Eropa (Spanyol) (eu-south-2), dan Eropa (Zurich) (). eu-central-2

AWS Lake Formation menyediakan kemampuan machine learning untuk membuat transformasi kustom untuk membersihkan data Anda. Saat ini ada satu transformasi yang tersedia bernama FindMatches. FindMatchesTransformasi memungkinkan Anda mengidentifikasi duplikat atau pencocokan catatan dalam kumpulan data Anda, bahkan ketika catatan tidak memiliki pengidentifikasi unik umum dan tidak ada bidang yang sama persis. Ini tidak memerlukan penulisan kode apa pun atau mengetahui cara kerja pembelajaran mesin. FindMatches dapat berguna dalam berbagai masalah, seperti:

  • Mencocokkan pelanggan: Menautkan catatan pelanggan di berbagai basis data pelanggan, bahkan ketika banyak bidang pelanggan tidak cocok persis di seluruh basis data (misalnya ejaan nama yang berbeda, perbedaan alamat, data yang hilang atau tidak akurat, dll).

  • Pencocokan produk: Mencocokkan produk dalam katalog Anda dengan sumber produk lain, seperti katalog produk dengan katalog pesaing, di mana entri disusun secara berbeda.

  • Meningkatkan deteksi penipuan: Mengidentifikasi akun pelanggan duplikat, menentukan kapan akun yang baru dibuat (atau mungkin) cocok untuk pengguna penipuan yang diketahui sebelumnya.

  • Masalah pencocokan lainnya: Alamat pencocokan, film, daftar bagian, dll. Secara umum, jika seorang manusia dapat melihat baris database Anda dan menentukan bahwa mereka cocok, ada kemungkinan besar bahwa FindMatches transformasi dapat membantu Anda.

Anda dapat membuat transformasi ini saat membuat sebuah tugas. Transformasi yang Anda buat didasarkan pada skema penyimpanan data sumber dan contoh data dari kumpulan data sumber yang Anda beri label (kami menyebut proses ini “mengajar” transformasi). Catatan yang Anda beri label harus ada dalam kumpulan data sumber. Dalam proses ini kami membuat file yang Anda beri label dan kemudian mengunggah kembali yang akan dipelajari transformasi dengan cara tertentu. Setelah Anda mengajarkan transformasi Anda, Anda dapat memanggilnya dari AWS Glue pekerjaan berbasis Spark Anda (PySpark atau Scala Spark) dan menggunakannya dalam skrip lain dengan penyimpanan data sumber yang kompatibel.

Setelah transformasi dibuat, ia disimpan dalam AWS Glue. Pada konsol AWS Glue, Anda dapat mengelola transformasi yang Anda buat. Di panel navigasi di bawah Integrasi Data dan ETL, Alat klasifikasi data > Pencocokan Rekam, Anda dapat mengedit dan terus mengajarkan transformasi pembelajaran mesin Anda. Untuk informasi selengkapnya tentang mengelola transformasi pada konsol tersebut, lihat Bekerja dengan transformasi pembelajaran mesin.

catatan

AWS Glue FindMatches pekerjaan versi 2.0 menggunakan bucket Amazon S3 aws-glue-temp-<accountID>-<region> untuk menyimpan file sementara saat transformasi memproses data. Anda dapat menghapus data ini setelah proses selesai, baik secara manual atau dengan menyetel aturan Siklus Hidup Amazon S3.

Jenis transformasi pembelajaran mesin

Anda dapat membuat transformasi machine learning untuk membersihkan data Anda. Anda dapat memanggil transformasi ini dari skrip ETL Anda. Data Anda berpindah dari transformasi ke transformasi dalam struktur data yang disebut a DynamicFrame, yang merupakan ekstensi ke Apache Spark SQL. DataFrame DynamicFrame tersebut berisi data Anda, dan Anda me-referensi skemanya untuk memproses data Anda.

Jenis transformasi machine learning berikut sudah tersedia:

Menemukan kecocokan

Menemukan duplikat catatan dalam data sumber. Anda mengajarkan transformasi machine learning ini dengan melabelkan set data contoh untuk menunjukkan baris yang cocok. Transformasi machine learning tersebut akan mempelajari baris mana yang seharusnya cocok dengan semakin banyak Anda mengajarinya dengan data contoh berlabel. Tergantung cara Anda mengkonfigurasi transformasi, outputnya adalah salah satu dari berikut ini:

  • Salinan tabel masukan dan kolom match_id yang telah diisi dengan nilai-nilai yang menunjukkan sekumpulan catatan yang cocok. Kolom match_id adalah pengenal sebarang. Setiap catatan yang memiliki match_id yang sama telah diidentifikasi sebagai kecocokan satu sama lain. Catatan dengan match_id berbeda tidak cocok.

  • Salinan tabel masukan dengan duplikat baris dihapus. Jika beberapa duplikat ditemukan, maka catatan dengan kunci primer terendah yang disimpan.

Temukan kecocokan tambahan

Transformasi Find Matches juga dapat dikonfigurasi untuk menemukan kecocokan di seluruh frame yang ada dan inkremental dan mengembalikan sebagai output kolom yang berisi ID unik per grup kecocokan.

Untuk informasi lebih lanjut, lihat: Menemukan kecocokan tambahan

Menggunakan FindMatches transformasi

Anda dapat menggunakan transformasi FindMatches untuk menemukan catatan duplikat dalam data sumber. Sebuah file pelabelan dihasilkan atau disediakan untuk membantu mengajarkan transformasi.

catatan

Saat ini, FindMatches transformasi yang menggunakan kunci enkripsi kustom tidak didukung di Wilayah berikut:

  • Asia Pasifik (Osaka) - ap-northeast-3

Untuk memulai FindMatches transformasi, Anda dapat mengikuti langkah-langkah di bawah ini. Untuk contoh yang lebih maju dan terperinci, lihat AWSBig Data Blog: Harmonize data using AWS Glue dan AWS Lake Formation FindMatches ML untuk membangun tampilan pelanggan 360.

Memulai menggunakan transformasi Find Matches

Ikuti langkah-langkah ini untuk memulai transformasi FindMatches:

  1. Buat tabel di AWS Glue Data Catalog untuk data sumber yang harus dibersihkan. Untuk informasi tentang cara membuat crawler, lihat Bekerja dengan Crawler di Konsol AWS Glue.

    Jika data sumber adalah file berbasis teks seperti file nilai yang dipisahkan oleh koma (CSV), pertimbangkan hal berikut:

    • Simpan file CSV catatan input Anda dan file pelabelan di folder terpisah. Jika tidak, crawler AWS Glue mungkin akan menganggap mereka sebagai beberapa bagian dari tabel yang sama dan membuat beberapa tabel di Katalog Data dengan tidak semestinya.

    • Kecuali file CSV Anda menyertakan karakter ASCII saja, pastikan bahwa encoding UTF-8 tanpa BOM (byte order mark) digunakan untuk file CSV. Microsoft Excel sering kali menambahkan BOM di awal file CSV UTF-8. Untuk menghapusnya, buka file CSV di editor teks, dan simpan ulang file sebagai UTF-8 tanpa BOM.

  2. Pada konsol AWS Glue, buat sebuah tugas, dan pilih transformasi Temukan kecocokan.

    penting

    Tabel sumber data yang Anda pilih untuk tugas tersebut tidak boleh memiliki lebih dari 100 kolom.

  3. Sampaikan pada AWS Glue untuk menghasilkan file pelabelan dengan memilih Buat file pelabelan. AWS Glue akan mengambil sediaan pertama di grup catatan serupa untuk setiap labeling_set_id sehingga Anda dapat meninjau pengelompokan tersebut. Anda memberikan label pada kecocokan yang ada di kolom label.

    • Jika Anda sudah memiliki file pelabelan, yaitu contoh catatan yang menunjukkan baris yang cocok, maka unggah file tersebut ke Amazon Simple Storage Service (Amazon S3). Untuk informasi tentang format file pelabelan, lihat Format file pelabelan. Lanjutkan ke langkah 4.

  4. Unduh file pelabelan dan beri label file tersebut seperti yang diterangkan dalam bagian Pelabelan.

  5. Unggah file yang telah diberi label dan telah dikoreksi. AWS Glue menjalankan tugas untuk mengajarkan transformasi bagaimana menemukan kecocokan.

    Halaman daftar Transformasi Machine Learning, pilih tab Riwayat. Halaman ini menunjukkan kapan AWS Glue melakukan tugas-tugas berikut:

    • Impor label

    • Label ekspor

    • Hasilkan label

    • Perkirakan kualitas

  6. Untuk membuat transformasi yang lebih baik, Anda dapat secara berulang mengunduh, label, dan mengunggah file yang telah diberi label. Dalam eksekusi awal, lebih banyak catatan mungkin tidak cocok. Tapi AWS Glue akan belajar saat Anda terus mengajarinya dengan memverifikasi file pelabelan.

  7. Evaluasi dan setel transformasi Anda dengan mengevaluasi performa dan hasil penemuan kecocokan. Untuk informasi selengkapnya, lihat Pembelajaran mesin tuning berubah di AWS Glue.

Pelabelan

Saat FindMatches menghasilkan file pelabelan, catatan dipilih dari tabel sumber Anda. Berdasarkan pelatihan sebelumnya, FindMatches mengidentifikasi catatan paling bernilai untuk dipelajari.

Tindakan pelabelan adalah mengedit file pelabelan (sebaiknya gunakan spreadsheet seperti Microsoft Excel) dan menambahkan pengidentifikasi, atau label, ke kolom label yang mengidentifikasi kecocokan dan ketidakcocokan catatan. Penting bagi Anda untuk memiliki definisi yang jelas dan konsisten atas kecocokan dalam data sumber Anda. FindMatches akan belajar dari catatan mana yang Anda tentukan sebagai kecocokan (atau tidak) dan menggunakan keputusan Anda untuk mempelajari cara menemukan catatan duplikat.

Ketika file pelabelan dibuat oleh FindMatches, sekitar 100 catatan yang dihasilkan. 100 catatan ini biasanya dibagi menjadi 10 set pelabelan, dimana setiap set pelabelan diidentifikasi berdasarkan labeling_set_id yang dihasilkan oleh FindMatches. Setiap set pelabelan harus dilihat sebagai tugas pelabelan terpisah independen dari set pelabelan lainnya. Tugas Anda adalah mengidentifikasi kecocokan dan ketidakcocokan catatan dalam setiap set pelabelan.

Kiat untuk mengedit file pelabelan dalam spreadsheet

Saat mengedit file pelabelan dalam sebuah aplikasi spreadsheet, pertimbangkan hal berikut:

  • File mungkin tidak terbuka dengan bidang kolom yang diperluas sepenuhnya. Anda mungkin harus memperluas kolom labeling_set_id dan label untuk melihat konten dalam sel-sel tersebut.

  • Jika kolom kunci primer adalah angka, seperti tipe data long, maka spreadsheet mungkin akan menafsirkannya sebagai angka dan mengubah nilai-nya. Nilai kunci ini harus diperlakukan sebagai teks. Untuk memperbaiki masalah ini, format semua sel di kolom kunci primer sebagai Data teks.

Format file pelabelan

File pelabelan yang dihasilkan oleh AWS Glue untuk mengajarkan transformasi FindMatches Anda menggunakan format berikut. Jika anda membuat file anda sendiri untuk AWS Glue, file tersebut harus mengikuti format ini juga:

  • File ini adalah file nilai yang dipisahkan koma (CSV).

  • File ini harus dikodekan dalam UTF-8. Jika Anda mengedit file menggunakan Microsoft Windows, file mungkin akan dikodekan dengan cp1252.

  • File ini harus berada di lokasi Amazon S3 untuk diberikan ke AWS Glue.

  • Gunakan baris dalam jumlah sedang untuk setiap tugas pelabelan. Disarankan 10–20 baris per tugas, meskipun 2–30 baris per tugas dapat diterima. Tugas yang lebih besar dari 50 baris tidak dianjurkan dan dapat menyebabkan hasil yang buruk atau kegagalan pada sistem.

  • Jika Anda memiliki data yang sudah diberi label yang terdiri dari pasangan catatan berlabel "cocok" atau "tidak cocok", itu tidak apa-apa. Pasangan yang sudah diberi label ini dapat direpresentasikan sebagai set pelabelan ukuran 2. Dalam kasus ini, beri label kedua catatan dengan, misalnya, huruf "A" jika mereka cocok, tetapi beri label catatan satu sebagai "A" dan lainnya sebagai "B" jika mereka tidak cocok.

    catatan

    Karena memiliki kolom tambahan, file pelabelan memiliki skema yang berbeda dari file yang berisi data sumber Anda. Tempatkan file pelabelan di folder yang berbeda dari file CSV input transformasi sehingga crawler AWS Glue tidak menganggapnya ketika membuat tabel dalam Katalog Data. Jika tidak, tabel yang dibuat oleh crawler AWS Glue mungkin tidak mewakili data Anda dengan benar.

  • Dua kolom pertama (labeling_set_id, label) diperlukan oleh AWS Glue. Kolom yang tersisa harus cocok dengan skema data yang akan diproses.

  • Untuk setiap labeling_set_id, Anda mengidentifikasi semua catatan yang cocok dengan menggunakan label yang sama. Sebuah label adalah string unik yang ditempatkan di kolom label. Sebaiknya gunakan label yang berisi karakter sederhana, seperti A, B, C, dan sebagainya. Label tersebut peka huruf besar kecil dan dimasukkan dalam kolom label.

  • Baris yang berisi labeling_set_id yang sama dan label yang sama dipahami untuk diberi label sebagai kecocokan.

  • Baris yang berisi labeling_set_id yang sama dan label yang berbeda dipahami untuk diberi label sebagai bukan kecocokan

  • Baris yang berisi labeling_set_id berbeda dipahami untuk tidak menyampaikan informasi yang mendukung atau bertentangan dengan kecocokan.

    Berikut ini adalah contoh pelabelan data:

    labeling_set_id label first_name last_name Birthday
    ABC123 A John Doe 04/01/1980
    ABC123 B Jane Smith 04/03/1980
    ABC123 A Johnny Doe 04/01/1980
    ABC123 A Jon Doe 04/01/1980
    DEF345 A Richard Jones 12/11/1992
    DEF345 A Rich Jones 11/12/1992
    DEF345 B Sarah Jones 12/11/1992
    DEF345 C Richie Jones Jr. 05/06/2017
    DEF345 B Sarah Jones-Walker 12/11/1992
    GHI678 A Robert Miller 1/3/1999
    GHI678 A Bob Miller 1/3/1999
    XYZABC A William Robinson 2/5/2001
    XYZABC B Andrew Robinson 2/5/1971
  • Dalam contoh di atas kita mengidentifikasi John/Johnny/Jon Doe sebagai sebuah kecocokan dan kami mengajarkan sistem bahwa catatan-catatan ini tidak cocok Jane Smith. Secara terpisah, kami mengajarkan sistem bahwa Richard dan Rich Jones adalah orang yang sama, tetapi catatan-catatan tersebut tidak cocok dengan Sarah Jones/Jones-Walker dan Richie Jones Jr.

  • Seperti yang Anda lihat, ruang lingkup label terbatas pada labeling_set_id. Jadi label tidak menyeberangi batas labeling_set_id. Sebagai contoh, label "A" dalam labeling_set_id 1 tidak memiliki hubungan dengan label "A" di labeling_set_id 2.

  • Jika sebuah catatan tidak memiliki kecocokan dalam satu set pelabelan, maka tetapkan label unik padanya. Sebagai contoh, Jane Smith tidak cocok dengan catatan apa pun dalam set pelabelan ABC123, sehingga ia menjadi satu-satunya catatan dalam set pelabelan dengan label B.

  • Set pelabelan "GHI678" menunjukkan bahwa satu set pelabelan hanya dapat terdiri dari dua catatan yang diberi label yang sama untuk menunjukkan bahwa set label tersebut cocok. Demikian pula, "XYZABC" menunjukkan dua catatan yang diberikan label yang berbeda untuk menunjukkan bahwa catatan-catatan tersebut tidak cocok.

  • Perhatikan bahwa kadang-kadang set pelabelan mungkin berisi ketidakcocokan (yaitu, Anda memberikan setiap catatan dalam set pelabelan dengan label yang berbeda) atau set pelabelan mungkin semua "sama" (Anda memberi mereka semua dengan label yang sama). Hal ini tidak apa-apa selama set pelabelan Anda secara kolektif berisi contoh catatan yang "sama" dan tidak "sama" dengan kriteria Anda.

penting

Mengonfirmasi bahwa IAM role yang Anda berikan ke AWS Glue memiliki akses ke bucket Amazon S3 yang berisi file pelabelan. Dengan konvensi, kebijakan AWS Glue memberikan izin ke bucket Amazon S3 atau folder yang namanya memiliki prefiks aws-glue-. Jika file pelabelan Anda berada di lokasi yang berbeda, tambahkan izin ke lokasi tersebut dalam IAM role.