Penguji data besar dan kecil: tren, teori, kisah saya

Halo semuanya, nama saya Alexander, dan saya seorang insinyur Kualitas Data yang memeriksa data untuk kualitas mereka. Artikel ini akan membahas bagaimana saya sampai pada hal ini dan mengapa pada tahun 2020 arah pengujian ini ternyata berada di puncak gelombang.



Tren dunia


Dunia saat ini sedang mengalami revolusi teknologi lainnya, salah satu aspek di antaranya adalah penggunaan oleh semua jenis perusahaan data yang terakumulasi untuk mempromosikan roda penjualan, laba, dan PR mereka sendiri. Tampaknya kehadiran data (kualitas) yang baik, serta otak yang terampil yang dapat menghasilkan uang dari mereka (memproses dengan benar, memvisualisasikan, membuat model pembelajaran mesin, dll.), Telah menjadi kunci keberhasilan bagi banyak orang saat ini. Jika 15-20 tahun yang lalu, perusahaan-perusahaan besar terlibat dalam pekerjaan yang padat dengan akumulasi data dan monetisasi mereka, hari ini hampir semua orang waras.

Dalam hal ini, beberapa tahun yang lalu, semua portal pencarian pekerjaan di seluruh dunia mulai dipenuhi dengan kekosongan data Ilmuwan, karena semua orang yakin bahwa dengan mendapatkan spesialis staf seperti itu Anda dapat membangun supermodel pembelajaran mesin, memprediksi masa depan dan membuat "kuantum Lompatan untuk perusahaan. Seiring waktu, orang menyadari bahwa pendekatan ini hampir tidak pernah berhasil, karena jauh dari semua data yang jatuh ke tangan spesialis seperti itu cocok untuk model pelatihan.

Dan permintaan dari Ilmuwan Data dimulai: "Mari kita membeli lebih banyak data dari ini dan itu ...", "Kami tidak memiliki cukup data ...", "Kami membutuhkan lebih banyak data dan lebih disukai berkualitas tinggi ...". Berdasarkan permintaan ini, banyak interaksi antara perusahaan yang memiliki kumpulan data tertentu mulai berbaris. Secara alami, ini memerlukan organisasi teknis dari proses ini - untuk terhubung ke sumber data, mengunduhnya, memeriksa apakah sudah terisi penuh, dll. Jumlah proses tersebut mulai tumbuh, dan hari ini kami telah menerima kebutuhan besar akan jenis spesialis lain - Data Insinyur berkualitas - mereka yang akan memantau aliran data dalam sistem (jalur pipa data), kualitas data pada input dan output, akan menarik kesimpulan tentang kecukupan, integritas, dan karakteristik lainnya.

Tren para insinyur Kualitas Data datang kepada kami dari Amerika Serikat, di mana di tengah-tengah era kapitalisme yang sedang berkecamuk, tidak ada yang siap untuk kalah dalam pertarungan mencari data. Di bawah ini saya telah memberikan tangkapan layar dari dua situs pencarian kerja paling populer di AS: www.monster.com dan www.dice.com - yang menampilkan data pada 17 Maret 2020 dengan jumlah lowongan yang diterima, dengan kata kunci: Kualitas Data dan Ilmuwan Data.

www.monster.com
Data Scientists - 21,416 PekerjaanKualitas Data - 41.104 pekerjaan

www.dice.com
Ilmuwan Data - 404 pekerjaanKualitas Data - 2020 pekerjaan

Jelas, profesi ini sama sekali tidak bersaing satu sama lain. Dengan tangkapan layar, saya hanya ingin mengilustrasikan situasi saat ini di pasar tenaga kerja dalam hal permintaan untuk insinyur Kualitas Data, yang sekarang membutuhkan lebih banyak daripada Data Scientists.

Pada Juni 2019, EPAM, menanggapi kebutuhan pasar TI modern, menyoroti Kualitas Data sebagai praktik terpisah. Selama pekerjaan sehari-hari mereka, insinyur Kualitas Data mengelola data, memeriksa perilaku mereka dalam kondisi dan sistem baru, dan mengontrol relevansi data, kecukupan dan relevansinya. Dengan semua ini, dalam arti praktis Kualitas Data, para insinyur benar-benar mencurahkan sedikit waktu untuk pengujian fungsional klasik, TETAPI itu sangat tergantung pada proyek (saya akan memberikan contoh di bawah).

Tugas insinyur Kualitas Data tidak terbatas pada pemeriksaan manual / otomatis rutin untuk "nulls, count and sums" dalam tabel database, tetapi membutuhkan pemahaman yang mendalam tentang kebutuhan bisnis pelanggan dan, dengan demikian, kemampuan untuk mengubah data yang ada menjadi informasi bisnis yang berguna.

Teori Kualitas Data




Untuk paling membayangkan peran insinyur seperti itu, mari kita mencari tahu apa Kualitas Data dalam teori.

Kualitas Data adalah salah satu tahapan Manajemen Data (seluruh dunia yang akan kami tinggalkan untuk Anda pelajari secara mandiri) dan bertanggung jawab untuk menganalisis data sesuai dengan kriteria berikut:


Saya pikir tidak ada gunanya menguraikan masing-masing poin (dalam teori mereka disebut "dimensi data"), mereka cukup dijelaskan dalam gambar. Tetapi proses pengujian itu sendiri tidak menyiratkan penyalinan yang ketat dari tanda-tanda ini ke dalam kasus uji dan verifikasi mereka. Dalam Kualitas Data, seperti dalam jenis pengujian lainnya, pertama-tama perlu untuk melanjutkan dari persyaratan kualitas data yang disepakati dengan peserta proyek yang membuat keputusan bisnis.



Bergantung pada proyek Kualitas Data, seorang insinyur dapat melakukan berbagai fungsi: dari penguji otomatis biasa dengan penilaian kualitas data yang dangkal, hingga orang yang melakukan profil mendalam mereka sesuai dengan kriteria di atas.



Deskripsi yang sangat terperinci tentang Manajemen Data, Kualitas Data, dan proses terkait dijelaskan dengan baik dalam sebuah buku berjudul "DAMA-DMBOK: Badan Pengetahuan Manajemen Data: Edisi ke-2" . Saya sangat merekomendasikan buku ini sebagai pengantar topik ini (Anda akan menemukan tautannya di akhir artikel).

Ceritaku


Dalam industri IT, saya beralih dari menjadi Junior Product Tester menjadi Lead Quality Data Engineer di EPAM. Setelah sekitar dua tahun sebagai penguji, saya memiliki keyakinan kuat bahwa saya benar-benar melakukan semua jenis pengujian: regresi, fungsional, stres, stabilitas, keamanan, UI, dll. - dan mencoba sejumlah besar alat pengujian, setelah bekerja pada saat yang sama dalam tiga bahasa pemrograman: Java, Scala, Python.



Melihat ke belakang, saya mengerti mengapa keahlian profesional saya ternyata sangat beragam - saya berpartisipasi dalam proyek yang terkait dengan bekerja dengan data, besar dan kecil. Inilah yang membawa saya ke dunia banyak alat dan peluang untuk pertumbuhan.



Untuk menghargai beragam alat dan peluang untuk memperoleh pengetahuan dan keterampilan baru, lihat saja gambar di bawah ini, yang menunjukkan yang paling populer di antara mereka di dunia "Data & AI".


Ilustrasi semacam ini dikompilasi setiap tahun oleh salah satu pemodal ventura terkenal Matt Turck, yang berasal dari pengembangan perangkat lunak. Berikut ini tautan ke blog dan perusahaan modal ventura tempat ia bekerja sebagai mitra.

Terutama cepat saya tumbuh secara profesional ketika saya adalah satu-satunya penguji di proyek, atau setidaknya di awal proyek. Pada saat itulah Anda harus bertanggung jawab atas seluruh proses pengujian, dan Anda tidak memiliki cara untuk mundur, hanya maju. Awalnya itu adalah orang-orangan sawah, tetapi sekarang semua keuntungan dari tes semacam itu sudah jelas bagi saya:

  • Anda mulai berkomunikasi dengan seluruh tim lebih dari sebelumnya, karena tidak ada proxy untuk komunikasi: tidak ada manajer tes, atau sesama penguji.
  • , , .
  • ยซ , ยป, , , .
  • โ€” , , .

Ketika proyek tumbuh 100% dari waktu, saya menjadi mentor bagi penguji yang datang kepadanya lagi, melatih mereka dan meneruskan pengetahuan yang telah saya pelajari. Pada saat yang sama, tergantung pada proyeknya, saya tidak selalu mendapatkan ahli pengujian otomatis tingkat tertinggi dari manajemen dan ada kebutuhan untuk melatih mereka dalam otomatisasi (bagi mereka yang menginginkannya) atau membuat alat untuk menggunakannya dalam kegiatan sehari-hari (alat untuk menghasilkan data dan memuatnya ke dalam sistem) , alat untuk melakukan pengujian beban / pengujian stabilitas "cepat", dll.).

Contoh Proyek Tertentu


Sayangnya, karena kewajiban non-pengungkapan, saya tidak dapat berbicara secara rinci tentang proyek yang saya kerjakan, namun saya akan memberikan contoh tugas Insinyur Kualitas Data pada salah satu proyek.

Inti dari proyek ini adalah untuk mengimplementasikan platform untuk mempersiapkan data untuk model pembelajaran mesin pelatihan berdasarkan pada mereka. Pelanggannya adalah perusahaan farmasi besar dari Amerika Serikat. Secara teknis, itu adalah kluster Kubernetes , naik ke instance AWS EC2 , dengan beberapa layanan mikro dan proyek EPAM- Legion yang mendasari Open Source , disesuaikan dengan kebutuhan pelanggan tertentu (sekarang proyek ini bereinkarnasi sebagai odahu ). Proses ETL diatur menggunakan Apache Airflow dan memindahkan data dariSistem pelanggan SalesForce di AWS S3 Bucket. Selanjutnya, gambar buruh pelabuhan dari model pembelajaran mesin dikerahkan di platform, yang dilatih tentang data terbaru dan menghasilkan prediksi berdasarkan antarmuka API REST yang menarik bagi bisnis dan memecahkan masalah tertentu.

Secara visual, semuanya terlihat seperti ini:


Ada banyak pengujian fungsional pada proyek ini, dan mengingat kecepatan pengembangan fitur dan kebutuhan untuk mempertahankan laju siklus rilis (sprint dua minggu), perlu untuk segera berpikir tentang otomatisasi pengujian node sistem yang paling kritis. Sebagian besar platform itu sendiri dengan Kubernetes ditutupi oleh tes mandiri diimplementasikan pada Robot Framework.+ Python, tetapi mereka juga perlu dipertahankan dan diperluas. Selain itu, untuk kenyamanan pelanggan, GUI diciptakan untuk mengelola model pembelajaran mesin yang tertanam dalam sebuah cluster, serta kemampuan untuk menentukan di mana dan di mana untuk mentransfer data untuk pelatihan model. Penambahan luas ini memerlukan perluasan pemeriksaan fungsional otomatis, yang sebagian besar dilakukan melalui panggilan API REST dan sejumlah kecil tes UI ujung-2-ujung. Di sekitar garis khatulistiwa dari semua gerakan ini, kami bergabung dengan penguji manual, yang melakukan pekerjaan yang sangat baik dengan pengujian penerimaan versi produk dan berkomunikasi dengan pelanggan tentang menerima rilis berikutnya. Selain itu, karena munculnya spesialis baru, kami dapat mendokumentasikan pekerjaan kami dan menambahkan beberapa pemeriksaan manual yang sangat penting,yang sulit untuk diotomatisasi segera.

Dan akhirnya, setelah kami mencapai stabilitas dari platform dan tambahan GUI di atasnya, kami mulai membangun pipa ETL menggunakan Apache Airflow DAGs. Kontrol kualitas data otomatis dilakukan dengan menulis DAG Aliran Udara khusus yang memeriksa data sesuai dengan hasil proses ETL. Sebagai bagian dari proyek ini, kami beruntung, dan pelanggan memberi kami akses ke set data anonim, yang kami uji. Kami memeriksa baris data demi kepatuhan terhadap jenis, keberadaan data yang rusak, jumlah total catatan sebelum dan sesudah, membandingkan transformasi yang dilakukan oleh proses ETL untuk agregasi, mengubah nama kolom dan hal-hal lainnya. Selain itu, pemeriksaan ini diskalakan ke sumber data yang berbeda, misalnya, selain SalesForce, juga di MySQL.

Pemeriksaan kualitas data akhir sudah dilakukan di tingkat S3, di mana mereka disimpan dan siap digunakan untuk model pembelajaran mesin pembelajaran. Untuk mendapatkan data dari file CSV terakhir yang terletak di Bucket S3 dan memvalidasinya, kode ditulis menggunakan klien boto3 .

Juga, pada bagian pelanggan, ada persyaratan untuk menyimpan bagian dari data dalam satu Bucket S3, sebagian lainnya. Untuk ini, itu juga diperlukan untuk menulis cek tambahan untuk memverifikasi keandalan semacam itu.

Pengalaman umum pada proyek lain


Contoh daftar aktivitas Kualitas Data yang paling umum dari seorang insinyur:

  • Siapkan data uji (valid / tidak valid / besar / kecil) melalui alat otomatis.
  • Unduh set data yang disiapkan ke sumber asli dan periksa kesiapannya untuk digunakan.
  • Luncurkan proses ETL untuk memproses dataset dari penyimpanan sumber ke final atau menengah menggunakan seperangkat pengaturan tertentu (jika mungkin, setel parameter yang dapat dikonfigurasi untuk tugas ETL).
  • Verifikasi data yang diproses oleh proses ETL untuk kualitas dan kepatuhannya dengan persyaratan bisnis.

Pada saat yang sama, penekanan utama pemeriksaan tidak hanya pada kenyataan bahwa aliran data dalam sistem telah bekerja dan mencapai akhir (yang merupakan bagian dari pengujian fungsional), tetapi terutama pada verifikasi dan validasi data untuk kepatuhan dengan persyaratan yang diharapkan, mengidentifikasi anomali dan hal-hal lain.

Alat


Salah satu teknik untuk kontrol data tersebut dapat berupa organisasi pemeriksaan rantai pada setiap tahap pemrosesan data, yang disebut "rantai data" dalam literatur - kontrol data dari sumber hingga titik penggunaan akhir. Pemeriksaan semacam itu paling sering dilaksanakan dengan menulis validasi kueri SQL. Jelas bahwa permintaan tersebut harus seringan mungkin dan memeriksa setiap potongan kualitas data (tabel metadata, baris kosong, NULLs, Kesalahan dalam sintaksis - atribut verifikasi lain yang diperlukan).

Dalam kasus pengujian regresi, yang menggunakan set data siap pakai (tidak berubah / sedikit berubah), templat siap pakai untuk memeriksa data terhadap kualitas (deskripsi metadata tabel yang diharapkan; objek selektif huruf kecil yang dapat dipilih secara acak selama pengujian, dapat disimpan dalam kode autotest) Dan seterusnya).

Juga selama pengujian, Anda harus menulis proses pengujian ETL menggunakan kerangka kerja seperti Apache Airflow, Apache Spark atau bahkan alat cloud kotak hitam seperti GCP Dataprep , GCP DataflowDan seterusnya. Keadaan ini membuat insinyur uji membenamkan dirinya dalam prinsip-prinsip alat di atas dan bahkan lebih efektif bagaimana melakukan pengujian fungsional (misalnya, proses ETL yang ada pada proyek) dan menggunakannya untuk memverifikasi data. Secara khusus, Apache Airflow memiliki operator siap pakai untuk bekerja dengan database analitik populer, misalnya GCP BigQuery . Contoh paling mendasar penggunaannya telah dijelaskan di sini , jadi saya tidak akan mengulanginya.

Selain solusi yang sudah jadi, tidak ada yang melarang Anda untuk menjual teknik dan alat Anda. Ini tidak hanya akan bermanfaat bagi proyek, tetapi juga untuk Insinyur Kualitas Data itu sendiri, yang dengan demikian meningkatkan cakrawala teknis dan keterampilan pengkodean.

Cara kerjanya pada proyek nyata


Ilustrasi yang baik dari paragraf terakhir tentang "rantai data", ETL, dan pemeriksaan di mana-mana adalah proses berikut dari salah satu proyek nyata:



Di sini, data yang berbeda (disiapkan secara alami oleh kami) jatuh ke dalam "corong" input sistem kami: valid, tidak valid, campuran, dll. n., kemudian mereka disaring dan berakhir di penyimpanan perantara, kemudian mereka lagi menunggu serangkaian transformasi dan ditempatkan di penyimpanan akhir, dari mana, pada gilirannya, analisis akan dilakukan, pemetaan data dan mencari wawasan bisnis. Dalam sistem seperti itu, tanpa memeriksa secara fungsional operasi proses ETL, kami fokus pada kualitas data sebelum dan setelah transformasi, serta pergi ke analitik.

Merangkum hal-hal di atas, terlepas dari tempat saya bekerja, saya ada di mana-mana dalam proyek Data yang menggabungkan fitur-fitur berikut:

  • Hanya melalui otomatisasi Anda dapat memverifikasi beberapa kasus dan mencapai siklus rilis yang ramah bisnis.
  • Penguji pada proyek semacam itu adalah salah satu anggota tim yang paling dihormati, karena membawa manfaat besar bagi masing-masing peserta (pengujian dipercepat, data yang baik dari Data Scientist, identifikasi cacat pada tahap awal).
  • Tidak masalah apakah Anda bekerja pada perangkat keras Anda atau di awan - semua sumber daya disarikan ke dalam cluster seperti Hortonworks, Cloudera, Mesos, Kubernetes, dll.
  • Proyek didasarkan pada pendekatan layanan-mikro, komputasi terdistribusi dan paralel berlaku.

Saya perhatikan bahwa, saat pengujian di bidang Kualitas Data, spesialis pengujian mengalihkan fokus profesionalnya ke kode produk dan alat yang digunakan.

Fitur khas pengujian Kualitas Data


Selain itu, untuk saya sendiri, saya menyoroti fitur-fitur berikut (Saya akan segera membuat reservasi SANGAT umum dan subyektif) membedakan pengujian dalam proyek (sistem) Data Besar (Big Data) dan bidang lainnya:


tautan yang bermanfaat


  1. Teori: DAMA-DMBOK: Badan Pengetahuan Manajemen Data: Edisi ke-2 .
  2. Pusat Pelatihan  EPAM 
  3. Bahan yang direkomendasikan untuk insinyur Kualitas Data pemula:

    1. Kursus Stepik gratis:  Pengantar basis data
    2. Kursus tentang LinkedIn Learning:  Yayasan Sains Data: Rekayasa Data .
    3. Artikel:

    4. Video:


Kesimpulan


Kualitas Data adalah bidang yang sangat muda menjanjikan, untuk menjadi bagian yang berarti menjadi bagian dari startup. Setelah di Kualitas Data, Anda akan terjun ke sejumlah besar teknologi modern dalam permintaan, tetapi yang paling penting - Anda akan memiliki peluang besar untuk menghasilkan dan menerapkan ide-ide Anda. Anda dapat menggunakan pendekatan peningkatan berkelanjutan tidak hanya pada proyek, tetapi juga untuk diri Anda sendiri, terus berkembang sebagai spesialis.

All Articles