Топ опенсорс-инструментов, которые должен знать каждый дата-инженер в 2025
В мире data engineering именно open-source инструменты — настоящие MVP.
Опенсорс кардинально изменил жизнь дата-инженеров: будь то Hadoop, Spark, Airflow и многие другие🥲
Вот ключевые open-source проекты, которые должен знать каждый дата-инженер:
> Apache Airflow — построение и оркестрация data pipeline'ов
> Apache Spark — распределённый движок обработки данных, перевернувший игру
> Apache Kafka — стриминг событий в реальном времени на масштаб
> dbt (Data Build Tool) — трансформация данных в хранилище с помощью SQL + контроля версий
> Apache Hudi / Delta Lake / Iceberg — современные форматы для data lake'ов с поддержкой ACID, upsert'ов и time travel
> Apache Superset — легковесный BI-инструмент для быстрой визуализации данных
> DuckDB — быстрая встроенная OLAP-база данных (подходит для аналитических нагрузок)
> Airbyte / Singer / Meltano — open-source коннекторы для ELT, легко расширяемые
> Prefect / Dagster — современные альтернативы Airflow для оркестрации
> Trino (PrestoSQL) — распределённый SQL-движок для интерактивной аналитики
> Redpanda — Kafka-совместимый стриминг-движок с низкой задержкой
✅ Стоит также упомянуть:
Polars — ультрабыстрая библиотека для работы с датафреймами
OpenMetadata — next-gen управление метаданными
Metaflow — инструмент от Netflix, отлично подходит для ML-пайплайнов
Если ты уже работаешь в data engineering, только собираешься войти в эту сферу или строишь современную data-платформу — освоение этих инструментов даст серьёзное преимущество в 2025 и дальше.
👉 @SQLPortal
В мире data engineering именно open-source инструменты — настоящие MVP.
Опенсорс кардинально изменил жизнь дата-инженеров: будь то Hadoop, Spark, Airflow и многие другие
Вот ключевые open-source проекты, которые должен знать каждый дата-инженер:
> Apache Airflow — построение и оркестрация data pipeline'ов
> Apache Spark — распределённый движок обработки данных, перевернувший игру
> Apache Kafka — стриминг событий в реальном времени на масштаб
> dbt (Data Build Tool) — трансформация данных в хранилище с помощью SQL + контроля версий
> Apache Hudi / Delta Lake / Iceberg — современные форматы для data lake'ов с поддержкой ACID, upsert'ов и time travel
> Apache Superset — легковесный BI-инструмент для быстрой визуализации данных
> DuckDB — быстрая встроенная OLAP-база данных (подходит для аналитических нагрузок)
> Airbyte / Singer / Meltano — open-source коннекторы для ELT, легко расширяемые
> Prefect / Dagster — современные альтернативы Airflow для оркестрации
> Trino (PrestoSQL) — распределённый SQL-движок для интерактивной аналитики
> Redpanda — Kafka-совместимый стриминг-движок с низкой задержкой
Polars — ультрабыстрая библиотека для работы с датафреймами
OpenMetadata — next-gen управление метаданными
Metaflow — инструмент от Netflix, отлично подходит для ML-пайплайнов
Если ты уже работаешь в data engineering, только собираешься войти в эту сферу или строишь современную data-платформу — освоение этих инструментов даст серьёзное преимущество в 2025 и дальше.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3
Для продакшн-бэкапов PostgreSQL мы не рекомендуем использовать pg_dump.
Однако
Быстрое напоминание о
➠
Создаёт дамп одной базы данных в рамках кластера Postgres.
- Может быть дамп только схемы (без данных)
- Поддерживает дамп отдельной таблицы, если нужно сохранить что-то конкретное
- Не включает роли и другие глобальные объекты
- Гранты (grants) на таблицы будут включены в дамп
➠
Создаёт дамп всех баз данных, данных и ролей во всём инстансе Postgres.
- Поддерживает режим дампа только схемы
- Поддерживает флаг
👉 @SQLPortal
Однако
pg_dump
и его вспомогательная утилита pg_dumpall
всё же могут быть очень полезны для ряда задач.Быстрое напоминание о
pg_dump
и pg_dumpall
➠
pg_dump
Создаёт дамп одной базы данных в рамках кластера Postgres.
- Может быть дамп только схемы (без данных)
- Поддерживает дамп отдельной таблицы, если нужно сохранить что-то конкретное
- Не включает роли и другие глобальные объекты
- Гранты (grants) на таблицы будут включены в дамп
➠
pg_dumpall
Создаёт дамп всех баз данных, данных и ролей во всём инстансе Postgres.
- Поддерживает режим дампа только схемы
- Поддерживает флаг
-g
для выгрузки всех глобальных объектов — пользователей и ролейPlease open Telegram to view this post
VIEW IN TELEGRAM
❤3🔥3👍2
ETL мёртв. Да здравствует ELT.
Помните, когда ETL означало написание скриптов на Python, планирование cron-задач и трансформацию данных до того, как они попадали в базу данных?
Теперь это в прошлом.
В современном дата-стеке происходит следующее:
🔸 Extract: Извлекаем сырые данные из API, баз данных, SaaS-инструментов
🔸 Load: Загружаем их прямо в хранилище (Snowflake, BigQuery, Redshift)
🔸 Transform: Используем SQL или dbt для очистки, объединения и моделирования данных внутри хранилища
Этот сдвиг — не просто семантический, а архитектурный:
Больше нет хрупкой логики трансформации за пределами хранилища
Полный контроль версий и тестирование с dbt
Легче отслеживание, наблюдаемость и повторное использование
Огромная масштабируемость благодаря вычислениям в хранилище
Будь то Fivetran, Airbyte, Stitch или кастомная загрузка данных — pipeline заканчивается на ELT.
Если вы до сих пор выполняете сложные манипуляции с данными до того, как они попадут в хранилище, скорее всего, вы:
> Медленнее
> Менее масштабируемы
> Сложнее для отладки
Теперь хранилище — это ваш движок трансформации.
ETL существовал в течение последнего десятилетия. ELT — это для этого.
👉 @SQLPortal
Помните, когда ETL означало написание скриптов на Python, планирование cron-задач и трансформацию данных до того, как они попадали в базу данных?
Теперь это в прошлом.
В современном дата-стеке происходит следующее:
Этот сдвиг — не просто семантический, а архитектурный:
Больше нет хрупкой логики трансформации за пределами хранилища
Полный контроль версий и тестирование с dbt
Легче отслеживание, наблюдаемость и повторное использование
Огромная масштабируемость благодаря вычислениям в хранилище
Будь то Fivetran, Airbyte, Stitch или кастомная загрузка данных — pipeline заканчивается на ELT.
Если вы до сих пор выполняете сложные манипуляции с данными до того, как они попадут в хранилище, скорее всего, вы:
> Медленнее
> Менее масштабируемы
> Сложнее для отладки
Теперь хранилище — это ваш движок трансформации.
ETL существовал в течение последнего десятилетия. ELT — это для этого.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤7🔥3
Нужно узнать размер таблицы в Postgres?
Но
Если нужен полный размер всего, что связано с таблицей, используй:
Он вернёт суммарный размер таблицы, включая:
> данные самой таблицы (heap),
> данные индексов,
> TOAST-данные (если есть),
> карту свободного пространства (FSM),
> карту видимости (VM).
Используй
👉 @SQLPortal
SELECT pg_relation_size('table_name');
— покажет размер основного файла таблицы (HEAP).Но
pg_relation_size()
учитывает только саму таблицу, без индексов, TOAST-таблиц, карт свободного пространства и других вспомогательных структур.Если нужен полный размер всего, что связано с таблицей, используй:
SELECT pg_total_relation_size('table_name');
Он вернёт суммарный размер таблицы, включая:
> данные самой таблицы (heap),
> данные индексов,
> TOAST-данные (если есть),
> карту свободного пространства (FSM),
> карту видимости (VM).
Используй
pg_total_relation_size()
для более точной оценки занимаемого места таблицей на диске.Please open Telegram to view this post
VIEW IN TELEGRAM
🔥11👍2❤1
Как спроектировать тестовый набор, который будет и быстрым, и надёжным
- Не используйте моки для баз данных. Небольшой прирост скорости не стоит резкого снижения достоверности тестов.
- Упростите работу с базой данных в тестах — используйте фреймворк фикстур, который автоматизирует большую часть рутины. Он может быть и самописным, главное — удобство использования и строгие соглашения.
- Компенсируйте возможную потерю в скорости — применяйте техники вроде тестовых транзакций, чтобы максимально распараллелить выполнение. СУБД отлично справляются с такой нагрузкой.
- Отказавшись от моков, используйте преимущества реляционных СУБД — строгие схемы, типы данных, ограничения (check constraints), внешние ключи. Каждое такое ограничение, срабатывающее во время тестов — это на один баг меньше в продакшене.
> подробнее
👉 @SQLPortal
- Не используйте моки для баз данных. Небольшой прирост скорости не стоит резкого снижения достоверности тестов.
- Упростите работу с базой данных в тестах — используйте фреймворк фикстур, который автоматизирует большую часть рутины. Он может быть и самописным, главное — удобство использования и строгие соглашения.
- Компенсируйте возможную потерю в скорости — применяйте техники вроде тестовых транзакций, чтобы максимально распараллелить выполнение. СУБД отлично справляются с такой нагрузкой.
- Отказавшись от моков, используйте преимущества реляционных СУБД — строгие схемы, типы данных, ограничения (check constraints), внешние ключи. Каждое такое ограничение, срабатывающее во время тестов — это на один баг меньше в продакшене.
> подробнее
Please open Telegram to view this post
VIEW IN TELEGRAM
❤6🔥1
Доступ к внутренним и внешним данным с помощью гибридных партиционированных таблиц в Oracle Database 19c
Внутренние партиции (internal partitions) используют обычные строки, хранящиеся непосредственно в базе данных.
Внешние партиции (external partitions) ссылаются на файлы, расположенные на сервере базы данных или в объектных хранилищах (object stores). Они поддерживают широкий спектр форматов, включая:
🔸 CSV
🔸 Parquet
🔸 ORC
Гибридный подход позволяет объединить локальные и внешние данные в одной партиционированной таблице, упрощая доступ, обработку и аналитические операции без необходимости предварительной загрузки внешних данных в базу.
👉 @SQLPortal
Внутренние партиции (internal partitions) используют обычные строки, хранящиеся непосредственно в базе данных.
Внешние партиции (external partitions) ссылаются на файлы, расположенные на сервере базы данных или в объектных хранилищах (object stores). Они поддерживают широкий спектр форматов, включая:
Гибридный подход позволяет объединить локальные и внешние данные в одной партиционированной таблице, упрощая доступ, обработку и аналитические операции без необходимости предварительной загрузки внешних данных в базу.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5🔥1
Forwarded from Data Science. SQL hub
🎁 РАЗЫГРЫВАЕМ MacBook Air!
Разыгрываем шикарный 13-дюймовый MacBook Air! Отличная рабочая машинка!
Условия участия максимально простые:
🔸Подписаться на телеграм-канал: @sqlhub
🔸Подписаться на телеграм-канал: @ai_machinelearning_big_data
🔸Нажать кнопку "Участвовать" ниже.
ВСЁ! Вы участник! Бот выберет одного человека, которому мы подарим этот MacBook. Доставка по зоне СДЭК.
Итоги подведём 14 августа.
Всем удачи! Пусть победит самый приятный человек!
⚠️ Если бот подвис — не беспокойтесь, вас все равно зарегистрирует, просто выполните условия и нажмите «Участвую».
Разыгрываем шикарный 13-дюймовый MacBook Air! Отличная рабочая машинка!
Условия участия максимально простые:
🔸Подписаться на телеграм-канал: @sqlhub
🔸Подписаться на телеграм-канал: @ai_machinelearning_big_data
🔸Нажать кнопку "Участвовать" ниже.
ВСЁ! Вы участник! Бот выберет одного человека, которому мы подарим этот MacBook. Доставка по зоне СДЭК.
Итоги подведём 14 августа.
Всем удачи! Пусть победит самый приятный человек!
⚠️ Если бот подвис — не беспокойтесь, вас все равно зарегистрирует, просто выполните условия и нажмите «Участвую».
❤2
При администрировании баз данных приходится либо использовать громоздкие графические интерфейсы, либо вручную писать длинные SQL-запросы в терминале — процесс зачастую утомительный и неудобный.
Если тебе ближе терминальный способ работы, то стоит обратить внимание на LazySQL — опенсорс-проект, который переносит удобное управление базами данных прямо в терминал.
Проект вдохновлён знаменитым Lazygit и предлагает интуитивный TUI-интерфейс для работы с MySQL, PostgreSQL, SQLite и другими СУБД.
👉 @SQLPortal
Если тебе ближе терминальный способ работы, то стоит обратить внимание на LazySQL — опенсорс-проект, который переносит удобное управление базами данных прямо в терминал.
Проект вдохновлён знаменитым Lazygit и предлагает интуитивный TUI-интерфейс для работы с MySQL, PostgreSQL, SQLite и другими СУБД.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥6❤2👍2
This media is not supported in your browser
VIEW IN TELEGRAM
Разница между двумя датами в Oracle Database — это количество дней между ними.
Чтобы увидеть разбивку по единицам времени, используйте выражения с интервалами:
👉 @SQLPortal
Чтобы увидеть разбивку по единицам времени, используйте выражения с интервалами:
(d1 - d2) day to second
— дни, часы, минуты, секунды(d1 - d2) year to month
— годы, месяцыPlease open Telegram to view this post
VIEW IN TELEGRAM
🔥8❤2
Ускорение производительности Postgres: HOT-обновления и Fill Factor
🔸 HOT-обновления происходят, когда обновлённая строка помещается на ту же страницу, что и старая версия строки.
🔸 HOT-обновления улучшают производительность, так как снижают нагрузку на I/O, объём WAL, количество обновлений индексов и другие ресурсы.
🔸 Обратите внимание на стратегию индексирования, если хотите чаще использовать HOT-обновления. Обычно они невозможны, если обновляемое поле проиндексировано — за исключением случая с индексами BRIN. Поддержка HOT-обновлений с BRIN — это новое улучшение в Postgres 16.
🔸 Чтобы повысить вероятность HOT-обновлений, можно уменьшить fill factor страницы. Но с этим могут быть компромиссы по производительности, так что лучше действовать по принципу «измеряй и смотри».
https://crunchydata.com/blog/postgres-performance-boost-hot-updates-and-fill-factor
👉 @SQLPortal
https://crunchydata.com/blog/postgres-performance-boost-hot-updates-and-fill-factor
Please open Telegram to view this post
VIEW IN TELEGRAM
❤6💊2👍1