
Author(s): Luhui Hu
Awalnya diterbitkan di Towards AI the World’s Leading AI and Technology News and Media Company. Jika Anda membuat produk atau layanan terkait AI, kami mengundang Anda untuk mempertimbangkan menjadi sponsor AI. Di Towards AI, kami membantu menskalakan AI dan startup teknologi. Biarkan kami membantu Anda melepaskan teknologi Anda kepada massa.
Pertahankan anti-entropi data dengan AI dan data Lakehouse dan perkenalkan untuk otomatisasi di Julia dan SQL
Foto oleh Zoltan Tasi di Unsplash
Perkenalkan Anti-Entropi Data
Entropi adalah konsep ilmiah yang terkait dengan keadaan tidak teratur, acak, atau tidak pasti. Ini banyak digunakan di berbagai bidang, dari termodinamika klasik hingga fisika statistik dan teori informasi.
Saat ini adalah era sistem terdistribusi. Anti-entropi data mengacu pada proses menjaga konsistensi dan akurasi data dalam sistem terdistribusi. Ini sangat penting dalam sistem terdistribusi di mana banyak salinan dari data yang sama disimpan di node yang berbeda, dan risiko ketidakkonsistenan yang timbul di antara replika ini tinggi.
Salah satu kasus penggunaan umum untuk anti-entropi data adalah dalam database terdistribusi, di mana banyak salinan database disimpan di node yang berbeda, dan data terus ditambahkan, diperbarui, dan dihapus. Dalam sistem seperti itu, algoritme anti-entropi data dapat memastikan bahwa semua salinan basis data tetap konsisten.
Selain basis data terdistribusi, teknik anti-entropi data juga umum digunakan dalam sistem terdistribusi lainnya, seperti sistem file terdistribusi, sistem cache, dan sistem pesan. Dalam semua kasus ini, tujuannya adalah untuk memastikan bahwa semua node dalam sistem memiliki akses ke data yang akurat dan konsisten, dan setiap pembaruan yang dibuat untuk data tersebut disebarkan dengan cepat dan andal ke semua node dalam sistem.
Solusi praktis untuk mencapai anti-entropi data dalam sistem terdistribusi termasuk menggunakan algoritme seperti protokol gosip, vektor versi, jam vektor, sumber peristiwa, dan Saga. Algoritme ini memungkinkan node dalam sistem untuk berkomunikasi satu sama lain dan bertukar informasi tentang data yang dikandungnya, memungkinkan mereka untuk mengidentifikasi dan menyelesaikan ketidakkonsistenan yang mungkin timbul.
Ada beberapa solusi praktis untuk menangani data anti-entropi. Ini dapat termasuk tetapi tidak terbatas pada:
Pembersihan data: Ini melibatkan identifikasi dan koreksi kesalahan atau ketidakkonsistenan dalam data. Ini dapat dilakukan secara manual, oleh seseorang yang meninjau data, atau secara otomatis menggunakan algoritme atau alat perangkat lunak. Rekonsiliasi data: Ini melibatkan membandingkan data dari sumber atau sistem yang berbeda dan mengidentifikasi dan menyelesaikan ketidakkonsistenan atau perbedaan. Validasi data: Ini melibatkan pemeriksaan data terhadap seperangkat aturan atau standar untuk memastikannya lengkap, akurat, dan konsisten. Ini dapat dilakukan secara manual atau otomatis.
Secara keseluruhan, anti-entropi data sangat penting untuk memastikan kualitas dan integritas data dan sangat penting untuk banyak aplikasi, seperti pergudangan data, streaming terdistribusi, intelijen bisnis, analitik, dan pelatihan terdistribusi ML.
Anti-Entropi Data vs. Kualitas Data
Proses anti-entropi data dan kualitas data terkait erat, tetapi keduanya bukanlah hal yang sama. Anti-entropi data berfokus pada pengurangan atau penghapusan ketidakkonsistenan dan penyimpangan dalam data, sedangkan proses kualitas data lebih luas dan dapat mencakup berbagai aktivitas, seperti pembersihan data, pengayaan data, dan tata kelola data.
Anti-entropi data adalah bagian dari proses kualitas data dan sering digunakan bersamaan dengan aktivitas kualitas data lainnya untuk memastikan kualitas dan integritas data secara keseluruhan. Misalnya, proses anti-entropi data dapat mengidentifikasi dan memperbaiki kesalahan dalam data, dan kemudian proses kualitas data dapat memperkaya dan meningkatkan data serta memastikannya konsisten dan mutakhir.
Singkatnya, anti-entropi data difokuskan pada identifikasi dan koreksi ketidakkonsistenan dalam data, sementara proses kualitas data berkonsentrasi untuk memastikan kualitas dan integritas data secara keseluruhan. Bersama-sama, proses ini dapat membantu memastikan bahwa data akurat, lengkap, dan konsisten serta dapat digunakan secara efektif untuk berbagai aplikasi.
Bagaimana AI dan data besar dapat meningkatkan anti-entropi data?
Kecerdasan buatan dan data besar dapat mempertahankan dan meningkatkan anti-entropi data dalam beberapa cara. Ini dapat termasuk tetapi tidak terbatas pada:
Mengotomatiskan pembersihan data: Algoritme AI/ML dapat secara otomatis mengidentifikasi dan memperbaiki kesalahan dan ketidakkonsistenan dalam data. Misalnya, algoritme pemrosesan bahasa alami (NLP) dapat mengidentifikasi dan mengoreksi kesalahan ejaan dan tata bahasa dalam data teks, dan algoritme deteksi anomali dapat mengidentifikasi dan mengoreksi outlier atau ketidakkonsistenan dalam data numerik. Meningkatkan rekonsiliasi data: AI dan teknologi big data dapat secara efisien dan efektif membandingkan data dari berbagai sumber atau sistem serta mengidentifikasi dan menyelesaikan ketidakkonsistenan atau perbedaan. Misalnya, algoritme pencocokan data yang didukung AI (mis. Merkle tree) dapat dengan cepat dan akurat mencocokkan catatan dari berbagai sumber dan bahkan menangani data dengan informasi yang tidak lengkap atau salah. Meningkatkan validasi data: AI dan big data dapat meningkatkan akurasi dan efisiensi proses validasi data. Misalnya, algoritme ML (mis., algoritme garis keturunan berbasis grafik) dapat dilatih untuk memeriksa data terhadap seperangkat aturan atau standar secara otomatis. Mereka dapat memberikan umpan balik waktu nyata tentang kualitas dan kelengkapan data.
Di bawah ini adalah contoh Julia untuk membersihkan data dalam streaming data dengan PyTorch:
menggunakan PyCall
menggunakan Obor
# Pertama, mari tentukan fungsi untuk membersihkan data dalam aliran data
fungsi clean_data(data::Vektor{Float32})
# Ganti nilai yang hilang dengan rata-rata dari nilai yang tidak hilang
mean_val = rata-rata(data[.!isnan.(data)])
data[isnan.(data)] .= mean_val
# Normalisasikan data dengan mengurangkan rata-rata dan membaginya dengan standar deviasi
mean_val = mean(data)
std_val = std(data)
data .= (data .- mean_val) ./ std_val
mengembalikan data
akhir
# Sekarang mari buat PyTorch DataLoader untuk mengalirkan data
data_loader = pyimport(“torch.utils.data”).DataLoader(
# Beberapa dataset dummy
pyimport(“torchvision.datasets”).MNIST(“.”, kereta=benar, unduh=benar),
ukuran_batch=32,
acak = benar
)
# Sekarang gunakan DataLoader untuk mengulang data di aliran
untuk data, beri label di data_loader
# Bersihkan datanya
data = clean_data(data)
# Gunakan data yang dibersihkan untuk beberapa tugas, seperti melatih model
# …
akhir
Secara umum, AI dan big data dapat mempertahankan dan meningkatkan anti-entropi data dengan mengotomatiskan dan meningkatkan banyak proses penting, seperti pembersihan data, rekonsiliasi, dan validasi. Ini dapat membantu memastikan kualitas dan integritas data secara keseluruhan dan memungkinkan organisasi membuat keputusan berdasarkan data yang lebih tepat.
Bagaimana data Lakehouse meningkatkan anti-entropi data?
Data Lakehouse adalah platform manajemen data baru yang menggabungkan fitur data lake dan gudang data. Ini dapat memungkinkan organisasi untuk menyimpan, mengelola, dan menganalisis data terstruktur dan tidak terstruktur dengan cara yang dapat diskalakan dan hemat biaya.
Data Lakehouse dapat membantu meningkatkan anti-entropi data dalam beberapa cara. Pertama, dengan menyediakan tempat penyimpanan pusat untuk menyimpan data dari berbagai sumber, data lakehouse dapat memudahkan untuk mengidentifikasi dan memperbaiki ketidakkonsistenan dan penyimpangan dalam data. Misalnya, dengan menyimpan data dari sumber yang berbeda di satu lokasi, akan lebih mudah untuk membandingkan dan merekonsiliasi data serta mengidentifikasi ketidaksesuaian atau kesalahan yang perlu diperbaiki.
Kedua, data Lakehouse dapat menyediakan alat dan fitur bawaan untuk pembersihan, rekonsiliasi, dan validasi data, yang dapat mengotomatiskan dan meningkatkan banyak proses yang terlibat dalam anti-entropi data. Misalnya, data lakehouse dapat menyediakan alat untuk mengidentifikasi dan mengoreksi kesalahan dalam data, membandingkan data dari sumber yang berbeda, dan memeriksa data terhadap seperangkat aturan atau standar.
Terakhir, data lakehouse dapat menyediakan platform yang dapat diskalakan dan fleksibel untuk analitik data dan intelijen bisnis, memungkinkan organisasi untuk membuat keputusan berdasarkan data yang lebih terinformasi. Dengan memberikan tampilan data yang komprehensif dari berbagai sumber, data lakehouse dapat membantu organisasi mendapatkan wawasan yang lebih mendalam tentang data mereka dan mengidentifikasi tren dan pola yang mungkin tidak terlihat dalam kumpulan data individual.
Misalnya, kami dapat mengidentifikasi ketidakkonsistenan data atau masalah kualitas data lainnya menggunakan SQL pada data lakehouse terpusat sebagai berikut:
— Temukan baris dengan kolom ‘usia’ negatif
SELECT * FROM users WHERE age < 0;
— Temukan baris yang kolom ’email’-nya nol
SELECT * FROM users WHERE email IS NULL;
— Temukan baris di mana kolom ’email’ bukan format email yang valid
SELECT * FROM users WHERE email NOT LIKE ‘%@%.%’;
— Temukan baris di mana kolom ‘kode pos’ bukan angka 5 digit
SELECT * FROM users WHERE zipcode NOT REGEXP ‘^[0-9]{5}$’;
— Temukan baris di mana kolom ‘telepon’ bukan angka 10 digit
SELECT * FROM users WHERE phone NOT REGEXP ‘^[0-9]{10}$’;
Secara keseluruhan, data lakehouse dapat memelihara dan meningkatkan anti-entropi data dengan menyediakan platform terpusat untuk menyimpan, mengelola, dan menganalisis data dari berbagai sumber dan menyediakan alat dan fitur untuk pembersihan, rekonsiliasi, dan validasi data. Ini dapat membantu organisasi memastikan kualitas dan integritas data secara keseluruhan dan membuat keputusan berbasis data yang lebih cerdas.
Mengotomatiskan Data Anti-entropi
Ada beberapa cara untuk mengotomatiskan proses kode SQL dan Julia yang diilustrasikan di atas:
Eksekusi terjadwal: Kita dapat menggunakan alat penjadwalan, seperti cron di Linux atau Penjadwal Tugas di Windows, untuk mengeksekusi kode SQL atau Julia secara otomatis secara berkala. Misalnya, kami dapat menyiapkan kode setiap jam pada waktu tertentu untuk memeriksa ketidakkonsistenan data atau masalah kualitas secara rutin. Eksekusi berbasis pemicu: Kami dapat menyiapkan pemicu di prosesor streaming atau data lakehouse untuk mengeksekusi kode SQL atau Julia secara otomatis saat peristiwa tertentu terjadi. Misalnya, kita dapat membuat pemicu yang menjalankan kode setiap kali catatan baru dimasukkan ke dalam tabel atau setiap kali pembaruan dilakukan pada kolom tertentu. Integrasi dengan alat lain: Kita dapat menggunakan alat seperti Apache Airflow, AWS Lambda, atau Azure Functions untuk mengotomatiskan eksekusi kode SQL atau Julia. Alat ini memungkinkan kita menentukan alur kerja atau “fungsi” yang dipicu oleh peristiwa atau dijadwalkan untuk berjalan pada waktu tertentu. Mereka dapat menangani tugas seperti mengeksekusi kode SQL atau Julia, mengirimkan notifikasi, atau memulai tindakan lainnya.
Penting untuk diperhatikan bahwa mengotomatiskan proses pembersihan data atau pemeriksaan kualitas dapat menjadi rumit, dan kami mungkin perlu mempertimbangkan faktor-faktor seperti ketergantungan antara tugas, penanganan kesalahan, dan coba lagi logika. Sebaiknya rencanakan dan uji strategi otomasi dengan hati-hati sebelum menerapkannya di lingkungan produksi.
Otomasi Anti-Entropi Data awalnya diterbitkan di Towards AI on Medium, di mana orang melanjutkan percakapan dengan menyoroti dan menanggapi cerita ini.
Diterbitkan melalui Menuju AI