Книжный куб
11.1K subscribers
2.67K photos
6 videos
3 files
1.97K links
Рекомендации интересных книг, статей и выступлений от Александра Поломодова (@apolomodov), технического директора и эксперта в архитектуре
Download Telegram
Сегодня я дописал последнюю статью из серии с обзором книги Learning DDD.
В этой статье рассматривается то, как работать с аналитическими данными, что такое dwh и data lake, что такое data mesh. И почему data mesh очень близок к DDD.
Интересно, что про концепции DWH и data mesh я год назад сам рассказывал в лекции про данные из курса Essential Architecture, но тогда я не рассматривал их через призму DDD. В любом случае рисунок из той статьи может неплохо выступить в качестве заглавного в этой:)

https://bit.ly/DDDAndDataMesh

#ExternalReview #DDD #DataMesh #SoftwareArchitecture #Software #Architecture
👍8
Data - The Land DevOps Forgot • Michael Nygard • YOW! 2023 (Рубрика #Data)

Интересное выступление от Michael Nygard, автора книги "Release It!" (я рассказывал про нее), а сейчас VP в Nubank (бразильский необанк), где он отвечает за направление data engineering. Интересно, что Майкл когда-то популяризировал подход к написанию ADR (architecture decision records). А в этом выступлении Майкл рассказывает про концепцию data mesh, но в приложении к сквоим задачам внутри Nubank, где старый процесс ETL/ELT уже не масштабируется. Собственно Майкл пришел туда менять подходы в сторону концепции, придуманной Zhamak Dehghani, которая написала на эту тему отдельную книгу.
В самой концепции есть четыре ключевых принципа
1. Domain ownership
2. Data as a product
3. Self service platform
4. Federated governance
По-факту, этот подход можно сравнить с применением микросервисного подхода к oltp системам, но перенесенное в мир аналитики. Про это хорошо писал Влад Хононов в книгег "Learning Domain-Driven Design". Я делал краткое саммари этих идей в отдельной статье.

В выступлении Майкла интересна практика применения этого подхода. Например, он объясняет почему это сложно, например
1) Ownership данных накладывает обязательства на владельцев данных (стоимость производства и поддержки данных), а бенефиты получают консьюмеры
2) Self-service платформа достаточно сложна в созданни, но она помогает в создании marketplace данных (cost visibility, прайсинг за использование данных)
3) Отсутствуют части всей этой истории про data mesh: interoperability, "swagger of data", все крутится вокруг работы с данными

Напоследок Майкл раассказывает про то, как надо подходить к таким изменениям в работе с данными (советы можно посмотреть в приложенных слайдах).

#Data #Management #DataMesh #Software #SoftwareArchitecture #Architecture #Engineering
👍6🔥31
dbt — ядро современной платформы данных - Евгений Ермаков - SmartData 2023 (Рубрика #Architecture)

Интересный доклад Евгения Ермакова про построение дата платформы в toloka.ai, которая, получив независимость от Yandex, вынуждена была переезжать на новые технологии. В итоге, выбор пал на databricks, dbt, airflow и tableau. Автор рассказывает о том, почему был сделан такой выбор и как в итоге это все работает.

Основные моменты следующие:
- Сама toloka - это система для краудсорсинга, куда заказчики приходят с задачками навроде разметить данные, а с другой стороны на платформе зарегестрированы люди, которые их выполняют
- Архитектура базируются на трех китах:
-- Data lakehouse
-- Процессы в соответствии с подходом data mesh
-- Современный технологический стек
- До переезда на новые технологии ребята использовали много своего, часть из которого уже есть в opensource: YTsaurus, datalens
- После переезда выбрали новые технологии и dbt стал ядром системы, закрывая функциональность: data quality, data catalog/ data observability, batch processing (вместе со spark), orchestration (вместе с airflow)
- Изначально dbt (data building tool) нужен был в качестве удобного инструмента для transformation шага в ETL/ELT
- Интересно, что в концепции компании dbt есть мнение и относительно ролей, где помимо стандартных data engineers и data analysts появляется еще analytics engineer. В итоге, data engineers - это те, кто делают так, чтобы data платформа работала эффективно, data analysts ищут инсайты в данных и помогают их эффективно использовать, а вот analytics engineers - это ребята, что-то среднее между другими двумя + хорошо укладывается в концепцию data mesh, где нет централизованной дата-команды, а есть дата-команды по доменам
- Основой dbt-проекта является dbt model. Модель состоит из файла с описанием логики (.sql или .py файл) и файла с описанием конфигурации. В .sql файле есть запрос на формирование объекта, другие модели используются через ref() или source() + используется jinja шаблонизация. В .py файле возвращаем dataframe с рассчитанными данными, есть доступ ко всем возможностям pyspark + другие модели тоже используются через ref() или source()
- Материализацию запроса dbt берет на себя и есть разные стратегии, из которых самая интересная incremental
- Настройки хранятся в dbt_project.yaml и profiles.yaml
- dbt поддерживает большое количество баз данных, например, postgres, mysql, clickhouse, ...
- dbt - это консольная утилита, например, при запуске dbt build происходит сборка всех зависимостей между моделями, а также компиляция python/sql запросов и запись в manifest.json
- Команда dbt run запускает скомпилированные запросы, где запуск можно настроить по разному, но интересно запускать по графу
- Кстати, dbt умеет генерировать документацию командой dbt docs generate и дальше можно посмотреть на lineage данных
- Также мы можем писать тесты в том же месте, где мы описываем модели, а дальше запускать их при помощи dbt tests. Например, можем проверять unique или not null на поле, а также если хотим relations между моделями
- У dbt есть еще много возможностей, но про них стоит почитать самостоятельно:)
- Дальше автор рассказывает как сделать data mesh на уровне dbt + airflow. Автор рассматривает варианты вида:
-- Монолитный - один dbt проект на всю компанию
-- Микросервисный - отдельные dbt проекты на каждый домен
-- Layered - отдельные dbt проекты по уровням
-- Смешанный - анархия, где проекты создаются кто как хочет
Выбрали монолитный подход и получили аля монорепо под data mesh, в котором живут все. Обусловлено это было тем, что при микросервисном подходе ломались все связки между моделями (до 1.6 не могли называть модели одинаково в разных проектах + была проблема с импортом друг друга, так как это приводило к циклическим зависимостям).
Из интересного еще сделали конвертор графа исполнения dbt в airflow формат, чтобы запускать DAG из airflow.

В итоге, ребята реализовали свой подход к data mesh при помощи open source инструмнетов и вся схема выглядит достаточно стройно.

#Data #Datamesh #DWH #Processes #Management
👍13🔥4😁1😱1
Data Mesh: Delivering Data-Driven Value at Scale

Недавно я ходил в книжный клуб моих коллег из data platform для обсуждения этой книги Zhamak Dehghani . Мы должны были обсудить девятую главу "The Logical Architecture", которую я и успел прочитать к записи выпуска, пропустив остальные главы, отчасти из-за того, что я эту концепцию помню с момента основания, а также видел ее разбор в разных книгах
- В 2019 году Zhamak Dehghani выступала про data mesh на многих конференциях, например, на QCon или на Software Architecture Conference в Берлине, которую я посетил лично
- В 2022 году вышла эта книга и Zhamak Dehghani приходила в книжный клуб goto обсудить эту книгу
- В книге "Learning DDD" Влада Хононова в одной из глав разбиралась на пальцах связь domain driven design и data mesh (и у меня есть краткий разбор тезисов)

Собственно, глава про логическую архитектуру начинается с воспоминаний о концепциях data mesh, а дальше идет попытка разобраться как их реализовать
1) Domain ownership extends domains with analytical data sharing interfaces
2) Data as a product introduces a new architecture quantum, aka data quantum
3) The self-serve data platform drives a multiplane platform architecture
4) Federated computational governance embeds computational policies into each data product

Дальше авторы много говорят про контракты по данным от доменов, а также про кросс-зависимости между доменами. Во втором авторы используют неоднозначное понятие архитектурного кванта, введенное в книге "Software Architecture: The Hard Parts", которую мы разбирали в подкасте "Code of Architecture". Это же понятие активно использовалось в книге "Building Evolutionary Architecture", которую мы тоже разбирали
An architectural quantum, defined in Building Evolutionary Architectures (O’Reilly), is the smallest unit of architecture that can be independently deployed, has high func‐ tional cohesion, and includes all the “structural elements required for its function.”


Из этого понятия архитектурного кванта у ребят рождается понятие data quantum, где ETL как бы внутри и абстрагирован от внешнего окружения. А сам квант представлен API: input data API, output data API, Discovery and observability API.
Дальше идет интересное обсуждение платформы и ее отдельных planes:
- Mesh experience plane
- Data product experience plane
- Infrastructure utility plane
Где самым интересным является первый уровень, так как именно он позволяет совместно использовать разные дата продукты, опубликованные командами отдельно. Отдельно отмечается, что вся эта платформа должна быть перевязана policies и standards для того, чтобы общая концепция не развалилась из-за децентрализованного подхода.

В общем и целом, подход интересный, но достаточно сложно реализуемый. Можно глянуть доклад про платформу данных Евгения Ермакова из toloka.ai, где они на практике шли в сторону data mesh целенаправленно, правда там фокус все-таки на dbt как ядре их платформы данных. Я делал краткое саммари этого доклада.

#Data #Datamesh #DWH #Processes #Management
👍194🔥2👏1😱1
Research Insights Made Simple #6 - Interview with Nikolay Golov about data platforms (Рубрика #Data)

И, продолжая тему систем хранения данных, я решил сегодня поделиться новым выпуском подкаста про инсайты. В этот раз ко мне в гости пришел Николай Голов для того, чтобы обсудить то, как строить дата платформы в 2025 году:) Коля исполняет роль head of data engineering at ManyChat, а до этого он был head of data platform в Авито. Коля знает все о том как построить OLAP и OLTP системы, интенсивно работающие с данными. Выпуск доступен в виде подкаста на Ya Music и Podster.fm

За время подкаста мы обсудили темы
- Как развивалась карьера Коли в разных компаниях и как он стал преподавать базы данных параллельно с основной работой
- Как можно строить платформы данных (централизованно, гибридно и децентрализованно)
- Как выглядят принципы федерализации данных (аля data mesh) в теории
- Во что этот подход превращается на практике
- Как строить дата платформы в стартапах, средних, а также крупных компаниях в 2025 году
- Что не так с классическими базами данных (Postgres и иже с ним)
- Что не так с MPP базами данных (Vertica, Greenplum, ClickHouse, ...)
- Как data mesh превращается в data mash и как цепочки дата продуктов работают на практике
- Как выделять базовый домен данных, чтобы уменьшить длину цепочек дата продуктов
- Почему облачные аналитические базы так быстры: колоночное хранение + разделение storage и compute
- Что такое medalion architecture
- Куда дальше будут развиваться технологии обработки данных и почему нельзя полагаться на старые подходы и ограничения

Дополнительные материалы
- Статьи из периода работы в Avito "Vertica+Anchor Modeling = запусти рост своей грибницы"
- Статья из периода работы в Manychat: 1 и 2
- Запись "Data Modeling Meetup Munich: From Data Vault to Anchor Modeling with Nikolai Golov"
- Запись "DataVault / Anchor Modeling / Николай Голов"
- Научная статья "Golov N., Ronnback L., Big Data Normalization for Massively Parallel Processing Databases" //Computer Standards & Interfaces, 09-May-2017, https://doi.org/10.1016/j.csi.2017.01.009
- Научная статья "Golov N., Filatov A., Bruskin S.,Efficient Exact Algorithm for Count Distinct Problem", Computer Algebra in Scientific Computing, July 2019

#Data #Datamesh #Processes #Management #Architecture
🔥156🙏2
Data завтрак в T-Space 13 января (Рубрика #Data)

Мы в Т-Банке начнем новый год митапом про данные, который пройдете 13 января в формате завтрака. На мероприятии будет 2 доклада
1) Дмитрий Аношин, основатель консалтинговой компании Rock Your Data (Северная Америка), специализирующейся на облачной аналитике, представит обзор аналитических решений, инструментов и подходов к формированию команд. Вы узнаете о построении эффективных аналитических команд, преодолении сложностей и разработке архитектур аналитических систем. Дима ведет отличный канал "Инжиниринг Данных" (@rockyourdata), на который я подписан уже давно. Кстати, Дима привез мне в подарок бумажную версию книги Влада Хононова "Balancing Coupling in Software Design", так что к концу новогодних каникул можно ожидать ее обзор.
2) Валерий Поляков, CDO в Т-Банке, поделится опытом трансформации платформы данных в Т-Банке: от централизованных вендорских решений до сложной экосистемы open-source компонентов. С 2011 года он работает с данными в разных ролях: от построения отчетности и хранилищ данных до разработки аналитических продуктов. В Т-Банке Валерий работал с 2012 по 2019 год, а затем вновь присоединился к команде в 2022 году.

Этот митап будет полезен аналитикам, инженерам данных, разработчикам, которые смогут не просто послушать доклады, но и пообщаться за завтраком с экспертами и коллегами за чашечкой кофе. Кстати, во время митапа будет проводиться игра Data-бинго, что позволит получить подарки победителям:)

#Database #Datamesh #Data #Processes #Conference
9👍7🔥7🌚1🙊1