Обновить
83.49

Data Engineering *

Обсуждаем вопросы сбора и подготовки данных

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

Что нового в Apache Spark 3.4.0 — Spark Connect — Доработки для Shuffle

Время на прочтение8 мин
Охват и читатели3.8K

Spark Connect — это, пожалуй, самая ожидаемая фича Apache Spark 3.4.0. Она была анонсирована на конференции Data+AI Summit 2022 и сейчас широко освещается в социальных сетях. Вот и я решил приобщиться и внести свой небольшой вклад в это дело, продемонстрировав вам несколько интересных деталей реализации.

Читать далее

Инструменты продуктового аналитика VK, или Как мы работаем с большими данными

Уровень сложностиСредний
Время на прочтение15 мин
Охват и читатели11K

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

Заинтригованы? Добро пожаловать в мир аналитики больших данных.

Читать далее

Бесконечные проверки – к успешному развитию: как мы обеспечиваем качество данных

Время на прочтение5 мин
Охват и читатели4.8K

Привет, Хабр! Меня зовут Яна и я работаю Data Quality в департаменте развития аналитики "Цепочки поставок и поддерживающие функции" X5 Tech. В этой статье мы с моей коллегой Наташей, менеджером по качеству данных, решили рассказать о мониторинге качества данных большинства отчётов нашей команды.

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

Читать далее

Как мы наводим порядок с данными в столичном транспортном институте

Уровень сложностиПростой
Время на прочтение8 мин
Охват и читатели4.3K

Привет, Хабр!  На связи команда разработки «МосТрансПроекта».

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

Необходимые данные (а их суммарный объем измеряется в петабайтах) собирают ЦОДД, Московский метрополитен, «Организатор перевозок», «Мосгортранс», «Администратор московского парковочного пространства» и другие структуры транспортного комплекса. В целом, ничего сложного: получаем доступ к базам, берем информацию, «причесываем», анализируем, действуем, решаем задачу. Но, как обычно это бывает с данными, все не так просто.

В поисках склада

Проблема в том, что для неподготовленного специалиста обособленные друг от друга базы напоминают склады с наваленными коробками — чтобы быть уверенным в результате, нужно заглянуть в каждую. Старожилы «МосТрансПроекта», конечно, знают, где взять ту или иную информацию, но без их помощи работать с данными было трудно. Иногда нужно было пройти увлекательный квест, чтобы забрать сведения, которые есть лишь у конкретного специалиста.

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

Читать далее

Padding Oracle Attack на Wallet.dat расшифровка пароля для популярного кошелька Bitcoin Core

Время на прочтение9 мин
Охват и читатели16K

В этой статье мы воспользуемся классификацией распространенных шаблонов атак из ресурса кибербезопасности [CAPEC™]. В первые об “Padding Oracle Attack” на Wallet.dat заговорили в далеком 2012 году (на платформе по управления уязвимостями и анализа угроз “VulDB”). Проблема самого популярного кошелька Bitcoin Core влияет на работу AES Encryption Padding в файле Wallet.dat

Технические подробности данной атаки известны:

Злоумышленник может эффективно расшифровывать данные, не зная ключа расшифровки, если целевая система сливает данные о том, произошла ли ошибка заполнения при расшифровке зашифрованного текста. Целевая система, которая передает информацию такого типа, становится заполняющим оракулом, и злоумышленник может использовать этот оракул для эффективной расшифровки данных, не зная ключа дешифрования, выдавая в среднем 128*b вызовов заполняющему оракулу (где b — это количество байт в блоке зашифрованного текста). Помимо выполнения расшифровки, злоумышленник также может создавать действительные зашифрованные тексты (т. е. выполнять шифрование) с помощью оракула заполнения, и все это без знания ключа шифрования.

Читать далее

Современные типы архитектуры данных: Погружение в различные подходы к построению хранилищ данных

Уровень сложностиСредний
Время на прочтение5 мин
Охват и читатели35K

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

Подробнее

На грани ИИ: пример поиска и обработки векторов в PostgreSQL + pgvector

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

На Хабре было много упоминаний pgvector в обзорах Postgresso. И каждый раз новость была про место которое где-то за границей и далеко. Многие коммерческие решения для хранения и поиска векторов в базе данных нынче не доступны, а pgvector доступен любому, тем более в самой популярной базе в России. Применим pgvector для задачи поиска похожих домов по инфраструктуре для детей в Москве.

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

Читать далее

Apache Spark… Это база

Уровень сложностиСредний
Время на прочтение6 мин
Охват и читатели19K

Apache Spark — это фреймворк для обработки и анализа данных, который позволяет выполнять операции на вычислительных кластерах и поддерживает несколько языков программирования: Scala, Java, Python, R и SQL.

В статье рассмотрим основные понятия для понимания обработки данных на Spark, разберем функционал его компонентов и сформируем DataFrame разными способами.

Читать далее

Внутренние данные: топливо успеха в банковской индустрии, или Тайны загрузки данных, формирующих будущее инноваций

Уровень сложностиПростой
Время на прочтение11 мин
Охват и читатели4.9K

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

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

Читать далее

Оптимизация запроса и запрос оптимизации

Уровень сложностиСредний
Время на прочтение3 мин
Охват и читатели7.8K

Как не грабить память, не пытать диск, не мучать кластер. Или делать все это всего одним запросом на Impala к Hadoop.

Среди задач аналитиков данных, в рамках которых необходимо иметь дело с большими объемами однотипных данных, выделяются задачи построения витрин данных, автоматизации процессов сбора и обработки данных. Многие аналитики используют различные реляционные базы данных, в таблицах которых хранятся огромные объемы информации, агрегация и доступ к которым может занимать долгое время, поэтому правильное составление и оптимизация запросов к этим таблицам становится критически необходимым фактором для работы аналитиков, инженеров данных и data scientist.

Читать далее

ChatGPT как объект манипуляций. ИИ на сегодня совсем не уверен в себе. На примере гипотезы о том, что Луна — полая

Время на прочтение3 мин
Охват и читатели1.7K

Полая Луна. ChatGPT не уверен в себе. Это короткая статья, в которой сначала я приведу мнение ChatGPT по поводу того, что луна это полая сфера. Он уверен что Луна НЕ полая.
И после нескольких словесных манипуляций его мнение меняется. Он уже не уверен и считает что Луна вполне может быть и полой. Манипуляции это просто наводящие вопросы и подсовывание доказательств на основе собственных ответов ChatGPT.

Вот с чего ИИ начал: "Гипотеза о пустоте внутренней части Луны противоречит данным, полученным от различных космических миссий "

А вот к чему пришел: "В настоящее время отсутствуют непреложные доказательства, подтверждающие или опровергающие полую структуру Луны."

Читать далее

Как использовать Spring в качестве фреймворка для Flink-приложений

Время на прочтение9 мин
Охват и читатели8.6K

Всем привет, меня зовут Александр Бобряков. Я техлид в команде МТС Аналитики, занимаюсь Real-Time обработкой данных. Недавно мы начали использовать фреймворк Apache Flink, и я решил поделиться на Хабре своим опытом внедрения этой технологии в наши продукты в цикле статей. В предыдущей части я рассказывал про основные концепции потоковой обработки данных. А ещё затронул архитектуру и главные механизмы Apache Flink.

В этой статье начнем разработку Flink-приложения с использованием фреймворка Spring. Изучим структуру приложения, основные плагины и полезные настройки. Развернем Flink-кластер в Docker и попробуем запустить первое Flink-задание. Структура приложения будет постепенно развиваться в последующих статьях.

Читать далее

Airflow в Kubernetes. Часть 2

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

Приветствую!

В прошлой части мы развернули основные сервисы Airflow в k8s. В этот раз разберемся, как можно синхронизировать код DAD'ов с удаленным репозиторием, поймем, как перманентно сохранять логи, а также настроим HTTPS-соединение для UI!

Читать далее

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

Как автоматизировать проверки данных в Airflow с Great Expectations

Время на прочтение7 мин
Охват и читатели5.8K

Привет, меня зовут Дима Курганский, и я - MLOps инженер в команде машинного обучения в Банки.ру. Эта статья будет интересна, тем кто понимает принципы работы с Great Expectations и его составляющие компоненты и хочет вывести его на прод с использованием Apache Airflow.

Читать далее

Парк юрского периода глазами нейросети: как развернуть Diffusers для генерации изображений за 10 минут

Время на прочтение5 мин
Охват и читатели8.4K

Как часто бывает: появляется немного свободного времени, хочется отдохнуть и написать картину… но его то ли недостаточно, то ли просто лень размахивать кистью. Но можно делегировать задачу нейросети — для этого необязательно использовать Midjourney или DALL-E.

Один из вариантов — развернуть собственного помощника на готовом сервере с помощью библиотеки Diffusers и моделей Hugging Face. Мы попробовали и сгенерировали целый «Парк юрского периода» с разными тирексами. Что из этого получилось и как повторить наши творения, рассказываем под катом.
Читать дальше →

Как найти приватный ключ в бинарном коде от Bitcoin Lightning Wallet уязвимость в Quasar Framework

Время на прочтение7 мин
Охват и читатели8.8K

В этой статье мы заострим внимание на приложение для смартфонов iOS и Android популярный Биткоин Кошелек с поддержкой быстрых платежей через (Lightning network) BLW: Bitcoin Lightning Wallet. К большому сожалению многие автономные ноды мобильных приложении с открытым исходным кодом от LNbits Node Manager и Core Lightning подвергает ВЫСОКЕМУ РИСКУ потери всех денежных средств в различных криптовалютных монетах.

Разработчик David Shares из японской компании Bitcoin Portal опубликовал множество документов.

Разберем теоретическую основу: LNbits – это бесплатная система учетных записей для многих мобильных приложений, которые работают с различными криптовалютными кошельками. Изначально широкую популярность LNbits Node Manager получила с развитием Bitcoin Lightning Wallet (BLW) т.к. развитие некастодиальных и автономных нодов для Bitcoin SPV, предназначенный для Android и iPhone с функциональностью Node.js. Благодаря автономным нодам вы имеете полный контроль над своим средством и вам необходимо самостоятельно управлять своими платежными средствами (в отличие от других мобильных приложении с криптовалютными кошельками).

Читать далее

Введение в Apache Flink: осваиваем фреймворк на реальных примерах

Время на прочтение10 мин
Охват и читатели27K

Всем привет, меня зовут Александр Бобряков. Я техлид в команде МТС Аналитики, занимаюсь Real-Time обработкой данных. Недавно мы начали использовать фреймворк Apache Flink. Эту технологию выбрали, так как она (в отличие от Apache Spark) относится к true-стримингу и позволяет строить обработку данных с минимальной задержкой. В качестве DI-фреймворка выбрали привычный нам Spring Framework.

Наша команда использует разные виды тестирования: Unit, интеграционное, E2E, ручное, автоматизационное, нагрузочное. Этой теме будет уделено особое внимание. Я расскажу, какие подходы и паттерны помогут быть уверенными в качестве того, что вы разработали.

Эти знания будут полезны любому Java-разработчику, знакомому со Spring. А начинающие Flink-специалисты найдут здесь примеры стандартных ошибок и пути их решения. Обратите внимание, что эти материалы писались, когда актуальной версией Flink была 1.17. В конце октября вышла версия 1.18, и она может отличаться некоторыми нюансами.

Читать далее

Data Mesh – ячеистые топологии для работы с данными

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

Из каких соображений можно хранить данные в виде ячеистой сети


image

Во всех организациях, где мне доводилось работать, всегда понимали важность данных. Поэтому я видел, что руководство либо заинтересовано, либо прямо планирует создать платформу нового поколения для обращения с этими данными. Как правило, ставится цель перейти от сильно связанных интерфейсов и вариабельных потоков данных к целостной архитектуре, которая позволяла бы аккуратно связать всю экосистему. Речь идёт о распределённой облачной ячеистой топологии (data mesh), где данные можно группировать в зависимости от их предметной области, трактовать “данные как продукт,” организуя в каждой предметной области конвейерную обработку собственных данных. Такой подход отличается от перекачки данных (data plumbing), практикуемой на традиционных (монолитных) платформах, которые, как правило, отличаются сильной связанностью данных. Из-за этого зачастую замедляется поглощение, хранение, преобразование и потребление данных из централизованного озера или хаба.

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

YOLO-NAS Pose: прорыв в технологии оценки позы

Уровень сложностиПростой
Время на прочтение7 мин
Охват и читатели4.8K

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

Оценка позы играет решающую роль в компьютерном зрении, охватывая широкий спектр важных задач таких как:

мониторинг движений пациентов в медицинских учреждениях,

анализ результатов спортсменов в спорте,

создание бесшовных интерфейсов человек-компьютер и совершенствование роботизированных систем.

Читать далее

Подбираем параметры сессии в Apache Spark, чтобы не стоять в очереди

Уровень сложностиСредний
Время на прочтение14 мин
Охват и читатели31K

Бывало у вас так, что некоторые аналитики запрашивают побольше вычислительных ядер и оперативной памяти для своих Jupyter-ноутбуков, а у вас в это время ничего не работает? У меня бывало, ведь недостаточно уметь разрабатывать код на Spark — еще нужно уметь его настраивать, правильно инициализировать сеансы работы и эффективно управлять доступом к вычислительным ресурсам. Если отдать настройку на волю случая, Spark может (и будет) потреблять ресурсы всего кластера, а другие приложения будут стоять в очереди.

Меня зовут Владислав, я работаю Дата инженером в Альфа-Банке, и в этой статье мы поговорим о том, как правильно подобрать необходимое количество параметров и не положить кластер на коленочки.

Читать далее