Деректер инженерлері кімдер және сіз қалай бола аласыз?

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

Деректер инженерлері кімдер және сіз қалай бола аласыз?

Data Engineering толқынын қалай ұстау және оның сізді тұңғиыққа апаруына жол бермеу туралы қарапайым нұсқаулық.

Қазіргі уақытта барлығы Data Scientist болғысы келетін сияқты. Бірақ Data Engineering туралы не деуге болады? Негізінде, бұл деректер талдаушысы мен деректер зерттеушісінің гибридінің бір түрі; Деректер инженері әдетте жұмыс процестерін, өңдеу құбырларын және ETL процестерін басқаруға жауапты. Осы функциялардың маңыздылығына байланысты бұл қазіргі уақытта белсенді түрде қарқын алып жатқан тағы бір танымал кәсіби жаргон.

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

Сонымен, бастайық!

Data Engineering дегеніміз не?

Шынымды айтсам, бұдан жақсы түсініктеме жоқ:

«Ғалым жаңа жұлдызды аша алады, бірақ оны жасай алмайды. Ол оны инженерден сұрауы керек ».

– Гордон Линдси Глегг

Осылайша, деректер инженерінің рөлі айтарлықтай маңызды.

Аты айтып тұрғандай, деректер инженериясы деректерге, атап айтқанда оны жеткізуге, сақтауға және өңдеуге қатысты. Тиісінше, инженерлердің басты міндеті – деректердің сенімді инфрақұрылымын қамтамасыз ету. Егер AI қажеттіліктер иерархиясына қарасақ, деректер инженериясы алғашқы 2-3 кезеңді алады: жинау, жылжыту және сақтау, мәліметтерді дайындау.

Деректер инженерлері кімдер және сіз қалай бола аласыз?

Деректер инженері не істейді?

Үлкен деректердің пайда болуымен жауапкершілік ауқымы күрт өзгерді. Егер бұрын бұл сарапшылар Informatica ETL, Pentaho ETL, Talend сияқты құралдарды пайдаланып үлкен SQL сұраулары мен тазартылған деректерді жазған болса, енді деректер инженерлеріне қойылатын талаптар артты.

Деректер инженері лауазымына бос жұмыс орындары бар компаниялардың көпшілігінде келесі талаптар бар:

  • SQL және Python тілдерін жақсы білу.
  • Бұлтты платформалармен, әсіресе Amazon Web Services тәжірибесімен.
  • Java/Scala тілін білу артықшылық береді.
  • SQL және NoSQL дерекқорларын жақсы түсіну (деректерді модельдеу, деректерді сақтау).

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

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

Google, Amazon, Facebook немесе Dropbox сияқты IT алыптары жоғары талаптарға ие: Python, Java немесе Scala тілдерін білу.

  • Үлкен деректермен тәжірибе: Hadoop, Spark, Кафка.
  • Алгоритмдерді және деректер құрылымын білу.
  • Бөлінген жүйелердің негіздерін түсіну.
  • Tableau немесе ElasticSearch сияқты деректерді визуализациялау құралдарымен жұмыс тәжірибесі артықшылық болады.

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

Деректер инженерлері Vs. деректер ғалымдары

Деректер инженерлері кімдер және сіз қалай бола аласыз?
Жарайды, бұл қарапайым және күлкілі салыстыру болды (жеке ештеңе емес), бірақ іс жүзінде бұл әлдеқайда күрделі.

Біріншіден, сіз деректер ғалымы мен деректер инженерінің рөлдері мен дағдыларын анықтауда көп түсініксіздік бар екенін білуіңіз керек. Яғни, табысты деректер инженері болу үшін қандай дағдылар қажет екенін оңай шатастыруға болады. Әрине, екі рөлге де сәйкес келетін белгілі бір дағдылар бар. Бірақ диаметральді қарама-қайшы бірқатар дағдылар да бар.

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

Деректер инженері деректер зерттеушісіне қарағанда көбірек сұранысқа ие ме?

- Иә, өйткені сәбіз тортын жасамас бұрын алдымен сәбізді жинап, қабығын аршып, қорап алу керек!

Деректер инженері кез келген деректанушыға қарағанда бағдарламалауды жақсы түсінеді, бірақ статистикаға келетін болсақ, керісінше.

Бірақ деректер инженерінің артықшылығы мынада:

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

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

Деректер инженері білуі керек негізгі ақпарат

Деректер инженерлері кімдер және сіз қалай бола аласыз?

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

Алғашқы қадамдар қандай?

Сізде не туралы жалпы түсінік болуы керек.

Ең алдымен, Data Engineering информатикаға жатады. Нақтырақ айтқанда, тиімді алгоритмдер мен деректер құрылымдарын түсінуіңіз керек. Екіншіден, деректер инженерлері деректермен жұмыс істейтіндіктен, деректер базасының принциптерін және олардың негізінде жатқан құрылымдарды түсіну қажет.

Мысалы, әдеттегі B-tree SQL дерекқорлары B-Tree деректер құрылымына, сондай-ақ қазіргі таратылған репозиторийлерде, LSM-Tree және хэш кестелерінің басқа модификацияларына негізделген.

*Бұл қадамдар тамаша мақалаға негізделген Әдиля Хаштамова. Ендеше орысша білсеңіздер осы авторды қолдап оқыңыздар оның лауазымы.

1. Алгоритмдер және деректер құрылымдары

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

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

  • Өз дағдыларыңызды жақсарту үшін пайдаланыңыз Leetcode.

Сондай-ақ Youtube сайтындағы Карнеги Меллон университетінің таңғажайып бейнелері бар дерекқорлар әлеміне енуге болады:

2. SQL тілін үйреніңіз

Біздің бүкіл өміріміз деректерден тұрады. Бұл деректерді дерекқордан алу үшін онымен бір тілде «сөйлеу» керек.

SQL (Structured Query Language) – деректер доменіндегі байланыс тілі. Кім не айтса да, SQL өмір сүрді, тірі және өте ұзақ уақыт өмір сүреді.

Егер сіз ұзақ уақыт бойы дамуда болсаңыз, SQL-тің жақын арада жойылуы туралы қауесеттер мезгіл-мезгіл пайда болатынын байқаған боларсыз. Тіл 70-ші жылдардың басында әзірленді және әлі күнге дейін аналитиктер, әзірлеушілер және жай энтузиастар арасында өте танымал.
SQL тілін білмей, деректер инженериясында ештеңе істеуге болмайды, өйткені сізге міндетті түрде деректерді алу үшін сұраулар жасауға тура келеді. Барлық заманауи үлкен деректер қоймалары SQL тілін қолдайды:

  • Amazon RedShift
  • HP Vertica
  • Oracle
  • SQL Server

... және басқалар.

HDFS сияқты бөлінген жүйелерде сақталған деректердің үлкен қабатын талдау үшін SQL қозғалтқыштары ойлап табылды: Apache Hive, Impala және т.б. Қараңыз, ол ешқайда кетпейді.

SQL тілін қалай үйренуге болады? Тек практикада жасаңыз.

Мұны істеу үшін, мен айтпақшы, тегін болатын тамаша оқулықты тексеруді ұсынамын Mode Analytics.

  1. Орташа SQL
  2. SQL-де деректерді біріктіру

Бұл курстарды ерекше ететіні, оларда тікелей браузерде SQL сұрауларын жазуға және іске қосуға болатын интерактивті орта бар. Ресурс Қазіргі заманғы SQL артық болмайды. Және сіз бұл білімді қолдана аласыз Leetcode тапсырмалары Дерекқорлар бөлімінде.

3. Python және Java/Scala тілдерінде бағдарламалау

Неліктен Python бағдарламалау тілін үйрену керек, мен мақалада жаздым Python vs R. AI, ML және Data Science үшін ең жақсы құралды таңдау. Java және Scala тілдеріне келетін болсақ, үлкен көлемдегі деректерді сақтауға және өңдеуге арналған құралдардың көпшілігі осы тілдерде жазылған. Мысалы:

  • Апачи Кафка (Скала)
  • Hadoop, HDFS (Java)
  • Apache Spark (Скала)
  • Апачи Кассандра (Java)
  • HBase (Java)
  • Apache Hive (Java)

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

Скала тіліне ену үшін оқуға болады Scala тілінде программалау тілдің авторынан. Twitter сонымен қатар жақсы кіріспе нұсқаулығын жариялады - Скала мектебі.

Python-ға келетін болсақ, мен сенемін Еркін Python ең жақсы орта деңгейдегі кітап.

4. Үлкен деректермен жұмыс істеу құралдары

Міне, үлкен деректер әлеміндегі ең танымал құралдардың тізімі:

  • Apache Spark
  • Apache Kafka
  • Apache Hadoop (HDFS, HBase, Hive)
  • Apache Кассандра

Үлкен деректер блоктарын құру туралы қосымша ақпаратты осы ғажайыптан таба аласыз интерактивті орта. Ең танымал құралдар - Spark және Kafka. Олар міндетті түрде зерттеуге тұрарлық, олардың ішінен қалай жұмыс істейтінін түсіну ұсынылады. Джей Крепс (Кафканың бірлескен авторы) 2013 жылы монументалды туындысын жариялады. Журнал: Әрбір бағдарламалық жасақтама әзірлеушісі нақты уақыттағы деректерді біріктіру абстракциясы туралы не білуі керекАйтпақшы, осы Талмудтың негізгі идеялары Апачи Кафканы құру үшін пайдаланылды.

5. Бұлтты платформалар

Деректер инженерлері кімдер және сіз қалай бола аласыз?

Кем дегенде бір бұлттық платформаны білу деректер инженері лауазымына үміткерлерге қойылатын негізгі талаптар тізімінде. Жұмыс берушілер Amazon Web Services қызметтерін таңдайды, Google бұлтты платформасы екінші орында және Microsoft Azure үздік үштікті түйіндейді.

Сіз Amazon EC2, AWS Lambda, Amazon S3, DynamoDB туралы жақсы біліміңіз болуы керек.

6. Таратылған жүйелер

Үлкен деректермен жұмыс істеу өзара байланыс желі арқылы жүзеге асырылатын дербес жұмыс істейтін компьютерлердің кластерлерінің болуын білдіреді. Кластер неғұрлым үлкен болса, оның мүше түйіндерінің істен шығу ықтималдығы соғұрлым жоғары болады. Тамаша деректер ғалымы болу үшін сіз таратылған жүйелердің проблемалары мен бар шешімдерін түсінуіңіз керек. Бұл аймақ ескі және күрделі.

Эндрю Таненбаум осы саладағы пионер болып саналады. Теориядан қорықпайтындарға мен оның кітабын ұсынамын «Таратылған жүйелер», бұл жаңадан бастағандар үшін қорқынышты болып көрінуі мүмкін, бірақ бұл сіздің дағдыларыңызды шыңдауға көмектеседі.

Мен есептеймін Деректерді қажет ететін қолданбаларды жобалау Мартин Клеппман ең жақсы кіріспе кітап. Айтпақшы, Мартиннің кереметі бар блог. Оның жұмысы үлкен деректерді сақтау және өңдеу үшін заманауи инфрақұрылымды құру туралы білімді жүйелеуге көмектеседі.
Бейне көруді ұнататындар үшін Youtube сайтында курс бар Бөлінген компьютерлік жүйелер.

7. Мәліметтер құбырлары

Деректер инженерлері кімдер және сіз қалай бола аласыз?

Деректер құбырлары - бұл деректер инженерісіз өмір сүре алмайтын нәрсе.

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

Қорытындылау үшін: деректер инженері үшін негізгі бақылау парағы

Деректер инженерлері кімдер және сіз қалай бола аласыз?

Қорытындылай келе, төмендегілерді жақсы түсіну қажет:

  • Ақпараттық жүйелер;
  • бағдарламалық қамтамасыз етуді әзірлеу (Agile, DevOps, Design Techniques, SOA);
  • Таратылған жүйелер және параллельді бағдарламалау;
  • Деректер базасының негіздері – жоспарлау, жобалау, пайдалану және ақаулықтарды жою;
  • Эксперименттерді жобалау - тұжырымдамаларды дәлелдеуге, сенімділікті, жүйе өнімділігін анықтауға және жақсы шешімдерді жылдам жеткізу үшін сенімді жолдарды әзірлеуге арналған A/B сынақтары.

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

Соңында, мен айтқым келетін соңғы, бірақ өте маңызды нәрсе.

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

Тек оны басынан бастап жабыңыз. Саяхаттаудың мәні - мүмкіндігінше көп нәрсені үйрену және жаңа сынақтарға дайын болу.
Міне, мен осы ойды жақсы түсіндіретін тамаша суретті көрдім:

Деректер инженерлері кімдер және сіз қалай бола аласыз?

Иә, күйіп қалудан және демалудан аулақ болыңыз. Бұл да өте маңызды. Іске сәт!

Мақала туралы не ойлайсыз, достар? шақырамыз тегін вебинар, ол бүгін сағат 20.00-де өтеді. Вебинар барысында біз аз шығынмен шағын компания немесе стартап үшін деректерді өңдеудің тиімді және ауқымды жүйесін қалай құру керектігін талқылаймыз. Тәжірибе ретінде біз Google Cloud деректерін өңдеу құралдарымен танысамыз. Кездескенше!

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

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