Инжиниринг Данных
22.4K subscribers
1.68K photos
49 videos
177 files
2.98K links
Делюсь новостями из мира аналитики и карьерными советами;)

15 лет в Аналитике и Инжиниринге Данных, 9 лет в FAANG

🛠️ dataengineer.ru

🏄‍♂️ Surfalytics.com

№5017813306

Реклама:
https://almond-rule-130.notion.site/1199f595f76a8030ba1be1e607c9a8ce
Download Telegram
Forwarded from Книжный куб (Alexander Polomodov)
Monolith to Microservices (От монолита к микросервисам)

Эта книга "Monolith to Microservices" написана Сэмом Ньюманом, который поспособствовал росту популярности микросервисов, написав книгу "Building Microservices". Эта книга определенно хороша, но она является не продолжением книги про создание микросервисов, а скорее приквелом для выпущенной изначально книги. Об этом говорит автор во вступлении, посыпая голову пеплом относительно того, что он открыл ящик Пандоры с микросервисами, что привело к массовому adoption их всеми подряд без глубокого понимания границ применимости этого подхода:)
В новой книге автор рассматривает такие темы как:
- что такое микросервис и какого размера он может быть - по bounded context'у
- какой логикой пользоваться для декомпозиции вашего монолита на микросервисы - внезапно тут активно упоминается очередной трехбуквенный акроним DDD
- всегда ли вам нужны микросервисы - логично, что нет:)
- как не обложаться с миграцией с монолита на микросервисы
- как распиливать монолитный код
- как быть с источниками данных - аля пилим базу данных
- какие боли у вас возникнут когда вместо одного монолита у вас появится коллекция микросервисов, в которой сложность эксплуатации возрастает на порядки, если использовать те же подходы, что для эксплуатации монолита

Мне нравятся заключительные слова автора о двух идеях, которыми он хотел поделяться в своей книге:
"First, give yourself enough space and gather the right information to make rational decisions. Don’t just copy others; think instead about your problem and your context, assess the options, and move forward, while being open to change if you need to later. Second, remember that incremental adoption of microservices, and many of the associated technologies and practices, is key"
Очень логичные и понятные мысли, которые заставляют трезво смотреть на любые подходы к решению задач. И да, на микросервисы тоже:)

#SystemDesign #DistributedSystems #SoftwareArchitecture #Architecture #Software #SoftwareDevelopment
Forwarded from Книжный куб (Alexander Polomodov)
The Staff Engineer's Path

Эта книга за авторством Tanya Reilly вышла в конце 2022 года и неплохо продолжает тему Staff+ инженеров, которая хорошо была поднята в книге Вила Ларсона “Staff Engineer”, про которую я рассказывал в двух частях: 1 и 2.
Книга Тани состоит из следующих частей:

Introduction - все начинается с введения, в котором автор рассказывает про три основания роли стафф инжнера: умение мыслить в концепции big-picture, умение выполнять сложные проекты, умение влиять на окружение так, чтобы оно становилось лучше. Дальше каждое основание разбирается подробнее в своей части:
I. The Big Picture
1. What Would You Say You Do Here? - здесь разбирается ожидание от роли и зачем нужны staff инжеры, а также как выглядиит работа
2. Three Maps - обсуждение того, как делать zoom in и zoom out для понимания контекста и того, что требуется для организации
3. Creating the Big Picture - здесь разбирается то, как писать выскокоуровневые документы типа технической стратегии или vision
II. Execution
4. Finite Time - здесь рассматриваются техники, которые позволяют наиболее эффективно потратить ограниченное время, выбрав правильные проекты
5. Leading Big Projects - тут обсуждается как вести крупные кросс-командные проекты к успеху:)
6. Why Have We Stopped? - как преодолевать препятствия на пути
III. Leveling Up
7. You're a Role Model Now (Sorry) - staff+ инженеры являются ролевой моделью для остальных инженеров и это надо учитывать, если вы доросли до уровня staff+
8. Good Influence at Scale - здесь идет речь про обучение, коучинг, дизайн-ревью и реализацию культурных изменений
9. What's Next? - эта глава рассказывает как развиваться самому, как думать о развитии своей карьеры и движении вперед

P.S.
Я хочу порекомендовать эту книгу техническим лидерам, так как я при чтении часто себя ловил на мысли, что активно использую многие подходы будучи CTO:)
Так что эти советы могут пригодиться не только staff+ инженерам, но и техническим менеджерам разных уровней.

#Staff #SoftwareDevelopment #Software #SelfDevelopment
Forwarded from Книжный куб (Alexander Polomodov)
Путь аналитика. Практическое руководство IT-специалиста

Лет шесть назад я прочитал эту книгу Веры Ивановой и Андрея Перерва и она показалась мне достаточно неплохой. Плюс книги в том, что авторы довольно структурировано описывает карьерную лестницу аналитика, приводя список требований к каждой из ступенек, а также указывая способы перехода на новую ступеньку. Также в книге есть много указаний на материалы, которые реально стоит изучить. А минусы в том, что ряд моментов, указанных автором, относится к дискуссионным и с моей точки зрения не нужны:) Если говорить про содержание книги, то она состоит из 7 глав, среди которых есть вводная часть, шаги карьерной лестницы аналитика и заключение, а также много примеров и шаблонов в дополнительных материалах
1. Общие понятия
2. Профиль и квалификация аналитиков
3. Младший аналитик
4. Аналитик
5. Старший/ведущий аналитик
6. Начальник отдела анализа
7. Итак

Итого, книга показалась мне полезной для прочтения любому, кто идет или планирует идти по этому пути аналитика.

#SoftwareDevelopment #Software #Analyst
Forwarded from Книжный куб (Alexander Polomodov)
Публикации на Google Research

Последние пару дней я активно готовился к своему докладу про RnD и изучал страничку research.google/pubs/, чтобы посмотреть какие white papers появлялись у Google и когда.
В итоге, я составил список ключевых документов с фокусом на сервисы и инфраструктур (исключая ML), которым решил поделиться

- 2003 год - The Google File System - про распределенную файловую систему от Google
- 2004 года - MapReduce: Simplified Data Processing on Large Clusters - про концепцию параллельной обработки в формате MapReduce (по мотивам появился Hadoop)
- 2006 год - Bigtable: A Distributed Storage System for Structured Data - про распределенную NoSQL базу (по мотивам BigTable и Amazon DynamoDB появилась Cassandra)
- 2006 - The Chubby lock service for loosely-coupled distributed systems - про сервис распределенных локов, которые можно использовать вместо встраивания консесуса в сами сервисы
- 2007 - Engineering Reliability into Web Sites: Google SRE - про роль SRE в обеспечении надежности
- 2010 - Dapper, a Large-Scale Distributed Systems Tracing Infrastructure - про трассировку в распределенных системах (open source последователи Zipkin, Jaeger, OpenTelemetry)
- 2012 - Spanner: Google's Globally-Distributed Database - про NewSQL базу данных с масштабированием как у NoSQL и ACID транзакциями, под капотом TrueTime для точного определения времени, что нужно для определения порядка транзакций (open source последователи Cockroach DB)
- 2013 - Omega: flexible, scalable schedulers for large compute clusters - про окрестратор рабочих нагрузок (наследник Borg, но менее удачный)
- 2015 - Large-scale cluster management at Google with Borg - про оркестратор рабочих нагрузок, что предшествовал Omega и в итоге оказался более удачным и пережил ее
- 2015 - TensorFlow: Large-Scale Machine Learning on Heterogeneous Distributed Systems - про фреймворк для машинного обучения, который сразу был выпущен в open source
- 2016 - Borg, Omega, and Kubernetes - про сравнение двух внутренних и одного публичного (K8s) оркестратора нагрузок (Kubernetes изначально тоже сделал Google)
- 2016 - Ubiq: A Scalable and Fault-tolerant Log Processing Infrastructure - про обработку логов на масштабе
- 2017 - Spanner, TrueTime and the CAP Theorem - про CAP теорему и Spanner от создателя CAP-теоремы, Eric Brewer, что к этому моменту уже давно работал в Google
- 2018 - Advantages and disadvantages of a monolithic repository: a case study at google - про монорепозиторий Google и как он помогает им в разработке
- 2019 - Zanzibar: Google’s Consistent, Global Authorization System - про ReBAC систему авторизации, что завязана на отношения между сущностями (мы этот white paper как-то уже обсуждали в Code of Architecture)
- 2020 - Monarch: Google's Planet-Scale In-Memory Time Series Database - про time-series базу данных
- 2020 - Scaling PageRank to 100 Billion Pages - про масштабирование ключевого алгоритма на графах (Page Rank) на супер масштабы
- 2020 - Autopilot: Workload Autoscaling at Google Scale - про автомасштабирование рабочих нагрузок в облаках
- 2022 - Deployment Archetypes for Cloud Applications - интересное исследование про виды deployments
- 2023 - A Model-based, Quality Attribute-guided Architecture Re-Design Process at Google - интересный документ про архитектурные процессы в Google на примере репроектирования системы Monarch, про которую был white paper от 2020 года

Если суммировать мои мысли про Google и создание ими статей, то видно, что они первыми писали про многие сложные штуки, но вот open source решений поначалу они не создавали, и у них появлялись open source аналоги. И эти аналоги были несовместимы с внутренними инструментами Google, что мешало получать помощь от коммьюнити. Значимыми исключениями с точки зрения открытости являются: Android, Chrome, Kubernetes, TensorFlow.

#RnD #WhitePaper #Software #SoftwareDevelopment #Architecture #SoftwareArchitecture #DistributedSystems #SystemDesign #SystemEngineering
Forwarded from Книжный куб (Alexander Polomodov)
Data Pipelines Pocket Reference

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

#Data #Databases #Engineering #SoftwareArchitecture #Software #SoftwareDevelopment #Management
Forwarded from Книжный куб (Alexander Polomodov)
Improving software flow

Открываю сегодня в Казани наш ИТ-фестиваль с вышеуказанным докладом, а материалы к нему публикую здесь

4 основные книги, из которых родилась идея доклада
- The Phoenix Project (2013 год) - книга написана в жанре производственного романа и похожа на книгу "Цель" ("Goal") или "Критическая цепь" ("Critical Chain") Голдратта.
- The DevOps Handbook (2016 год) - книга с популяризацией devops подхода
- Accelerate (2018 год) - книга, где приводятся крутые выводы о связи процессов и практик внутри организации и ее эффективности, а это именно те вопросы, которые интересуют менеджмент.
- The Unicorn Project (2019 год) - эта книга написана Gene Kim как продолжение предыдущей книги Проект Феникс

Связанные книги
- Team Topologies - книга про Team-First подход при проектировании архитектуры программных систем, так и организации.
- Learning Domain Driven Design - эта книга содержит много рекомендаций о том, как бороться со сложностью при проектировании софта.
- A philosophy of sotfware design - книга посвященная борьбе со сложностью и тому, как практиковать стратегический подход к разработке.
- Making Work Visible - простая книга про улучшение процессов разработки с использованием kanban подходов
- SRE Book - крутая книга целиком посвященная тому, как делать надежные системы и строить процессы вокруг них
- "Lean Software Development" - книга про lean практики в разработке

Исследования
- Google's Project Aristotle - исследование, которое ответило на вопрос "What makes a team effective at Google?"
- A typology of organisational cultures - интересное исследование про типологию организационных культур (pathological, bureaucratic, generative)

Мои выступления на связанные темы
- Культура постмортемов
- От монолита к микросервисам и обратно
- Эволюция подходов к развитию мобильного банка Тинькофф
- Эволюция web Tinkoff на ArchDays

#Processes #Management #Architecture #Conference #ExternalReview #ProductManagement #Leadership #SoftwareDevelopment #Software #SoftwareArchitecture
Forwarded from Книжный куб (Alexander Polomodov)
Apache Kafka. Потоковая обработка и анализ данныз (Kafka: The Definitive Guide)

Все привыкли, что я читаю книги достаточно быстро, но вот с этой книгой получилось не так - пока я читал перевод первого издания вышло второе:) Первое издание вышло осенью 2017 году, а второе в конце 2021. Первое издание состоит из 11 глав

1. Meet Kafka - в этой главе мы встречаемся с главным героем и знакомимся с базовыми понятиями обмена сообщениями, дальше мы узнаем про основы Kafka: сообщения и пакеты, схемы сообщений, топики и партиции, producers и consumers, а также как выглядят сами брокеры и как они объединяются в кластера.
2. Installing Kafka - здесь авторы рассказывают про установку Kafka и на что обращать внимание при выборе железа (интересно, что во втором издании авторы делают больший акцент на переезде в облака)
3. Kafka Producers: Writing Messages to Kafka - здесь обсуждаются вопросы записи в Kafka (само название говорит о том, что эта система ориентирована на писателей:) ). Здесь говорится про конфигурацию producers, сериализацию и работу с партициями
4. Kafka Consumers: Reading Data from Kafka - здесь идет речь про то, как читать из Kafka и управлять оффсетом через разные варианты коммитов: автокоммит, асинхронный и синхронный коммит
5. Kafka Internals - эта часть интересна тем, кто любит заглядывать под копот. Тут идет речь про то, как работает сам кластер, как реализуется членство в кластере, что такое контроллер, как выглядит репликация, а дальше обработка запросов (на запись и на чтение), а дальше как работает физический уровень
6. Reliable Data Delivery - здесь обсуждаются гарантии доставки и как их обеспечить за счет совместной работы producer, Kafka и consumers. Здесь как раз можно почитать про семантику at least once и exactly once в Kafka
7. Building Data Pipelines - здесь кратко рассказывается про ETL пайплайны и работу с Kafka Connect (подробнее на эту тему рекомендую почитать Data Pipelines Pocket Reference)
8. Cross-Cluster Data Mirroring - про репликацию данных между кластерами и что лучше стягивать данные с удаленного кластера, чем их пушить в удаленный кластер (если есть такая возможность)
9. Administering Kafka - вопросы администрирования Kafka, здесь зарыто достаточно сложности, но эту часть определенно стоит почитать, если у вас Kafka в production:)
10. Monitoring Kafka - здесь обсуждаются вопросы мониторинга и они по большей части относятся к мониторингу java приложений и дальше использованию JMX для получения данных для мониторинга из процессов Kafka
11. Stream Processing - это интересный раздел про потоковую обработку, который подан очень сжато, но позволяет понять область применимости Kafka Streams API

На этом книга оканчивается, но есть смысл сразу пойти и изучить второе издание, чтобы оценить накопившиеся за пять лет различия:))

#Data #Databases #Engineering #SoftwareArchitecture #Software #SoftwareDevelopment #Management #Queue
Forwarded from Книжный куб (Alexander Polomodov)
Why Most Data Projects Fail and How to Avoid It • Jesse Anderson • YOW! 2022

Интересное выступление про data проекты от Jesse Anderson, автора книги "Data Teams". Автор говорит о ключевых вопросах, которые стоит задать при старте проектов
- Who - Автор говорит про правильный состав команды для data проектов. Собственно автор про это написал целую книгу и он говорит про баланс data scientists, data engineers, operations.
- What - Автор задает вопрос про бизнес значение того data продукта/проекта, которым вы занимаетесь. Автор говорит о том, что фразы "Мы делаем AI" от CEO не хватает для data strategy:) В общем, надо понимать как ваш проект принесет ценность для бизнеса. Причем помимо стратегии нужен план и его execution. Особенно во времена, когда tech компании занимаются сокращениями в направлениях, что не приносят деньги.
- When - Автор говорит о том, а когда эта бизнес ценность будет создана. Нужен проект с понятными временными границами, чтобы он не был слишокм долгим, чтобы быть отмененным где-то посердине и не слишком коротким, обещающим золотые горы, которым на самом деле будет невозможно соответствовать.
- Where - И вот мы наконец-то добрались до первого технического вопроса, а где собственно эти данные будут обрабатываться, как будет выглядеть архитектура решения. И тут для ответа тоже не хватает фразу "Мы будем использовать технологию XYZ вендора ABC". Проблема в том, что вендор может пообещать все что угодно, но это обещание не факт, что выполнимо, более того, не факт, что оно оптимально для заказчика:)
- How - Здесь речь идет про план выполнения и про фокусировку на приоритетных направлениях. Хотя часто такие data проекты пытаются успеть сразу везде, а дальше теряют эффективность на context switches и застывают на месте, переставая генерировать какую-либо ценность кроме рассказов о наступлении AI:) Автор интересно рассказывает про то, как бизнес заказчикам перпендикулярно на конкретные технические решения, но важно какую бизнес-ценность они могут получить по результатам выполнения плана.
- Why - Автор задает вопрос, а почему же эти данные обладают ценностью? Просто отгружать данные и гонять ETL/ELT пайпланы не достаточно. Важно понимать как использование данных в новых проектах позволит обеспечить нужный ROI (return on investments), причем автор говорит о том, что он ищет 10x ROI для data проектов

Напоследок автор говорит о том, что для AI и data проектов важно понимать, что такие проекты сложны и требуют навыков, людей и организационных изменений для своего успеха. И это достаточно сложно и не все способны приносить пользу в таких проектах. Конкретно, автор рассказывает про то, что если запускать data и AI проекты внутри DWH команд, то такие проекты обречены на неудачу ("the team where good data projects go to die). Это обусловлено не тем, что DWH технологии плохие, а потому, что это скорее проблема людей ("people problem"), которые очень специфично разбираются с проблемами и очень специфичным образом выстраивают свою работу. В общем, автор говорит о том, что эта не та команда, которая должна отвечать за data и AI проекты нового типа.

В конце автор рассказывает о том, как можно получить помощь с такими проектами за счет аутсорсинга (если у компании нет своей инженерной команды и культуры), за счет привлечения консультантов (правда, автор говорит о том, что консультанты по менеджменту типа BCG, Bain, Mckinsey зачастую не обладают компетенциями для помощи в таких data проектах). В конце автор упоминает свою книгу "Data teams", которую он написал для менеджеров, которым предстоит запускать data и AI проекты.

P.S.
Мне автор продал свою книгу, поэтому я добавлю ее в свой long list на чтение:)

#Management #Leadership #Data #DataScience #AI #Engineering #Software #SoftwareDevelopment #ML
Forwarded from Книжный куб (Alexander Polomodov)
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from Книжный куб (Alexander Polomodov)
Как я получаю информацию, чтобы быть в теме IT и не только

Недавно ко мне прилетел примерно такой вопрос от моего коллеги, Вовы Коноплева, CTO нашего банка для юрлиц, который ведет свой канал @konoplevthoughts
Мне вопрос понравился и я решил ответ на него превратить в отдельный пост, где я расскажу про свои источники информации

1) Книги
Я отслеживаю важные книги по интересным мне темам. Для этого я ориентируюсь на новинки на платформе
- Сайт онлайн-платформы O’Reilly, где есть книги разных издательств, а также видео и курсы
- Сайт издательства Питер, где интересно отслеживать новинки, а потом читать их неисковерканные в английском варианте
- Сайт издательства ДМК Пресс, где интересно отслеживать новинки и их даже можно покупать и читать (например, тут я писал про последнюю купленную партию книг из ДМК насчет статистики)
- Сайт издательства МИФ, где я покупаю много книг, но редко какие из них посвящены IT, так как это не профильная тема для МИФ
Отдельно отмечу, что меня интересуют книги как по IT, так и по современной науке, но обычно в формате научно-попуплярной литературы. Это позволяет мне поддерживать знания в актуальном состоянии.

2) Whitepapers
Я люблю читать важные whitepapers на темы, что меня задевают: архитектура , менеджмент, распределенные системы. Для этого у меня есть тоже набор источников
- Сайт ACM (Association for Computing Machinery) - сайт ассоциация вычислительной техники, старейшей и наиболее крупной международной организации в компьютерной области. На этом сайте есть куча whitepapers. Отдельно отмечу, что вступление в ряды членов ACM позволяет здорово сэкономить на доступах: само членство стоит 99$, за 75$ можно получить доступ к уже упоминавшейся выше платформе O'Reilly, Skillsoft Percipio и Pluralsight, а еще за 99$ к ACM Digital Library. В итоге, 273$ в год дают бандл, что стоит дешевле в 2 раза, чем доступ к O'Reilly отдельно
- Сайт Google Research, где есть куча интересных whitepapers, например, я уже публиковал такую подборку
- Сайт Amazon Science, где тоже много отличных материалов, например, "Dynamo: Amazon’s highly available key-value store" 2007 года, "Amazon Redshift and the case for simpler data warehouses" 2015 года, "Amazon Aurora: Design considerations for high throughput cloud-native relational databases" 2017 года, "Amazon DynamoDB: A scalable, predictably performant, and fully managed NoSQL database service" 2022 года
- Сайт Meta Research (запрещенной в России Meta), где тоже куча интересного материала

3) Telegram каналы
Приведу тут не весь список каналов, а тот, из которого я частенько узнаю что-то новое
- Сиолошная (@seeallochnaya) - здесь я читаю понятные тексты про LLMs и все, что с ними связано. По этим текстам мне кажется, что я неплохо все понимаю
- gonzo-обзоры ML статей (@gonzo_ML) - здесь я узнаю про whitepapers и понимаю, что пока не слишком хорошо во всем этом разбираюсь:)
- Инжиниринг Данных (@rockyourdata) - здесь я узнаю про современный ландшафт технологий работы с данными, но с фокусом на западных SaaS решениях и примесью on-prem решений
- Архитектура ИТ-решений (@it_arch) - отсюда я узнаю про интересные статьи на тему архитектуры и проектирования
- DDDevotion (@dddevotion) - тут я черпаю новости относительно DDD и той же архитектуры и проектирования

4) Популярные ресурсы на тему IT
- Сайт консультантов Thought Works и конкретно их выпуски про техрадары
- Сайт InfoQ и их ежемесячные рассылки по архитектуре

5) Каналы в Youtube
- Канал конференции goto, где есть записи с конференций крутых спикеров, многие из которых являются популярными авторами
- Канал конференции NDC, где тоже есть крутые выступления

6) Обучающие платформы
- Leetcode, где можно практиковать написание кода
- Edx - ресурс с крутыми университетскими курсами (я его использовал активно раньше)
- Coursera - ресурс с крутыми университетскими курсами (я его использовал активно раньше)
- Stepik - российский ресурс с хорошими курсами

#SelfDevelopment #Education #Software #Architecture #Management #Leadership
Forwarded from Книжный куб (Alexander Polomodov)
Code of Leadership #22 - Интервью с Дмитрием Аношиным про data engineering (Рубрика #Data)

В этом выпуске ко мне пришел в гости крутой гость, Дмитрий Аношин. Дима является экспертом в data engineering, ведет канал @rockyourdata, также Дима почти 10 лет работал западных Bigtech компаниях. Кстати, выпуск доступен в виде подкаста и в Яндекс Музыке.

Мы обсудили следующие темы:
- Как Дима входил в IT порядка 15 лет назад
- Как он развивал свои навыки как дата инженер
- Как он уехал в Канаду и адаптировался там
- Как развивалась карьера Димы в Amazon, Microsoft и что он вынес из этого опыта
- Как Дима стал создателем обучающих проектов datalearn, surfalytics, а также как ему удалось написать целую гору книг
- Как находить мотивацию для роста и развития

Если говорить подробнее про Дмитрия, то он уже больше 15 лет занимается аналитикой и инжинирингом данных, а 10 последних лет проработал в Северной Америке. Из них 5 лет в Амазоне, где работал в нескольких командах, включая Alexa AI (в Бостоне) и Customer Behaviour Analytics (в Сиэтле). Поучаствовал в действительно инновационных проектах, где драйвером являются данные. Видел и Big Data и Machine Learning в действии в масштабе крупнейшей компании мира. После Амазона работал 4 года в Microsoft Xbox и Microsoft Azure Data&AI. Активно принимал участие в развитии Microsoft продуктов для аналитики - Synapse, Fabric, Azure Databricks.

Теперь, Дмитрий помогает создавать инновационные аналитические решения, дата команды и модернизировать устаревшие решения через свою компанию rockyourdata.cloud и глобально готовит инженеров и аналитиков через свое сообщество Surfalytics.com (на английском), до этого несколько лет развивал проект Datalearn.ru, на котором делился фундаментальными знаниями и помогал бесплатно всем желающим войти в ИТ, знания там все еще актуальны.

Дмитрий написал несколько книг по аналитике и преподает несколько лет Облачные Вычисления (Cloud Computing) в партнерстве с Microsoft в Университете Виктории.

Еще из интересных проектов:
- Создал онлайн выставку писем CEO про увольнения в крупных компаниях - https://www.layoffmemos.com/
- Совместно с Московским Зоопарком и Вконтакте организовал группу по наблюдению за популяцией пеликанов и экомониторинга с использованием AI - https://www.scifly.ai/

Из последнего, Дмитрий создает главный Российский портал Дата Инженеръ посвященный карьере дата инженера, куда он планирует добавить road map для вакансий Инженера Данных, Аналитика и BI разработчика и ссылки на лучшие бесплатные ресурсы: книги, тренинги, курсы, видео, телеграмм каналы, и многое друго, что поможет понять, кто такой иженер данных и как таким стать, преимущественно на русском языке.

#Database #Architecure #Software #Data #SystemDesign #Management
Forwarded from Книжный куб (Alexander Polomodov)
What Goes Around Comes Around... And Around... Part I (Рубрика #Data)

Интересная обзорная статья 2024 года от Michael Stonebraker и Andrew Pavlo про развитие баз данных за последние 20 лет. Оба автора являются корефееями в области баз данных: Michael создал Postgres и еще кучу других баз, а Andrew - исследователь в области баз данных, профессор и преподаватель, лекции которого доступны на Youtube.

Сама статья продолжает статью 2005 года "What Goes Around Comes Around", которую написали Michael Stonebraker и Joseph M. Hellerstein. Они проанализировали историю развития баз данных за 35 лет и предсказали что модные тогда объектные и xml базы данных не смогут обойти по реляционную модель.

С тех пор прошло порядка 20 лет и пришло время сделать новый обзор мира баз данных. Для этого авторы решили посмотреть на это с двух сторон:
- Модели данных и языки запросов
- Архитектура баз данных

Начнем с разбора существующих data models и query languages:

1. MapReduce-системы
Изначально они были разработаны в Google для обработки больших объемов данных (веб-краулер). MapReduce не использует фиксированную модель данных или язык запросов, они выполняют пользовательские операции map и reduce. Открытой версией MapReduce стал Hadoop, который сейчас не очень популярен из-за низкой производительности и заменяется более современными платформами аля Apache Spark или просто СУБД.

2. Key-Value хранилища
У них максимально простая модель данных: пары "ключ-значение". Они используются для задач кэширования (Memcached, Redis) или хранения сессий. Возможности в модели ограничены - нет индексов или операций join, что усложняет применение для сложных приложений. Многие KV-хранилища (например, DynamoDB, Aerospike) эволюционировали в более функциональные системы с поддержкой частичной структуры (JSON). Среди популярных встроенных k/v решений популярны LevelDB и RocksDB.

3. Документные базы данных
Они хранят данные в виде документов (например, в формате JSON). Изначально получили популярность благодаря простоте интеграции с веб-приложениями (например, MongoDB), предлагая подход schema on read. Интресно, что к 2020-м годам большинство документных СУБД добавили SQL-подобные интерфейсы и поддержку ACID-транзакций, а иногда и schema on write.

4. Column-Family базы данных (wide columns)
По-факту, это упрощенная версия документной модели с ограниченной вложенностью. Начиналось все с Google BigTable, а в миру есть open source реализация в виде Apache Cassandra. Изначально в Cassandra не было вторичных индексов и транзакций. Но по мере развития они появились (но там все очень интересно)

5. Поисковые движки
Они нужны для полнотекстового поиска (Elasticsearch, Apache Solr). Поддерживают индексацию текста, но ограничены в транзакционных возможностях. Реляционные СУБД также предлагают встроенный полнотекстовый поиск, но с менее удобным API.

6. Базы данных для массивов
Они предназначены для работы с многомерными массивами, например, научные данные (SciDB, Rasdaman). Ниша ограничена специфическими областями применения: геоданные, изучение генома.

7. Векторные базы данных
Используются для хранения эмбеддингов из машинного обучения (Pinecone, Milvus). Основное применение — поиск ближайших соседей в высокоразмерных пространствах. Реляционные СУБД уже начали добавлять поддержку векторных индексов.

8. Графовые базы данных
Моделируют данные как графы (узлы и связи). Примеры: Neo4j для OLTP-графов, TigerGraph для аналитики. Большинство графовых задач можно реализовать на реляционных СУБД с помощью SQL/PGQ (новый стандарт SQL:2023).

Общие выводы
- Большинство нереляционных систем либо занимают нишевые рынки, либо постепенно сближаются с реляционными СУБД.
- SQL остается основным языком запросов благодаря своей гибкости и поддержке современных приложений.
- Реляционные СУБД продолжают развиваться и интегрировать новые возможности (например, JSON, векторные индексы), что делает специализированные системы менее конкурентоспособными.

В продолжении поста будет про архитектуру баз данных.

#Data #Architecture #Software #DistributedSystems