Рубрика «data engineering»

В этой статье — про STAGING-слой нашего DWH и о том, как мы работаем с EAV-паттерном. Сразу оговорюсь: EAV в реляционной базе — устоявшийся антипаттерн, который в большинстве задач стоит обходить стороной. Здесь я рассказываю не о том, хорош EAV в целом или плох, а о конкретном случае, когда он оказался оправдан: почему он к нам пришёл, как мы с ним живём, что он даёт и где реально мешает.

TL;DR. На STG мы храним данные в EAV-партициях по (сущность, источник, период), при загрузке раскладываем значения по типам и разделяем их на OK и FAIL, а JDBC-драйвер разворачивает это в обычные таблицы для чтения.

С чем мы имеем дело

Читать полностью »

Введение

Обычно стек для RAG‑систем и AI‑агентов строится вокруг облачных API (OpenAI, Anthropic) и управляемых векторных баз. Но для ряда задач критически важна полная автономность: устойчивость к санкциям и независимость от внешних провайдеров.

В этой статье я расскажу, какие архитектурные решения и инженерные компромиссы позволили мне построить такую систему полностью на локальных моделях. Мы пройдем путь от сбора RSS‑лент до умного агента, который сам вызывает инструменты, и разберём грабли, на которые я наступил.

Стек: Python 3.12, FastAPI, PostgreSQL + pgvector, Celery, LangGraph, Ollama (Qwen 2.5 14B, BGE‑M3), Streamlit, Langfuse, Docker.

Читать полностью »

В прошлый раз я рассказывал, как в одиночку с AI-агентами собрал ERP-платформу на Kubernetes из 30+ сервисов. Эта статья — про её мозг: не «ещё один агентский фреймворк», а продакшн-движок, который год несёт живых клиентов (рекрутинг с AI-интервью, CRM, парсинг-конвейеры, копилот).

Читать полностью »

В понедельник утром пайплайн упал. В чате уже есть три версии причины: «сеть», «база опять задумалась» и «давайте просто перезапустим». Ассистент мог бы за минуту собрать список упавших задач, показать зависимые пайплайны и выдать первую гипотезу. Но для этого ему часто отдают доступ к логам, метаданным и иногда — не будем показывать пальцем — к произвольному SQL.

Так делать не стоит. Достаточно, что модель прочитает токен в логе, получит инструкцию из текста ошибки или отправит в базу слишком дорогой запрос. У инженера тут должен сработать простой вопрос: «Можно. А зачем?»

Читать полностью »

Регулярно возникает ситуация, когда необходимо найти местоположение достоверного и актуального адреса или группы адресов, чтобы использовать их в GIS‑процессах. Такие адреса можно получить только из ГАР/ФИАС, но там только текстовые записи, при этом полный адрес разнесен в разные XML‑таблицы. Пространственное положение можно определить в НСПД, но часть данных при наличии пространственного объекта может иметь неактуальный, неполный текст адреса, или вообще не иметь его. Эти две сущности имеют общую связку — кадастровый номер.

Читать полностью »

Мотивация и цели

Всем привет! Я инженер данных в Альфа-банке и еще на моменте обучения профессии хотел сделать пет-проект с обработкой данных и интересной инфраструктурой. Пришел к выводу, что это должна быть компьютерная игра, и для меня лучше всего подошла Dota 2, но с получением сырых данных было много трудностей, в которые не было времени вникнуть, и я откладывал этот проект долгое время.

Читать полностью »

История о том, как мы боролись с «цифровой слепотой», разрозненными данными и недоверием к ML, чтобы построить систему предиктивной аналитики для реального нефтеперерабатывающего завода. Часть 1 из 2.

Читать полностью »

Метрики как код: бизнес‑логика в dbt вместо настроек BI

В начале немного контекста. Я — аналитик данных в команде BIGDATAHOUSE, и на всех проектах трансформацию данных реализую через dbt — де‑факто стандарт, в качестве BI в основном использую Superset. Бизнес‑логика в таком стеке оказывается разбита по двум местам: одна её часть оседает в dbt, другая описывается в BI. Со временем эти две части неизбежно расходятся, и отследить такие расхождения становится всё сложнее. Из профессионального интереса изучая альтернативные BI‑платформы, я наткнулся на Lightdash. Он обещает закрыть эту и ряд других проблем.

Читать полностью »

16 500 отзывов в одном рабочем контуре, 9 500 записей в собственном хранилище, четыре XML‑фида, 4 000 строк кода и 130+ страниц документации. Все это работает за 8 500 в месяц.


Вместо введения: что здесь вообще произошло

Задача была очень простая: сделать так, чтобы отзывы гостей ресторанной сети перестали жить в десятке вкладок, кабинетов, выгрузок и ручных таблиц. На первый взгляд — обычная автоматизация. Забрать данные, сложить в одно место, показать человеку. Но мы не ищем легких путей)

Читать полностью »

Привет, сообщество! Где-то два месяца назад мне пришла в голову идея, очень простая по своей сути, но ой как обширная, если начать в ней копаться более подробно.

В мире порядка 200 территорий выдаёт паспорта. И порядка 250 направлений, куда по одному из этих паспортов можно поехать. А что если, создать базу таких связей (паспорт-направление), но не просто, а ссылаясь на официальные источники.

Так родился проект EntryConditions.comЧитать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js