Pull to refresh
0
0

Пользователь

Send message

Как устроен онбординг в больших компаниях: личный опыт

Reading time11 min
Views6.8K

Привет! Меня зовут Маша Сафронова, и я уже почти 3 месяца работаю младшим продуктовым дизайнером в Lamoda Tech. За последний год я успела пройти стажировку и поработать в двух других крупных IT-компаниях, а еще раньше я переучилась и пришла в дизайн из другой профессии. 

Каждый раз на новом месте я сталкивалась с трудностями: не понимала, с чего начать, хотела делать все сразу и быть максимально эффективной. Много волновалась и переживала из-за неуверенности в себе. К счастью, все компании, в которых я работала, позаботились об адаптации новых сотрудников. Но в одних случаях онбординговые мероприятия действительно мне помогали, а в других — не срабатывали. 

В этой статье я сделаю обзор разных практик онбординга из своего опыта и попытаюсь понять, что помогает, а что мешает новичку вроде меня почувствовать себя увереннее на новом месте. А еще поделюсь своими советами по адаптации и мнением коллег из моей команды.

Читать далее
Total votes 19: ↑15 and ↓4+13
Comments5

Работаем с Git: трудовые будни

Level of difficultyMedium
Reading time14 min
Views32K

Прошлая статья «Работаем с Git: первые шаги в GitHub» была посвящена установке, настройке Git и классическим операциям из набора для новичков GitHub. А теперь перейдём к практике и рассмотрим «горячие» сценарии, которые делают трудовые будни куда веселее. Или не очень.

Читать далее
Total votes 19: ↑16 and ↓3+16
Comments18

«Хороший коммит» и «ваш коммит»: как написать идеальный комментарий в Git

Reading time8 min
Views17K

Привет, Хабр!

Мы в beeline cloud не только создаем современные цифровые продукты, но и обучаем разработке в облаке студентов нашего курса Base Cloud DevOps. Однако выстроить эффективный процесс невозможно без знания основных инструментов. Один из них — система контроля версий Git. Перевели для вас статью, которая поможет извлечь из работы с этой утилитой еще больше пользы.

Когда-то я и не задумывался о существовании каких-то правил для составления комментариев к коммитам, но потом любознательность взяла верх. Мне казалось, что простых сообщений наподобие «добавлена функция 2», «исправлена ошибка на панели навигации» или просто «foo» вполне достаточно. Однако моя уверенность в том, что комментарии к коммитам, как правило, никто не читает, оказалась ошибкой. Хорошо составленные commit messages очень важны, они помогают нам самим в будущем извлечь максимальную пользу из своих стараний и продуманности.

Читать далее
Total votes 14: ↑14 and ↓0+14
Comments34

Виды баз данных. Большой обзор типов СУБД

Reading time21 min
Views87K

Часто, в обзорах видов баз данных упоминают реляционные и “другие”, “NoSQL” и т.д., либо приводят самые основные типы СУБД (базы данных), забывая о редких. В данной статье я постараюсь описать максимально полно виды баз данных и привести примеры конкретных реализаций. Разумеется, статья не претендует на всеохватность и классифицировать базы данных можно по разному, в том числе по типам оптимальной нагрузки и т.д., но надеюсь, она даст базовое представление о видах СУБД и принципах их работы.

В статье мы рассмотрим следующие типы баз данных:

Читать далее
Total votes 38: ↑36 and ↓2+38
Comments16

ООП в картинках

Reading time20 min
Views828K
ООП (Объектно-Ориентированное Программирование) стало неотъемлемой частью разработки многих современных проектов, но, не смотря на популярность, эта парадигма является далеко не единственной. Если вы уже умеете работать с другими парадигмами и хотели бы ознакомиться с оккультизмом ООП, то впереди вас ждет немного лонгрид и два мегабайта картинок и анимаций. В качестве примеров будут выступать трансформеры.


Читать дальше →
Total votes 38: ↑34 and ↓4+30
Comments104

Почему Trino такой быстрый: архитектура оптимизатора SQL-запросов

Reading time12 min
Views22K

Аналитические системы должны эффективно обрабатывать сложные пользовательские запросы к десяткам и сотням терабайт данных (пета-?). Продвинутый оптимизатор запросов является важнейшим компонентом любого big data движка. В данной статье мы рассмотрим, как устроен оптимизатор запросов в массивно-параллельном аналитическом SQL-движке Trino.

И как же он устроен?
Total votes 14: ↑14 and ↓0+14
Comments2

Оптимизация производительности запросов в ClickHouse: как ускорить неускоряемое

Reading time16 min
Views11K

Привет, Хабр! Меня зовут Максим Кита, я разработчик баз данных, специализируюсь на анализе, планировании и выполнении запросов, а также на оптимизации производительности.

Я расскажу о высокоуровневой архитектуре ClickHouse, CI/CD, тестировании производительности, интроспекции, абстракциях и алгоритмах и выборе библиотек для высокопроизводительных приложений. Поделюсь ниндзя-техниками, которые помогут ускорить ваши системы. Вы сможете попробовать эти советы и практики на своем проекте и оценить насколько они полезны.

Читать далее
Total votes 34: ↑34 and ↓0+34
Comments2

Действительно ли Apache Kafka сохраняет правильный порядок сообщений?

Reading time6 min
Views10K

Нам говорят, что Apache Kafka сохраняет порядок сообщений для каждой темы/раздела, но насколько это правда? В этой статье мы проанализируем несколько реальных сценариев, в которых слепое принятие этой догмы, может привести к неожиданным и ошибочным последовательностям сообщений.

Читать далее
Total votes 15: ↑8 and ↓7+3
Comments24

Введение в Clickhouse движок AggregatingMergeTree

Level of difficultyEasy
Reading time11 min
Views11K

В процессе разработки витрин данных часто возникает задача предоставления клиентам данных в агрегированном виде. Если данных в хранилище немного, то их можно агрегировать “на лету”, но это плохая практика так как, чем больше будет копиться данных, тем дольше будут выполняться запросы, и тем больше Clickhouse будет съедать ресурсов. В этих случаях логично хранить данные в заранее агрегированном виде, вопрос лишь в том, как реализовать расчет данных агрегированных значений.

В интернете существуют много однотипных статей иллюстрирующих базовое использование материализованных представлений (далее - матвью) на движке AggregatingMergeTree, но если ваша задача выходит за рамки “1 нода, 1 метрика, 1 параметр агрегации” эти статьи вам мало чем помогут. Я посчитал, что моим коллегам может пригодиться своего рода гайд о том, как пользоваться данными представлениями для более сложных задач.

Гайд выполнен в виде шагов, иллюстрирующих мой путь в понимании данной концепции. Если я совершил какую-либо ошибку в процессе, и вы ее заметили, или у вас есть предложение по улучшению / дополнению данного гайда, прошу написать об этом в комментариях, уверен всем от этого будет только лучше.

В рамках моей задачи хранилище данных (далее - DWH) реализовано в виде реплицированного кластера состоящего из 3 нод, данные на ноды распределяются равномерно в соответствии с ключом сортировки таблиц. Существует исходная таблица source, которая содержит столбцы id, timecode_1, metric_data - данные представляют собой временной ряд утилизации ресурсов с гранулярностью 1 минута. Данные поступают блоками каждые 2 минуты.

Читать далее
Total votes 15: ↑15 and ↓0+15
Comments4

Глубокое погружение в LSM-дерево

Reading time6 min
Views7.4K

С увеличением спроса на операции, которые требуют больших объемов записи, традиционные базы данных, использующие B-дерево, становятся узким местом, поскольку обновление записей в b-дереве приводит к многочисленным беспорядочным операциям ввода-вывода (IO) и обновлению нескольких страниц на диске. B-дерево очень хорошо подходит для "тяжелых" операций чтения. Для операций с большими объемами записи у нас есть LSM-дерево.

Давайте попробуем понять, что такое LSM-дерево, как оно работает на самом деле.

Читать далее
Total votes 10: ↑9 and ↓1+12
Comments7

Количество партиций в Spark DataFrame, DataSet на основе Relational Data Base table

Reading time5 min
Views1.8K

В прошлой статье мы рассмотрели количество партиций, которое по умолчанию создается Apache Spark при инициализации DataFrame, DataSet. В текущей статье продолжим рассматривать количество партиций у Spark DataFrame и DataSet, созданных на основе таблицы в Relational Database.

Читать далее
Total votes 9: ↑7 and ↓2+8
Comments0

Apache Sedona — как быстро работать с геоданными

Reading time16 min
Views4K

Привет! В рамках своей работы в beeline tech мы часто взаимодействуем с геоданными. Для решения проблем, связанных с хранением, обработкой и анализом большого объема распределенных пространственных данных, мы используем Apache Sedona (бывший Geospark). Мы — Денис Афанасьев, аналитик больших данных, и Женя Рыбалкин, инженер больших данных, под катом расскажем, почему выбрали именно этот инструмент и что он умеет. А чтобы показать, зачем вообще работать с геоданными, давайте возьмем пример расчета посещаемости хоккейных матчей в Москве, как-никак плей-офф в разгаре.

Давайте по порядку. Почти любой доступный смартфон, умные часы, фитнес-браслеты, оборудование для IoT — всё это может получать и передавать данные о собственном местоположении. Кроме потребительского железа серьезную эволюцию прошёл и интернет вещей в целом, причем как классический IoT для умного дома и других полезностей, так и индустриальный IIoT, заточенный под мониторинг сложных технологических систем, сельское хозяйство, мониторинг окружающей среды и многое другое.

Следствием такого развития, как в количественном, так и в качественном плане, стал ощутимый рост того объёма данных, который все эти устройства генерируют. Ну и что нам с ними делать? Давайте разберемся на примере геоданных!

Зачем вообще кому-то нужны геоданные?

Читать далее
Total votes 11: ↑11 and ↓0+11
Comments15

Стриминговая аналитика с применением Apache Pulsar и структурированные потоки Spark

Level of difficultyHard
Reading time17 min
Views1.7K
image

Эта статья написана в соавторстве Даниэлем и Джианнисом Полизосом, который ещё в 2017 году был одним из первых студентов Rock the JVM. Сейчас Джианнис – старший разработчик и контрибьютор Apache Pulsar, многообещающего нового инструментария для передачи распределённых сообщений и потоковых данных. В этой статье сочетаются два наших любимых технических инструмента: Apache Pulsar и Apache Spark.

Потоковая обработка – важный и необходимый аспект современных инфраструктур данных. Сегодня компании стремятся поставить себе на службу потоковую передачу и аналитику данных в реальном времени, чтобы быстрее предоставлять пользователям результаты, повышать удобство работы с ресурсом и, соответственно, поднимать его бизнес-ценность.

Примеров такого рода сколько угодно: представьте себе онлайн-сервис, предоставляющий пользователю рекомендации на основе того, какие действия пользователь совершает на веб-странице. Ещё можно представить IoT-компанию, желающую отслеживать показания сенсоров и своевременно реагировать на потенциальные сбои. К этой же категории относятся системы компьютерного зрения, которые должны в режиме реального времени анализировать видеозаписи или обнаруживать случаи мошенничества в банковских системах; этот список можно продолжать и продолжать.

Как правило, в конвейерах для потоковой обработки данных требуется уровень хранения потоков, например, Apache Pulsar или Apache Kafka. Далее для выполнения более тонких задач по обработке потоков нам потребуется движок потоковых вычислений, например, Apache Flink или Spark Structured Streaming.

Когда требуется обеспечить унифицированную пакетную обработку и работу с потоками в системах, развёрнутых в облаке, Apache Pulsar отлично подходит для полной технической поддержки таких вычислительных движков. Apache Pulsar предназначен для работы с облачной (cloud-native) инфраструктурой, а также сделан в расчёте на стратегии унифицированной пакетной обработки данных и работу с потоками.
Читать дальше →
Total votes 16: ↑16 and ↓0+16
Comments0

Основные инструменты для работы в Data Engineering: введение для начинающих Data Engineer'ов

Level of difficultyEasy
Reading time8 min
Views9K

Всем привет!

Меня зовут Надя, я занимаю должность Data Engineer в компании, которая специализируется на разработке мобильных игр. В этой статье я хочу поделиться информацией об основных инструментах, которые я использую в своей работе с данными, и рассказать о каждом из них подробнее.

Читать далее
Total votes 3: ↑2 and ↓1+1
Comments2

Наиболее распространённые мифы о Scala: сеанс с разоблачением

Reading time9 min
Views5.6K
image

В этом посте развенчивается ряд очень существенных мифов о языке Scala, которые, как нам известно, циркулируют в блогосфере. Для каждого развенчанного мифа мы представим альтернативную точку зрения, подкреплённую данными из надёжных источников.
Читать дальше →
Total votes 16: ↑14 and ↓2+17
Comments20

Проблемы приземления данных из Kafka и их решения на Apache Flink

Reading time14 min
Views3.9K

Меня зовут Вадим Опольский и я работаю data-инженером и участвую в проведении онлайн-тренингов. В статье есть ссылки на воркшопы, чтобы повторить практические вещи из Apache Flink, о которых я расскажу. А обсудим мы следующие проблемы:

➜ Неравномерный поток данных;

➜ Потери данных при передаче их из Kafka в storage;

➜ Масштабирование и скейлинг;

➜ Backpressure;

➜ Мелкие файлы на HDFS;

➜ Стриминговый процессинг.

Читать далее
Total votes 9: ↑9 and ↓0+9
Comments0

PySpark для аналитика. Как правильно просить ресурсы и как понять, сколько нужно брать

Reading time9 min
Views14K

Александр Ледовский, тимлид команды аналитики и DS в Авито, рассказал про опыт работы с Apache Spark и о том, как правильно задавать параметры Spark-сессии, чтобы получить ресурсы.

Читать далее
Total votes 17: ↑17 and ↓0+17
Comments19

Масштабируемая Big Data система в Kubernetes с использованием Spark и Cassandra

Level of difficultyMedium
Reading time39 min
Views3.9K

В предыдущей статье я рассказал, как организовать систему распределенного машинного обучения на GPU NVidia, используя язык Java с фреймворками Spring, Spark ML, XGBoost, DJL в standalone кластере Spark. Особенностью поставленной задачи являлось организация системы под управлением ОС Windows 10 Pro, в Docker‑контейнерах. Эксперимент оказался не вполне успешным. В данной статье я покажу, как воспользоваться имеющимися наработками и запустить Spark Jobs в Kubernetes в режимах client и cluster, опишу особенности работы с Cassandra в Spark, покажу пример обучения модели и ее дальнейшего использования. В этот раз буду использовать язык Kotlin. Репозиторий с кодом доступен на GitLab.

Данная статья представляет интерес для тех, кто интересуется системами Big Data и стремится создать систему, позволяющую, в том числе, выполнять задачи распределенного машинного обучения на Spark в Kubernetes, используя GPU NVidia и Cassandra для хранения данных.

Читать далее
Total votes 9: ↑8 and ↓1+14
Comments4

Оптимизация выборок в больших коллекциях MongoDB

Reading time7 min
Views2.4K

При работе с большими коллекциями в MongoDB, размер которых превышал десятки миллионов записей, возникла необходимость формировать случайные выборки уникальных значений полей, принадлежащих документам этой коллекции.

Для такой операции, в MongoDB штатно предусмотрена функция $sample, которую можно использовать в составе pipeline при проведении агрегации данных. Однако, как показала практика, выполнение выборки полей таким образом на большой коллекции может занимать весьма ощутимое время. Чтобы сократить время выполнения таких выборок, потребовалось разработать собственный алгоритм, который на порядки увеличил скорость работы. Ниже приведен подход и вариант реализации данного алгоритма.

Читать далее
Total votes 3: ↑3 and ↓0+3
Comments3

«Инженеров данных заменит автоматика» и другие мифы о DE

Level of difficultyEasy
Reading time8 min
Views17K

Инженеры данных (англ. data engineer) готовят данные для анализа, машинного обучения и других целей. В деталях это означает множество операций с данными: сбор, хранение, обработка, интеграция, трансформация и представление в нужной для работы приложений и систем форме.

Из краткого определения сложно понять нюансы профессии и тем более захотеть стать инженером данных. Поэтому мы с коллегами собрали мифы о data engineering и выделили наиболее популярные.

Если вы неплохо знакомы с работой дата-инженера, мифы про бесконечный кодинг или однообразие задач могут показаться глупыми и смешными. Но не делайте поспешных выводов: при подготовке статьи мы тоже узнали что-то новое.

Читать далее
Total votes 12: ↑8 and ↓4+10
Comments1

Information

Rating
4,644-th
Registered
Activity