Monitor Apache Airflow with Airbyte, Snowflake and Apache Superset
https://youtu.be/x7oRfH4ig54?si=NgUKI9BklYSUbaaM
#Airflow #Airbyte #Superset
https://youtu.be/x7oRfH4ig54?si=NgUKI9BklYSUbaaM
#Airflow #Airbyte #Superset
YouTube
Mini Data Engineering Project: Monitor Apache Airflow with Airbyte, Snowflake, and Superset
Mini Data Engineering Project: Monitor Apache Airflow with Airbyte, Snowflake, and Superset
Notion Page: https://robust-dinosaur-2ef.notion.site/PUBLIC-Mini-Data-Engineering-Project-Monitoring-Airflow-DAGs-and-Tasks-with-Airbyte-and-Snowflake-1159e45d4d…
Notion Page: https://robust-dinosaur-2ef.notion.site/PUBLIC-Mini-Data-Engineering-Project-Monitoring-Airflow-DAGs-and-Tasks-with-Airbyte-and-Snowflake-1159e45d4d…
OReillys Data Quality Fundamentals 2022.pdf
9.7 MB
OReillys Data Quality Fundamentals 2022.pdf
📌 Build more trustworthy and reliable data pipelines
📌 Write scripts to make data checks and identify broken pipelines with data observability
📌 Learn how to set and maintain data SLAs, SLIs, and SLOs
📌 Develop and lead data quality initiatives at your company
📌 Learn how to treat data services and systems with the diligence of production software
📌 Automate data lineage graphs across your data ecosystem
📌 Build anomaly detectors for your critical data assets
#DataQuality #SLA #SLI #SLO #DataAssets #DataLineage
📌 Build more trustworthy and reliable data pipelines
📌 Write scripts to make data checks and identify broken pipelines with data observability
📌 Learn how to set and maintain data SLAs, SLIs, and SLOs
📌 Develop and lead data quality initiatives at your company
📌 Learn how to treat data services and systems with the diligence of production software
📌 Automate data lineage graphs across your data ecosystem
📌 Build anomaly detectors for your critical data assets
#DataQuality #SLA #SLI #SLO #DataAssets #DataLineage
Spark_v_deystvii.pdf
14.5 MB
Spark в действии.pdf
О книге👇
Анализ корпоративных данных начинается с чтения, фильтрации и объединения файлов и потоков из многих источников. Механизм обработки данных Spark способен обрабатывать эти разнообразные объемы информации как признанный лидер в этой области, обеспечивая в 100 раз большую скорость, чем например Hadoop. Благодаря поддержке SQL, интуитивно понятному интерфейсу и простому и ясному многоязыковому API вы можете использовать Spark без глубокого изучения новой сложной экосистемы. Эта книга научит вас создавать полноценные и завершенные аналитические приложения. В качестве примера используется полный конвейер обработки данных, поступающих со спутников NASA.
Для чтения этой книги не требуется какой-либо предварительный опыт работы со Spark, Scala или Hadoop.
#spark #scala #hadoop
О книге👇
Анализ корпоративных данных начинается с чтения, фильтрации и объединения файлов и потоков из многих источников. Механизм обработки данных Spark способен обрабатывать эти разнообразные объемы информации как признанный лидер в этой области, обеспечивая в 100 раз большую скорость, чем например Hadoop. Благодаря поддержке SQL, интуитивно понятному интерфейсу и простому и ясному многоязыковому API вы можете использовать Spark без глубокого изучения новой сложной экосистемы. Эта книга научит вас создавать полноценные и завершенные аналитические приложения. В качестве примера используется полный конвейер обработки данных, поступающих со спутников NASA.
Для чтения этой книги не требуется какой-либо предварительный опыт работы со Spark, Scala или Hadoop.
#spark #scala #hadoop
Алгоритмы_и_структуры_для_массивных_наборов_данных_2023_Меджедович.pdf
63.3 MB
Алгоритмы и структуры для массивных наборов данных [2023] Меджедович Дж., Тахирович Э.pdf
Стандартные алгоритмы и структуры при применении к крупным распределенным наборам данных могут становиться медленными — или вообще не работать. Правильный подбор алгоритмов, предназначенных для работы с большими данными, экономит время, повышает точность и снижает стоимость обработки.
Книга знакомит с методами обработки и анализа больших распределенных данных. Насыщенное отраслевыми историями и занимательными иллюстрациями, это удобное руководство позволяет легко понять даже сложные концепции. Вы научитесь применять на реальных примерах такие мощные алгоритмы, как фильтры Блума, набросок count-min, HyperLogLog и LSM-деревья, в своих собственных проектах.
Стандартные алгоритмы и структуры при применении к крупным распределенным наборам данных могут становиться медленными — или вообще не работать. Правильный подбор алгоритмов, предназначенных для работы с большими данными, экономит время, повышает точность и снижает стоимость обработки.
Книга знакомит с методами обработки и анализа больших распределенных данных. Насыщенное отраслевыми историями и занимательными иллюстрациями, это удобное руководство позволяет легко понять даже сложные концепции. Вы научитесь применять на реальных примерах такие мощные алгоритмы, как фильтры Блума, набросок count-min, HyperLogLog и LSM-деревья, в своих собственных проектах.
GitHub - TheAlgorithms/Python: All Algorithms implemented in Python
https://github.com/TheAlgorithms/Python
https://github.com/TheAlgorithms/Python
GitHub
GitHub - TheAlgorithms/Python at dailydev
All Algorithms implemented in Python. Contribute to TheAlgorithms/Python development by creating an account on GitHub.
Алгоритмика
https://ru.algorithmica.org/
https://ru.algorithmica.org/
Problem Solving with Algorithms and Data Structures using Python
https://runestone.academy/ns/books/published/pythonds/index.html
https://runestone.academy/ns/books/published/pythonds/index.html
runestone.academy
Problem Solving with Algorithms and Data Structures using Python — Problem Solving with Algorithms and Data Structures
An interactive version of Problem Solving with Algorithms and Data Structures using Python.
40_algoritmov.pdf
12.5 MB
40 алгоритмов, которые должен знать каждый программист на Python
Автор: Ахмад Имран
Понимание работы алгоритмов и умение применять их для решения прикладных задач – must-have для любого программиста или разработчика. Эта книга поможет вам не только развить навыки использования алгоритмов, но и разобраться в принципах их функционирования, в их логике и математике. Вы начнете с введения в алгоритмы, от поиска и сортировки перейдете к линейному программированию, ранжированию страниц и графам и даже поработаете с алгоритмами машинного обучения. Теории не бывает без практики, поэтому вы займетесь прогнозами погоды, кластеризацией твитов, механизмами рекомендаций фильмов. И, наконец, освоите параллельную обработку, что даст вам возможность решать задачи, требующие большого объема вычислений. Дойдя до конца, вы превратитесь в эксперта по решению реальных вычислительных задач с применением широкого спектра разнообразных алгоритмов.
Автор: Ахмад Имран
Понимание работы алгоритмов и умение применять их для решения прикладных задач – must-have для любого программиста или разработчика. Эта книга поможет вам не только развить навыки использования алгоритмов, но и разобраться в принципах их функционирования, в их логике и математике. Вы начнете с введения в алгоритмы, от поиска и сортировки перейдете к линейному программированию, ранжированию страниц и графам и даже поработаете с алгоритмами машинного обучения. Теории не бывает без практики, поэтому вы займетесь прогнозами погоды, кластеризацией твитов, механизмами рекомендаций фильмов. И, наконец, освоите параллельную обработку, что даст вам возможность решать задачи, требующие большого объема вычислений. Дойдя до конца, вы превратитесь в эксперта по решению реальных вычислительных задач с применением широкого спектра разнообразных алгоритмов.
Вопросы и ответы для собеседования Back-end/Golang разработчика и не только
Много полезного помимо Golang
https://github.com/goavengers/go-interview
Много полезного помимо Golang
https://github.com/goavengers/go-interview
GitHub
GitHub - goavengers/go-interview: :octocat: Вопросы и ответы для собеседования Back-end/Golang разработчика и не только
:octocat: Вопросы и ответы для собеседования Back-end/Golang разработчика и не только - goavengers/go-interview
Нормальные формы базы данных (YouTube)
00:00 - О чём пойдёт речь в статье
00:45 - Коротко о реляционных БД
01:20 - Что такое нормализация
01:46 - Зачем нужна нормализация БД
02:08 - Что такое избыточность данных с примерами
04:51 - Какие бывают нормальные формы БД и о процессе нормалиции в целом
08:00 - Ненормализованная форма или нулевая нормальная форма с примером
09:37 - Первая нормальная форма с примером нормализации
11:24 - Вторая нормальная форма с примером нормализации
15:29 - Что такое декомпозиция
16:18 - Третья нормальная форма с примером нормализации
18:54 - Нормальная форма Бойса-Кодда с примером нормализации
21:54 - Четвертая нормальная форма с примером нормализации
27:45 - Почему обычно никто не нормализует БД до 5 или 6 нормальной формы
29:14 - Пятая нормальная форма с примером нормализации
34:23 - Доменно-ключевая нормальная форма
35:39 - Шестая нормальная форма
38:02 - Выводы и заключение
https://youtu.be/zqQxWdTpSIA?si=9WUJIZbQ8Qu7QWjO
00:00 - О чём пойдёт речь в статье
00:45 - Коротко о реляционных БД
01:20 - Что такое нормализация
01:46 - Зачем нужна нормализация БД
02:08 - Что такое избыточность данных с примерами
04:51 - Какие бывают нормальные формы БД и о процессе нормалиции в целом
08:00 - Ненормализованная форма или нулевая нормальная форма с примером
09:37 - Первая нормальная форма с примером нормализации
11:24 - Вторая нормальная форма с примером нормализации
15:29 - Что такое декомпозиция
16:18 - Третья нормальная форма с примером нормализации
18:54 - Нормальная форма Бойса-Кодда с примером нормализации
21:54 - Четвертая нормальная форма с примером нормализации
27:45 - Почему обычно никто не нормализует БД до 5 или 6 нормальной формы
29:14 - Пятая нормальная форма с примером нормализации
34:23 - Доменно-ключевая нормальная форма
35:39 - Шестая нормальная форма
38:02 - Выводы и заключение
https://youtu.be/zqQxWdTpSIA?si=9WUJIZbQ8Qu7QWjO
YouTube
Нормальные формы баз данных: Объясняем на пальцах
Listen IT на Я.Дзене - https://zen.yandex.ru/listenit
00:00 - О чём пойдёт речь в статье
00:45 - Коротко о реляционных БД
01:20 - Что такое нормализация
01:46 - Зачем нужна нормализация БД
02:08 - Что такое избыточность данных с примерами
04:51 - Какие бывают…
00:00 - О чём пойдёт речь в статье
00:45 - Коротко о реляционных БД
01:20 - Что такое нормализация
01:46 - Зачем нужна нормализация БД
02:08 - Что такое избыточность данных с примерами
04:51 - Какие бывают…
Оконные функции.pdf
2.6 MB
Небольшая шпаргалка по оконным функциям.
Делал при подготовке к собесам
Делал при подготовке к собесам
Как ускорить высокопараллельные вставки строк в SQL Server за считанные часы: опыт Mindbox
https://habr.com/ru/companies/mindbox/articles/854156/
https://habr.com/ru/companies/mindbox/articles/854156/
Хабр
Как ускорить высокопараллельные вставки строк в SQL Server за считанные часы: опыт Mindbox
Привет, Хабр! Меня зовут Тимур Маннапов, и я самый обычный senior-разработчик в Mindbox. На примере нашего продукта я расскажу, почему при загрузке CPU наполовину или меньше скорость параллельных...
The Bitnami Containers Library
Popular applications, provided by Bitnami, containerized and ready to launch.
Здесь можно найти примеры docker compose и других настроек для таких приложений как:
airflow, spark, vault, nginx, minio, clickhouse, kafka и многое другое
https://github.com/bitnami/containers/
Popular applications, provided by Bitnami, containerized and ready to launch.
Здесь можно найти примеры docker compose и других настроек для таких приложений как:
airflow, spark, vault, nginx, minio, clickhouse, kafka и многое другое
https://github.com/bitnami/containers/
GitHub
GitHub - bitnami/containers: Bitnami container images
Bitnami container images. Contribute to bitnami/containers development by creating an account on GitHub.
Atlas нужен для автоматизации управления схемами баз данных, позволяя легко проектировать, мигрировать и управлять ими с использованием декларативного подхода и гибкого CLI.
Проект
GitHub - ariga/atlas: Manage your database schema as code
https://github.com/ariga/atlas
Habr: Atlas — инструмент управления схемами миграций БД с открытым исходным кодом: наш опыт и ошибки создателей
https://habr.com/en/companies/flant/articles/753122/
Проект
GitHub - ariga/atlas: Manage your database schema as code
https://github.com/ariga/atlas
Habr: Atlas — инструмент управления схемами миграций БД с открытым исходным кодом: наш опыт и ошибки создателей
https://habr.com/en/companies/flant/articles/753122/
GitHub
GitHub - ariga/atlas: Manage your database schema as code
Manage your database schema as code. Contribute to ariga/atlas development by creating an account on GitHub.
SQL_Server_Наладка_и_оптимизация_для_профессионалов_2023.pdf
10.3 MB
Книга "SQL Server. Наладка и оптимизация для профессионалов. — СПб.: Питер, 2023.pdf"
+ доп.материалы:
Статья "Hands-On with Columnstore Indexes" в 4х частях:
Part 1 Architecture
Part 2 Best Practices and Guidelines
Part 3 Maintenance and Additional Options
Part 4 Query Patterns
+ доп.материалы:
Статья "Hands-On with Columnstore Indexes" в 4х частях:
Part 1 Architecture
Part 2 Best Practices and Guidelines
Part 3 Maintenance and Additional Options
Part 4 Query Patterns
Apache Iceberg Won the Future — What’s Next for 2025? | by Yingjun Wu | Nov, 2024 | Data Engineer Things
https://blog.det.life/apache-iceberg-won-the-future-whats-next-for-2025-731635bfcb7a
https://blog.det.life/apache-iceberg-won-the-future-whats-next-for-2025-731635bfcb7a
Medium
Apache Iceberg Won the Future — What’s Next for 2025?
RBAC, CDC, Materialized Views, and More: Everything You Need to Know About Apache Iceberg in 2025.
Anchor Modeling and GP - презентация Yandex Go.pdf
4.4 MB
Евгений Ермаков, Николай Гребенщиков — Greenplum и Anchor modeling: Мечты разбиваются о реальность
Видео YouTube:
https://www.youtube.com/watch?v=iCZ1HUbGSdw
Еще есть статья про Anchor Modeling на Habr: Дилемма моделирования в рамках Data Vault/Anchor Modeling: объект или событие
Также есть туториал на английском с видео:
https://www.anchormodeling.com/tutorials/
DataLearn: DataVault / Anchor Modeling / Николай Голов
https://www.youtube.com/watch?v=-ZgzpQXsxi0
Habr: Как эволюционировала платформа управления данными в Яндекс Go. Доклад Яндекса - статья из 2024 🙃
Пример с github (нагуглил) hNhM(highly Normalized hybrid Model)
Видео YouTube:
https://www.youtube.com/watch?v=iCZ1HUbGSdw
Еще есть статья про Anchor Modeling на Habr: Дилемма моделирования в рамках Data Vault/Anchor Modeling: объект или событие
Также есть туториал на английском с видео:
https://www.anchormodeling.com/tutorials/
DataLearn: DataVault / Anchor Modeling / Николай Голов
https://www.youtube.com/watch?v=-ZgzpQXsxi0
Habr: Как эволюционировала платформа управления данными в Яндекс Go. Доклад Яндекса - статья из 2024 🙃
Пример с github (нагуглил) hNhM(highly Normalized hybrid Model)
⚓️ Anchor Modeling (AM) — это подход к моделированию хранилищ данных, который ориентирован на максимальную гибкость и адаптивность, чтобы справляться с изменениями в данных и бизнес-логике.
Основные понятия и термины
Anchor (Якорь):
▫️Представляет сущность реального мира.
▫️Содержит суррогатный ключ и временную метку загрузки.
▫️У каждой сущности есть своя таблица Anchor.
Attribute (Атрибут):
▫️Представляет свойство сущности.
▫️Каждое свойство хранится в отдельной таблице Attribute, что обеспечивает ультра-нормализацию (до 6НФ).
▫️Таблица атрибутов содержит суррогатный ключ, временную метку и значение атрибута.
Tie (Связь):
▫️Моделирует отношения между сущностями.
▫️Таблица связи содержит только ключи связанных сущностей.
Surrogate Key (Суррогатный ключ):
▫️Искусственный ключ для идентификации сущности, атрибута или связи.
Принципы построения хранилища:
▫️Хранилище структурируется в виде множества небольших таблиц, где каждая хранит однотипные данные (якоря, атрибуты или связи).
▫️Вся информация нормализована, чтобы избежать дублирования.
▫️Данные устойчивы к изменениям структуры — добавление нового атрибута или связи требует создания новых таблиц, без модификации существующих.
➕ Преимущества:
▫️Адаптивность к изменениям: Расширение модели не нарушает её текущую работу.
▫️Минимизация дублирования данных: Уменьшается объем SCD2 (историзации данных).
▫️Гибкость: Возможность быстрого внесения изменений.
➖ Ограничения:
▫️Количество таблиц: Высокая степень нормализации увеличивает их количество, что может усложнять работу с моделью.
▫️Высокая стоимость запросов: За счет множества объединений (JOIN) между таблицами, что требует оптимизации запросов.
Технические аспекты:
Важными оптимизациями для AM являются:
▫️Join Elimination: Исключение ненужных таблиц из плана запроса.
▫️Merge Join: Эффективное соединение таблиц.
▫️Cluster Index: Использование кластерных индексов для ускорения операций.
Практический опыт:
▫️В рамках проекта использовалась Greenplum, однако подход сталкивался с ограничениями:
▫️Не все оптимизации (Join Elimination, Merge Join) были доступны «из коробки».
▫️Пришлось адаптировать физическое проектирование и использовать гибридную модель (hNhM), сочетая принципы Data Vault и Anchor Modeling.
Anchor Modeling предлагает мощный и гибкий способ организации хранилищ данных, но требует высоких требований к инфраструктуре и оптимизации для достижения производительности.
———
Knot (Узел) — это отдельный элемент модели, предназначенный для хранения неизменяемых данных, которые часто повторяются и используются в качестве ссылок или классификаторов. Это важный концепт, который позволяет минимизировать дублирование данных и упрощать их управление.
Основные характеристики Knot:
▫️Неизменяемость: Узлы хранят данные, которые не меняются со временем, например, коды валют, статусы, типы продуктов.
▫️Компактность: Значения хранятся в одной таблице узла, что позволяет избежать их дублирования в других таблицах.
▫️Оптимизация ссылок: Узлы используются для хранения небольших наборов данных, которые ссылаются на другие таблицы через свои ключи.
▫️Ключи узлов: Узел может содержать как суррогатный ключ (для внутреннего использования), так и бизнес-ключ, представляющий реальное значение (например, "USD" для доллара США).
▫️Декомпозиция: Вместо того, чтобы повторять значение во многих местах, узел предоставляет ссылку, что делает модель более нормализованной.
———
Data Vault и Anchor Modeling отличаются степенью нормализации и подходом к изменениям:
▫️Data Vault использует строгую нормализацию для разделения бизнес-ключей, связей и исторических атрибутов, минимизируя дублирование, но оставляя некоторую гибкость в модели.
▫️Anchor Modeling идет дальше, достигая ультра-нормализации (до 6НФ), полностью исключая дублирование, и ориентируется на постоянное расширение модели без изменений существующих структур.
———
Про сам доклад также можно почитать на Habr: Как мы внедрили свою модель хранения данных — highly Normalized hybrid Model. Доклад Яндекса
Основные понятия и термины
Anchor (Якорь):
▫️Представляет сущность реального мира.
▫️Содержит суррогатный ключ и временную метку загрузки.
▫️У каждой сущности есть своя таблица Anchor.
Attribute (Атрибут):
▫️Представляет свойство сущности.
▫️Каждое свойство хранится в отдельной таблице Attribute, что обеспечивает ультра-нормализацию (до 6НФ).
▫️Таблица атрибутов содержит суррогатный ключ, временную метку и значение атрибута.
Tie (Связь):
▫️Моделирует отношения между сущностями.
▫️Таблица связи содержит только ключи связанных сущностей.
Surrogate Key (Суррогатный ключ):
▫️Искусственный ключ для идентификации сущности, атрибута или связи.
Принципы построения хранилища:
▫️Хранилище структурируется в виде множества небольших таблиц, где каждая хранит однотипные данные (якоря, атрибуты или связи).
▫️Вся информация нормализована, чтобы избежать дублирования.
▫️Данные устойчивы к изменениям структуры — добавление нового атрибута или связи требует создания новых таблиц, без модификации существующих.
➕ Преимущества:
▫️Адаптивность к изменениям: Расширение модели не нарушает её текущую работу.
▫️Минимизация дублирования данных: Уменьшается объем SCD2 (историзации данных).
▫️Гибкость: Возможность быстрого внесения изменений.
➖ Ограничения:
▫️Количество таблиц: Высокая степень нормализации увеличивает их количество, что может усложнять работу с моделью.
▫️Высокая стоимость запросов: За счет множества объединений (JOIN) между таблицами, что требует оптимизации запросов.
Технические аспекты:
Важными оптимизациями для AM являются:
▫️Join Elimination: Исключение ненужных таблиц из плана запроса.
▫️Merge Join: Эффективное соединение таблиц.
▫️Cluster Index: Использование кластерных индексов для ускорения операций.
Практический опыт:
▫️В рамках проекта использовалась Greenplum, однако подход сталкивался с ограничениями:
▫️Не все оптимизации (Join Elimination, Merge Join) были доступны «из коробки».
▫️Пришлось адаптировать физическое проектирование и использовать гибридную модель (hNhM), сочетая принципы Data Vault и Anchor Modeling.
Anchor Modeling предлагает мощный и гибкий способ организации хранилищ данных, но требует высоких требований к инфраструктуре и оптимизации для достижения производительности.
———
Knot (Узел) — это отдельный элемент модели, предназначенный для хранения неизменяемых данных, которые часто повторяются и используются в качестве ссылок или классификаторов. Это важный концепт, который позволяет минимизировать дублирование данных и упрощать их управление.
Основные характеристики Knot:
▫️Неизменяемость: Узлы хранят данные, которые не меняются со временем, например, коды валют, статусы, типы продуктов.
▫️Компактность: Значения хранятся в одной таблице узла, что позволяет избежать их дублирования в других таблицах.
▫️Оптимизация ссылок: Узлы используются для хранения небольших наборов данных, которые ссылаются на другие таблицы через свои ключи.
▫️Ключи узлов: Узел может содержать как суррогатный ключ (для внутреннего использования), так и бизнес-ключ, представляющий реальное значение (например, "USD" для доллара США).
▫️Декомпозиция: Вместо того, чтобы повторять значение во многих местах, узел предоставляет ссылку, что делает модель более нормализованной.
———
Data Vault и Anchor Modeling отличаются степенью нормализации и подходом к изменениям:
▫️Data Vault использует строгую нормализацию для разделения бизнес-ключей, связей и исторических атрибутов, минимизируя дублирование, но оставляя некоторую гибкость в модели.
▫️Anchor Modeling идет дальше, достигая ультра-нормализации (до 6НФ), полностью исключая дублирование, и ориентируется на постоянное расширение модели без изменений существующих структур.
———
Про сам доклад также можно почитать на Habr: Как мы внедрили свою модель хранения данных — highly Normalized hybrid Model. Доклад Яндекса
Хабр
Как мы внедрили свою модель хранения данных — highly Normalized hybrid Model. Доклад Яндекса
Общепринятый и проверенный временем подход к построению Data Warehouse (DWH) — это схема «Звезда» или «Снежинка». Такой подход каноничен, фундаментален, вотрфоллен и совсем не отвечает той гибкости, к...