Архитектор Данных – Telegram
Архитектор Данных
1.08K subscribers
143 photos
8 videos
2 files
115 links
Алексей, архитектор данных из ВК.

Большие данные и облака.

Для связи @alexbelozersky
Download Telegram
Канал для аналитиков, инженеров и архов. Говорим про инструменты и подходы.
👍1
Channel name was changed to «Analyst Joe»
Channel name was changed to «Data Tavern»
Спасибо всем посетившим вебинар!

Обсудили как построить легковесную платформу данных на основе GreenPlum PaaS + Airflow + DBT.

https://www.youtube.com/watch?v=1m9qqa9jGGE
👍2
Forwarded from VK Team
Нам есть что обсудить!

VK JT — это не только доклады, но и мнения, ожидания и личные истории. Мы готовим много интерактивных форматов, чтобы познакомить вас с самыми разными проектами VK.

Мастер-классы и воркшопы:
🔹 ОК — строим процессы для дизайнеров, продактов и разработчиков;
🔹 VK Tech — проектируем и запускаем систему аналитики за 40 минут;
🔹 VK Play — используем игровые механики в своём проекте.

🔧 ML-хакатон — задача бинарной классификации с необычными условиями.

Дискуссии и круглые столы:
🔹 VK Education — чему, зачем и как учить разработчиков-джунов;
🔹 Учи.ру — как геймифицировать продукт, чтобы школьники проводили с ним больше времени;
🔹 RuStore — какие метрики помогут без слёз команды оценить продуктовую разработку;
🔹 VK Mini Apps — открытые платформы: кому они нужны и как бустят отрасль.

До встречи 6 марта в Доме культуры «ГЭС-2» и онлайн: vkjt.ru
👍1
Начинаем серию постов с более подробными разборами инструментария для КХД.

#Инструменты
2
Инструменты - гринплам

#Инструменты #Хранилище #БазыДанных #Greenplum

🍈🍈🍈🍈🍈
База greenplum - отличный выбор для построения хранилищ данных. Это относительно старая и проверенная технология. В текущих реалиях в России сейчас практически безальтернативна для он-прем инсталляций и для облака.

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



К основным достоинствам можно отнести

⁃ Колоночнае хранение данных. Строковое хранение данных также возможно для небольших часто изменяемых данных, например, етл таблиц со статусами загрузок.
⁃ MPP Shared Nothing архитектура. Можно использовать всю мощь кластера для обработки запросов.
⁃ Горизонтальная масштабируемость кластера
⁃ Внутренний механизм распределения ресурсов между группами пользователей - ресурсные группы. В gp v.7 можно квотировать не только цпу и память, но и чтение диска.
⁃ Совместимость с прикладным ПО по протоколу postgresql. Снаружи бд выглядит как постгрес.
⁃ Наличие сервисов для распределенной загрузки данных: PXF, gpfdist. В случае работы из скейлящихся источников данных (s3, hdfs, hive, kafka) чтение и запись данных происходит с ноды на ноду минуя мастер.
⁃ ANSI SQL
⁃ ACID, транзакции
⁃ Отказоустойчивость на уровне шардов и мастера.


👎👎👎👎👎
Недостатки

⁃ Трудный скейл кластера вверх с перераспределением данных
⁃ Трудности с бекапом. Частично решено в вендорских сборках.
⁃ Хотя система и умеет переключаться на шарды зеркала но в случае восстановления доступа к шардам обратного переключения нет. Нет самопочинки и самобалансировки.
⁃ Кластер требователен к сети, требует mtu 9000, который не всегда доступен.
⁃ Не Cloud Ready. Очень плохо контейниризуется.
⁃ В работе под тяжелыми запросами может дать 100% нагрузку одновременно на цпу, память, диск, сеть. Что крайне негативно влияет на любой контейнерный и виртуализированный деплоймент. В облаках для Managed решается выделением специальных сегментов и агрегатов гипервизоров.


🛠🛠🛠🛠🛠
Сборки

⁃ ванильная
⁃ Аренадата в версии коммьюнити и энтерпрайз.
⁃ Яндекс. Только как managed в облаке
⁃ Ростелеком
⁃ Глоубайт

Есть свои карманные сборки у сбербанка, тинькова и в других крупных организациях.

Самая популярная в России сборка - ArenadataDB. Есть в бесплатном варианте коммьюнити (до 20тб дисков) и энтерпрайз. Предлагает графический инструмент развертывания и администрирования Arenadata Cluster Manager

В платную Arenadata Enterprise дополнительно входят

⁃ Параллельные коннекторы clickhouse, kafka, adb-to-adb
⁃ Дополнительные инструментарий администрирования
⁃ Неблокирующий бекап на основе pgbackrest
⁃ Инструменты для офлайн развертывания в закрытом контуре без доступа в интернет.
⁃ Поддержка российских ОС: Alt, Astra, RedOS.

Managed ArenadataDB Enterprise предлагают облака VK, cloud.ru (sber cloud), mts

🔧🔧🔧🔧🔧
Деплоймент

Базовый - на онпрем. Есть варианты в облаке managed в Яндексе, Вк, Сбер и других.
Облачная инсталляция требует специального приспособленного сегмента с отключенной переподпиской, улучшенным схд, высокочастотными цпу (intel platinum), mtu-9000 сетью.
Система будет плохо себя чувствовать на обычных виртуальных машинах с переподпиской и сетевыми дисками под прод нагрузкой.

⚖️⚖️⚖️⚖️⚖️
В целом

В целом greenplum предлагает надежное решение для реализации и развития КХД. В нем не будет сюрпризов по части ИБ, интеграций с другими сервисами. За деньги можно легко найти решение с вендорской поддержкой. К тому же в 2024 году уже не так сложно найти DBA со знанием GreenPlum или попросту купить поддержку на рынке.
Также хорошим вариантом будет покупка облачного managed решения, где проблемы с падением сегментов и бекапами будет решать за вас команда эксплуатации облака. Благо выбрать уже есть из чего.

Если у вас есть деньги на покупку этого относительно недешевого решения и экспертизы для его поддержки - берите “Зеленую Сливу” и не прогадаете.
👍3
Обзор DBT

#Инструменты #ETL #DBT

DBT - инструмент для трансформации данных, уже загруженных в хранилище данных.

Отлично подходит для создания и поддержания витрин данных. Также полезен при формировании детального слоя, особенно если мы не работаем в сложных архитектурах, таких как Anchor Modeling, Data Vault.

Какие задачи можно решать с помощью DBT в разных областях работы с данными.



Преобразования данных на основе SQL

Сделать CREATE TABLE … AS SELECT … (DBT Model)
Указать БД особенности физического хранения таблицы в БД. Партиционирование, Engine, sort_by для Clickhouse; distribute_by для Greenplum. (DBT CONFIG)
Создать инкрементальную Model и запускать CREATE TABLE или INSERT/MERGE при разных настройках запуска. (DBT materialize=incremental)
Добавить любое количество технических запросов до расчета Model, например SET param = value, запрос у БД ресурсов, настройки и хинты планировщика в рамках сессии (DBT pre-hook).
Добавить любое количество технических запросов после расчета Model, например GRANT, ANALYSE, OPTIMISE, заархивировать в S3 для Redshift, передать в PXF External Table для Greenplum (DBT post-hook)



Разработка моделей

🛠 Шаблонизировать запрос через jinja
🛠 Написать макрос и сделать модель как вызов макроса с параметрами. Полезно при обработке большого количества однотипных схем. Или разбора полей JSON с большим количеством параметров таким, как каталог событий приложения.


Тестирование данных

👍 Задавать тесты данных методом простого редактирования YAML (DBT Tests)
👍 Написать свой generic test и вызывать его через YAML
👍 Скачать библиотеку тестов и использовать более сложные тесты (dbt-utils)
Сохранять снепшоты данных (DBT Snapshot)
👍 Интегрироваться и отслеживать тесты данных с помощью Great Expectations.


Data Governance

🪧 Отслеживать зависимости моделей от источников и моделей друг от друга
🪧 Просматривать зависимости и тесты в DBT Docs
🪧 Документировать описание схем, таблиц, колонок, тестов через YAML
🪧 Размечать источники данных через YAML
🪧 Разметить потребителей данных через YAML. Например, дашборды (для этого дашборда нужны такие-то витрины) или ML модели.


Аналитика

📊 Сохранять запросы в Git и уметь отслеживать целостность витрин данных для него
📊 Легко создавать и тестировать свои витрины данных, просто сохраняя в Git запросы в файле
📊 Не сохранять огромные SQL запросы для целей дашбординга или доступа к типовым данным, а делать витрины для них


ETL

⚡️ Интегрироваться с AIrflow, Dagster, запускать заадчи с CLI
Запускать сложные комбинации взаимосвязанных задач. Запустить все что зависит от источника А. Обновить все необходимое для отчета/модели В, включая перерквизиты
Запустить (или протестировать) все модели из папки Х, кроме тега Y в не более чем 4 потока с учетом зависимостей источников и моделей друг от друга.
Сохранять справочники в репозитории и управлять ими прямо из Git (DBT Seed)


Разработка

🪲 Разрабатывать DWH-as-Code. Хранить и изменять всю информацию в Git.
🪲 Легко создавать и управлять Dev, Test окружениями. Разделять на уровне инсталляций БД, логическими БД, наборами схем.
🪲 Создать CI контур DWH для end-to-end тестов честного итогового результата в виде витрин на семплах данных.
🪲 Делать blue-green deployment (DBT Clone)


Команда

🕶 Создавать для каждой команды песочницу в виде набора схем.
😎Управлять песочницей команды с помощью одного Airflow DBT Operator (DBT Run + DBT Test) с учетом изменяющихся внутренних зависимостей.
👍4
Вчера ночью не мог обновить гребанный экстракт 2 часа, глаза слипаются, хочется разбить ноут ап стену. Давайте похоливарим.

😈 Кто, забери его рыба полосатая, придумал занести ETL и экстракты внутрь BI-тулов. DAX'ы, шмаксы, экстракторы. Есть еще одна точка откзаа, которая постоянно отказывает и учит делать тяп-ляп, а не нормальный код, пайпллайны и готовить базы. Такой ETL заберите и никогда больше не приносите, пожалуйста. Лучше dbt, GitHub и airflow ничего нет.

😇 Да нет, на самом деле это супер фича. Кто придумал экстракты - просто умнички! Главное, что это ускоряет time to insight для бизнеса. Дашборды и так живут всего по погода максимум, зачем заморачиваться, тяп-ляп и экстракт. Все эти ваши пайпланы оставьте DE, чтобы они свои джейсоны перекладывали и отвечали за важное. ETL в BI - это вещь!

P.S. Спасибо за картинку Тиму
P.P.S. Кто назовёт книгу, к которой есть отсылка, тем от Алексея респект :-)
👎1
Channel name was changed to «Архитектор Данных»