Школа Больших Данных
509 subscribers
68 photos
656 links
Канал Школы Больших Данных https://www.bigdataschool.ru/ - обучение технологиям Big Data: разработка приложений и администрирование кластеров Hadoop, Kafka, Spark, NoSQL, Python, ML и DS.
Тел: +7 (495) 41-41-121
Контакты: @Bigdataschool_mck @olga_burykh
Download Telegram
#ApacheSpark #потоковаяобработка
Как ускорить Apache Spark Structured Streaming: 3 главных параметра потоковой обработки


Как размер пакета, режим вывода и интервал срабатывания триггера потоковой обработки влияют на скорость вычислений в приложении Apache Spark Structured Streaming и как настроить эти параметры.

Размер пакета при потоковой обработке данных в Spark Streaming
Хотя скорость обработки данных средствами Apache Spark Streaming зависит от многих факторов, включая саму структуру и формат обрабатываемых данных, в большинстве случаев ее можно повысить, задав оптимальные настройки следующих параметров...
Статья
Курсы: CORS, SPOT, SPARK, MLSP, GRAS, SPAD
Наш сайт
Копирование, размножение, распространение, перепечатка (целиком или частично), или иное использование материала допускается только с письменного разрешения правообладателя ООО "УЦ Коммерсант"
#Greenplum #SQL #MVCC
Транзакции и блокировки в Greenplum


Какие SQL-команды есть в Greenplum для транзакционной обработки данных, как MVCC исключает явные блокировки, можно ли установить их вручную и как это сделать: режимы блокировки и глобальный детектор взаимоблокировок в MPP-СУБД.

Транзакции, MVCC и режимы блокировки Greenplum
Про изоляцию транзакций в Greenplum и Arenadata DB мы уже писали здесь. Транзакции позволяют объединить несколько SQL-операторов в одну операцию, чтобы выполнить их атомарно, т.е. все или ни одной.
Статья
Курсы:
GPDE GRAD
Наш сайт
Копирование, размножение, распространение, перепечатка (целиком или частично), или иное использование материала допускается только с письменного разрешения правообладателя ООО "УЦ Коммерсант"
#ClickHouse #ACID #MergeTree
Транзакции в ClickHouse

Почему в ClickHouse нет полноценных транзакций, но введена экспериментальная поддержка ACID для операций вставки в таблицы движка MergeTree, как это реализуется и чем синхронная вставка отличается от асинхронной.

Особенности операций вставки в ClickHouse

В ClickHouse нет полноценных транзакций, поскольку это колоночное хранилище в первую очередь ориентировано на чтение большого объема данных, потоковую запись и приблизительные вычисления. Это надо учитывать при выполнении DML-запросов.
Статья
Курс: CLICH
Наш сайт
Копирование, размножение, распространение, перепечатка (целиком или частично), или иное использование материала допускается только с письменного разрешения правообладателя ООО "УЦ Коммерсант"
#Вебхуки #ApacheKafka #Upstash
Веб-хуки в Apache Kafka из PostgreSQL на платформе Upstash: пример


Что такое вебхук и как отправить событие из PostgreSQL в Apache Kafka, используя API Webhook на платформе Upstash. NoCode-интеграция БД и брокера сообщений: практический пример.

Практический пример: CDC из PostgreSQL в Kafka через веб-хуки
Веб-хук или перехватчик – это настраиваемый обратный HTTP-вызов из одной системы к другой. Он используется для асинхронной интеграции систем для событийного обмена данными, т.е. не по расписанию. Вместо синхронного взаимодействия в стиле запрос-ответ клиент не обращается к серверу за новыми данными, а сервер сам вызывает клиент тогда, когда у него появились изменения.
Статья
Курсы: DEVKI KAFKA ADS-KAFKA
Наш сайт
Копирование, размножение, распространение, перепечатка (целиком или частично), или иное использование материала допускается только с письменного разрешения правообладателя ООО "УЦ Коммерсант"
#ClickHouse #GROUPBY #лайфхаки
Тонкости агрегации в ClickHouse: как избежать OOM-ошибки с GROUP BY?

Как работают агрегатные функции в ClickHouse, почему SQL-запросы с GROUP BY потребляют много памяти и что поможет сделать их быстрее и эффективнее: лайфхаки многопоточной агрегации в колоночной базе данных.

Особенности выполнения оператора GROUP BY в ClickHouse

Агрегатные функции позволяют вычислить экстремум (минимум/максимум), среднее значение, количество, сумму или другое результирующее значение в группе. Статья
Курс CLICH
Наш сайт
Копирование, размножение, распространение, перепечатка (целиком или частично), или иное использование материала допускается только с письменного разрешения правообладателя ООО "УЦ Коммерсант"
#PySpark #ApacheSpark
Распараллеливание заданий в PySpark


Почему параллельное выполнение заданий в Apache Spark зависит от языка программирования и как можно обойти однопоточную природу Python в PySpark.

Что не так с параллельным выполнением заданий PySpark и как это исправить?
Apache Spark позволяет писать распределенные приложения благодаря инструментам для распределения ресурсов между вычислительными процессами. В режиме кластера каждое приложение Spark, представляющее собой экземпляр контекста SparkContext, запускает независимый набор процессов-исполнителей.
Статья
Курсы:
CORS SPOT MLSP GRAS SPAD
Наш сайт
Копирование, размножение, распространение, перепечатка (целиком или частично), или иное использование материала допускается только с письменного разрешения правообладателя ООО "УЦ Коммерсант"
#ApacheNiFi #200M4 #Kafka
Apache NiFi 2.0.0-M4: июльские новинки мажорного релиза

1 июля 2024 г. опубликован очередной выпуск Apache NiFi 2.0.0. Знакомимся с его наиболее интересными добавлениями и улучшениями: критические изменения, обновленная интеграция с Kafka и новые процессоры для работы с файлами разных форматов.

Обновленная интеграция с Kafka и другие новинки Apache NiFi 2.0.0-M4
Выпуск мажорного релиза не всегда происходит одним этапом. Например, разработчики Apache NiFi публикуют обновления пошагово. В начале июля вышла четвертое дополнение релиза 2.0.0, которое включает довольно много изменений, в том числе критических.
Статья
Курс: NIFI3
Наш сайт
Копирование, размножение, распространение, перепечатка (целиком или частично), или иное использование материала допускается только с письменного разрешения правообладателя ООО "УЦ Коммерсант"
#ApacheFlink #API #обработка
Асинхронные операции ввода/вывода в Apache Flink

API асинхронного ввода-вывода в Apache Flink и как его использовать для асинхронной интеграции данных из внешней системы с потоком событий.

Основы асинхронной обработки в Apache Flink
Обогащение потоков данных информацией из внешних систем является довольно сложным кейсом из-за необходимости синхронизировать скорость поступления событий с задержкой доступа к внешнему источнику. При синхронном обращении к внешней системе придется ожидать ответа, который может поступить далеко не сразу. Поэтому в таком случае лучше использовать асинхронное взаимодействие, когда один параллельный экземпляр функции может обрабатывать много запросов одновременно и получать ответы одновременно.
Статья
Курс:
FLINK
Наш сайт
Копирование, размножение, распространение, перепечатка (целиком или частично), или иное использование материала допускается только с письменного разрешения правообладателя ООО "УЦ Коммерсант"
#SparkStructuredStreaming #StreamingQuery #фреймворк
Под капотом Spark Structured Streaming: интерфейсы потоковых запросов и их методы

Как устроен потоковый запрос Spark Structured Streaming на уровне кода: интерфейсы, их методы и как их настроить, создание и запуск StreamingQuery.

Создание потокового запроса в Spark Structured Streaming
Хотя структурированная потоковая передача Spark основана на SQL-движке этого фреймворка, в ней гораздо больше сложных абстракций. Например, с точки зрения программирования потоковый запрос в Structured Streaming – это не просто набор SQL-операторов над таблицей, которая непрерывно дополняется, а абстракция дескриптора потоковых запросов, которые выполняются непрерывно и параллельно в отдельном потоке.
Статья
Курсы:
CORS SPOT SPARK MLSP GRAS SPAD
Наш сайт
Копирование, размножение, распространение, перепечатка (целиком или частично), или иное использование материала допускается только с письменного разрешения правообладателя ООО "УЦ Коммерсант"
#Python #Kafka #confluentkafka
Что выбрать Python-разработчику для работы с Kafka: confluent-kafka vs kafka-python

Почему производительность confluent-kafka выше, чем у kafka-python, чем еще отличаются эти Python-библиотеки для разработки клиентов Apache Kafka, и что выбирать.

Сравнение Python-библиотек для разработки клиентов Kafka

Хотя Java считается более подходящей для создания высоконагруженных приложений, многие разработчики используют Python, который намного проще. Этот язык программирования подходит даже для написания продюсеров и потребителей Apache Kafka. Но в этом случае перед разработчиком встает выбор: какую библиотеку использовать. Например, раньше я обычно пользовалась библиотекой kafka-python. Однако, у нее есть альтернатива — confluent-kafka.
Статья
Курсы: DEVKI KAFKA ADS-KAFKA
Наш сайт
Копирование, размножение, распространение, перепечатка (целиком или частично), или иное использование материала допускается только с письменного разрешения правообладателя ООО "УЦ Коммерсант"
#ApacheAirFlow #Pythonвызов
Асинхронные Python-вызовы и отсроченные операторы в Apache AirFlow

Что общего между триггерами, отсроченными операторами и асинхронными Python-вызовами в Apache AirFlow, чем они отличаются от стандартных операторов и сенсоров, для чего их использовать и как это сделать.

Асинхронные вызовы и отсроченные операторы в Apache AirFlow

В синхронном коде задачи выполняются последовательно, одна за другой. Причем каждая задача должна завершиться до того, как начнется следующая. Поэтому если одна задача занимает много времени, например, ожидает ответа от внешней системы или читает много данных из большого файла, весь процесс блокируется до завершения этой медленной задачи.
Статья
Курсы: AIRF YARF
Наш сайт
Копирование, размножение, распространение, перепечатка (целиком или частично), или иное использование материала допускается только с письменного разрешения правообладателя ООО "УЦ Коммерсант"
#ApacheAirFlow #оператор #создание
Как написать свой отсроченный оператор Apache AirFlow

Почему триггеры отсроченных операторов Apache AirFlow не могут быть блокирующими и как сделать их асинхронными с помощью Python-библиотеки asyncio.

Создание своего отсроченного оператора в Apache AirFlow

О том, что такое отсроченные операторы, как они связаны с триггерами и асинхронными Python-вызовами в Apache AirFlow, мы недавно говорили здесь. Помимо использования существующих отсроченных операторов, дата-инженер может написать свой собственный, соблюдая следующие рекомендации:
Статья
Курсы: AIRF YARF
Наш сайт
Копирование, размножение, распространение, перепечатка (целиком или частично), или иное использование материала допускается только с письменного разрешения правообладателя ООО "УЦ Коммерсант"
#ApacheFlink #Richфункции #PyFlink #GoogleColab
Расширенные функции Apache Flink

Что такое rich-функции в Apache Flink, зачем они нужны, чем отличаются от обыкновенных UDF и как с ними работать: простой пример на PyFlink с запуском в Google Colab.

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


20 июня 2024 года вышел очередной релиз Greenplum. Разбираемся с ключевыми новинками выпуска 7.2: сканирование индекса в AO-таблицах, изменения в оптимизаторе GPORCA, улучшенная обработка геопространственных данных и новая служба централизованного управления сегментами Postmaster.

Новинки Greenplum 7.2 для дата-инженера
Начнем с изменений, повышающих производительность Greenplum. Одним из них стало сканирование индекса в AO-таблицах, оптимизированных для добавления данных. Ранее поддерживалось только сканирование битовых карт в памяти. Вообще сканирование индексов в AO-таблицах – не новая функция для Greenplum, однако, она была отключена из-за ограничений CBO-модели.
Статья
Курсы: GPDE GRAD
Наш сайт
Копирование, размножение, распространение, перепечатка (целиком или частично), или иное использование материала допускается только с письменного разрешения правообладателя ООО "УЦ Коммерсант"
#Потоковыесоединения #Kafka #Python #JSONсхема
Потоковые соединения из Kafka на Python: практический пример

Сегодня я покажу простую демонстрацию потоковой агрегации данных из разных топиков Apache Kafka на примере Python-приложений для соединения событий пользовательского поведения с информацией о самом пользователе.

Постановка задачи
Рассмотрим примере кликстрима, т.е. потокового поступления данных о событиях пользовательского поведения на страницах сайта. Предположим, данные о самом пользователе: его идентификаторе, электронном адресе и имени попадают в топик под названием CorpAppsTopic. JSON-схема полезной нагрузки выглядит так:
Статья
Курсы: DEVKI KAFKA ADS-KAFKA
Наш сайт
Копирование, размножение, распространение, перепечатка (целиком или частично), или иное использование материала допускается только с письменного разрешения правообладателя ООО "УЦ Коммерсант"
#Kafka #SQL #RisingWave
Потоковая агрегация данных из Kafka на SQL в RisingWave: пример


Как соединить данные из разных топиков Apache Kafka с помощью пары SQL-запросов: коннекторы, материализованные представления и потоковая база данных вместо полноценного потребителя. Подробная демонстрация запросов в RisingWave.

Проектирование и реализация потоковой агрегации данных из Kafka в RisingWave
Вчера я показывала пример потоковой агрегации данных из разных топиков Kafka с помощью Python-приложения, которое потребляет данные о пользователях и событиях их поведения на сайтах из разных топиков Kafka и соединяет их по ключевому идентификатору. Сегодня рассмотрим, как решить эту задачу быстрее с помощью потоковой базы данных RisingWave и коннекторов к Kafka.
Статья
Курсы: DEVKI KAFKA ADS-KAFKA
Наш сайт
Копирование, размножение, распространение, перепечатка (целиком или частично), или иное использование материала допускается только с письменного разрешения правообладателя ООО "УЦ Коммерсант"
#SQL #Kafka #Redis #RisingWave
Потоковая агрегация и передача данных из Kafka в Redis через SQL-запросы в RisingWave


Как SQL-запросами соединить потоки из разных топиков Apache Kafka и отправить результаты в Redis: демонстрация ETL-конвейера на материализованных представлениях в RisingWave.

Постановка задачи и проектирование потоковой системы
Продолжая недавний пример потоковой агрегации данных из разных топиков Kafka с помощью SQL-запросов, сегодня расширим потоковый конвейер в RisingWave, добавив приемник данных – key-value хранилище Redis. RisingWave – это распределенная реляционная СУБД, которая позволяет работать с потоками данных как с обычными таблицами через типовые SQL-запросы.
Статья
Курсы:
DEVKI KAFKA ADS-KAFKA
Наш сайт
Копирование, размножение, распространение, перепечатка (целиком или частично), или иное использование материала допускается только с письменного разрешения правообладателя ООО "УЦ Коммерсант"
#YAML #LowCode #ApacheAirFlow #DAGFactory
YAML вместо Python: LowCode-разработка DAG в Apache AirFlow с DAG Factory


Как написать DAG в Apache AirFlow без программирования, определив его конфигурацию в YAML-файле, и автоматически получить пакетный конвейер обработки данных с помощью Python-библиотеки DAG Factory.

Демократизация разработки ETL-конвейеров или что такое DAG Factory в Apache AirFlow

Хотя Apache AirFlow и так считается довольно простым фреймворком для оркестрации пакетных процессов и реализации ETL-операций благодаря использованию Python, разработчики стараются сделать его еще проще. Это соответствует устойчивому тренду в инженерии данных с фокусированием на бизнес-логике обработки данных, а не фактическом программировании.
Статья
Курсы:
AIRF YARF
Наш сайт
Копирование, размножение, распространение, перепечатка (целиком или частично), или иное использование материала допускается только с письменного разрешения правообладателя ООО "УЦ Коммерсант"
#ApacheNiFi #Listen
Процессоры-слушатели в Apache NiFi

Какие процессоры Apache NiFi позволяют принимать и обрабатывать данные из различных источников по разным протоколам, и как избежать сбоев при их использовании с удержанием открытых соединений и порты.

Listen-процессоры Apache NiFi
В Apache NiFi есть целый набор процессов-слушателей, которые принимают и обрабатывают входящие данные из различных источников по разным протоколам. Хотя каждый из них используется для работы с разными протоколами и типами входящих данных, их основная функция заключается в прослушивании входящих соединений и приеме информации, которая затем может быть обработана и направлена в дальнейшие процессоры или системы.
Статья
Курс:
NIFI3
Наш сайт
Копирование, размножение, распространение, перепечатка (целиком или частично), или иное использование материала допускается только с письменного разрешения правообладателя ООО "УЦ Коммерсант"
#ApacheKafka #ТОП7 #new
Apache Kafka 3.8: обзор свежего релиза


29 июля 2024 года вышло очередное обновление Apache Kafka. Разбираемся с главными новинками релизе 3.8: поддержка JBOD в многоуровневом хранилище, детальная настройка уровня сжатия, улучшение безопасности и удаление неоднозначных конфигураций.

ТОП-7 новинок Apache Kafka 3.8
Многоуровневое хранилище (Tiered Storage) для надежного долговременного хранения данных, опубликованных в Kafka, без ущерба высокой пропускной способности, было реализовано еще в выпуске 3.6, о чем мы писали здесь. Однако, раньше эта функция раннего доступа, рекомендуемая для тестирования в непроизводственных средах, не поддерживала JBOD (Just a Bunch Of Disks) в кластерах на базе KRaft.
Статья
Курсы: DEVKI KAFKA ADS-KAFKA
Наш сайт
Копирование, размножение, распространение, перепечатка (целиком или частично), или иное использование материала допускается только с письменного разрешения правообладателя ООО "УЦ Коммерсант"