СУБД вместо очереди сообщений: опыт команды Dagster Cloud

Использование СУБД вместо очереди сообщений считается антипаттерном, однако, команда разработки облачной системы организации конвейеров обработки данных Dagster Cloud выбрала PostgreSQL вместо Apache Kafka для регистрации событий. Разбираемся, почему плохой шаблон принес хорошие результаты и что нужно учитывать при выборе технологии. Почему не стоит использовать СУБД вместо очереди сообщений Dagster Cloud...

Greenplum 7: краткий обзор бета-релиза

Мы уже писали про некоторые новинки свежего релиза Greenplum 7 здесь и здесь. Разбираемся, что еще полезного появилось в бета-версии, выпущенной 15 декабря 2022 года. А также рассмотрим, каковы ограничения этого выпуска и почему его пока нельзя использовать в production. Новые функции PostgreSQL Помимо возможности применения команды ALTER TABLE к...

Модульное тестирование Spark-приложений с Gradle

Специально для обучения дата-инженеров и разработчиков распределенных программ, сегодня рассмотрим подходы к организации модульного тестирования Spark-приложений через классы тестовых данных. Зачем и как генерировать эти классы, где их хранить и при чем здесь система автоматической сборки приложений Gradle. Сборка и тестирование Spark-приложений Модульное тестирование лежит в основе проверки работоспособности программного...

MLOps c LakeFS и MLflow: версионирование данных

Управление версиями датасетов для ML-моделей, а также версионирование самих алгоритмов машинного обучения является одной из важных задач MLOps-концепции непрерывной разработки и развертывания систем Machine Learning. Читайте, как реализовать это с помощью платформы LakeFS и фреймворка MLflow. Что такое LakeFS и при чем здесь MLOps Системы контроля версий, такие как Git,...

Практический NLP с Python-библиотекой spaCy для SEO-задач в Google Colab

В рамках продвижения наших курсов по Data Science и Machine Learning, сегодня познакомимся с Python-библиотекой spaCy и русскоязычной NLP-моделью, развернув их в интерактивной среде Google Colab. В качестве практического примера решим небольшую SEO-задачу: определим части речи для каждого слова в небольшом тексте и количество их повторений. Применение библиотеки spaCy на...

Как Apache Flink использует Calcite для выполнения SQL-запросов

Мы уже рассказывали, что Apache Flink использует Calcite для оптимизации SQL-запросов. Продолжая разбирать эту тему, важную для обучения разработчиков Flink-приложений и дата-инженеров, сегодня рассмотрим, как отследить происхождение отношения на уровне поля, используя методы класса RelMetadataQuery в Calcite. Что такое Apache Calcite и при чем здесь Flink SQL Напомним, Apache Flink...

5 способов организовать динамическое изменение DAG в Apache AirFlow

При том, что чаще всего дата-инженер работает со статическими DAG в Apache AirFlow, иногда возникает необходимость динамически менять цепочку задач пакетного конвейера обработки данных. Разбираемся, как это сделать, а также смотрим, какие достоинства и недостатки имеет каждый из 5 возможных способов. Как организовать динамическое изменение DAG в Apache AirFlow: 5...

OLAP-базы данных vs потоковые stateful-приложения

Недавно мы писали про сравнения технологий потоковой аналитики больших данных и аналитических баз данных реального времени на примере сравнения ksqlDB и Rockset. Продолжая этот разговор про архитектуру данных и приложений, сегодня рассмотрим сходства и отличия потоковых баз данных со stateful-приложениями обработки событий в реальном времени. 2 технологии потоковой обработки: stateful-приложения...

CDC с Kestra вместо Debezium с Kafka Connect

Как реализовать CDC-сценарий, используя платформу оркестрации Kestra вместо Debezium с Kafka Connect для планирования и управления конвейером обработки данных. За счет чего Kestra работает эффективнее Debezium с коннекторами Kafka Connect и при чем здесь Apache AirFlow с NiFi. Что не так с реализацией CDC на Debezium с Kafka Connect Мы...

3 процессора обработки записей в Apache NiFi

Зачем нужны средства записи и чтения в процессорах Apache NiFi и как они работают: разбираемся на примере QueryRecord, PartitionRecord и RouteText. Сходства и отличия этих процессоров, а также тонкости их использования в задачах дата-инженерии. Процессор QueryRecord в Apache NiFi Напомним, в потоковом ETL-маршрутизаторе Apache NiFi процессоры используются для прослушивания входящих...

Под капотом NoSQL-СУБД: чем полезно LSM-дерево

Что такое LSM-дерево и как эта структура данных, лежащая в основе многих NoSQL-баз с распределенным типом ключ-значение, позволяет им обеспечивать высокую скорость записи и чтения. Смотрим на примере Apache HBase. Зачем нужны LSM-деревья Типичная СУБД состоит из нескольких компонентов, каждый из которых отвечает за обработку различных аспектов хранения, поиска и...

Аккумуляторы и качество данных в Apache Spark

Как Apache Spark организует параллельные вычисления, зачем нужны аккумуляторы и каким образом они помогают организовать мониторинг качества данных в аналитических конвейерах их обработки. Смотрим с точки зрения дата-инженера и разработчика распределенных приложений. Как Apache Spark распараллеливает обработку данных Параллельная обработка — это метод вычислений, при котором работает более одного ЦП...

Глубокое машинное обучение, реляционная парадигма и логическое программирование: versus или вместе?

Сегодня рассмотрим, чем отличаются подходы к представлению данных в глубоком машинном обучении и реляционной логике, как это связано с декларативной парадигмой логического программирования и при чем здесь графы. А в качестве примера реализации этих идей рассмотрим комбинацию принципов Deep Learning с реляционной логикой и GNN-нейросетями в Python-библиотеке PyNeuraLogic. Машинное обучение...

Новые методы доступа к таблицам в Greenplum 7

Продолжая разбираться с новинками Greenplum версии 7, выпущенной в середине декабря 2022 года, сегодня рассмотрим, как теперь работает SQL-команда с DML-запросов изменения таблиц ALTER TABLE. Как динамически менять структуру и характеристики таблицы даже тех, что предназначены только для добавления с новыми методами доступа. Модели таблиц в Greenplum: Append Only и...

SQL-on-Hadoop: Apache Hive vs Pig

Хотя Apache Pig сегодня не самый актуальный инструмент для аналитики больших данных в экосистеме Hadoop, дата-инженеру полезно знать его основные принципы работы и ключевые отличия от Hive. Также рассмотрим, чем Hive отличается от Pig в качестве средства SQL-on-Hadoop. Что такое Apache Pig Apache Pig – это высокоуровневый процедурный язык для...

Группы потребителей в Apache Kafka и микросервисы

Как количество разделов топика Apache Kafka  влияет на потребителей и продюсеров, зачем нужны группы потребителей и как этот механизм реализует идею микросервисной архитектуры Big Data систем. Как работают группы потребителей в Apache Kafka Будучи распределенной платформой потоковой передачи событий, Apache Kafka выполняет роль средства обмена сообщениями между  приложениями-продюсерами и приложениями-потребителями...

Тонкости оптимизации SQL-запросов в Apache Flink с Calcite

Как оптимизатор Calcite в Apache Flink переводит SQL-команды в задания потоковой и пакетной обработки и какие приемы могут ускорить их выполнение. Разбираемся, чем полезны интерфейсы пользовательских коннекторов источника и подсказки запросов. Flink SQL в пакетной и потоковой обработке данных Apache Flink позволяет разрабатывать распределенные приложения потоковой обработки больших данных, предоставляя...

Кто с кем против кого: анализ графа социальных связей в Neo4j

В рамках продвижения нашего нового курса по графовой аналитики больших данных, сегодня рассмотрим, как создать граф социальных связей в веб-консоли Neo4j и сделать запросы к нему на Cypher - внутреннем SQL-подобном языке этой NoSQL-СУБД. Как построить граф социальных связей в Neo4j Возьмем в качестве примера набор деловых и личных взаимоотношений...

MLOps с Apache AirFlow: оркестрация ML-конвейеров

Apache AirFlow не зря считается у дата-инженеров самым популярным ETL-оркестровщиком. Сегодня посмотрим, чем этот фреймворк полезен в MLOps и как его использовать для оркестровки конвейеров машинного обучения. MLOps в конвейерах машинного обучения Конвейеры машинного обучения в производственной среде обслуживают ML-модели в реальных проектах. Чтобы эффективно управлять такими конвейерами связанных заданий,...

Каталоги, хранилища и витрины данных: принципы, практики и инструменты проектирования

Хотя современная аналитика больших данных чаще базируется на Data Lake, Data Mesh, Delta Lake и DeltaLakeHouse, многие компании до сих пор активно используют классические витрины и хранилища. Разбираем особенности этих архитектур, а также оцениваем их применимость к текущим потребностям бизнеса. Витрины и хранилища данных Витрина данных (Data Mart) предоставляет информацию...

Изменение базового тарифа с 1 января 2026 года Подробнее