Penguji data besar dan kecil: trend, teori, cerita saya

Hello semua, nama saya Alexander, dan saya seorang jurutera Kualiti Data yang menyemak data untuk kualitinya. Artikel ini akan bercakap tentang bagaimana saya sampai kepada perkara ini dan mengapa pada tahun 2020 kawasan ujian ini berada di puncak gelombang.

Penguji data besar dan kecil: trend, teori, cerita saya

Trend global

Dunia hari ini sedang mengalami satu lagi revolusi teknologi, satu aspek daripadanya ialah penggunaan data terkumpul oleh semua jenis syarikat untuk mempromosikan roda tenaga jualan, keuntungan dan PR mereka sendiri. Nampaknya kehadiran data (berkualiti) yang baik, serta otak mahir yang boleh membuat wang daripadanya (memproses dengan betul, memvisualisasikan, membina model pembelajaran mesin, dll.), telah menjadi kunci kejayaan bagi ramai orang hari ini. Jika 15-20 tahun yang lalu syarikat besar terlibat terutamanya dalam kerja intensif dengan pengumpulan data dan pengewangan, hari ini adalah keadaan hampir semua orang yang waras.

Dalam hal ini, beberapa tahun yang lalu, semua portal yang didedikasikan untuk pencarian kerja di seluruh dunia mula diisi dengan kekosongan untuk Data Saintis, kerana semua orang yakin bahawa, setelah mengupah pakar sedemikian, adalah mungkin untuk membina supermodel pembelajaran mesin. , ramalkan masa depan dan lakukan "lompatan kuantum" untuk syarikat. Dari masa ke masa, orang menyedari bahawa pendekatan ini hampir tidak pernah berfungsi di mana-mana, kerana tidak semua data yang jatuh ke tangan pakar sedemikian sesuai untuk model latihan.

Dan permintaan daripada Saintis Data bermula: β€œMari kita beli lebih banyak data daripada ini dan itu...”, β€œKami tidak mempunyai data yang mencukupi...”, β€œKami memerlukan lebih banyak data, sebaiknya yang berkualiti tinggi...” . Berdasarkan permintaan ini, banyak interaksi mula dibina antara syarikat yang memiliki satu atau satu set data yang lain. Sememangnya, ini memerlukan organisasi teknikal proses ini - menyambung ke sumber data, memuat turunnya, menyemak sama ada ia dimuatkan sepenuhnya, dsb. Bilangan proses sedemikian mula berkembang, dan hari ini kita mempunyai keperluan besar untuk jenis lain pakar - Jurutera Kualiti Data - mereka yang akan memantau aliran data dalam sistem (talian paip data), kualiti data pada input dan output, dan membuat kesimpulan tentang kecukupan, integriti dan ciri-ciri lain.

Trend untuk jurutera Kualiti Data datang kepada kami dari Amerika Syarikat, di mana, di tengah-tengah era kapitalisme yang membara, tiada siapa yang bersedia untuk kalah dalam pertempuran untuk data. Di bawah saya telah menyediakan tangkapan skrin daripada dua tapak carian pekerjaan paling popular di AS: www.monster.com ΠΈ www.dice.com β€” yang memaparkan data pada 17 Mac 2020 mengenai bilangan jawatan kosong yang disiarkan yang diterima menggunakan kata kunci: Kualiti Data dan Saintis Data.

www.monster.com

Saintis Data – 21416 kekosongan
Kualiti Data – 41104 kekosongan

Penguji data besar dan kecil: trend, teori, cerita saya
Penguji data besar dan kecil: trend, teori, cerita saya

www.dice.com

Saintis Data – 404 kekosongan
Kualiti Data - kekosongan 2020

Penguji data besar dan kecil: trend, teori, cerita saya
Penguji data besar dan kecil: trend, teori, cerita saya

Jelas sekali, profesion ini sama sekali tidak bersaing antara satu sama lain. Dengan tangkapan skrin, saya hanya ingin menggambarkan keadaan semasa di pasaran buruh dari segi permintaan untuk jurutera Kualiti Data, yang mana lebih banyak diperlukan sekarang daripada Saintis Data.

Pada Jun 2019, EPAM, bertindak balas kepada keperluan pasaran IT moden, memisahkan Kualiti Data kepada amalan yang berasingan. Jurutera Kualiti Data, semasa menjalankan kerja harian mereka, mengurus data, menyemak tingkah lakunya dalam keadaan dan sistem baharu, memantau perkaitan data, kecukupan dan kaitannya. Dengan semua ini, dalam erti kata yang praktikal, jurutera Kualiti Data benar-benar menumpukan sedikit masa untuk ujian fungsi klasik, TETAPI ini sangat bergantung kepada projek (saya akan memberikan contoh di bawah).

Tanggungjawab jurutera Kualiti Data tidak terhad hanya kepada pemeriksaan manual/automatik rutin untuk β€œnull, count and sum” dalam jadual pangkalan data, tetapi memerlukan pemahaman yang mendalam tentang keperluan perniagaan pelanggan dan, oleh itu, keupayaan untuk mengubah data yang tersedia menjadi maklumat perniagaan yang berguna.

Teori Kualiti Data

Penguji data besar dan kecil: trend, teori, cerita saya

Untuk membayangkan dengan lebih lengkap peranan jurutera sedemikian, mari kita fikirkan kualiti Data secara teori.

Kualiti Data β€” salah satu peringkat Pengurusan Data (seluruh dunia yang akan kami tinggalkan untuk anda pelajari sendiri) dan bertanggungjawab untuk menganalisis data mengikut kriteria berikut:

Penguji data besar dan kecil: trend, teori, cerita saya
Saya fikir tidak ada keperluan untuk menguraikan setiap titik (secara teori mereka dipanggil "dimensi data"), ia digambarkan dengan baik dalam gambar. Tetapi proses ujian itu sendiri tidak membayangkan dengan ketat menyalin ciri ini ke dalam kes ujian dan menyemaknya. Dalam Kualiti Data, seperti dalam mana-mana jenis ujian lain, adalah perlu, pertama sekali, untuk membina keperluan kualiti data yang dipersetujui dengan peserta projek yang membuat keputusan perniagaan.

Bergantung pada projek Kualiti Data, seorang jurutera boleh melaksanakan fungsi yang berbeza: daripada penguji automasi biasa dengan penilaian cetek kualiti data, kepada seseorang yang menjalankan pemprofilan data yang mendalam mengikut kriteria di atas.

Penerangan yang sangat terperinci tentang Pengurusan Data, Kualiti Data dan proses yang berkaitan diterangkan dengan baik dalam buku yang dipanggil "DAMA-DMBOK: Badan Pengurusan Data Pengetahuan: Edisi Ke-2". Saya sangat mengesyorkan buku ini sebagai pengenalan kepada topik ini (anda akan menemui pautan kepadanya di akhir artikel).

Cerita saya

Dalam industri IT, saya meningkat daripada penguji Junior dalam syarikat produk kepada Jurutera Kualiti Data Utama di EPAM. Selepas kira-kira dua tahun bekerja sebagai penguji, saya mempunyai keyakinan yang kukuh bahawa saya telah melakukan sepenuhnya semua jenis ujian: regresi, berfungsi, tekanan, kestabilan, keselamatan, UI, dll. - dan mencuba sejumlah besar alat ujian, setelah bekerja pada masa yang sama dalam tiga bahasa pengaturcaraan: Java, Scala, Python.

Mengimbas kembali, saya faham mengapa set kemahiran saya sangat pelbagaiβ€”saya terlibat dalam projek dipacu data, besar dan kecil. Inilah yang membawa saya ke dunia yang mempunyai banyak alat dan peluang untuk berkembang.

Untuk menghargai kepelbagaian alatan dan peluang untuk memperoleh pengetahuan dan kemahiran baharu, lihat sahaja gambar di bawah, yang menunjukkan yang paling popular dalam dunia "Data & AI".

Penguji data besar dan kecil: trend, teori, cerita saya
Ilustrasi jenis ini disusun setiap tahun oleh salah seorang pemodal teroka terkenal Matt Turck, yang berasal dari pembangunan perisian. Di sini pautan ke blog beliau dan firma modal teroka, tempat dia bekerja sebagai rakan kongsi.

Saya berkembang secara profesional terutamanya dengan cepat apabila saya satu-satunya penguji pada projek itu, atau sekurang-kurangnya pada permulaan projek. Pada saat itulah anda perlu bertanggungjawab untuk keseluruhan proses ujian, dan anda tidak mempunyai peluang untuk berundur, hanya ke hadapan. Pada mulanya ia menakutkan, tetapi kini semua kelebihan ujian sedemikian jelas kepada saya:

  • Anda mula berkomunikasi dengan seluruh pasukan seperti tidak pernah berlaku sebelum ini, kerana tiada proksi untuk komunikasi: pengurus ujian mahupun rakan penguji.
  • Penyerapan dalam projek menjadi sangat mendalam, dan anda mempunyai maklumat tentang semua komponen, secara umum dan terperinci.
  • Pembangun tidak melihat anda sebagai "lelaki itu daripada ujian yang tidak tahu apa yang dia lakukan", sebaliknya sebagai orang yang setara yang menghasilkan faedah yang luar biasa untuk pasukan dengan ujian automatiknya dan jangkaan pepijat yang muncul dalam komponen tertentu produk.
  • Hasilnya, anda lebih berkesan, lebih berkelayakan dan lebih banyak permintaan.

Apabila projek itu berkembang, dalam 100% kes saya menjadi mentor untuk penguji baharu, mengajar mereka dan menyampaikan pengetahuan yang telah saya pelajari sendiri. Pada masa yang sama, bergantung pada projek, saya tidak selalu menerima tahap tertinggi pakar ujian auto daripada pihak pengurusan dan terdapat keperluan untuk sama ada melatih mereka dalam automasi (bagi mereka yang berminat) atau mencipta alat untuk digunakan dalam aktiviti harian (alat untuk menjana data dan memuatkannya ke dalam sistem , alat untuk melaksanakan ujian beban/ujian kestabilan "dengan cepat", dsb.).

Contoh projek tertentu

Malangnya, disebabkan kewajipan bukan pendedahan, saya tidak boleh bercakap secara terperinci tentang projek yang saya kerjakan, tetapi saya akan memberikan contoh tugas biasa Jurutera Kualiti Data pada salah satu projek.

Intipati projek ini adalah untuk melaksanakan platform untuk menyediakan data untuk melatih model pembelajaran mesin berdasarkannya. Pelanggan adalah sebuah syarikat farmaseutikal besar dari Amerika Syarikat. Secara teknikal ia adalah satu kluster Kubernetes, meningkat kepada AWS EC2 contoh, dengan beberapa perkhidmatan mikro dan projek Sumber Terbuka asas EPAM - Legion, disesuaikan dengan keperluan pelanggan tertentu (kini projek telah dilahirkan semula ke odahu). Proses ETL disusun menggunakan Aliran Udara Apache dan memindahkan data daripada Pasukan jualan sistem pelanggan dalam AWS S3 baldi. Seterusnya, imej Docker bagi model pembelajaran mesin telah digunakan pada platform, yang dilatih mengenai data baharu dan, menggunakan antara muka API REST, menghasilkan ramalan yang menarik minat perniagaan dan menyelesaikan masalah tertentu.

Secara visual, semuanya kelihatan seperti ini:

Penguji data besar dan kecil: trend, teori, cerita saya
Terdapat banyak ujian berfungsi pada projek ini, dan memandangkan kelajuan pembangunan ciri dan keperluan untuk mengekalkan rentak kitaran pelepasan (pecut dua minggu), adalah perlu untuk segera memikirkan tentang mengautomasikan ujian bagi komponen yang paling kritikal sistem. Kebanyakan platform berasaskan Kubernetes itu sendiri diliputi oleh ujian auto yang dilaksanakan dalam Rangka Kerja Robot + Python, tetapi ia juga perlu untuk menyokong dan mengembangkannya. Selain itu, untuk kemudahan pelanggan, GUI telah dicipta untuk mengurus model pembelajaran mesin yang digunakan pada kluster, serta keupayaan untuk menentukan tempat dan tempat data perlu dipindahkan untuk melatih model. Penambahan meluas ini memerlukan pengembangan ujian fungsi automatik, yang kebanyakannya dilakukan melalui panggilan API REST dan sebilangan kecil ujian UI hujung-2 hujung. Sekitar khatulistiwa semua pergerakan ini, kami disertai oleh penguji manual yang melakukan kerja yang sangat baik dengan ujian penerimaan versi produk dan berkomunikasi dengan pelanggan mengenai penerimaan keluaran seterusnya. Selain itu, disebabkan kedatangan pakar baharu, kami dapat mendokumenkan kerja kami dan menambah beberapa semakan manual yang sangat penting yang sukar untuk diautomatikkan dengan segera.

Dan akhirnya, selepas kami mencapai kestabilan daripada platform dan alat tambah GUI di atasnya, kami mula membina saluran paip ETL menggunakan Apache Airflow DAGs. Pemeriksaan kualiti data automatik telah dijalankan dengan menulis DAG Aliran Udara khas yang menyemak data berdasarkan hasil proses ETL. Sebagai sebahagian daripada projek ini, kami bernasib baik dan pelanggan memberi kami akses kepada set data awanama yang kami uji. Kami menyemak data baris demi baris untuk pematuhan jenis, kehadiran data yang rosak, jumlah rekod sebelum dan selepas, perbandingan transformasi yang dibuat oleh proses ETL untuk pengagregatan, menukar nama lajur dan perkara lain. Di samping itu, semakan ini telah diskalakan kepada sumber data yang berbeza, contohnya, sebagai tambahan kepada SalesForce, juga kepada MySQL.

Semakan kualiti data akhir telah dijalankan di peringkat S3, di mana ia disimpan dan sedia untuk digunakan untuk melatih model pembelajaran mesin. Untuk mendapatkan data daripada fail CSV akhir yang terletak pada S3 Bucket dan mengesahkannya, kod telah ditulis menggunakan pelanggan boto3.

Terdapat juga keperluan daripada pelanggan untuk menyimpan sebahagian daripada data dalam satu S3 Bucket dan sebahagian dalam yang lain. Ini juga memerlukan penulisan semakan tambahan untuk menyemak kebolehpercayaan pengisihan tersebut.

Pengalaman umum daripada projek lain

Contoh senarai paling umum aktiviti jurutera Kualiti Data:

  • Sediakan data ujian (tidak sah besar kecil) melalui alat automatik.
  • Muat naik set data yang disediakan ke sumber asal dan semak bahawa ia sedia untuk digunakan.
  • Lancarkan proses ETL untuk memproses set data daripada storan sumber kepada storan akhir atau perantaraan menggunakan set tetapan tertentu (jika boleh, tetapkan parameter boleh dikonfigurasikan untuk tugas ETL).
  • Sahkan data yang diproses oleh proses ETL untuk kualiti dan pematuhannya dengan keperluan perniagaan.

Pada masa yang sama, tumpuan utama semakan seharusnya bukan sahaja pada fakta bahawa aliran data dalam sistem telah, pada dasarnya, berfungsi dan mencapai penghujung (yang merupakan sebahagian daripada ujian berfungsi), tetapi kebanyakannya pada menyemak dan mengesahkan data untuk pematuhan dengan keperluan yang dijangkakan, mengenal pasti anomali dan perkara lain.

Tools

Salah satu teknik untuk kawalan data sedemikian boleh menjadi organisasi pemeriksaan rantaian pada setiap peringkat pemprosesan data, yang dipanggil "rantai data" dalam literatur - kawalan data dari sumber ke titik penggunaan akhir. Jenis semakan ini paling kerap dilaksanakan dengan menulis pertanyaan SQL semakan. Jelas sekali bahawa pertanyaan sedemikian hendaklah seringan mungkin dan semak kepingan individu kualiti data (metadata jadual, baris kosong, NULL, Ralat dalam sintaks - atribut lain yang diperlukan untuk menyemak).

Dalam kes ujian regresi, yang menggunakan set data siap sedia (tidak boleh diubah, sedikit berubah), kod autotest boleh menyimpan templat siap sedia untuk menyemak data untuk pematuhan dengan kualiti (penerangan metadata jadual yang dijangkakan; objek sampel baris yang boleh dipilih secara rawak semasa ujian, dsb.).

Selain itu, semasa ujian, anda perlu menulis proses ujian ETL menggunakan rangka kerja seperti Apache Airflow, Apache Spark atau pun alat jenis awan kotak hitam GCP Dataprep, Aliran Data GCP Dan sebagainya. Keadaan ini memaksa jurutera ujian untuk melibatkan diri dalam prinsip pengendalian alatan di atas dan lebih berkesan kedua-duanya menjalankan ujian berfungsi (contohnya, proses ETL sedia ada pada projek) dan menggunakannya untuk menyemak data. Khususnya, Apache Airflow mempunyai pengendali sedia untuk bekerja dengan pangkalan data analisis popular, sebagai contoh GCP BigQuery. Contoh paling asas penggunaannya telah pun digariskan di sini, jadi saya tidak akan mengulangi diri saya sendiri.

Selain daripada penyelesaian siap sedia, tiada siapa yang melarang anda untuk melaksanakan teknik dan alatan anda sendiri. Ini bukan sahaja bermanfaat untuk projek itu, tetapi juga untuk Jurutera Kualiti Data sendiri, yang dengan itu akan meningkatkan ufuk teknikal dan kemahiran pengekodannya.

Bagaimana ia berfungsi pada projek sebenar

Ilustrasi baik perenggan terakhir tentang "rantaian data", ETL dan semakan di mana-mana ialah proses berikut daripada salah satu projek sebenar:

Penguji data besar dan kecil: trend, teori, cerita saya

Di sini, pelbagai data (secara semula jadi, disediakan oleh kami) memasuki "corong" input sistem kami: sah, tidak sah, bercampur, dsb., kemudian ia ditapis dan berakhir dalam storan perantaraan, kemudian ia sekali lagi menjalani satu siri transformasi dan diletakkan dalam storan akhir , yang seterusnya, analisis, membina data mart dan mencari cerapan perniagaan akan dijalankan. Dalam sistem sedemikian, tanpa menyemak fungsi proses ETL, kami memberi tumpuan kepada kualiti data sebelum dan selepas transformasi, serta pada output kepada analitik.

Untuk meringkaskan perkara di atas, tidak kira tempat saya bekerja, di mana-mana sahaja saya terlibat dalam projek Data yang berkongsi ciri berikut:

  • Hanya melalui automasi anda boleh menguji beberapa kes dan mencapai kitaran keluaran yang boleh diterima oleh perniagaan.
  • Penguji pada projek sedemikian adalah salah satu ahli pasukan yang paling dihormati, kerana ia membawa manfaat yang besar kepada setiap peserta (pecutan ujian, data yang baik daripada Saintis Data, mengenal pasti kecacatan pada peringkat awal).
  • Tidak kira sama ada anda menggunakan perkakasan anda sendiri atau di awan - semua sumber diabstraksikan ke dalam kelompok seperti Hortonworks, Cloudera, Mesos, Kubernetes, dll.
  • Projek dibina atas pendekatan perkhidmatan mikro, pengkomputeran teragih dan selari didominasi.

Saya ingin ambil perhatian bahawa apabila melakukan ujian dalam bidang Kualiti Data, pakar ujian mengalihkan tumpuan profesionalnya kepada kod produk dan alatan yang digunakan.

Ciri tersendiri ujian Kualiti Data

Di samping itu, untuk diri saya sendiri, saya telah mengenal pasti perkara berikut (saya akan segera membuat tempahan bahawa ianya SANGAT umum dan subjektif secara eksklusif) ciri tersendiri ujian dalam projek (sistem) Data (Data Besar) dan kawasan lain:

Penguji data besar dan kecil: trend, teori, cerita saya

Pautan berguna

  1. Teori: DAMA-DMBOK: Badan Pengurusan Data Pengetahuan: Edisi Ke-2.
  2. Pusat Latihan EPAM 
  3. Bahan yang disyorkan untuk jurutera Kualiti Data permulaan:
    1. Kursus percuma di Stepik: Pengenalan kepada Pangkalan Data
    2. Kursus tentang Pembelajaran LinkedIn: Asas Sains Data: Kejuruteraan Data.
    3. Artikel:
    4. Video:

Kesimpulan

Kualiti Data adalah hala tuju yang sangat muda yang menjanjikan, untuk menjadi sebahagian daripadanya bermakna menjadi sebahagian daripada permulaan. Sebaik sahaja dalam Kualiti Data, anda akan tenggelam dalam sejumlah besar teknologi moden dalam permintaan, tetapi yang paling penting, peluang besar akan terbuka untuk anda menjana dan melaksanakan idea anda. Anda akan dapat menggunakan pendekatan penambahbaikan berterusan bukan sahaja pada projek, tetapi juga untuk diri sendiri, terus berkembang sebagai pakar.

Sumber: www.habr.com

Tambah komen