Чоң жана кичине маалыматтарды текшерүүчү: тенденциялар, теория, менин окуям

Баарыңарга салам, менин атым Александр, мен маалыматтардын сапатын текшерген маалымат сапаты боюнча инженермин. Бул макалада мен буга кантип келгеним жана эмне үчүн 2020-жылы бул тестирлөө чөйрөсү толкундун туу чокусунда болгондугу жөнүндө сөз болот.

Чоң жана кичине маалыматтарды текшерүүчү: тенденциялар, теория, менин окуям

Глобалдык тенденция

Бүгүнкү дүйнө дагы бир технологиялык революцияны баштан кечирүүдө, анын бир аспектиси – компаниянын бардык түрлөрү тарабынан топтолгон маалыматтарды сатуунун, пайданын жана пиардын өз маховиктерин илгерилетүү үчүн пайдалануу. Жакшы (сапаттуу) маалыматтардын, ошондой эле андан акча таба ала турган (туура иштетүү, визуализациялоо, машина үйрөнүү моделдерин куруу ж.б.) жөндөмдүү мээлердин болушу бүгүнкү күндө көптөгөн адамдар үчүн ийгиликтин ачкычы болуп калды окшойт. Эгерде 15-20 жыл мурун ири компаниялар негизинен маалыматтарды топтоо жана акчага айландыруу менен интенсивдүү иш алып барышса, бүгүнкү күндө бул дээрлик бардык акыл-эстүү адамдардын иши.

Ушуга байланыштуу, бир нече жыл мурун, дүйнө жүзү боюнча жумуш издөөгө арналган бардык порталдар маалымат илимпоздору үчүн вакансиялар менен толтурула баштаган, анткени бардыгы мындай адисти жалдап, машина үйрөнүүнүн супермоделин курууга болоруна ишенишкен. , келечекти болжолдоо жана компания үчүн "кванттык секирик" жасоо. Убакыттын өтүшү менен адамдар бул ыкма дээрлик эч жерде иштебей турганын түшүнүштү, анткени мындай адистердин колуна түшкөн бардык маалыматтар моделдерди окутуу үчүн ылайыктуу эмес.

Ал эми Data Scientists сурамдары башталды: "Келгиле, тигилерден жана тигилерден көбүрөөк маалымат сатып алалы...", "Бизде маалымат жетишсиз...", "Бизге дагы бир аз маалымат керек, эң жакшысы сапаттуу..." . Ушул суроо-талаптардын негизинде тигил же бул маалыматтардын топтомуна ээ болгон компаниялардын ортосунда көптөгөн өз ара байланыштар түзүлө баштады. Албетте, бул процессти техникалык уюштурууну талап кылды – маалымат булагына туташуу, аны жүктөп алуу, анын толук жүктөлгөндүгүн текшерүү ж.б. Мындай процесстердин саны өсө баштады жана бүгүнкү күндө бизде башка түргө абдан муктаждык бар. адистер - Маалыматтын сапаты боюнча инженерлер - системадагы маалыматтардын агымын (маалымат өткөргүчтөрү), киргизүү жана чыгаруудагы маалыматтардын сапатын көзөмөлдөй турган жана алардын жетиштүүлүгү, бүтүндүгү жана башка мүнөздөмөлөрү жөнүндө тыянак чыгаргандар.

Маалыматтын сапаты боюнча инженерлердин тенденциясы бизге АКШдан келди, ал жерде капитализмдин курчуп турган доорунда эч ким маалымат үчүн күрөштө жеңилүүгө даяр эмес. Төмөндө мен АКШдагы эң популярдуу жумуш издөө сайттарынын скриншотторун бердим: www.monster.com и www.dice.com — анда 17-жылдын 2020-мартына карата абал боюнча маалымат көрсөтүлгөн: Маалыматтын сапаты жана маалымат таануучу.

www.monster.com

Маалымат таануучулар – 21416 бош орун
Маалыматтын сапаты – 41104 бош орун

Чоң жана кичине маалыматтарды текшерүүчү: тенденциялар, теория, менин окуям
Чоң жана кичине маалыматтарды текшерүүчү: тенденциялар, теория, менин окуям

www.dice.com

Маалымат таануучулар – 404 бош орун
Маалыматтын сапаты – 2020 бош орундар

Чоң жана кичине маалыматтарды текшерүүчү: тенденциялар, теория, менин окуям
Чоң жана кичине маалыматтарды текшерүүчү: тенденциялар, теория, менин окуям

Албетте, бул кесиптер бири-бири менен эч кандай атаандашпайт. Скриншоттор менен, мен жөн гана эмгек рыногундагы учурдагы кырдаалды, маалымат илимпоздоруна караганда көбүрөөк талап кылынган Маалыматтын сапаты боюнча инженерлерге суроо-талаптар жагынан чагылдыргым келди.

2019-жылдын июнь айында EPAM заманбап IT рыногунун муктаждыктарына жооп берип, Маалыматтын сапатын өзүнчө практикага бөлгөн. Берилиштердин сапаты боюнча инженерлер күнүмдүк ишинин жүрүшүндө маалыматтарды башкарат, жаңы шарттарда жана системаларда анын жүрүм-турумун текшерет, маалыматтардын актуалдуулугун, анын жетиштүүлүгүн жана актуалдуулугун көзөмөлдөйт. Мунун баары менен, практикалык мааниде, маалымат сапаты боюнча инженерлер классикалык функционалдык тестирлөөгө аз убакыт бөлүшөт, БИРОК бул долбоордон көз каранды (мен төмөндө мисал келтирем).

Берилиштердин сапаты боюнча инженердин милдеттери маалыматтар базасынын таблицаларындагы “нөлдөрдү, эсептөөлөрдү жана суммаларды” күнүмдүк кол менен/автоматтык текшерүү менен гана чектелбестен, кардардын бизнес муктаждыктарын терең түшүнүүнү жана, ошого жараша, жеткиликтүү маалыматтарды өзгөртүү мүмкүнчүлүгүн талап кылат. пайдалуу бизнес маалымат.

Маалыматтын сапаты теориясы

Чоң жана кичине маалыматтарды текшерүүчү: тенденциялар, теория, менин окуям

Мындай инженердин ролун толугураак элестетүү үчүн, келгиле, теориялык жактан маалымат сапаты эмне экенин аныктап көрөлү.

Маалыматтардын сапаты — Берилиштерди башкаруунун этаптарынын бири (сизге өз алдынча окуу үчүн биз калтырабыз) жана төмөнкү критерийлерге ылайык маалыматтарды талдоо үчүн жооптуу:

Чоң жана кичине маалыматтарды текшерүүчү: тенденциялар, теория, менин окуям
Менимче, ар бир пунктту чечмелөөнүн кереги жок (теорияда алар "маалымат өлчөмдөрү" деп аталат), алар сүрөттө абдан жакшы сүрөттөлгөн. Бирок тестирлөө процессинин өзү бул өзгөчөлүктөрдү сыноо учурларына так көчүрүп, аларды текшерүүнү билдирбейт. Берилиштердин сапатында, тестирлөөнүн башка түрүндөгүдөй эле, биринчи кезекте бизнес чечимдерин кабыл алган долбоордун катышуучулары менен макулдашылган маалыматтардын сапатына талаптарды түзүү керек.

Берилиштердин сапаты долбооруна жараша инженер ар кандай функцияларды аткара алат: маалыматтардын сапатын үстүртөн баалаган кадимки автоматташтырылган тестиерден баштап, жогорудагы критерийлерге ылайык маалыматтарды терең профилдештирүү жүргүзгөн адамга чейин.

Маалыматтарды башкаруу, берилиштердин сапаты жана ага байланыштуу процесстердин кеңири сүрөттөлүшү аталган китепте жакшы сүрөттөлгөн "DAMA-DMBOK: Маалыматтарды башкаруу органы: 2-басылышы". Мен бул китепти бул темага киришүү катары сунуштайм (сиз ага шилтемени макаланын аягында табасыз).

менин окуям

IT тармагында мен өнүм компанияларында кенже тестиерден EPAMда маалымат сапаты боюнча жетектөөчү инженерге чейин иштедим. Сыноочу болуп эки жылдай иштегенден кийин мен тестирлөөнүн бардык түрлөрүн жасаганыма бекем ишендим: регрессия, функционалдык, стресс, туруктуулук, коопсуздук, UI ж.б. бир эле учурда үч программалоо тилинде иштеген: Java, Scala, Python.

Артка кылчайып карасам, эмне үчүн менин жөндөмүмдүн топтому ушунчалык ар түрдүү болгонун түшүндүм — мен чоң жана кичине маалыматтарга негизделген долбоорлорго катышканмын. Бул мени өсүү үчүн көптөгөн куралдар жана мүмкүнчүлүктөр дүйнөсүнө алып келди.

Жаңы билимдерди жана көндүмдөрдү алуу үчүн куралдардын жана мүмкүнчүлүктөрдүн ар түрдүүлүгүн баалоо үчүн "Data & AI" дүйнөсүндөгү эң популярдуу сүрөттөрдү көрсөтүңүз.

Чоң жана кичине маалыматтарды текшерүүчү: тенденциялар, теория, менин окуям
Мындай иллюстрацияны программалык камсыздоону иштеп чыгуудан келген белгилүү венчурдук капиталисттердин бири Мэтт Тёрк жыл сайын түзөт. Мына байланыш анын блогуна жана венчурдук капитал фирмасы, ал жерде партня болуп иштейт.

Мен профессионалдык жактан өзгөчө тездик менен проектте жалгыз тестиер болгондо же жок дегенде долбоордун башында өстүм. Дал ушундай учурда сиз бүт тестирлөө процесси үчүн жооптуу болушуңуз керек жана артка чегинүүгө эч кандай мүмкүнчүлүгүңүз жок, алдыга гана. Башында бул коркунучтуу болчу, бирок азыр мындай сыноонун бардык артыкчылыктары мен үчүн айкын:

  • Сиз бүт команда менен мурда болуп көрбөгөндөй байланыша баштайсыз, анткени байланыш үчүн прокси жок: тест менеджери да, башка тестиерлер да.
  • Долбоордун ичине кирүү укмуштуудай тереңдейт жана сизде жалпы жана майда-чүйдөсүнө чейин бардык компоненттер жөнүндө маалымат бар.
  • Иштеп чыгуучулар сизди "эмне кылып жатканын билбеген тестирлөөчү жигит" катары эмес, тескерисинче, автоматташтырылган тесттери менен командага укмуштуудай пайда алып келген тең укуктуу адам катары карашат жана программанын белгилүү бир компонентинде пайда болгон мүчүлүштүктөрдү күтөт. продукт.
  • Натыйжада, сиз натыйжалуураак, квалификациялуу жана суроо-талапка ээ болосуз.

Долбоор өскөн сайын, 100% учурларда мен жаңы тестиерлер үчүн насаатчы болуп, аларга үйрөтүп, өзүм үйрөнгөн билимимди өткөрүп бердим. Ошол эле учурда, долбоорго жараша, мен дайыма эле жетекчиликтен автосыноо боюнча адистердин эң жогорку деңгээлин ала берчү эмесмин жана аларды автоматташтырууга үйрөтүү (кызыккандар үчүн) же күнүмдүк иштерде колдонуу үчүн куралдарды түзүү (куралдар маалыматтарды түзүү жана аны системага жүктөө үчүн, жүк тестирлөө/туруктуулукту "тез" тестирлөө үчүн курал ж.б.).

Конкреттүү долбоордун мисалы

Тилекке каршы, ачыкка чыгарбоо милдеттенмелеринен улам, мен иштеген долбоорлор жөнүндө кеңири айта албайм, бирок долбоорлордун бири боюнча Маалыматтын сапаты боюнча инженердин типтүү тапшырмаларынын мисалдарын келтирем.

Долбоордун маңызы анын негизинде машина үйрөнүү моделдерин окутуу үчүн маалыматтарды даярдоо платформасын ишке ашыруу болуп саналат. Кардар АКШдан келген ири фармацевтикалык компания болгон. Техникалык жактан бул кластер болчу Kubernetes, чейин көтөрүлөт AWS EC2 бир нече микросервистер жана EPAMдын негизги Open Source долбоору менен - легион, белгилүү бир кардардын муктаждыктарына ылайыкташтырылган (азыр долбоор кайра жаралган odahu). ETL процесстери аркылуу уюштурулган apache аба агымы жана маалымат көчүрүлдү Сатуу бөлүмү кардарлардын системалары AWS S3 Чакалар. Андан кийин, платформага машинаны үйрөнүү моделинин Docker сүрөтү жайгаштырылды, ал жаңы маалыматтар боюнча үйрөтүлгөн жана REST API интерфейсин колдонуу менен бизнести кызыктырган жана конкреттүү көйгөйлөрдү чечкен божомолдорду чыгарган.

Көрүнүп тургандай, баары бул сыяктуу көрүндү:

Чоң жана кичине маалыматтарды текшерүүчү: тенденциялар, теория, менин окуям
Бул долбоор боюнча көптөгөн функционалдык тестирлөөлөр болгон жана функцияларды иштеп чыгуунун ылдамдыгын жана релиз циклинин темптерин (эки жумалык спринт) кармап туруу зарылдыгын эске алуу менен, дароо эле эң маанилүү компоненттерди автоматташтыруу жөнүндө ойлонуу керек болчу. система. Кубернетеске негизделген платформанын көпчүлүгүндө ишке ашырылган автотесттер камтылган Robot Framework + Python, бирок аларды колдоо жана кеңейтүү да керек болчу. Мындан тышкары, кардардын ынгайлуулугу үчүн кластерге орнотулган машинаны үйрөнүү моделдерин башкаруу үчүн GUI түзүлдү, ошондой эле моделдерди окутуу үчүн маалыматтар кайда жана кайда өткөрүлүшү керек экенин аныктоо мүмкүнчүлүгү түзүлдү. Бул кеңири кошумчалоо автоматташтырылган функционалдык тестирлөөнүн кеңейишине алып келди, ал көбүнчө REST API чалуулары жана аз сандагы 2-аягы UI тесттери аркылуу жасалды. Бул кыймылдын экваторунун тегерегинде бизге кол менен тестирлөөчү кошулду, ал продукттун версияларын кабыл алуу тестирлөө жана кийинки чыгарылышты кабыл алуу боюнча кардар менен байланышуу менен мыкты иш жасады. Мындан тышкары, жаңы адис келгендиктен, биз ишибизди документтештирип, дароо автоматташтыруу кыйын болгон бир нече өтө маанилүү кол текшерүүлөрдү кошо алдык.

Акыры, платформадан жана анын үстүнөн GUI кошумчасынан туруктуулукка жеткенден кийин, Apache Airflow DAG аркылуу ETL түтүктөрүн кура баштадык. Автоматташтырылган маалыматтардын сапатын текшерүү ETL процессинин натыйжаларынын негизинде маалыматтарды текшерген атайын Airflow DAGs жазуу аркылуу ишке ашырылган. Бул долбоордун алкагында, биз бактылуу болдук жана кардар бизге анонимдүү маалымат топтомуна мүмкүнчүлүк берди, алар боюнча биз сынап көрдүк. Биз маалымат сабын сап боюнча типтерге ылайыктуулугун, бузулган маалыматтардын бар-жоктугун, мурунку жана кийинки жазуулардын жалпы санын, бириктирүү үчүн ETL процесси тарабынан жасалган трансформацияларды салыштыруу, мамычанын аталыштарын өзгөртүү жана башка нерселерди текшердик. Мындан тышкары, бул текшерүүлөр, мисалы, SalesForce кошумча, ошондой эле MySQL үчүн, ар кандай маалымат булактарына, масштабдуу болгон.

Маалыматтын сапатын акыркы текшерүүлөр S3 деңгээлинде жүргүзүлүп, анда алар сакталган жана машина үйрөнүү моделдерин окутуу үчүн колдонууга даяр болгон. S3 чакасында жайгашкан акыркы CSV файлынан маалыматтарды алуу жана аны текшерүү үчүн кодду колдонуу менен жазылган boto3 кардарлары.

Ошондой эле кардардан маалыматтардын бир бөлүгүн бир S3 чакага, бир бөлүгүн башкасына сактоо талабы бар болчу. Бул ошондой эле сорттоо ишенимдүүлүгүн текшерүү үчүн кошумча текшерүүлөрдү жазууну талап кылды.

Башка долбоорлордон жалпыланган тажрыйба

Берилиштердин сапаты боюнча инженердин иш-аракеттеринин эң жалпы тизмесинин мисалы:

  • Автоматташтырылган курал аркылуу сыноо маалыматтарын даярдаңыз (жарамдуу жараксыз чоң кичине).
  • Даярдалган маалыматтар топтомун баштапкы булакка жүктөңүз жана анын колдонууга даяр экендигин текшериңиз.
  • Белгилүү бир орнотуулар топтомун колдонуу менен булак сактагычынан акыркы же аралык сактагычка чейинки маалыматтардын топтомун иштетүү үчүн ETL процесстерин ишке киргизиңиз (мүмкүн болсо, ETL тапшырмасы үчүн конфигурациялануучу параметрлерди коюңуз).
  • ETL процесси тарабынан иштелип чыккан маалыматтардын сапатын жана бизнестин талаптарына шайкештигин текшериңиз.

Ошол эле учурда, текшерүүлөрдүн негизги багыты системадагы маалыматтардын агымынын, негизинен, иштегендигине жана аягына жеткендигине гана эмес (бул функционалдык тестирлөөнүн бир бөлүгү болуп саналат), бирок көбүнчө маалыматтарды текшерүү жана валидациялоо болушу керек. күтүлгөн талаптарга ылайык келүү, аномалияларды аныктоо жана башка нерселер.

аспаптар

Мындай маалыматтарды контролдоо ыкмаларынын бири маалыматтарды иштеп чыгуунун ар бир этабында чынжыр текшерүүлөрдү уюштуруу болушу мүмкүн, адабиятта "маалымат чынжыр" деп аталат - булактан акыркы колдонууга чейинки маалыматтарды контролдоо. Текшерүүнүн бул түрлөрү көбүнчө SQL сурамдарын текшерүү жолу менен ишке ашырылат. Мындай суроо-талаптар мүмкүн болушунча жеңил болушу керек жана берилиштердин сапатынын айрым бөлүктөрүн текшерүү керек (таблицалардын метаберилиштери, бош сызыктар, NULL, синтаксистеги каталар - текшерүү үчүн талап кылынган башка атрибуттар).

Даяр (өзгөрбөс, бир аз өзгөрүлүүчү) маалымат топтомдорун колдонгон регрессиялык тестирлөөдө автотест коду маалыматтардын сапатына шайкештигин текшерүү үчүн даяр шаблондорду сактай алат (күтүлгөн таблица метаберилиштеринин сыпаттамалары; катар үлгүдөгү объекттер, алар тест учурунда туш келди тандалып алынган, ж.б.).

Ошондой эле, тестирлөө учурунда сиз Apache Airflow сыяктуу алкактарды колдонуп ETL тест процесстерин жазышыңыз керек, Apache Spark же ал тургай, кара кутуча булут түрү куралы GCP Dataprep, GCP Dataflow Жана башка. Бул жагдай тест-инженерди жогоруда аталган инструменттердин иштөө принциптерине сүңгүп, андан да эффективдүү функционалдык тестирлөө (мисалы, долбоордо болгон ETL процесстери) жүргүзүүгө жана аларды маалыматтарды текшерүү үчүн колдонууга мажбурлайт. Атап айтканда, Apache Airflow популярдуу аналитикалык маалымат базалары менен иштөө үчүн даяр операторлорго ээ, мисалы GCP BigQuery. Аны колдонуунун эң негизги мисалы буга чейин айтылган бул жерде, ошондуктан мен өзүмдү кайталабайм.

Даяр чечимдерден тышкары, өзүңүздүн техникаңызды жана куралдарыңызды ишке ашырууга эч ким тыюу салбайт. Бул долбоор үчүн гана пайдалуу болбостон, маалыматтын сапаты боюнча инженердин өзү үчүн да пайдалуу болот, ал ошону менен өзүнүн техникалык горизонтторун жана коддоо көндүмдөрүн жакшыртат.

Бул реалдуу долбоордо кантип иштейт

"Маалымат тизмеги", ETL жана бардык жерде текшерүүлөр жөнүндө акыркы абзацтардын жакшы иллюстрациясы чыныгы долбоорлордун биринен төмөнкү процесс болуп саналат:

Чоң жана кичине маалыматтарды текшерүүчү: тенденциялар, теория, менин окуям

Бул жерде ар кандай маалыматтар (табигый эле, биз тарабынан даярдалган) биздин системанын киргизүү “воронкасына” кирет: жарактуу, жараксыз, аралаш ж. жана акыркы сактагычка жайгаштырылат, андан өз кезегинде аналитика, маалымат маркеттерин куруу жана бизнес түшүнүктөрүн издөө жүргүзүлөт. Мындай системада ETL процесстеринин иштешин функционалдык текшербестен, биз трансформацияга чейинки жана андан кийинки маалыматтардын сапатына, ошондой эле аналитикага чыгууга көңүл бурабыз.

Жогоруда айтылгандарды жалпылап айтсам, мен иштеген жерлерге карабастан, бардык жерде мен төмөнкү өзгөчөлүктөргө ээ болгон Data долбоорлоруна катыштым:

  • Автоматташтыруу аркылуу гана сиз кээ бир учурларды сынап, бизнес үчүн алгылыктуу чыгаруу циклине жетише аласыз.
  • Мындай долбоордун тестирлөөчүсү команданын эң кадырлуу мүчөлөрүнүн бири болуп саналат, анткени ал катышуучулардын ар бирине чоң пайда алып келет (тестирөөнү тездетүү, Data Scientistдин жакшы маалыматтары, алгачкы этаптарда кемчиликтерди аныктоо).
  • Өзүңүздүн аппараттык жабдыңызда же булуттарда иштейсизби, бул маанилүү эмес - бардык ресурстар Hortonworks, Cloudera, Mesos, Kubernetes ж.б.
  • Долбоорлор микросервис ыкмасына негизделген, бөлүштүрүлгөн жана параллелдүү эсептөөлөр басымдуулук кылат.

Маалыматтын сапаты тармагында тестирлөө жүргүзүүдө тестирлөөчү адис өзүнүн профессионалдык көңүлүн буюмдун кодуна жана колдонулган куралдарга бурганын белгилегим келет.

Берилиштердин сапатын тестирлөөнүн айырмалоочу өзгөчөлүктөрү

Мындан тышкары, мен өзүм үчүн Data (Big Data) долбоорлорунда (системаларында) жана башка чөйрөлөрдө тестирлөөнүн айырмалоочу өзгөчөлүктөрүн аныктадым (дароо эле алар АЯБАЙ жалпыланган жана бир гана субъективдүү деп эскертем:

Чоң жана кичине маалыматтарды текшерүүчү: тенденциялар, теория, менин окуям

Пайдалуу шилтемелер

  1. теориясы: DAMA-DMBOK: Маалыматтарды башкаруу органы: 2-басылышы.
  2. Машыгуу борбору EPAM 
  3. Берилиштердин сапаты боюнча инженерге сунушталган материалдар:
    1. Степик боюнча акысыз курс: Маалымат базаларына киришүү
    2. LinkedIn Learning боюнча курс: Data Science Foundations: Data Engineering.
    3. Макалалар:
    4. Videos:

жыйынтыктоо

Маалыматтардын сапаты абдан жаш келечектүү багыт, анын бир бөлүгү болуу стартаптын бөлүгү болуу дегенди билдирет. Берилиштердин сапатына ээ болгондон кийин, сиз көп сандагы заманбап, суроо-талапка ээ болгон технологияларга чөмүлөсүз, бирок эң негизгиси, идеяларыңызды иштеп чыгуу жана ишке ашыруу үчүн сизге чоң мүмкүнчүлүктөр ачылат. Сиз үзгүлтүксүз өркүндөтүү ыкмасын долбоордо гана эмес, адис катары тынымсыз өнүгүп, өзүңүз үчүн да колдоно аласыз.

Source: www.habr.com

Комментарий кошуу