Akar masalah adalah titik akhir dari semuanya. Ini harus menjadi peristiwa asli dalam garis sebab-akibat—domino pertama, sebagaimana adanya—dan sebagian besar menjelaskan masalah ini. Jika akar masalah data itu tidak terjadi, maka tidak boleh ada penyebab proksimal. Hal ini secara langsung bersifat kausal terhadap semuanya.
Akar masalah, tentu saja, tidak selalu jelas, dan korelasi tidak selalu tepat. Jika Anda tidak merasa yakin dengan jawaban Anda, salah satu cara probabilistik untuk mengetahui tingkat kepercayaan diri Anda yang sebenarnya adalah mencoba eksperimen pemikiran berikut: Bayangkan atasan Anda mengatakan bahwa tim akan sepenuhnya bertaruh pada hipotesis Anda, tidak ada yang akan mengeceknya sebelum masuk produksi, dan nama Anda akan tercantum sebagai penanggung jawabnya. Jika itu salah, itu semua salah Anda. Berapa skor kepercayaan 0-100 yang akan Anda berikan hipotesis Anda? Jika lebih rendah dari 70, teruslah menyelidiki.
Masalah akar masalah umum meliputi:
1. Kesalahan pengguna: Kami akan mulai dengan kesalahan pengguna karena kesalahan itu umum. Mungkin seseorang memasukkan skema yang salah atau nilai yang salah, yang berarti pipeline tidak membaca data, atau melakukan hal yang benar dengan nilai yang salah, dan sekarang Anda mengalami kegagalan tugas.
2. Data yang diberi label secara tidak tepat: Terkadang baris pada sebuah tabel bergeser dan label yang benar justru terpasang pada kolom yang salah.
3. Mitra data melewatkan pengiriman: Juga sangat umum. Anda dapat membangun sistem yang sangat baik, tetapi Anda tidak dapat mengendalikan apa yang tidak dapat Anda lihat. Jika masalah data terdapat pada data sumber, hal itu akan menyebabkan jaringan yang berfungsi dengan baik menjadi tidak berfungsi.
4. Ada bug dalam kode: Ini umum terjadi ketika ada versi baru dari pipeline. Anda dapat mengetahuinya dengan cukup cepat dengan perangkat lunak pembuatan versi seperti Git atau GitLab. Bandingkan kode produksi dengan versi sebelumnya dan jalankan pengujian dengan versi sebelumnya.
5. Kesalahan data OCR: Pemindai optik Anda salah membaca data, menyebabkan nilai yang asing (atau hilang).
6. Masalah data yang membusuk: Kumpulan data sangat kedaluwarsa sehingga tidak lagi valid.
7. Masalah data duplikat: Seringkali, vendor tidak dapat mengirimkan data, sehingga pipeline berjalan untuk data minggu lalu.
8. Masalah izin: Pipeline gagal karena sistem tidak memiliki izin untuk menarik data, atau melakukan transformasi.
9. Kesalahan infrastruktur: Mungkin Anda memaksimalkan memori yang tersedia atau batas panggilan API, klaster Apache Spark Anda tidak berjalan, atau gudang data Anda lambat secara tidak biasa, menyebabkan proses berjalan tanpa data.
10. Perubahan jadwal: Seseorang (atau sesuatu) mengubah penjadwalan dan itu menyebabkan pipeline kehabisan pesanan, atau tidak berjalan.
11. Kumpulan data bias: Sangat sulit untuk disortir. Tidak ada cara yang baik untuk menyimpulkan ini kecuali dengan menjalankan beberapa tes untuk melihat apakah data tersebut anomali dibandingkan dengan kumpulan data sebenarnya yang serupa, atau mencari tahu bagaimana data dikumpulkan atau dihasilkan.
12. Kegagalan orkestrator: Penjadwal pipeline Anda gagal menjadwalkan atau menjalankan pekerjaan.
13. Hantu di mesin (data ex machina): Ini benar-benar tidak dapat diketahui. Memang tidak mudah mengakui hal itu, namun untuk sebagian hal, itulah realitasnya. Yang terbaik yang dapat Anda lakukan adalah mendokumentasikan dan bersiaplah untuk waktu berikutnya ketika Anda dapat mengumpulkan lebih banyak data dan mulai menggambar korelasi.
Dan kemudian, tentu saja, ada kenyataan di mana akar masalahnya tidak sepenuhnya jelas. Banyak hal yang berkorelasi, dan mereka mungkin saling bergantung, tetapi tidak ada jawaban yang rapi—dan setelah membuat perubahan, Anda telah memperbaiki masalah data, meskipun Anda tidak yakin mengapa.
Dalam kasus tersebut, seperti halnya apa pun, catat hipotesis Anda di log, dan ketika Anda dapat kembali ke sana, lanjutkan menguji data historis, dan waspadai masalah baru dan penyebab yang lebih jelas.