Кои се инженери за податоци и како да станете еден?

Здраво повторно! Насловот на статијата зборува сам за себе. Во пресрет на почетокот на курсот Инженер за податоци Ви предлагаме да разберете кои се инженерите за податоци. Во статијата има многу корисни врски. Среќно читање.

Кои се инженери за податоци и како да станете еден?

Едноставен водич за тоа како да го фатите бранот Data Engineering и да не дозволите да ве влече во бездната.

Се чини дека сите сакаат да станат научник за податоци овие денови. Но, што е со инженерството на податоци? Во суштина, ова е еден вид хибрид на аналитичар на податоци и научник за податоци; Инженерот за податоци обично е одговорен за управување со работните текови, цевководи за обработка и ETL процеси. Поради важноста на овие функции, ова во моментов е уште еден популарен професионален жаргон кој активно зема замав.

Високите плати и огромната побарувачка се само мал дел од она што ја прави оваа работа исклучително привлечна! Ако сакате да се приклучите на рангот на хероите, никогаш не е доцна да започнете да учите. Во овој пост, ги собрав сите потребни информации за да ви помогнам да ги преземете првите чекори.

Значи, да започнеме!

Што е инженерство на податоци?

Искрено, нема подобро објаснување од ова:

„Научникот може да открие нова ѕвезда, но не може да создаде. Ќе мора да побара од инженер да го направи тоа наместо него“.

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

Така, улогата на инженер за податоци е доста значајна.

Како што сугерира името, инженерството на податоци се занимава со податоци, имено нивно доставување, складирање и обработка. Според тоа, главната задача на инженерите е да обезбедат сигурна инфраструктура за податоци. Ако ја погледнеме хиерархијата на потребите на ВИ, инженерството на податоци ги зазема првите 2-3 фази: собирање, движење и складирање, подготовка на податоци.

Кои се инженери за податоци и како да станете еден?

Што прави инженер за податоци?

Со доаѓањето на големите податоци, опсегот на одговорност драматично се промени. Ако претходно овие експерти пишуваа големи SQL прашања и дестилираа податоци користејќи алатки како што се Informatica ETL, Pentaho ETL, Talend, сега барањата за инженери за податоци се зголемени.

Повеќето компании со отворени работни места за позицијата инженер за податоци ги имаат следните барања:

  • Одлично познавање на SQL и Python.
  • Искуство со облак платформи, особено веб-услуги на Amazon.
  • Пожелно е познавање на Java/Scala.
  • Добро разбирање на базите на податоци SQL и NoSQL (моделирање на податоци, складирање податоци).

Имајте на ум, ова се само најважните. Од оваа листа, може да се претпостави дека инженерите за податоци се специјалисти во областа на развој на софтвер и заднина.
На пример, ако една компанија почне да генерира голема количина на податоци од различни извори, вашата задача како инженер за податоци е да организирате собирање информации, нивна обработка и складирање.

Списокот на алатки што се користат во овој случај може да се разликува, сето тоа зависи од обемот на овие податоци, брзината на нивниот прием и хетерогеноста. Повеќето компании воопшто не се занимаваат со големи податоци, па како централизирано складиште, таканаречено складиште на податоци, можете да користите SQL база на податоци (PostgreSQL, MySQL, итн.) со мал сет на скрипти кои ги внесуваат податоците во магацинот.

ИТ гигантите како Google, Amazon, Facebook или Dropbox имаат повисоки барања: познавање на Python, Java или Scala.

  • Искуство со големи податоци: Hadoop, Spark, Kafka.
  • Познавање на алгоритми и структури на податоци.
  • Разбирање на основите на дистрибуираните системи.
  • Искуството со алатките за визуелизација на податоци како што се Tableau или ElasticSearch ќе биде плус.

Односно, постои јасна промена кон големите податоци, имено во нивната обработка при високи оптоварувања. Овие компании имаат зголемени барања за толеранција на грешки во системот.

Инженери на податоци против. научниците за податоци

Кои се инженери за податоци и како да станете еден?
Океј, тоа беше едноставна и смешна споредба (ништо лично), но во реалноста е многу покомплицирано.

Прво, треба да знаете дека има многу нејаснотии во разграничувањето на улогите и вештините на научникот за податоци и инженерот за податоци. Тоа е, лесно може да се збуните околу тоа кои вештини се потребни за да бидете успешен инженер за податоци. Се разбира, постојат одредени вештини кои се преклопуваат со двете улоги. Но, постојат и голем број дијаметрално спротивни вештини.

Науката за податоци е сериозен бизнис, но ние се движиме кон свет на функционална наука за податоци каде што практичарите се способни да прават свои анализи. За да овозможите цевководи за податоци и интегрирани структури на податоци, потребни ви се инженери за податоци, а не научници за податоци.

Дали е повеќе баран инженер за податоци отколку научник за податоци?

- Да, затоа што пред да можете да направите торта од моркови, прво треба да соберете, излупете и складирате моркови!

Инженерот за податоци го разбира програмирањето подобро од кој било научник за податоци, но кога станува збор за статистика, точно е спротивното.

Но, тука е предноста на инженерот за податоци:

Без него/неа, вредноста на прототипот на моделот, најчесто составен од парче код со ужасен квалитет во датотеката Пајтон, добиен од научник за податоци и некако дава резултат, се стреми кон нула.

Без инженер за податоци, овој код никогаш нема да стане проект и ниту еден деловен проблем нема ефективно да се реши. Инженерот за податоци се обидува сето ова да го претвори во производ.

Основни информации што треба да ги знае инженерот за податоци

Кои се инженери за податоци и како да станете еден?

Значи, ако оваа работа ја извлекува светлината во вас и сте ентузијасти - можете да ја научите, можете да ги совладате сите потребни вештини и да станете вистинска рок ѕвезда во областа на инженерството на податоци. И, да, можете да го извлечете ова дури и без програмски вештини или други технички знаења. Тешко е, но можно!

Кои се првите чекори?

Треба да имате општа идеја за тоа што е што.

Пред сè, инженерството на податоци се однесува на компјутерската наука. Поконкретно, мора да ги разберете ефикасните алгоритми и структури на податоци. Второ, бидејќи инженерите за податоци работат со податоци, неопходно е да се разберат принципите на базите на податоци и структурите што се во основата на нив.

На пример, конвенционалните SQL бази на податоци од B-дрво се засноваат на структурата на податоци B-Tree, како и, во современите дистрибуирани складишта, LSM-Tree и други модификации на табелите за хаш.

*Овие чекори се засноваат на одлична статија Адилија Хаштамова. Значи, ако знаете руски, поддржете го овој автор и прочитајте неговиот пост.

1. Алгоритми и структури на податоци

Користењето на вистинската структура на податоци може значително да ги подобри перформансите на алгоритмот. Идеално, сите ние треба да учиме за структурите на податоци и алгоритмите во нашите училишта, но ова ретко кога е покриено. Во секој случај, никогаш не е доцна да се запознаете.
Еве ги моите омилени бесплатни курсеви за учење структури на податоци и алгоритми:

Плус, не заборавајте за класичната работа на Томас Корман за алгоритми - Вовед во алгоритми. Ова е совршена референца кога треба да ја освежите меморијата.

  • За да ги подобрите вашите вештини, користете Leetcode.

Можете исто така да се нурнете во светот на базите на податоци со неверојатни видеа од Универзитетот Карнеги Мелон на YouTube:

2. Научете SQL

Целиот наш живот е податок. И за да ги извлечете овие податоци од базата на податоци, треба да го „зборувате“ истиот јазик со него.

SQL (Structured Query Language) е јазикот на комуникација во доменот на податоци. Без разлика што некој ќе каже, SQL живееше, е жив и ќе живее многу долго.

Ако сте во развој долго време, веројатно сте забележале дека периодично се појавуваат гласини за претстојната смрт на SQL. Јазикот беше развиен во раните 70-ти и сè уште е многу популарен меѓу аналитичарите, програмерите и едноставно ентузијастите.
Без познавање на SQL нема што да се прави во инженерството на податоци бидејќи неизбежно ќе треба да креирате прашања за да ги вратите податоците. Сите модерни складишта за големи податоци поддржуваат SQL:

  • Амазон црвена смена
  • HP Vertica
  • Oracle
  • SQL Server,

... и многу други.

За да се анализира голем слој на податоци складирани во дистрибуирани системи како што се HDFS, измислени се SQL мотори: Apache Hive, Impala итн. Видете, тоа не оди никаде.

Како да научите SQL? Само направете го тоа во пракса.

За да го направите ова, би препорачал да проверите одличен туторијал, кој, патем, е бесплатен, од Анализа на режими.

  1. Средно SQL
  2. Здружување на податоци во SQL

Она што ги прави овие курсеви посебни е тоа што тие имаат интерактивна средина каде што можете да пишувате и стартувате SQL барања директно во вашиот прелистувач. Ресурс Модерен SQL нема да биде излишно. И можете да го примените ова знаење на Задачи со Leetcode во делот Бази на податоци.

3. Програмирање во Python и Java/Scala

Зошто треба да го научите програмскиот јазик Python, веќе напишав во статијата Python vs R. Избор на најдобра алатка за AI, ML и Data Science. Кога станува збор за Java и Scala, повеќето алатки за складирање и обработка на огромни количини на податоци се напишани на овие јазици. На пример:

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

За да разберете како функционираат овие алатки, треба да ги знаете јазиците на кои се напишани. Функционалниот пристап на Scala ви овозможува ефикасно да ги решавате проблемите со паралелната обработка на податоците. Пајтон, за жал, не може да се пофали со брзина и паралелна обработка. Општо земено, познавањето на неколку јазици и програмски парадигми е добро за широчината на пристапите за решавање проблеми.

За да се нурнете во јазикот Скала, можете да читате Програмирање во Скала од авторот на јазикот. Твитер објави и добар воведен водич - Училиште Скала.

Што се однесува до Python, верувам Течен Python најдобра книга од средно ниво.

4. Алатки за работа со големи податоци

Еве список на најпопуларните алатки во светот на големите податоци:

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

Можете да најдете повеќе информации за градење големи блокови на податоци во овој неверојатен интерактивна средина. Најпопуларните алатки се Искра и Кафка. Тие дефинитивно вреди да се проучат, препорачливо е да се разбере како тие работат однатре. Џеј Крепс (коавтор на Кафка) објави монументално дело во 2013 година Дневник: Што треба да знае секој развивач на софтвер за апстракцијата на податоци во реално времеПатем, главните идеи од овој Талмуд беа искористени за создавање на Апачи Кафка.

5. Облак платформи

Кои се инженери за податоци и како да станете еден?

Познавањето на најмалку една облак платформа е на листата на основни барања за апликантите за позицијата инженер за податоци. Работодавците ги претпочитаат веб-услугите на Амазон, со облак платформата на Google на второ место, а Microsoft Azure ги заокружува првите три.

Мора да имате добро познавање на Amazon EC2, AWS Lambda, Amazon S3, DynamoDB.

6. Дистрибуирани системи

Работата со големи податоци подразбира присуство на кластери на независни компјутери, меѓу кои комуникацијата се врши преку мрежа. Колку е поголем кластерот, толку е поголема веројатноста за неуспех на неговите членски јазли. За да станете одличен научник за податоци, треба да ги разберете проблемите и постоечките решенија за дистрибуирани системи. Оваа област е стара и сложена.

Ендрју Таненбаум се смета за пионер во оваа област. За оние кои не се плашат од теоријата, ја препорачувам неговата книга „Дистрибуирани системи“, можеби изгледа застрашувачки за почетниците, но навистина ќе ви помогне да ги усовршите своите вештини.

Сметам Дизајнирање апликации со интензивни податоци од Мартин Клепман најдобра воведна книга. Инаку, Мартин има прекрасен блог. Неговата работа ќе помогне да се систематизира знаењето за изградба на модерна инфраструктура за складирање и обработка на големи податоци.
За оние кои сакаат да гледаат видеа, постои курс на Youtube Дистрибуирани компјутерски системи.

7. Податоци

Кои се инженери за податоци и како да станете еден?

Податочните цевки се нешто без кое не можете да живеете како инженер за податоци.

Поголемиот дел од времето, инженерот за податоци гради таканаречен податочен цевковод, односно создава процес за доставување податоци од едно до друго место. Тоа може да бидат сопствени скрипти кои одат во API на надворешна услуга или да направат SQL барање, да ги зголемат податоците и да ги стават во централизирана продавница (складиште на податоци) или неструктурирана продавница за податоци (езера на податоци).

Да резимираме: основната листа за проверка за инженер за податоци

Кои се инженери за податоци и како да станете еден?

Да резимираме, потребно е добро разбирање на следново:

  • Информациски системи;
  • Развој на софтвер (Agile, DevOps, Design Techniques, SOA);
  • Дистрибуирани системи и паралелно програмирање;
  • Основи на бази на податоци - планирање, дизајн, работење и решавање проблеми;
  • Дизајн на експерименти - A/B тестови за докажување концепти, одредување на веродостојноста, перформансите на системот и развивање сигурни патеки за брзо давање добри решенија.

Ова се само неколку од барањата за да станете инженер за податоци, затоа научете и разберете ги податочните системи, информациските системи, континуираната испорака/распоредување/интеграција, програмските јазици и други теми за компјутерски науки (не сите предметни области).

И конечно, последното, но многу важно што сакам да го кажам.

Патот до станување инженерство на податоци не е толку едноставен како што може да изгледа. Тој не простува, тој фрустрира и мора да бидете подготвени за ова. Некои моменти од ова патување може да ве натераат да се откажете. Но, ова е вистинска работа и процес на учење.

Само не го премачкувајте од самиот почеток. Целата поента на патувањето е да научите што е можно повеќе и да бидете подготвени за нови предизвици.
Еве една одлична слика на која наидов што добро ја илустрира оваа поента:

Кои се инженери за податоци и како да станете еден?

И да, не заборавајте да избегнувате исцрпеност и одмор. Ова е исто така многу важно. Со среќа!

Што мислите за статијата, пријатели? Ве покануваме да бесплатен вебинар, што ќе се одржи денеска во 20.00 часот. За време на вебинарот, ќе разговараме како да изградиме ефективен и скалабилен систем за обработка на податоци за мала компанија или стартап со минимални трошоци. Како пракса, ќе се запознаеме со алатките за обработка на податоци на Google Cloud. Се гледаме!

Извор: www.habr.com

Додадете коментар