ProHoster > Օրագիր > Վարչակազմը > Ովքե՞ր են տվյալների ինժեներները, և ինչպե՞ս եք դուք դառնում այդպիսին:
Ովքե՞ր են տվյալների ինժեներները, և ինչպե՞ս եք դուք դառնում այդպիսին:
Կրկին ողջույն! Հոդվածի վերնագիրն ինքնին խոսում է. Դասընթացի մեկնարկին ընդառաջ Տվյալների ինժեներ Առաջարկում ենք հասկանալ, թե ովքեր են տվյալների ինժեներները: Հոդվածում կան շատ օգտակար հղումներ։ Ուրախ ընթերցանություն:
Պարզ ուղեցույց այն մասին, թե ինչպես բռնել Տվյալների ինժեներական ալիքը և թույլ չտալ, որ այն ձեզ քաշի դեպի անդունդ:
Թվում է, թե այս օրերին բոլորը ցանկանում են դառնալ տվյալների գիտնական: Բայց ինչ վերաբերում է տվյալների ճարտարագիտությանը: Ըստ էության, սա տվյալների վերլուծաբանի և տվյալների գիտնականի մի տեսակ հիբրիդ է. Տվյալների ինժեները սովորաբար պատասխանատու է աշխատանքային հոսքերի, մշակման խողովակաշարերի և ETL գործընթացների կառավարման համար. Այս գործառույթների կարևորության պատճառով սա ներկայումս ևս մեկ հայտնի մասնագիտական ժարգոն է, որն ակտիվորեն թափ է հավաքում:
Բարձր աշխատավարձերը և մեծ պահանջարկը միայն մի փոքր մասն են այն բանի, ինչը դարձնում է այս աշխատանքը չափազանց գրավիչ: Եթե ցանկանում եք համալրել հերոսների շարքերը, երբեք ուշ չէ սկսել սովորել: Այս գրառման մեջ ես հավաքել եմ բոլոր անհրաժեշտ տեղեկությունները, որոնք կօգնեն ձեզ կատարել ձեր առաջին քայլերը:
Այսպիսով, եկեք սկսենք:
Ի՞նչ է տվյալների ճարտարագիտությունը:
Անկեղծ ասած, չկա ավելի լավ բացատրություն, քան սա.
«Գիտնականը կարող է նոր աստղ հայտնաբերել, բայց չի կարող ստեղծել: Նա պետք է խնդրի ինժեներին, որ դա անի իր փոխարեն»:
-Գորդոն Լինդսի Գլեգ
Այսպիսով, տվյալների ինժեների դերը բավականին նշանակալի է։
Ինչպես անունն է հուշում, տվյալների ճարտարագիտությունը վերաբերում է տվյալներին, մասնավորապես դրանց առաքմանը, պահպանմանը և մշակմանը: Ըստ այդմ, ինժեներների հիմնական խնդիրն է տվյալների համար հուսալի ենթակառուցվածքի ապահովումը։ Եթե նայենք AI-ի կարիքների հիերարխիային, տվյալների ճարտարագիտությունը զբաղեցնում է առաջին 2-3 փուլերը. հավաքագրում, տեղափոխում և պահպանում, տվյալների պատրաստում.
Ի՞նչ է անում տվյալների ինժեները:
Մեծ տվյալների հայտնվելով պատասխանատվության շրջանակը կտրուկ փոխվել է: Եթե նախկինում այս փորձագետները գրում էին մեծ SQL հարցումներ և թորում էին տվյալներ՝ օգտագործելով այնպիսի գործիքներ, ինչպիսիք են Informatica ETL, Pentaho ETL, Talend, այժմ տվյալների ինժեներների պահանջներն ավելացել են:
Տվյալների ինժեների պաշտոնի համար բաց թափուր աշխատատեղեր ունեցող ընկերություններից շատերն ունեն հետևյալ պահանջները.
SQL-ի և Python-ի գերազանց իմացություն։
Փորձ ամպային հարթակների, մասնավորապես Amazon Web Services-ի հետ:
Java/Scala-ի իմացությունը ցանկալի է։
SQL և NoSQL տվյալների բազաների լավ իմացություն (տվյալների մոդելավորում, տվյալների պահեստավորում):
Նկատի ունեցեք, որ սրանք միայն հիմնական բաներն են: Այս ցանկից կարելի է ենթադրել, որ տվյալների ինժեներները ծրագրային ապահովման մշակման և բեքենդի ոլորտի մասնագետներ են։
Օրինակ, եթե ընկերությունը սկսում է մեծ քանակությամբ տվյալներ ստեղծել տարբեր աղբյուրներից, ապա որպես տվյալների ինժեների ձեր խնդիրն է կազմակերպել տեղեկատվության հավաքագրումը, դրա մշակումը և պահպանումը:
Այս դեպքում օգտագործվող գործիքների ցանկը կարող է տարբերվել, ամեն ինչ կախված է այս տվյալների ծավալից, դրա ստացման արագությունից և տարասեռությունից: Ընկերությունների մեծամասնությունն ընդհանրապես չի զբաղվում մեծ տվյալների հետ, ուստի որպես կենտրոնացված պահոց, այսպես կոչված տվյալների պահեստ, կարող եք օգտագործել SQL տվյալների բազան (PostgreSQL, MySQL և այլն)՝ սկրիպտների փոքր հավաքածուով, որոնք սնուցում են տվյալները: պահեստը։
ՏՏ հսկաները, ինչպիսիք են Google-ը, Amazon-ը, Facebook-ը կամ Dropbox-ը, ավելի բարձր պահանջներ ունեն՝ Python-ի, Java-ի կամ Scala-ի իմացություն:
Փորձ մեծ տվյալների հետ՝ Hadoop, Spark, Kafka:
Ալգորիթմների և տվյալների կառուցվածքների իմացություն:
Հասկանալով բաշխված համակարգերի հիմունքները:
Տվյալների վիզուալիզացիայի գործիքների հետ աշխատելու փորձը, ինչպիսիք են Tableau-ը կամ ElasticSearch-ը, կլինի առավելություն:
Այսինքն՝ հստակ տեղաշարժ կա դեպի մեծ տվյալներ, մասնավորապես՝ բարձր բեռների տակ դրանց մշակման մեջ։ Այս ընկերությունները մեծացրել են համակարգի սխալների հանդուրժողականության պահանջները:
Տվյալների ինժեներներ ընդդեմ. տվյալների գիտնականներ
Լավ, դա պարզ և զվարճալի համեմատություն էր (ոչ մի անձնական բան), բայց իրականում դա շատ ավելի բարդ է:
Նախ, դուք պետք է իմանաք, որ շատ երկիմաստություն կա տվյալների գիտնականի և տվյալների ինժեների դերերի և հմտությունների սահմանման մեջ: Այսինքն, դուք հեշտությամբ կարող եք շփոթվել, թե ինչ հմտություններ են անհրաժեշտ տվյալների հաջողակ ինժեներ լինելու համար: Իհարկե, կան որոշակի հմտություններ, որոնք համընկնում են երկու դերերի հետ: Բայց կան նաև մի շարք տրամագծորեն հակառակ հմտություններ:
Տվյալների գիտությունը լուրջ բիզնես է, բայց մենք շարժվում ենք դեպի ֆունկցիոնալ տվյալների գիտության աշխարհ, որտեղ պրակտիկանտները կարող են անել իրենց սեփական վերլուծությունները: Տվյալների խողովակաշարերը և տվյալների ինտեգրված կառուցվածքները միացնելու համար ձեզ անհրաժեշտ են տվյալների ինժեներներ, այլ ոչ թե տվյալների գիտնականներ:
Արդյո՞ք տվյալների ինժեներն ավելի պահանջված է, քան տվյալների գիտնականը:
- Այո, քանի որ նախքան գազարով տորթ պատրաստելը, նախ պետք է գազար հավաքել, մաքրել և պաշարել:
Տվյալների ինժեները ավելի լավ է հասկանում ծրագրավորումը, քան ցանկացած տվյալների գիտնական, բայց երբ խոսքը վերաբերում է վիճակագրությանը, ճիշտ հակառակն է:
Բայց ահա տվյալների ինժեների առավելությունը.
Առանց նրա, նախատիպի մոդելի արժեքը, որն ամենից հաճախ բաղկացած է Python ֆայլի սարսափելի որակի կոդի կտորից, որը ստացվել է տվյալների գիտնականից և ինչ-որ կերպ արդյունք է տալիս, ձգտում է զրոյի:
Առանց տվյալների ինժեների այս կոդը երբեք չի դառնա նախագիծ, և ոչ մի բիզնես խնդիր արդյունավետորեն չի լուծվի: Տվյալների ինժեները փորձում է այս ամենը վերածել արտադրանքի։
Հիմնական տեղեկատվություն, որը պետք է իմանա տվյալների ինժեները
Այսպիսով, եթե այս աշխատանքը լույս է բերում ձեր մեջ, և դուք խանդավառ եք, կարող եք սովորել այն, կարող եք տիրապետել բոլոր անհրաժեշտ հմտություններին և դառնալ իսկական ռոք աստղ տվյալների ճարտարագիտության ոլորտում: Եվ, այո, դուք կարող եք դա անել նույնիսկ առանց ծրագրավորման հմտությունների կամ այլ տեխնիկական գիտելիքների: Դժվար է, բայց հնարավոր!
Որո՞նք են առաջին քայլերը:
Դուք պետք է ընդհանուր պատկերացում ունենաք, թե ինչն ինչ է:
Առաջին հերթին տվյալների ճարտարագիտությունը վերաբերում է համակարգչային գիտությանը: Ավելի կոնկրետ, դուք պետք է հասկանաք արդյունավետ ալգորիթմներ և տվյալների կառուցվածքներ: Երկրորդ, քանի որ տվյալների ինժեներները աշխատում են տվյալների հետ, անհրաժեշտ է հասկանալ տվյալների բազաների սկզբունքները և դրանց հիմքում ընկած կառուցվածքները:
Օրինակ, սովորական B-tree SQL տվյալների բազաները հիմնված են B-Tree տվյալների կառուցվածքի վրա, ինչպես նաև ժամանակակից բաշխված պահոցներում, LSM-Tree-ում և հեշ աղյուսակների այլ փոփոխություններով:
*Այս քայլերը հիմնված են հիանալի հոդվածի վրա Ադիլյա Խաշտամովա. Այսպիսով, եթե ռուսերեն գիտեք, աջակցեք այս հեղինակին և կարդացեք նրա գրառումը.
1. Ալգորիթմներ և տվյալների կառուցվածքներ
Տվյալների ճիշտ կառուցվածքի օգտագործումը կարող է զգալիորեն բարելավել ալգորիթմի աշխատանքը: Իդեալում, մենք բոլորս պետք է սովորենք մեր դպրոցներում տվյալների կառուցվածքների և ալգորիթմների մասին, բայց դա հազվադեպ է լուսաբանվում: Ամեն դեպքում, երբեք ուշ չէ ծանոթանալու համար։
Այսպիսով, ահա իմ սիրած անվճար դասընթացները տվյալների կառուցվածքները և ալգորիթմները սովորելու համար.
Բացի այդ, մի մոռացեք ալգորիթմների վերաբերյալ Թոմաս Կորմանի դասական աշխատանքի մասին. Ալգորիթմների ներածություն. Սա կատարյալ հղում է, երբ դուք պետք է թարմացնեք ձեր հիշողությունը:
Ձեր հմտությունները բարելավելու համար օգտագործեք Leetcode.
Կարող եք նաև սուզվել տվյալների շտեմարանների աշխարհ YouTube-ում Կարնեգի Մելոն համալսարանի զարմանալի տեսանյութերով.
Մեր ամբողջ կյանքը տվյալներ են։ Եվ այս տվյալները տվյալների բազայից հանելու համար հարկավոր է «խոսել» նույն լեզվով:
SQL (Structured Query Language) տվյալների տիրույթում հաղորդակցման լեզուն է: Անկախ նրանից, թե ինչ է ասում, SQL-ն ապրել է, կենդանի է և դեռ շատ երկար է ապրելու:
Եթե դուք երկար ժամանակ մշակման մեջ եք, հավանաբար նկատել եք, որ SQL-ի մոտալուտ մահվան մասին լուրերը պարբերաբար հայտնվում են: Լեզուն մշակվել է 70-ականների սկզբին և դեռ շատ տարածված է վերլուծաբանների, մշակողների և պարզապես էնտուզիաստների շրջանում:
Առանց SQL-ի իմացության, տվյալների ճարտարագիտության մեջ անելիք չկա, քանի որ դուք անխուսափելիորեն պետք է հարցումներ ստեղծեք տվյալների առբերման համար: Բոլոր ժամանակակից մեծ տվյալների պահեստներն աջակցում են SQL.
Amazon RedShift
HP Vertica
Oracle
SQL Server
... և շատ ուրիշներ:
Բաշխված համակարգերում պահվող տվյալների մեծ շերտ վերլուծելու համար, ինչպիսիք են HDFS-ը, հորինվել են SQL շարժիչներ՝ Apache Hive, Impala և այլն: Տեսեք, դա ոչ մի տեղ չի գնում:
Ինչպե՞ս սովորել SQL: Պարզապես դա արեք գործնականում:
Դա անելու համար ես խորհուրդ կտայի ստուգել հիանալի ձեռնարկ, որն, ի դեպ, անվճար է Ռեժիմի վերլուծություն.
Այս դասընթացները առանձնահատուկ են դարձնում այն, որ դրանք ունեն ինտերակտիվ միջավայր, որտեղ դուք կարող եք գրել և գործարկել SQL հարցումները հենց ձեր բրաուզերում: Ռեսուրս Ժամանակակից SQL ավելորդ չի լինի. Եվ դուք կարող եք կիրառել այս գիտելիքները Leetcode առաջադրանքներ Տվյալների բազաներ բաժնում:
3. Ծրագրավորում Python-ում և Java/Scala-ում
Ինչու՞ պետք է սովորել Python ծրագրավորման լեզուն, ես արդեն գրել եմ հոդվածում Python vs R. Ընտրելով AI, ML և Data Science-ի լավագույն գործիքը. Ինչ վերաբերում է Java-ին և Scala-ին, ապա հսկայական քանակությամբ տվյալների պահպանման և մշակման գործիքների մեծ մասը գրված է այս լեզուներով: Օրինակ:
Ապաչե Կաֆկա (Սկալա)
Hadoop, HDFS (Java)
Apache Spark (Scala)
Apache Cassandra (Java)
HBase (Java)
Apache Hive (Java)
Հասկանալու համար, թե ինչպես են աշխատում այս գործիքները, դուք պետք է իմանաք, թե ինչ լեզուներով են դրանք գրված: Scala-ի ֆունկցիոնալ մոտեցումը թույլ է տալիս արդյունավետորեն լուծել տվյալների զուգահեռ մշակման խնդիրները: Python-ը, ցավոք, չի կարող պարծենալ արագությամբ և զուգահեռ մշակմամբ։ Ընդհանուր առմամբ, մի քանի լեզուների և ծրագրավորման պարադիգմների իմացությունը լավ է խնդիրների լուծման մոտեցումների լայնության համար:
Scala լեզվի մեջ սուզվելու համար կարող եք կարդալ Ծրագրավորում Scala-ում լեզվի հեղինակից։ Twitter-ը նաև լավ ներածական ուղեցույց է հրապարակել. Սկալայի դպրոց.
Ինչ վերաբերում է Python-ին, ես հավատում եմ Սահուն Python լավագույն միջին մակարդակի գիրքը.
4. Մեծ տվյալների հետ աշխատելու գործիքներ
Ահա մեծ տվյալների աշխարհում ամենատարածված գործիքների ցանկը.
Apache Spark- ը
Apache Kafka
Apache Hadoop (HDFS, HBase, Hive)
Apache Cassandra
Դուք կարող եք ավելի շատ տեղեկություններ գտնել տվյալների մեծ բլոկների կառուցման մասին այս հրաշքի մեջ ինտերակտիվ միջավայր. Ամենահայտնի գործիքներն են Spark-ը և Kafka-ն: Դրանք միանշանակ արժե ուսումնասիրել, նպատակահարմար է հասկանալ, թե ինչպես են դրանք աշխատում ներսից։ Ջեյ Կրեպսը (Կաֆկայի համահեղինակ) մոնումենտալ աշխատություն է հրատարակել 2013թ Գրանցամատյան. Ինչ պետք է իմանա ծրագրակազմի մշակողը իրական ժամանակի տվյալների հավաքագրման մասինԻ դեպ, այս Թալմուդից հիմնական գաղափարներն օգտագործվել են Ապաչի Կաֆկայի ստեղծման համար։
Առնվազն մեկ ամպային հարթակի իմացությունը տվյալների ինժեների պաշտոնի համար դիմորդների հիմնական պահանջների ցանկում է: Գործատուները նախընտրում են Amazon Web Services-ը, որտեղ երկրորդ տեղում է Google-ի ամպային հարթակը, իսկ լավագույն եռյակը եզրափակում է Microsoft Azure-ը:
Դուք պետք է լավ իմացաք Amazon EC2, AWS Lambda, Amazon S3, DynamoDB:
6. Բաշխված համակարգեր
Մեծ տվյալների հետ աշխատելը ենթադրում է ինքնուրույն գործող համակարգիչների կլաստերների առկայություն, որոնց միջև հաղորդակցությունն իրականացվում է ցանցի միջոցով: Որքան մեծ է կլաստերը, այնքան մեծ է նրա անդամ հանգույցների ձախողման հավանականությունը: Տվյալների մեծ գիտնական դառնալու համար դուք պետք է հասկանաք բաշխված համակարգերի խնդիրները և առկա լուծումները: Այս տարածքը հին է և բարդ։
Էնդրյու Տանենբաումը համարվում է այս ոլորտում առաջամարտիկ։ Նրանց, ովքեր չեն վախենում տեսությունից, խորհուրդ եմ տալիս նրա գիրքը «Բաշխված համակարգեր», սկսնակների համար դա կարող է սարսափելի թվալ, բայց դա իսկապես կօգնի ձեզ կատարելագործել ձեր հմտությունները:
Տվյալների խողովակաշարերը մի բան են, առանց որի դուք չեք կարող ապրել որպես տվյալների ինժեներ:
Շատ ժամանակ տվյալների ինժեները կառուցում է այսպես կոչված տվյալների խողովակաշար, այսինքն՝ ստեղծում է տվյալների մի տեղից մյուսը փոխանցելու գործընթաց: Սրանք կարող են լինել հատուկ սկրիպտներ, որոնք գնում են արտաքին ծառայության API կամ կատարում են SQL հարցում, ավելացնում են տվյալները և դրանք դնում կենտրոնացված խանութում (տվյալների պահեստ) կամ տվյալների ոչ կառուցվածքային պահեստում (տվյալների լճեր):
Ամփոփելու համար. տվյալների ինժեների հիմնական ստուգաթերթը
Ամփոփելու համար հարկավոր է լավ հասկանալ հետևյալը.
Տեղեկատվական համակարգեր;
Ծրագրային ապահովման մշակում (Agile, DevOps, Design Techniques, SOA);
Բաշխված համակարգեր և զուգահեռ ծրագրավորում;
Տվյալների բազայի հիմունքներ - պլանավորում, նախագծում, շահագործում և խնդիրների վերացում;
Փորձերի ձևավորում - A/B թեստեր՝ հասկացությունները ապացուցելու, հուսալիությունը, համակարգի կատարողականությունը որոշելու և լավ լուծումներ արագ տրամադրելու հուսալի ուղիներ մշակելու համար:
Սրանք տվյալների ինժեներ դառնալու պահանջներից ընդամենը մի քանիսն են, այնպես որ սովորեք և հասկանաք տվյալների համակարգերը, տեղեկատվական համակարգերը, շարունակական առաքումը/տեղակայումը/ինտեգրումը, ծրագրավորման լեզուներ և համակարգչային գիտության այլ թեմաներ (ոչ բոլոր առարկայական ոլորտները):
Եվ վերջապես վերջին, բայց շատ կարևոր բանը, որ ուզում եմ ասել.
Տվյալների ինժեներ դառնալու ուղին այնքան էլ պարզ չէ, որքան կարող է թվալ: Նա չի ներում, նա հիասթափեցնում է, և դուք պետք է պատրաստ լինեք դրան: Այս ճանապարհորդության որոշ պահեր կարող են ձեզ մղել հանձնվելու: Բայց սա իրական աշխատանք է և ուսուցման գործընթաց:
Պարզապես մի շաքարավազ այն սկզբից: Ճամփորդության ողջ իմաստը հնարավորինս շատ բան սովորելն է և նոր մարտահրավերներին պատրաստ լինելը:
Ահա մի հիանալի նկար, որը ես հանդիպեցի, որը լավ ցույց է տալիս այս կետը.
Եվ այո, հիշեք, որ խուսափեք այրումից և հանգստից: Սա նույնպես շատ կարևոր է։ Հաջողություն!
Ի՞նչ կարծիքի եք հոդվածի մասին, ընկերներ: Մենք ձեզ հրավիրում ենք անվճար վեբինար, որը տեղի կունենա այսօր ժամը 20.00-ին։ Վեբինարի ընթացքում մենք կքննարկենք, թե ինչպես կարելի է ստեղծել տվյալների մշակման արդյունավետ և մասշտաբային համակարգ փոքր ընկերության կամ ստարտափի համար նվազագույն գնով: Որպես պրակտիկա՝ մենք կծանոթանանք Google Cloud տվյալների մշակման գործիքներին։ Կտեսնվենք!