Pull to refresh

Comments 12

Как раз недавно задумывался о похожем плане. Отдельное спасибо за набор курсов, кое-что для себя почерпнул.
К вопросу об анализе данных рекомендую еще добавить язык R. Знай я его в свое время, сэкономил бы кучу нервов.
Я также рекомендую вам рассмотреть Spark, сейчас работа с большими данными в основном на нём.
Насчёт:
Начать нужно с самостоятельной реализации MapReduce без сторонних библиотек.

MapReduce довольно простая концепция, базовая реализация не покажет вам ещё ворох проблем реальной жизни. Сложнее это всё правильно готовить.
Лучше, на мой взгляд, взять готовый инструмент и поиграться, попробовать как разные действия влияют на результат.
Если говорить о Spark, есть интерактивная консоль zeppelin.apache.org. Для того чтобы поиграться — супер. Находим большой датасет и крутим-вертим его. Плюс Spark использует тот же MapReduce, но с некоторыми улучшениями.
У Spark неплохая документация, после нее ещё очень крутая книга: High Performance Spark: Best Practices for Scaling and Optimizing Apache Spark.

Также рекомендую посмотреть Cassandra. Особенно с подходом который для неё используется. Он довольно простой и интересный.

Kafka или RabbitMQ или другой брокер сообщений — must have. То же самое, теория, как устроены, зачем. Как учить: Habr, документация, практика.
+1 совершенно бессмысленное занятие писать свой MR. Все равно никакие реальные проблемы не всплывут.

>Плюс Spark использует тот же MapReduce
Вообще, если по честному, то спарк не использует MR. Дерево DAG задач — это не маппер и не редьюсер, строго говоря.
UFO just landed and posted this here
У меня есть пара моментов:
1. А не подскажите, для каких целей(кроме повышения эрудиции) дата инженеру нужны линейная алгебра и дискретная математика?
2. Вы писали: Темы связанные с построением хранилищ данных, ETL, OLAP-кубов сильно зависят от инструментов, поэтому в этом документе не даю ссылок на курсы.

Не совсем. Инструменты реализуют универсальные подходы построения DWH, которые уже давно были сформулированы. На эту тему можно почитать Ральфа Кимбола. Однако, на сколько я знаю, его на русском нет.

И спасибо за материал, добавил в закладки. Надеюсь когда-нибудь дойдут руки.
1. Конкретно Дата инженеру математика может быть и не очень сильно нужна, но разработчики с хорошим мат бекэндом лучше решают сложные задачи. Дискретная математика нужна при оптимизации различных алгоритмов, работающих с перестановками, сочетаниями, размещениями, разбиением на подмножества, обходы графов, а также при оценке сложности того или иного алгоритма. Теория алгоритмов сильно зависит от знаний алгебры и математического анализа.
Две хорошие статьи на эту тему: ссылка 1, ссылка 2

2. Согласен, Р. Кимбол хорош, просто я сослался на более современную книгу Modeling the Agile Data Warehouse with Data Vault by Hans Hultgren.
К сожалению, знание технологий тут поможет ненадолго. Хотите работать с большими данными? Будьте готовы к «вечно сырым продуктам», будьте готовы к тому, что вам нужен скилл пытливости и умение разобраться в коде/продукте/процессах.
В общем я о том, что помимо знания вышеуказанных продуктов потребуется включить еще с десяток конткретных (стэк AWS, стэк GCP, стэк Azure как минимум).
Еще туда же CAP теорема и хорошее понимание (или хотябы базовое) к чему и как применяется эта теорема в продуктах хранение, и кстати, отсюда понимать сильные и слабые стороны продукта.
В общем, помимо всего вышеуказанного, там еще за ширмой паровозик из вагонеток :)
Работаю очень успешно Дата инженером в большом интерпрайза последние пару лет, за это время вырос из Джуна до сеньора
1. Математика не нужна, ни разу не использовал никакие алгоритмы, даже не помню как разложить простое число на множители
2. Знание алгоритмов, паттернов проектирования не важно (сортировка пузырьком и т.д., паттерны типа синглентон, фабрика и т.д.)

Важно понимать как работают инструменты на архитектурном уровне, понимать как они устроены внутри, взаимодействия между инструментами, как формируется DAG, резолв зависимостей, garbage collector, уметь быстро вникать в структуры данных, и т.д.
Пару примеров общего понимания с привязкой к Python, если можно (что конкретно вам помогает)?
Ну, это смотря чего вы хотите в конечном счете. Дата инженером — да, наверное математика и алгоритмы по большому счету не нужны. Скорее нужно общее понимание того, как следует строить хранилища. И конкретные инструменты, да. Скажем, автор тут пишет про Airflow, а у нас его нет вовсе — зато есть Oozie. И да, вполне вероятно что в другой компании и другом проекте и инструменты будут другие.

Разработчику уже нужны алгоритмы, хотя и не любому. Но если двигаться в Data Science, или в ML, то будет нужно и то, и другое.
Мне кажется, для data engineer именно больше не python нужен, а Java) Грубо говоря, Hadoop или Cassandra написаны на яве, и соответственно для развёртывания кластеров, настройки хранилищ и тд. и тп. питон никак не поможет. А вот для анализа данных, data science — на питоне, наверное, под все существующие БД и поисковики типа elasticsearch есть более-менее удобные клиенты.
Sign up to leave a comment.

Articles