Как стать автором
Обновить
8.73

Apache *

Свободный веб-сервер

Сначала показывать
Порог рейтинга
Уровень сложности

Apache Avro — на светлой стороне Кафки

Время на прочтение5 мин
Количество просмотров3K

Добрый день, Хабр!

Меня зовут Сергей Игнатенко, я — девлид в поезде «Операционная платформа» ВСК. Хочу сегодня рассказать об опыте использования SchemaRegistry и Avro в Kafka.

Начну с базовой схемы работы с Kafka, которая, возможно, будет знакома многим, но важна для понимания контекста.

Принцип работы прост: продюсер отправляет сообщение в Kafka, где оно размещается в очереди. Далее один или несколько консюмеров считывают это сообщение.

Читать далее
Всего голосов 5: ↑4 и ↓1+4
Комментарии3

Новости

Создание data lineage в Apache Atlas из логических планов Spark (не без «костылей»)

Уровень сложностиСредний
Время на прочтение16 мин
Количество просмотров539

В статье обсуждается процесс интеграции Apache Spark с Apache Atlas для визуализации выполнения ETL-процессов на основе построения связей между операциями в Spark. Автор описывает создание пользовательских сущностей в Apache Atlas, таких как Process и DataSet, которые необходимы для отражения трансформаций данных.

Основной фокус статьи заключается в построении графа lineage (происхождения данных) для операций в Spark. Автор выделяет ограничения архитектуры Apache Atlas, например, необходимость наследования от стандартных типов Process и DataSet для корректного отображения lineage. Также описывается создание и отправка новых типов сущностей в Apache Atlas с использованием REST API, а также проблемы, возникающие при попытках обновления сущностей.

Читать далее
Всего голосов 2: ↑2 и ↓0+2
Комментарии1

Агрегация данных для аналитики продаж с помощью DataSphere Jobs и Airflow SDK

Время на прочтение9 мин
Количество просмотров552

В маркетинге и продажах крупных компаний есть несколько аналитических задач, которые требуют регулярной обработки сотен тысяч и миллионов записей из разных источников. Например, это прогнозирование продаж или планирование рекламных кампаний. Как правило, их решение не обходится без построения длинного пайплайна обработки данных. ML‑инженеру или аналитику данных нужен ансамбль из нескольких моделей и сервисов, чтобы собрать качественный датасет, провести эксперименты и выбрать наиболее подходящие алгоритмы.

Сбор, очистка и агрегация данных занимают большую часть времени и вычислительных ресурсов, а эти затраты хочется оптимизировать. В статье покажем, как мы ускорили построение пайплайнов обработки данных с помощью связки DataSphere Jobs и Apache Airflow™.

Читать далее
Всего голосов 14: ↑14 и ↓0+18
Комментарии0

Интеграция Apache NiFi и Atlas: Настройка в Docker и Создание Пользовательского Репортера

Уровень сложностиСредний
Время на прочтение18 мин
Количество просмотров667

В этой статье представлен кейс по интеграции Apache NiFi с Apache Atlas с использованием Docker. В процессе развертывания и настройки системы возникли проблемы с загрузкой образов и установкой необходимых пакетов. Основное внимание уделяется созданию и настройке пользовательского репортера, который позволяет фильтровать и отображать только те компоненты DAG в Atlas, которые соответствуют заданным критериям. В статье подробно описаны шаги по созданию и сборке .nar архива, добавлению его в NiFi и настройке фильтрации с использованием кастомных классов.

Читать далее
Всего голосов 1: ↑1 и ↓0+3
Комментарии0

Истории

Вычисляем Вес в приросте в Superset

Уровень сложностиСредний
Время на прочтение7 мин
Количество просмотров1.9K

Сегодня я продолжу знакомить вас с нестандартными задачами, которые появляются в моей работе, и способами их решения.

За информацию из этой статьи, я был готов заплатить деньги, убить или сходить на концерт Шамана.

Уверен, что мой рассказ будет полезен не только пользователям Superset, но и всем аналитикам, которые используют SQL в своей работе и учёбе.

Не буду рассказывать про базовое построение таблиц на BI системе Superset, с этим прекрасно справятся тонны видео на ютубе и бесполезные курсы (про которые я писал ранее). Но сразу скажу, что суперсет в отличие от некоторых других BI систем начинает раскрываться только если ты знаешь SQL, так что хотим мы этого или нет – погружаться в тонкости языка придётся.

Больше двух недель на поиск оптимального решения, ошибки, костыли и элегантный финал.

Итак, Что такое «Вес в приросте» и чем он отличается от обычного «Прироста», и в чем собственно говоря — сложность?

Разберёмся на примере:

Читать далее
Всего голосов 6: ↑6 и ↓0+8
Комментарии0

Нагрузочное тестирование в разработке веб-приложений

Уровень сложностиСредний
Время на прочтение12 мин
Количество просмотров2.9K

Одним из критически важных этапов разработки веб-приложений является нагрузочное тестирование. Этот процесс необходим для выявления потенциальных узких мест в системе, а также для обеспечения того, что приложение способно выдерживать предполагаемое количество пользователей и запросов без ухудшения производительности.

Читать далее
Всего голосов 6: ↑6 и ↓0+8
Комментарии5

Поисковый запрос на баги в Apache Solr

Уровень сложностиСредний
Время на прочтение14 мин
Количество просмотров745

И вновь мы проверяем продукт Apache. На этот раз выбор пал на Solr — платформу поискового сервера с открытым исходным кодом. Благодаря Solr можно эффективно и быстро искать информацию в базах данных и на интернет-ресурсах. При решении такой сложной задачи очень легко допустить разнообразные ошибки, даже несмотря на огромный опыт разработчиков Apache. Именно такие ошибки мы рассмотрим в этой статье.

Читать далее
Всего голосов 10: ↑10 и ↓0+15
Комментарии1

Создание масштабируемых приложений при помощи Kafka и реактивного программирования

Время на прочтение12 мин
Количество просмотров9.3K
image


Введение


В современном цифровом мире критически важна возможность обрабатывать данные в режиме реального времени и масштабировать приложения. Для этого хорошо подходит Kafka – платформа для распределённой потоковой обработки событий, особенно, если сочетать её с реактивным программированием. В данной статье будет рассказано, как создавать реактивные приложения при помощи этого инструментария.
Читать дальше →
Всего голосов 12: ↑11 и ↓1+15
Комментарии5

Введение в Apache Flink: архитектура и основные концепции. Часть 2

Уровень сложностиСложный
Время на прочтение15 мин
Количество просмотров1.6K

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

Вы поймёте, как можно улучшить и оптимизировать работу с Apache Flink. В частности, мы разберём важную концепцию водяных знаков (watermark), которая играет ключевую роль в обработке потоковых данных с временными метками.

Читать далее
Всего голосов 4: ↑4 и ↓0+7
Комментарии0

Введение в Apache Flink: архитектура и основные концепции. Часть 1

Уровень сложностиСложный
Время на прочтение23 мин
Количество просмотров4K

Будучи DevOps-инженером и работая с масштабируемыми облачными решениями, мне часто приходится глубоко погружаться в механизмы работы потоковых платформ. Трудно переоценить важность подробного изучения архитектуры и оптимизации обработки данных, когда речь идёт о системах вроде Apache Flink. Эта технология стала неотъемлемой частью моего инструментария благодаря её возможностям по реализации потоковых приложений.

Мы рассмотрим ключевые аспекты функционирования Apache Flink, от распределённой обработки данных до обеспечения надёжности системы в условиях возможных сбоев. Все эти элементы лежат в основе производительности и масштабируемости приложений, работающих с потоками данных.

Ещё мы подробно рассмотрим использование Apache Flink в задачах, где требуется высокая скорость обработки и точность управления данными. Особое внимание уделим изучению архитектурных основ и методов разработки высокоэффективных потоковых систем.

Материал объёмный, и поэтому я разделил его на две части. Запаситесь чаем и печеньками =)

Читать далее
Всего голосов 8: ↑8 и ↓0+13
Комментарии1

Nifi — когда record-oriented не оправдывает себя

Уровень сложностиСредний
Время на прочтение17 мин
Количество просмотров1.8K

Добрый день. Меня зовут Иван Клименко, и я архитектор департамента поддержки продаж компании Arenadata. В основном занимаюсь продуктом Arenadata Streaming (ADS) — это масштабируемая отказоустойчивая система для потоковой обработки данных в режиме реального времени, адаптированная для корпоративного использования и построенная на базе Apache Kafka и Apache NiFi. В продукт входит замечательный сервис Arenadata Streaming NiFi, который является low‑code средством построения интеграционных потоков с возможностью масштабирования.

Сегодня хочу показать на одном из практических случаев, что не всегда в NiFi удаётся следовать шаблонному подходу record‑oriented в разработке потоков обработки и трансформации данных.

Будет большой JSON, будет Avro‑схема, будет JOLT‑спецификация.

Интересно?
Всего голосов 14: ↑13 и ↓1+14
Комментарии0

Alerting Apache Airflow, уведомления в телеграм

Уровень сложностиПростой
Время на прочтение6 мин
Количество просмотров2.4K

Небольшое отступление.
Работая работу, вдруг, появилась необходимость познакомиться с таким инструментом, как Apache Airflow. Задачу дали простую - нет никаких уведомлений в DAG'ах, при сбое необходимо уведомлять. Так как про этот сервис я только "слышал", уверенных знаний я показать даже сейчас, боюсь, не смогу. Зато смогу поделиться с вами простым кодом оповещения, который поможет вам не придумывать велосипед и воспользоваться (а то и улучшить) текущим. За основу я взял статью на Хабре, само собой официальная документация и другие открытые источники.

Данный alerting предназначен для любых версий, но если вы хотите использовать преимущества Apache Airflow на полную, то при версии >= 2.6.0 лучше читать статью выше.

Если вы здесь, скорее всего, вы уже примерно представляете что такое Apache Airflow, таски (джобы) и даги, поэтому не буду вдаваться в подробности и сразу перейду к сути.
Для начала я советую вам повторить (а в будущем и превзойти, если нужно!) текущую конфигурацию.

Для того чтобы понять, работают ли уведомления, напишем простейший dag со сломанной таской.

Читать далее
Всего голосов 3: ↑2 и ↓1+1
Комментарии5

Разработка фреймворка для автоматизации загрузок данных из источников: Case Study для металлургической компании

Уровень сложностиСредний
Время на прочтение8 мин
Количество просмотров1.1K

Аналитика данных и витрины аналитики — источники аналитической отчетности, на основе которой принимаются стратегические управленческие решения. Однако на рынке нет готовых фреймворков, которые полностью удовлетворяют потребности в извлечении данных.

Конечно, есть Apache NiFi, но с ним возникает много проблем при работе с большими объемами данных. Связка Python и Apache Airflow на сегодняшний день является одной из лучших практик в области управления данными не только для оркестрации данных, но и для извлечения, поэтому логично разрабатывать ETL-систему (Extract, Transform, Load) поверх Airflow. Это позволяет эффективно управлять процессами извлечения, преобразования и загрузки данных, обеспечивая надежность и гибкость в аналитической инфраструктуре.

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

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

Читать далее
Всего голосов 1: ↑1 и ↓0+3
Комментарии0

Ближайшие события

27 августа – 7 октября
Премия digital-кейсов «Проксима»
МоскваОнлайн
19 сентября
CDI Conf 2024
Москва
20 – 22 сентября
BCI Hack Moscow
Москва
24 сентября
Конференция Fin.Bot 2024
МоскваОнлайн
25 сентября
Конференция Yandex Scale 2024
МоскваОнлайн
28 – 29 сентября
Конференция E-CODE
МоскваОнлайн
28 сентября – 5 октября
О! Хакатон
Онлайн
30 сентября – 1 октября
Конференция фронтенд-разработчиков FrontendConf 2024
МоскваОнлайн
3 – 18 октября
Kokoc Hackathon 2024
Онлайн

Динамическое создание UDF в Apache Spark из строк кода: проблемы и решение («костыль»)

Уровень сложностиСредний
Время на прочтение11 мин
Количество просмотров729

В данной статье рассматривается подход к созданию пользовательских функций (UDF) в Scala, специфически в контексте использования в Apache Spark. Автор исследует проблему динамической генерации и передачи лямбда-выражений через JSON, обсуждая ограничения сериализации функций в Spark и возможные решения с использованием типа Any для универсальной обработки различного числа аргументов. Статья призывает к дискуссии и поиску альтернативных подходов, не претендуя на единственно верное решение, и представляет предложенный метод лишь как один из возможных вариантов решения задачи.

Читать далее
Всего голосов 2: ↑2 и ↓0+3
Комментарии1

Опыт разработки сервиса отправки сообщений в Apache Kafka с использованием SASL/Kerberos и Avro Schema Registry

Уровень сложностиСредний
Время на прочтение10 мин
Количество просмотров2.4K

По техзаданию необходимо было создать сервис, который в зависимости от топика, отправлял бы сообщения или на один инстанс Kafka (строку, с простой авторизацией с помощью SSL), или на другой, но уже с сериализацией и авторизацией через Kerberos.

Читать далее
Всего голосов 2: ↑1 и ↓1+2
Комментарии2

CVE-2024-4577: Не может быть, PHP опять под атакой

Уровень сложностиПростой
Время на прочтение4 мин
Количество просмотров5.4K

Orange Tsai недавно запостил про «Одну из уязвимостей PHP, которая влияет на XAMPP, развернутый с настройками по умолчанию», и нам было интересно рассказать немного об этом. XAMPP - очень популярный способ администраторов и разработчиков развернуть Apache, PHP и множество других инструментов, и любая ошибка, которая может быть RCE в установке этого набора по умолчанию, звучит очень заманчиво.

Где нашлась очередная уязвимость PHP? Читайте далее.

Читать далее
Всего голосов 11: ↑7 и ↓4+4
Комментарии11

Оптимизация настроек Kafka кластера. Часть 3. Сравнительное тестирование, мониторинг и тонкая настройка Kafka кластера

Уровень сложностиСредний
Время на прочтение8 мин
Количество просмотров852

Привет, Хабр! Представляю вам третью (заключительную) часть серии статей, посвященных оптимизации развертывания Kafka кластера (ссылка на первую и вторую части). Это перевод руководства от Confluent. Сегодняшняя статья посвящена сравнительному тестированию настроек и мониторингу Kafka кластера.

Читать далее
Всего голосов 1: ↑1 и ↓0+3
Комментарии0

Оптимизация настроек Kafka кластера. Часть 2. Механизмы управления задержкой, надежностью и доступностью

Уровень сложностиСредний
Время на прочтение16 мин
Количество просмотров3.4K

Привет, Хабр! Представляю вам вторую часть из серии статей, посвященных оптимизации развертывания Kafka кластера (ссылка на первую часть). Это перевод руководства от Confluent. Сегодняшняя статья посвящена тому, как уменьшить задержку и повысить надежность и доступность. Заключительная третья часть будет посвящена мониторингу и бенчмаркингу.

Читать далее
Всего голосов 2: ↑2 и ↓0+2
Комментарии0

Оптимизация настроек Kafka кластера. Часть 1. Механизмы управления пропускной способностью

Уровень сложностиСредний
Время на прочтение9 мин
Количество просмотров3.9K

Привет, Хабр! Представляю вам перевод технического документа от Confluent, который посвящен тому, как определить, что именно нужно оптимизировать (пропускная способность, задержка, надежность или доступность), как настроить развертывание Kafka в соответствии с этими целями и убедиться в их достижении с помощью мониторинга. Сегодня я выкладываю первую часть, в которой обсуждается, как определить цели оптимизации и улучшить пропускную способность Kafka. Последующие статьи будут посвящены задержке, надежности, доступности, мониторингу и бенчмаркингу.

Читать далее
Всего голосов 3: ↑3 и ↓0+3
Комментарии0

Типы совместимости в Schema Registry для Apache Kafka

Уровень сложностиСредний
Время на прочтение10 мин
Количество просмотров2.5K

В прошлой статье я писал о том, что такое Schema Registry и как используется в Apache Kafka. Сегодня я хочу углубиться в тему и описать поведение системы при различных типах совместимости . Правильное понимание и применение этих типов совместимости поможет обеспечить стабильность и гибкость системы при изменениях структуры данных.

Типы совместимости схем в Apache Kafka
Всего голосов 6: ↑6 и ↓0+7
Комментарии0
1
23 ...