0x00 Предисловие
Недавно я обнаружил, что вокруг меня много друзей, которые хотят сменить профессию инженера данных. Во время чата я обнаружил, что у всех много путаницы в отношении того, с чего начать. На выходных я написал блог, чтобы записать это.
Кому подходитПродолжить чтение
Как начать работать дата-инженером? Тема немного большая, и понимание у всех очень разное, поэтому мы сначала ограничим людей, которым будет интересна эта тема:
-
Занимаясь другой разработкой программного обеспечения в течение нескольких лет, я обнаружил, что направление больших данных является более перспективным.
-
Детская обувь в школу, хочу заниматься данным развитием после окончания школы, но в школе нет соответствующих курсов
-
Никогда не занимался разработкой программного обеспечения, не доверяю своей предыдущей работе и хочу заниматься интернетом, и обнаружил, что направление больших данных неплохое
Структура этой статьи
Общий диапазон тем ранее был ограничен, и основная структура статьи описана ниже:
-
Повседневная работа дата-инженера, или кто такой дата-инженер
-
Какие навыки нужны дата-инженерам
-
как научиться
0x01 Дерево навыков для инженеров данных
1. Кто такой дата-инженер
Понятие дата-инженер на самом деле очень расплывчато, и смысл, который ему придают разные люди и компании, очень разный, если вам интересно, то можете прочитать мои предыдущие статьи. Вот, давайте поговорим о том, чем вообще будет заниматься дата-инженер на работе?
-
Эксплуатация и обслуживание кластера: установка, тестирование, эксплуатация и обслуживание различных компонентов больших данных
-
Разработка данных: если немного разделить, будут инженеры ETL, инженеры хранилища данных и т. д.
-
Разработка системы данных: акцент на разработку веб-систем, таких как система отчетности, система рекомендаций и т. д.
Здесь много контента, который очень пересекается. Давайте поговорим о том, что нужно изучить каждому фрагменту контента, и о ключевых моментах.
2. Эксплуатация и обслуживание кластера
Дата-инженеры в основном неотделимы от построения кластера, такого как Hadoop, Spark и Kafka. Не ожидайте, что специализированная эксплуатация и обслуживание помогут вам. Внедрение новых компонентов обычно выполняется самостоятельно.
Поэтому инженеры данных должны понимать различные компоненты больших данных.
Поскольку вы хотите самостоятельно устанавливать различные компоненты с открытым исходным кодом, вам необходимо обладать возможностями дата-инженера:Linux. Чтобы быть более знакомым с Linux, вы можете поиграть со всеми видами метаний самостоятельно.
Поскольку текущая экосистема больших данных в основномJVMПоэтому в плане языка не сомневайтесь, Java и Scala отдела JVM в принципе никуда не убегут, Java в принципе нужно учить очень глубоко, а Scala зависит от ситуации.
3. ETL
ETL в основном отражается на обработке различных потоков данных в сфере больших данных. С одной стороны эта часть выражается в понимании некоторых компонентов, таких как Sqoop, Flume, Kafka, Spark, MapReduce, с другой стороны это потребность в языках программирования, базовыми навыками являются Java, Shell и Sql .
4. Разработка системы
Большая часть нашей ценности в конечном итоге будет отражена в таких системах, как системы отчетности и системы рекомендаций. Следовательно, требуются определенные возможности разработки системы, и наиболее часто используемыми являютсяJava WebЭтот набор, конечно, Python тоже очень удобен.
Следует отметить, что общая разработка данных не может избежать различных требований к извлечению данных, многие из которых являются временными и индивидуальными требованиями.SqlЯ не могу убежать, надо честно учить Sql.
0x02 Как начать
Я упомянул некоторые деревья навыков, которые будут использовать инженеры по обработке данных.
Ниже приводится предложение для начала, которое является полностью личным мнением.
1. Понять ситуацию в отрасли
В начале вы должны понять себя и отрасль.Многие люди не могут увидеть разницу между большими данными и интеллектуальным анализом данных в информации о наборе персонала.На самом деле очень безответственно говорить, что они хотят сменить карьеру. Во всяком случае, не всегда следуйте за горячими точками, меня часто презирают за слишком низкую разработку больших данных, а интеллектуальный анализ данных должен выполняться, иначе это всегда будет параллельный импорт.
2. Выберите направление обучения
Если вы действительно знаете, что явно хотите переключиться на разработку данных, вы должны учитывать свое время и энергию, сколько времени вы можете потратить, и лучше, чтобы кто-то дал больше указаний при обучении, иначе слишком легко пойти в обход.
При выборе конкретной траектории обучения будьте внимательны, есть несколько вариантов:
-
самообучение
-
отчет для класса
-
Найдите кого-нибудь, кто подскажет
Не говоря уже о других вещах, вы можете подумать о том, чтобы подать заявку на курс.Не ожидайте, что вы запишетесь на коррекционный класс, который доставит вас на небеса, но вы можете положиться на него, чтобы он помог вам разобраться в ваших мыслях. Если есть люди, которые являются профессионалами в этой области, чтобы помочь, это лучше всего. Это не обязательно хорошая технология, это в основном хорошая коммуникация.
3. Маршрут обучения
Маршрут обучения, следующее общее предложение:
Первый этап
-
Во-первых, у вас есть определенный базис Linux и Java, особо углубляться не надо, можно сначала поиграть, Linux может выполнять различные операции самостоятельно, а на Java можно писать небольшие программы. Эти вещи подготавливают к настройке среды Hadoop.
-
Изучите Hadoop, научитесь создавать автономную версию Hadoop, затем распределенную версию Hadoop и напишите несколько программ MR.
-
Затем изучите другие компоненты больших данных экосистемы Hadoop, такие как Spark, Hive, Hbase, и попробуйте создать и запустить несколько официальных демонстраций веб-сайтов.
-
После того, как Linux, Java и различные компоненты имеют некоторую основу, должна быть некоторая проектная практика.В это время найдите несколько успешных кейсов, например, как построить рекомендательную систему в различных видео-уроках Soso, и используйте то, что вы узнали.
вторая стадия
Это базовый этап, и у вас есть некоторое представление о разработке данных. Тогда должен быть какой-то интересный контент на выбор.
-
Система хранилища данных: как сделать слои данных, как построить систему хранилища данных, вы можете иметь некоторое общее представление.
-
Персоны и проектирование функций: чем раньше вы поймете эту часть, тем лучше.
-
Идеи реализации некоторых систем: таких как системы планирования, системы метаданных и системы рекомендаций, как реализовать эти системы.
Третий этап
Есть несколько подразделов, которые необходимо изучить более подробно. Посмотрите на работу и интересы, чтобы выбрать некоторые из них для углубленного изучения
-
Распределенная теория: например, Gossip, DHT, Paxo, которые составляют базовые протоколы и алгоритмы различных распределенных систем, все еще нуждаются в изучении.
-
Алгоритмы интеллектуального анализа данных: Алгоритмы нужно изучать, но это не обязательно чистая теория.Реализация алгоритмов в распределенной среде сама по себе является большой проблемой.
-
Изучая исходный код различных систем: например, исходный код Hadoop, Spark и Kafka, если вы хотите углубиться в большие данные, исходный код не может ускользнуть.
0xFF Сводка
Я немного сузил концепцию инженера данных, исключив содержание алгоритмов машинного обучения и глубокого обучения, поэтому все ограничено. Но можно сделать справку. Потом какие-то справочники и интернет-материалы, в которых нет времени разбираться.
Я надеюсь, что эта статья может дать небольшую идею и ссылку, чтобы не быть особенно слепым. Любые вопросы приветствуются для общения.