Үлкен және кіші деректерді тексеруші: трендтер, теория, менің оқиғам

Барлығына сәлем, менің атым Александр, мен деректердің сапасын тексеретін деректер сапасының инженерімін. Бұл мақалада менің бұған қалай келгенім және неліктен 2020 жылы бұл сынақ аймағы толқынның шыңында болғаны туралы айтылады.

Үлкен және кіші деректерді тексеруші: трендтер, теория, менің оқиғам

Жаһандық тренд

Бүгінгі әлем тағы бір технологиялық революцияны бастан өткеруде, оның бір аспектісі жинақталған деректерді компаниялардың барлық түрлерінің өздерінің сату, пайда және PR-ды жылжыту үшін пайдалануы болып табылады. Жақсы (сапалы) деректердің, сондай-ақ одан ақша таба алатын білікті мидың болуы (дұрыс өңдеу, визуализациялау, машиналық оқыту үлгілерін құрастыру және т.б.) бүгінде көптеген адамдар үшін табыстың кілтіне айналған сияқты. Егер осыдан 15-20 жыл бұрын ірі компаниялар негізінен деректерді жинақтау және монетизациялаумен қарқынды жұмыстармен айналысса, бүгінде бұл барлық дерлік ақыл-ойы бар адамдардың ісі.

Осыған байланысты, бірнеше жыл бұрын бүкіл әлем бойынша жұмыс іздеуге арналған барлық порталдар Data Scientists үшін бос орындармен толтырыла бастады, өйткені барлығы осындай маманды жалдаған кезде машиналық оқытудың супермоделін құруға болатынына сенімді болды. , болашақты болжаңыз және компания үшін «кванттық секіріс» жасаңыз. Уақыт өте келе адамдар бұл тәсіл ешқашан еш жерде жұмыс істемейтінін түсінді, өйткені мұндай мамандардың қолына түсетін барлық деректер модельдерді оқытуға жарамайды.

Ал Data Scientists сұраныстары басталды: «Осылардан және мыналардан көбірек деректерді сатып алайық...», «Бізде деректер жеткіліксіз...», «Бізге қосымша деректер керек, жақсырақ сапалысы...» . Осы сұраныстардың негізінде деректердің бір немесе басқа жиынтығын иеленетін компаниялар арасында көптеген өзара әрекеттесулер құрыла бастады. Әрине, бұл процесті техникалық ұйымдастыруды талап етті - деректер көзіне қосылу, оны жүктеу, оның толық жүктелгенін тексеру және т.б. Мұндай процестердің саны өсе бастады, және бүгінгі күні бізде басқа түрдегі қажеттілік өте үлкен. мамандар - Деректер сапасы инженерлері - жүйедегі деректер ағынын (деректер құбырлары), кіріс және шығыс деректер сапасын бақылайтын және олардың жеткіліктілігі, тұтастығы және басқа сипаттамалары туралы қорытынды жасайтындар.

Деректер сапасы инженерлерінің тенденциясы бізге АҚШ-тан келді, онда капитализмнің қызып тұрған дәуірінде ешкім деректер үшін шайқаста жеңілуге ​​дайын емес. Төменде мен АҚШ-тағы ең танымал екі жұмыс іздеу сайтының скриншоттарын ұсындым: www.monster.com и www.dice.com — онда 17 жылғы 2020 наурыздағы жағдай бойынша: Деректер сапасы және деректер ғалымы кілт сөздері арқылы алынған жарияланған бос жұмыс орындарының саны туралы мәліметтер көрсетіледі.

www.monster.com

Деректер мамандары – 21416 бос орын
Деректер сапасы – 41104 бос жұмыс орны

Үлкен және кіші деректерді тексеруші: трендтер, теория, менің оқиғам
Үлкен және кіші деректерді тексеруші: трендтер, теория, менің оқиғам

www.dice.com

Деректер ғалымдары – 404 бос орын
Деректер сапасы – 2020 бос орындар

Үлкен және кіші деректерді тексеруші: трендтер, теория, менің оқиғам
Үлкен және кіші деректерді тексеруші: трендтер, теория, менің оқиғам

Бұл мамандықтар бір-бірімен бәсекелесе алмайтыны анық. Скриншоттармен мен жай ғана еңбек нарығындағы ағымдағы жағдайды деректер сапасы жөніндегі инженерлерге сұраныстар тұрғысынан суреттегім келді, олар қазір Data Scients-ке қарағанда әлдеқайда қажет.

2019 жылдың маусымында EPAM заманауи АТ нарығының қажеттіліктеріне жауап бере отырып, деректер сапасын жеке тәжірибеге бөлді. Деректер сапасының инженерлері күнделікті жұмыс барысында деректерді басқарады, оның жаңа жағдайлар мен жүйелердегі әрекетін тексереді, деректердің өзектілігін, оның жеткіліктілігі мен өзектілігін бақылайды. Осының барлығымен, практикалық мағынада деректер сапасы инженерлері классикалық функционалды тестілеуге аз уақыт бөледі, БІРАҚ бұл жобаға байланысты (төменде мысал келтіремін).

Деректер сапасы жөніндегі инженердің міндеттері тек дерекқор кестелеріндегі «нөлдерді, сандарды және қосындыларды» қолмен/автоматты түрде тексерумен ғана шектелмейді, сонымен қатар тұтынушының бизнес қажеттіліктерін терең түсінуді және тиісінше қол жетімді деректерді түрлендіру мүмкіндігін талап етеді. пайдалы іскерлік ақпарат.

Деректер сапасы теориясы

Үлкен және кіші деректерді тексеруші: трендтер, теория, менің оқиғам

Мұндай инженердің рөлін толығырақ елестету үшін теорияда деректер сапасының не екенін анықтайық.

Деректер сапасы — Деректерді басқару кезеңдерінің бірі (біз сізге өз бетінше оқуға қалдыратын бүкіл әлем) және келесі критерийлер бойынша деректерді талдауға жауапты:

Үлкен және кіші деректерді тексеруші: трендтер, теория, менің оқиғам
Менің ойымша, әрбір нүктені шешудің қажеті жоқ (теориялық тұрғыдан олар «деректер өлшемдері» деп аталады), олар суретте өте жақсы сипатталған. Бірақ тестілеу процесінің өзі бұл мүмкіндіктерді сынақ жағдайларына қатаң көшіріп, оларды тексеруді білдірмейді. Деректердің сапасында, тестілеудің кез келген басқа түрлеріндегі сияқты, ең алдымен бизнес шешімдерін қабылдайтын жобаға қатысушылармен келісілген деректер сапасына қойылатын талаптарды негіздеу қажет.

«Деректердің сапасы» жобасына байланысты инженер әртүрлі функцияларды орындай алады: деректер сапасын үстірт бағалайтын қарапайым автоматтандырылған тестілеушіден бастап, жоғарыда аталған критерийлер бойынша деректерді терең профильдеумен айналысатын адамға дейін.

Деректерді басқару, деректер сапасы және оған қатысты процестердің өте егжей-тегжейлі сипаттамасы аталған кітапта жақсы сипатталған «DAMA-DMBOK: Деректерді басқару білім қоры: 2-ші басылым». Мен бұл кітапты осы тақырыпқа кіріспе ретінде ұсынамын (оған сілтемені мақаланың соңында таба аласыз).

Менің тарихым

IT индустриясында мен өнім компанияларындағы кіші сынақшыдан EPAM-да деректер сапасы жөніндегі жетекші инженерге дейін жұмыс істедім. Тестілеуші ​​ретінде екі жылдай жұмыс істегеннен кейін мен тестілеудің барлық түрлерін орындағаныма сенімді болдым: регрессия, функционалдық, стресс, тұрақтылық, қауіпсіздік, UI және т.б. - және көптеген сынақ құралдарын қолданып көрдім. үш бағдарламалау тілінде бір уақытта жұмыс істеді: Java, Scala, Python.

Өткенге қарасам, менің дағдыларымның неліктен соншалықты әртүрлі екенін түсінемін — мен үлкен және кіші деректерге негізделген жобаларға қатыстым. Бұл мені өсу үшін көптеген құралдар мен мүмкіндіктер әлеміне әкелді.

Жаңа білім мен дағдыларды алудың әртүрлі құралдары мен мүмкіндіктерін бағалау үшін «Деректер және AI» әлеміндегі ең танымалдарын көрсететін төмендегі суретті қараңыз.

Үлкен және кіші деректерді тексеруші: трендтер, теория, менің оқиғам
Мұндай иллюстрацияны жыл сайын бағдарламалық жасақтаманы жасаудан шыққан атақты венчурлық капиталисттердің бірі Мэтт Тюрк құрастырады. Мұнда байланыс оның блогына және венчурлық капитал фирмасы, онда ол серіктес болып жұмыс істейді.

Мен жобада жалғыз сынаушы болған кезде немесе кем дегенде жобаның басында кәсіби тұрғыдан тез өстім. Дәл осындай сәтте сіз бүкіл тестілеу процесіне жауапты болуыңыз керек және сізде шегінуге мүмкіндік жоқ, тек алға. Басында бұл қорқынышты болды, бірақ қазір мұндай сынақтың барлық артықшылықтары мен үшін анық:

  • Сіз бүкіл командамен бұрын-соңды болмағандай сөйлесе бастайсыз, өйткені байланыс үшін прокси жоқ: сынақ менеджері де, басқа тестерлер де жоқ.
  • Жобаға ену керемет тереңдей түседі және сізде жалпы және егжей-тегжейлі барлық компоненттер туралы ақпарат бар.
  • Әзірлеушілер сізге «не істеп жатқанын білмейтін тестілеуші ​​жігіт» ретінде емес, автоматтандырылған сынақтарымен және бағдарламаның белгілі бір құрамдас бөлігінде пайда болатын қателерді күтуімен командаға керемет пайда әкелетін тең тұлға ретінде қарайды. өнім.
  • Нәтижесінде сіз тиімдірек, біліктірек және сұранысқа ие боласыз.

Жоба ұлғайған сайын мен 100% жағдайда жаңа тестілеушілерге тәлімгер болдым, оларға сабақ бердім және өзім үйренген білімімді бердім. Сонымен қатар, жобаға байланысты мен әрқашан басшылықтан автотест бойынша мамандардың ең жоғары деңгейін ала алмадым және оларды автоматтандыруға үйрету (қызығушылар үшін) немесе күнделікті қызметте (құралдар) пайдалану үшін құралдарды жасау қажет болды. деректерді генерациялауға және оны жүйеге жүктеуге арналған , жүктеме сынағы/тұрақтылық тестілеуін «тез» орындау құралы және т.б.).

Нақты жобаның мысалы

Өкінішке орай, жария етпеу міндеттеріне байланысты мен жұмыс істеген жобалар туралы егжей-тегжейлі айта алмаймын, бірақ жобалардың бірінде деректер сапасы бойынша инженердің типтік тапсырмаларын мысалдар келтіремін.

Жобаның мәні оның негізінде машиналық оқыту үлгілерін оқыту үшін деректерді дайындау платформасын жүзеге асыру болып табылады. Тапсырыс беруші АҚШ-тан келген ірі фармацевтикалық компания болды. Техникалық тұрғыдан бұл кластер болды Kubernetes, дейін көтеріледі AWS EC2 бірнеше микросервистері және EPAM негізгі ашық бастапқы жобасы бар даналар - легион, нақты тапсырыс берушінің қажеттіліктеріне бейімделген (қазір жоба қайта құрылды одаху). ETL процестері арқылы ұйымдастырылды Apache ауа ағыны және деректер көшірілді Salesforce тұтынушылар жүйелері AWS S3 Шелектер. Содан кейін платформаға машиналық оқыту моделінің Docker кескіні орналастырылды, ол жаңа деректер бойынша оқытылды және REST API интерфейсін пайдалана отырып, бизнесті қызықтыратын және нақты мәселелерді шешетін болжамдар жасады.

Көрнекі түрде бәрі келесідей болды:

Үлкен және кіші деректерді тексеруші: трендтер, теория, менің оқиғам
Бұл жобада көптеген функционалдық сынақтар болды және мүмкіндіктерді дамыту жылдамдығын және шығару циклінің (екі апталық спринттер) қарқынын сақтау қажеттілігін ескере отырып, ең маңызды компоненттерді тестілеуді автоматтандыру туралы дереу ойлану керек болды. жүйе. Kubernetes негізіндегі платформаның көпшілігінде енгізілген автотесттер қамтылды Robot Framework + Python, бірақ оларды қолдау және кеңейту қажет болды. Сонымен қатар, тұтынушыға ыңғайлы болу үшін кластерге орналастырылған машиналық оқыту үлгілерін басқару үшін GUI жасалды, сонымен қатар модельдерді оқыту үшін деректерді қайда және қайда тасымалдау керектігін көрсету мүмкіндігі бар. Бұл кеңейтілген қосымша автоматтандырылған функционалды тестілеуді кеңейтуге әкелді, ол негізінен REST API қоңыраулары және 2-соңғы UI сынақтарының аз саны арқылы жасалды. Барлық осы қозғалыстың экваторында бізге өнім нұсқаларын қабылдау тестілеуімен және келесі шығарылымды қабылдауға қатысты тұтынушымен байланысқан тамаша жұмыс жасаған қолмен сынақшы қосылды. Сонымен қатар, жаңа маманның келуіне байланысты біз жұмысымызды құжаттай алдық және бірден автоматтандыру қиын болатын бірнеше маңызды қолмен тексерулерді қоса алдық.

Ақырында, біз платформадан және оның үстінен GUI қондырмасынан тұрақтылыққа қол жеткізгеннен кейін, Apache Airflow DAG көмегімен ETL құбырларын салуды бастадық. Деректер сапасын автоматтандырылған тексеру ETL процесінің нәтижелері бойынша деректерді тексеретін арнайы Airflow DAG жазу арқылы жүзеге асырылды. Осы жобаның бір бөлігі ретінде біз бақытты болдық және тұтынушы бізге сынақтан өткен анонимді деректер жиынына қол жеткізуге мүмкіндік берді. Біз деректер жолының түрлеріне сәйкестігін, бұзылған деректердің болуын, жазбалардың алдындағы және кейінгі жазбалардың жалпы санын, біріктіру үшін ETL процесі жасаған түрлендірулерді салыстыруды, баған атауларын өзгертуді және басқаларды тексердік. Бұған қоса, бұл тексерулер әртүрлі деректер көздеріне масштабталды, мысалы, SalesForce-ке қосымша, MySQL-ге де.

Деректердің сапасын түпкілікті тексерулер S3 деңгейінде жүргізілді, мұнда олар сақталған және машиналық оқыту үлгілерін үйрету үшін пайдалануға дайын болды. S3 Bucket-те орналасқан соңғы CSV файлынан деректерді алу және оны тексеру үшін код көмегімен жазылды boto3 клиенттері.

Сондай-ақ тұтынушыдан деректердің бір бөлігін бір S3 шелекінде және бір бөлігін басқасында сақтау талабы болды. Бұл сондай-ақ мұндай сұрыптаудың сенімділігін тексеру үшін қосымша тексерулер жазуды талап етті.

Басқа жобалардан жалпы тәжірибе

Деректер сапасы жөніндегі инженер әрекеттерінің ең жалпы тізімінің мысалы:

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

Сонымен қатар, тексерулердің басты назары жүйедегі деректер ағынының негізінен жұмыс істегеніне және аяқталуына (функционалдық тестілеудің бөлігі болып табылатын) ғана емес, көбінесе деректерді тексеруге және растауға бағытталған болуы керек. күтілетін талаптарға сәйкестік, ауытқуларды анықтау және басқа да нәрселер.

Құралдар

Мұндай деректерді бақылау әдістерінің бірі деректерді өңдеудің әрбір кезеңінде тізбекті тексерулерді ұйымдастыру болуы мүмкін, әдебиетте «деректер тізбегі» деп аталады - деректерді көзден түпкілікті пайдалану нүктесіне дейін бақылау. Тексерудің бұл түрлері көбінесе SQL тексеру сұрауларын жазу арқылы жүзеге асырылады. Мұндай сұраулар мүмкіндігінше жеңіл болуы және деректер сапасының жеке бөліктерін (кестелер метадеректері, бос жолдар, NULL мәндері, синтаксистегі қателер - тексеру үшін қажет басқа атрибуттар) тексеру керек екені анық.

Дайын (өзгермейтін, аздап өзгеретін) деректер жиынын пайдаланатын регрессиялық тестілеу жағдайында автотест коды деректердің сапаға сәйкестігін тексеру үшін дайын үлгілерді сақтай алады (күтілетін кесте метадеректерінің сипаттамасы; болуы мүмкін жол үлгілерінің нысандары). сынақ кезінде кездейсоқ таңдалған және т.б. ).

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

Дайын шешімдерден басқа, ешкім сізге өзіңіздің техникаларыңыз бен құралдарыңызды енгізуге тыйым салмайды. Бұл жоба үшін ғана емес, сонымен қатар деректер сапасы жөніндегі инженердің өзі үшін де пайдалы болады, ол осылайша өзінің техникалық көкжиегі мен кодтау дағдыларын жетілдіреді.

Бұл нақты жобада қалай жұмыс істейді

«Деректер тізбегі», ETL және барлық жерде тексерулер туралы соңғы абзацтардың жақсы суреті нақты жобалардың біріндегі келесі процесс болып табылады:

Үлкен және кіші деректерді тексеруші: трендтер, теория, менің оқиғам

Мұнда әртүрлі деректер (табиғи, біз дайындаған) біздің жүйенің кіріс «шұңқырына» енеді: жарамды, жарамсыз, аралас және т.б., содан кейін олар сүзгіден өтеді және аралық жадта аяқталады, содан кейін олар қайтадан бірнеше түрлендірулерден өтеді. және соңғы қоймаға орналастырылады, одан өз кезегінде аналитика, деректер маркеттерін құру және бизнес түсініктерін іздеу жүзеге асырылады. Мұндай жүйеде ETL процестерінің жұмысын функционалды түрде тексермей, біз трансформацияларға дейінгі және кейінгі деректер сапасына, сондай-ақ аналитикаға шығуға назар аударамыз.

Жоғарыда айтылғандарды қорытындылайтын болсақ, мен жұмыс істеген жерлеріме қарамастан, мен келесі мүмкіндіктерді бөлісетін деректер жобаларына қатыстым:

  • Тек автоматтандыру арқылы сіз кейбір жағдайларды тексеріп, бизнес үшін қолайлы шығарылым цикліне қол жеткізе аласыз.
  • Мұндай жобадағы тестілеуші ​​команданың ең құрметті мүшелерінің бірі болып табылады, өйткені ол қатысушылардың әрқайсысына үлкен пайда әкеледі (тестілеуді жеделдету, Data Scientist-тің жақсы деректері, бастапқы кезеңдердегі ақауларды анықтау).
  • Сіздің жеке жабдықта немесе бұлтта жұмыс істейтініңіз маңызды емес - барлық ресурстар Hortonworks, Cloudera, Mesos, Kubernetes және т.б. сияқты кластерге абстракцияланады.
  • Жобалар микросервис тәсіліне негізделген, бөлінген және параллельді есептеулер басым.

Деректер сапасы саласында тестілеуді жүргізген кезде тестілеуші ​​маман өзінің кәсіби назарын өнімнің кодына және қолданылатын құралдарға аударатынын атап өткім келеді.

Деректер сапасын тестілеудің ерекше белгілері

Сонымен қатар, мен өзім үшін деректер (Үлкен деректер) жобаларында (жүйелерінде) және басқа салаларда тестілеудің келесі ерекшеліктерін анықтадым (олар өте жалпыланған және тек субъективті екенін бірден ескертемін):

Үлкен және кіші деректерді тексеруші: трендтер, теория, менің оқиғам

Пайдалы сілтемелер

  1. Теория: DAMA-DMBOK: Деректерді басқару білім қоры: 2-ші басылым.
  2. Оқу орталығы EPAM 
  3. Деректер сапасы жөніндегі инженерге ұсынылатын материалдар:
    1. Степик бойынша тегін курс: Мәліметтер базасына кіріспе
    2. LinkedIn Learning курсы: Деректер ғылымының негіздері: деректер инженериясы.
    3. Мақалалар:
    4. Бейне:

қорытынды

Деректер сапасы Бұл өте жас перспективалы бағыт, оның бір бөлігі болу стартаптың бір бөлігі болу дегенді білдіреді. Деректер сапасына енгеннен кейін сіз заманауи, сұранысқа ие технологиялардың үлкен санына еніп кетесіз, бірақ ең бастысы, сіздің идеяларыңызды жасау және жүзеге асыру үшін үлкен мүмкіндіктер ашылады. Сіз үздіксіз жетілдіру тәсілін тек жобада ғана емес, сонымен қатар маман ретінде үздіксіз дамып отыратын өзіңіз үшін де қолдана аласыз.

Ақпарат көзі: www.habr.com

пікір қалдыру