Data Engineering / reposts & drafts
34 subscribers
227 photos
22 videos
40 files
557 links
Download Telegram
А как выглядит ваша репа dbt?

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

DBT - чистой воды конструктор под себя и сделать удобно можно по всякому. Варианты с размещением по слоям, по потребителям, по доменам - все идет в ход.

Но каждый раз когда аналитики открывают репу их встречает вот такая пугающая картина, и она мало связана с sql :)

Тащу все наши проекты dbt (сейчас их 6) в новый гитлаб с новым ci, с новыми окружениями и тестированием. Опять же переход с тестирования на баше в обвязку на питоне смотрится приятно.
Системный дизайн — это основа для создания надежных, масштабируемых и производительных систем обработки данных. Он помогает выбирать подходящие инструменты для ETL/ELT, проектировать хранилища, оптимизировать запросы и ресурсы. Без него сложно обеспечить отказоустойчивость, безопасность и интеграцию потоков данных.

Подборка с YouTube по Системному дизайну
▫️PlayList System Design (Interview Pen) - English
▫️Data Engineer тренирует System Design секцию. Собеседует @halltape | rzv_de | Aug 2024
▫️System Design - теория шардирования | Как масштабировать базы данных
▫️Как кэшировать данные | Теория кэширования - System Design
▫️Проектирование баз данных за 40 минут. Практика
▫️PlayList Системный дизайн (Eugene Suleimanov)
▫️PlayList System Design Fundamentals (ByteByteGo)
▫️Как подготовиться и пройти System Design Interview. Александр Поломодов
▫️Владимир Маслов — System Design. Как построить распределенную систему и пройти собеседование
Iceberg - набирающий популярность формат данных поддерживающий конкурентное обновление, DML, эволюцию схемы, скрытое партицирование и другое.

Расширил статью по типам хранения данных orc, parquet еще и на iceberg:
https://blog.skahin.ru/2019/08/orc.html#iceberg
- Схема формата данных
- Конкурентный доступ
- Улучшение партицирования
- Версионирование
- Компакция и распределение
Чтобы что-то в каталоге нашлось, нужно что-то в каталог добавить! ☝️

Что же мешает данным оказаться в нём? «Метаинформационное налогообложение». Это оплата усилий, необходимых для документирования и ввода метаданных. А так как эффективный дата-каталог критически важен для успеха бизнеса, платить этот «налог» придётся.

🔍 Как найти тех, кто будет его (и данные) собирать, и как оптимизировать «налог» — то есть снизить затраты? Читайте в нашей статье про киллер фичи дата-каталогов.

https://t.iss.one/avito_data_tech/134?comment=303 #DataCatalog
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
#Trino #dbt #Сходства #отличия
Trino vs dbt: что и когда использовать


Что общего между Trino и dbt, чем они отличаются и в каких случаях выбирать тот или иной инструмент для инженерии и анализа данных. Краткий ликбез для начинающего дата-инженера и аналитика.

Сходства и отличия Trino и dbt
Trino и dbt (Data Build Tool) — это два популярных инструмента с открытым исходным кодом для задач инженерии и анализа данных. Несмотря на некоторые сходства, они применяются в разных сценариях. В частности, Trino — это распределённый движок с массово-параллельной архитектурой для выполнения SQL-запросов к разным, в. т.ч. нереляционным, источникам.
Статья
Курсы:
TRINO
Наш сайт
Копирование, размножение, распространение, перепечатка (целиком или частично), или иное использование материала допускается только с письменного разрешения правообладателя ООО "УЦ Коммерсант"
#Проекции #ClickHouse #СУБД
Проекции в ClickHouse

Зачем создавать разные проекции таблиц в базе данных и как это работает в Clickhouse: практический пример с агрегатным запросом. Возможности и ограничения механизма проекций в колоночной аналитической СУБД.

Что такое проекции и как они реализованы в ClickHouse
Поскольку основное назначение ClickHouse – аналитика больших объемов данных в реальном времени, это колоночное хранилище поддерживает различные механизмы оптимизации аналитических запросов. Одним из них является механизм проекций. Проекция – это простая операция реляционной алгебры для выбора определенных столбцов из таблицы при получении данных, исключая другие.
Статья
Курсы:
CLICH
Наш сайт
Копирование, размножение, распространение, перепечатка (целиком или частично), или иное использование материала допускается только с письменного разрешения правообладателя ООО "УЦ Коммерсант"
#Trino #объектные #хранилища
Как Trino работает с удаленными объектными хранилищами

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

Доступ из Trino к данным в объектных хранилищах
Помимо реляционных и нереляционных баз данных, Trino позволяет делать распределенные запросы и к файлам, хранящимся в объектных хранилищам AWS S3, Google Cloud Storage, Azure Storage, а также в распределенных файловых системах HDFS и Alluxio.
Статья
Курсы:
TRINO
Наш сайт
Копирование, размножение, распространение, перепечатка (целиком или частично), или иное использование материала допускается только с письменного разрешения правообладателя ООО "УЦ Коммерсант"
#Celery #AirFlow #исполнитель
Очереди задач исполнителя Celery в Apache AirFlow

Как работает исполнитель Celery в Apache AirFlow, зачем ему очередь сообщений и каким образом это помогает масштабировать параллельное выполнение задач.

Как работает исполнитель Celery в Apache AirFlow
Именно исполнитель (Executor) в Apache Airflow отвечает за выполнение задач в рабочих процессах, определяя их локацию и последовательность, а также использование ресурсов. Хотя вариантов исполнителей есть несколько, на практике для запуска удаленных задач наиболее часто используются Celery и Kubernetes. Подробно об этом мы писали здесь.
Статья
Курсы:
AIRF
Наш сайт
Копирование, размножение, распространение, перепечатка (целиком или частично), или иное использование материала допускается только с письменного разрешения правообладателя ООО "УЦ Коммерсант"
#Citus #PostgreSQL #расширение
Почему расширение Citus для PostgreSQL не превратит его в Greenplum?

Как расширение Citus повышает производительность PostgreSQL, организуя распределенный кластер с помощью шардирования и почему этого недостаточно для эффективных OLAP-запросов как в Greenplum.

Что такое Citus для PostgreSQL
Поскольку Greenplum представляет собой массив отдельных баз данных PostgreSQL 12, работающих вместе для представления единого образа базы данных, у тех, кто знакомится с Greenplum впервые, возникает вопрос, в чем отличие этих СУБД.
Статья
Курсы:
GPDE GRAD
Наш сайт
Копирование, размножение, распространение, перепечатка (целиком или частично), или иное использование материала допускается только с письменного разрешения правообладателя ООО "УЦ Коммерсант"
#ETL #конвейер #Flink #CDC #пример #YAML
ETL-конвейер с Flink CDC: пример YAML-конфигурации

Как описать ETL-конвейер захвата, преобразования и передачи изменения данных в YAML-файле: пример конфигурации Flink CDC из PostgreSQL в Elasticsearch.

ETL-конвейер Flink CDC в YAML-файле
Apache Flink позволяет строить надежные конвейеры обработки данных, используя не только с внутренние API, но и с помощью дополнительных компонентов. Одним из таких компонентов является Flink CDC – инструмент интеграции потоковых данных, который позволяет пользователям описывать логику ETL-конвейера в YAML-файле, автоматически генерировать настраиваемые операторы фреймворка и отправлять задания на исполнение.
Статья
Курсы:
FLINK
Наш сайт
Копирование, размножение, распространение, перепечатка (целиком или частично), или иное использование материала допускается только с письменного разрешения правообладателя ООО "УЦ Коммерсант"
#Trino #кластер #настройка #конфигурации
Безопасность в кластере Trino: настройка конфигураций на примерах


Где и как задавать настройки безопасного доступа клиента к кластеру Trino, каким образом обеспечить безопасность внутри кластера и защитить доступ к внешним источникам данных: примеры конфигураций.

Как настроить безопасную работу кластера Trino

По умолчанию в Trino не включены функции обеспечения безопасности. Однако, это можно настроить для различных частей архитектуры фреймворка:
Статья
Курсы:
TRINO
Наш сайт
Копирование, размножение, распространение, перепечатка (целиком или частично), или иное использование материала допускается только с письменного разрешения правообладателя ООО "УЦ Коммерсант"
#Kubernetes #Argo #Rollouts
Управление развертыванием контейнерных приложений в Kubernetes с Argo Rollouts

Сложности развертывания контейнерных stateful-приложений и как их решить с Argo Rollouts и Kubernetes Downward API: примеры YAML-конфигураций канареечного развертывания Spark-приложения.

Расширение стратегий развертывания в Kubernetes с Argo Rollouts
Мы уже писали, в чем сложности оркестрации параллельных заданий на платформе Kubernetes и как их можно решить с помощью Argo Workflows — контейнерного движка рабочих процессов с открытым исходным кодом. Однако, помимо Argo Workflows, в экосистеме Argo есть еще один полезный инструмент, который пригодится для управления контейнерными распределенными приложениями — Argo Rollouts.
Статья
Курсы:
MK-K8S
Наш сайт
Копирование, размножение, распространение, перепечатка (целиком или частично), или иное использование материала допускается только с письменного разрешения правообладателя ООО "УЦ Коммерсант"
#Medallion #ClickHouse #Реализация
Реализация архитектуры Medallion в ClickHouse

Почему ClickHouse подходит для архитектуры данных Medallion и как реализовать это слоистое хранилище средствами колоночной СУБД без сторонних инструментов: лучшие практики и примеры использования.

3 слоя архитектуры данных Medallion

Слоистая архитектура, предложенная компанией Databricks, сегодня считается классикой для построения озер и хранилищ данных. Она предполагает реализацию 3-х уровней (слоев):

Бронза, где хранятся необработанные (сырые) данные из исходных систем. По сути, это staging-зона, куда загружаются исходные данные из систем-источников с минимальными преобразованиями и дополнительными метаданными.
Курсы:
CLICH
Наш сайт
Копирование, размножение, распространение, перепечатка (целиком или частично), или иное использование материала допускается только с письменного разрешения правообладателя ООО "УЦ Коммерсант"
#Prometheus #IoT #Flink
Новый Flink-коннектор к Prometheus для IoT

Почему репортеры мониторинга системных метрик Flink, отправляющие данные в Prometheus, не решают проблемы предварительной обработки измерений с IoT-устройств, и как новый коннектор расширяет сферу применения фреймворка потоковой обработки.

Встроенные средства мониторинга системных метрик Flink
В декабре 2024 года вышел новый коннектор Apache Flink к Prometheus – популярной базе данных временных рядов, часто используемой для мониторинга системных метрик.
Статья
Курсы:
FLINK
Наш сайт
Копирование, размножение, распространение, перепечатка (целиком или частично), или иное использование материала допускается только с письменного разрешения правообладателя ООО "УЦ Коммерсант"
#AirFlow #примеры #Переменные #советы
Переменные в Apache AirFlow: примеры и советы

Зачем нужны переменные в Apache AirFlow, какие они бывают, как создать переменную и использовать ее: примеры и рекомендации для эффективной дата-инженерии.

Зачем нужны переменные в Apache AirFlow, и какие они бывают
Чтобы хранить информацию, которая редко меняется, например, ключи API, пути к конфигурационным файлам, в Apache Airflow используются переменные. Переменные являются глобальной концепцией конфигурации среды выполнения Airflow и определяются с помощью объекта airflow.model.variable.
Статья
Курсы:
AIRF
Наш сайт
Копирование, размножение, распространение, перепечатка (целиком или частично), или иное использование материала допускается только с письменного разрешения правообладателя ООО "УЦ Коммерсант"