Кои са инженерите по данни и как се става такъв?

Здравей отново! Заглавието на статията говори само за себе си. В очакване на началото на курса Инженер по данни Предлагаме ви да разберете кои са инженерите по данни. В статията има много полезни връзки. Приятно четене.

Кои са инженерите по данни и как се става такъв?

Просто ръководство за това как да хванете вълната на Data Engineering и да не й позволите да ви завлече в бездната.

Изглежда, че в днешно време всеки иска да стане Data Scientist. Но какво да кажем за Data Engineering? По същество това е един вид хибрид на анализатор на данни и учен по данни; Инженерът по данни обикновено отговаря за управлението на работни потоци, тръбопроводи за обработка и ETL процеси. Поради важността на тези функции, в момента това е друг популярен професионален жаргон, който активно набира скорост.

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

Така че да започнем!

Какво е Data Engineering?

Честно казано, няма по-добро обяснение от това:

„Един учен може да открие нова звезда, но не може да създаде такава. Ще трябва да помоли инженер да го направи вместо него."

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

По този начин ролята на инженера по данни е доста значителна.

Както подсказва името, инженерството на данни се занимава с данни, а именно тяхното доставяне, съхранение и обработка. Съответно основната задача на инженерите е да осигурят надеждна инфраструктура за данни. Ако разгледаме йерархията на нуждите на 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 ще бъде плюс.

Тоест има ясно изместване към големи данни, а именно при обработката им при високи натоварвания. Тези компании имат повишени изисквания за устойчивост на системни грешки.

Data Engineers Vs. учени по данни

Кои са инженерите по данни и как се става такъв?
Добре, това беше просто и смешно сравнение (нищо лично), но в действителност е много по-сложно.

Първо, трябва да знаете, че има много неясноти в очертаването на ролите и уменията на учен по данни и инженер по данни. Това означава, че лесно можете да се объркате какви умения са необходими, за да бъдете успешен инженер по данни. Разбира се, има определени умения, които се припокриват и с двете роли. Но има и редица диаметрално противоположни умения.

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

По-търсен ли е инженер по данни от учен по данни?

- Да, защото преди да можете да приготвите морковена торта, първо трябва да съберете, обелите и запасите моркови!

Инженерът по данни разбира програмирането по-добре от всеки учен по данни, но когато става въпрос за статистика, вярно е обратното.

Но тук е предимството на инженера по данни:

Без него/нея стойността на прототипния модел, най-често състоящ се от парче код с ужасно качество във файл на Python, получено от специалист по данни и по някакъв начин даващо резултат, клони към нула.

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

Основна информация, която един инженер по данни трябва да знае

Кои са инженерите по данни и как се става такъв?

Така че, ако тази работа изважда светлината във вас и сте ентусиазирани - можете да я научите, можете да овладеете всички необходими умения и да станете истинска рок звезда в областта на инженерството на данни. И, да, можете да направите това дори без умения за програмиране или други технически познания. Трудно е, но е възможно!

Какви са първите стъпки?

Трябва да имате обща представа какво е какво.

На първо място, Data Engineering се отнася до компютърните науки. По-конкретно, трябва да разбирате ефективни алгоритми и структури от данни. Второ, тъй като инженерите на данни работят с данни, е необходимо да се разберат принципите на базите данни и структурите, които са в основата им.

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

*Тези стъпки се основават на страхотна статия Адиля Хащамова. Така че, ако знаете руски, подкрепете този автор и прочетете неговия пост.

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

Използването на правилната структура на данните може значително да подобри производителността на даден алгоритъм. В идеалния случай всички трябва да учим за структури от данни и алгоритми в нашите училища, но това рядко се покрива. Във всеки случай никога не е късно да се запознаете.
Ето ги любимите ми безплатни курсове за изучаване на структури от данни и алгоритми:

Освен това не забравяйте за класическата работа на Томас Корман върху алгоритмите - Въведение в алгоритмите. Това е перфектната справка, когато трябва да опресните паметта си.

  • За да подобрите уменията си, използвайте Leetcode.

Можете също така да се потопите в света на базите данни с невероятни видеоклипове от университета Карнеги Мелън в Youtube:

2. Научете SQL

Целият ни живот са данни. И за да извлечете тези данни от базата данни, трябва да „говорите“ на същия език с тях.

SQL (Structured Query Language) е езикът за комуникация в областта на данните. Независимо какво казва някой, SQL е живял, жив е и ще живее много дълго време.

Ако сте се занимавали с разработка от дълго време, вероятно сте забелязали, че периодично се появяват слухове за предстоящата смърт на SQL. Езикът е разработен в началото на 70-те години и все още е много популярен сред анализатори, разработчици и просто ентусиасти.
Без познаване на SQL няма какво да правите в инженерството на данни, тъй като неизбежно ще трябва да създавате заявки за извличане на данни. Всички съвременни складове за големи данни поддържат SQL:

  • Amazon RedShift
  • HP Vertica
  • Оракул
  • SQL Server

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

За да се анализира голям слой от данни, съхранявани в разпределени системи като HDFS, бяха изобретени SQL двигатели: Apache Hive, Impala и т.н. Вижте, това не отива никъде.

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

За да направите това, бих препоръчал да разгледате отличен урок, който между другото е безплатен от Режим Анализ.

  1. Междинен SQL
  2. Обединяване на данни в SQL

Това, което прави тези курсове специални е, че имат интерактивна среда, в която можете да пишете и изпълнявате SQL заявки направо във вашия браузър. Ресурс Модерен SQL няма да е излишно. И можете да приложите това знание към Leetcode задачи в секцията Бази данни.

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

Защо трябва да научите езика за програмиране Python, вече писах в статията Python срещу R. Избор на най-добрия инструмент за AI, ML и Data Science. Що се отнася до Java и Scala, повечето от инструментите за съхранение и обработка на огромни количества данни са написани на тези езици. Например:

  • Apache Kafka (Scala)
  • Hadoop, HDFS (Java)
  • Apache Spark (Scala)
  • Apache Cassandra (Java)
  • HBase (Java)
  • Apache Hive (Java)

За да разберете как работят тези инструменти, трябва да знаете езиците, на които са написани. Функционалният подход на Scala ви позволява ефективно да решавате проблеми с паралелната обработка на данни. Python, за съжаление, не може да се похвали със скорост и паралелна обработка. Като цяло познаването на няколко езика и програмни парадигми е добро за широчината на подходите за решаване на проблеми.

За да се потопите в езика Scala, можете да прочетете Програмиране в Scala от автора на езика. Twitter също публикува добро уводно ръководство - Училище Скала.

Що се отнася до Python, вярвам Свободен Python най-добрата книга на средно ниво.

4. Инструменти за работа с големи данни

Ето списък на най-популярните инструменти в света на големите данни:

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

Можете да намерите повече информация за изграждането на големи блокове данни в това невероятно интерактивна среда. Най-популярните инструменти са 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

Добавяне на нов коментар