{
    "version": "https:\/\/jsonfeed.org\/version\/1.1",
    "title": "Yuriy Gavrilov: posts tagged Platform",
    "_rss_description": "Welcome to my personal place for love, peace and happiness 🤖 Yuiry Gavrilov",
    "_rss_language": "en",
    "_itunes_email": "yvgavrilov@gmail.com",
    "_itunes_categories_xml": "",
    "_itunes_image": "https:\/\/gavrilov.info\/pictures\/userpic\/userpic-square@2x.jpg?1643451008",
    "_itunes_explicit": "no",
    "home_page_url": "https:\/\/gavrilov.info\/tags\/platform\/",
    "feed_url": "https:\/\/gavrilov.info\/tags\/platform\/json\/",
    "icon": "https:\/\/gavrilov.info\/pictures\/userpic\/userpic@2x.jpg?1643451008",
    "authors": [
        {
            "name": "Yuriy Gavrilov - B[u]g - for charity.gavrilov.eth",
            "url": "https:\/\/gavrilov.info\/",
            "avatar": "https:\/\/gavrilov.info\/pictures\/userpic\/userpic@2x.jpg?1643451008"
        }
    ],
    "items": [
        {
            "id": "319",
            "url": "https:\/\/gavrilov.info\/all\/r2-sql-glubokoe-pogruzhenie-v-nash-novy-dvizhok-dlya-raspredelen\/",
            "title": "R2 SQL: Глубокое погружение в наш новый движок для распределенных запросов",
            "content_html": "<h4>Введение<\/h4>\n<p>В современном мире объемы данных растут экспоненциально, и хранение петабайтов информации в объектных хранилищах (как Amazon S3 или Cloudflare R2) стало стандартом. Однако просто хранить данные мало — их нужно анализировать. Традиционно для этого требовалось поднимать сложные кластеры (например, Spark или Trino), что долго и дорого.<\/p>\n<p>Компания Cloudflare представила <b>R2 SQL<\/b> — бессерверный (serverless) движок, который позволяет выполнять SQL-запросы прямо к данным, лежащим в объектном хранилище R2, без необходимости управлять инфраструктурой. Эта статья подробно описывает архитектуру этого решения: как они добились высокой скорости, используя формат таблиц Apache Iceberg, умное планирование запросов и свою глобальную сеть.<\/p>\n<p><a href=\"https:\/\/blog.cloudflare.com\/r2-sql-deep-dive\/\">Ссылка на оригинал статьи<\/a> А ранее я уже писал про их анонс тут <a href=\"https:\/\/gavrilov.info\/all\/cloudflare-anonsiruet-platformu-dannyh\/\">https:\/\/gavrilov.info\/all\/cloudflare-anonsiruet-platformu-dannyh\/<\/a><\/p>\n<div class=\"e2-text-picture\">\n<img src=\"https:\/\/gavrilov.info\/pictures\/Snimok-ekrana-2026-02-18-v-21.51.06.png\" width=\"1582\" height=\"540\" alt=\"\" \/>\n<\/div>\n<hr \/>\n<h4>R2 SQL: Глубокое погружение в наш новый движок для распределенных запросов<\/h4>\n<p><b>Авторы:<\/b> Yevgen Safronov, Nikita Lapkov, Jérôme Schneider. ( Привет Никита и Евген :)<\/p>\n<p>Как выполнить SQL-запросы над петабайтами данных… без сервера?<br \/>\nУ нас есть ответ: <b>R2 SQL<\/b>, бессерверный движок запросов, который может просеивать огромные наборы данных и возвращать результаты за секунды.<\/p>\n<p>В этом посте подробно описывается архитектура и методы, которые делают это возможным. Мы пройдемся по нашему <b>Планировщику запросов<\/b> (Query Planner), который использует `R2 Data Catalog` для отсечения терабайтов данных еще до чтения первого байта, и объясним, как мы распределяем работу по глобальной сети Cloudflare, используя `Workers` и `R2` для массивного параллельного выполнения.<\/p>\n<h5>От каталога к запросу<\/h5>\n<p>Во время Developer Week 2025 мы запустили `R2 Data Catalog` — управляемый каталог `Apache Iceberg`, встроенный непосредственно в ваш бакет Cloudflare R2. Iceberg — это открытый формат таблиц, который предоставляет критически важные функции баз данных (такие как транзакции и эволюция схемы) для объектного хранилища петабайтного масштаба. Он дает вам надежный каталог ваших данных, но сам по себе не предоставляет способа их запрашивать.<\/p>\n<p>До сих пор чтение вашего каталога `R2 Data Catalog` требовало настройки отдельного сервиса, такого как `Apache Spark` или Trino. Эксплуатация этих движков в большом масштабе непроста: вам нужно создавать кластеры, управлять использованием ресурсов и отвечать за их доступность — ничто из этого не способствует главной цели: получению ценности из ваших данных.<\/p>\n<p>`R2 SQL` полностью устраняет этот этап. Это бессерверный движок запросов, который выполняет SQL-запросы на чтение (retrieval) к вашим таблицам Iceberg прямо там, где живут ваши данные.<\/p>\n<p><b>поясненИИе: Что такое Apache Iceberg?<\/b><\/summary><\/p>\n<p>Представьте, что у вас есть огромная куча файлов (CSV, Parquet, JSON) в облачном хранилище. Это “озеро данных”. Проблема в том, что если вы начнете менять один файл, пока кто-то другой его читает, все сломается. Трудно понять, какая версия данных актуальна.<\/p>\n<p><b>Apache Iceberg<\/b> — это слой управления поверх этих файлов. Он работает как библиотекарь: он не хранит сами книги (данные), но ведет идеальный учет (метаданные). Он точно знает: “Таблица ‘Пользователи’ сейчас состоит из вот этих 100 файлов”.<br \/>\nЭто позволяет делать с обычными файлами в облаке то, что раньше умели только дорогие базы данных:<\/p>\n<ol start=\"1\">\n<li><b>ACID-транзакции:<\/b> Гарантия того, что данные не запишутся “наполовину”.<\/li>\n<li><b>Time Travel:<\/b> Возможность сделать запрос “Как выглядела таблица вчера в 14:00?”.<\/li>\n<li><b>Ecosystem:<\/b> Единый стандарт, который понимают разные инструменты аналитики.<\/li>\n<\/ol>\n<h5>Проектирование движка запросов для петабайтов<\/h5>\n<p>Объектное хранилище фундаментально отличается от хранилища традиционной базы данных. База данных структурирована по своей природе; `R2 `— это океан объектов, где одна логическая таблица может состоять из миллионов отдельных файлов, больших и маленьких, и новые поступают каждую секунду.<\/p>\n<p>Apache Iceberg предоставляет мощный слой логической организации поверх этой реальности. Он работает, управляя состоянием таблицы как неизменяемой серией мгновенных снимков (snapshots), создавая надежное, структурированное представление таблицы путем манипулирования “легкими” файлами метаданных вместо перезаписи самих файлов данных.<\/p>\n<p>Однако эта логическая структура не меняет физической проблемы, лежащей в основе: эффективный движок запросов всё равно должен найти конкретные данные, необходимые ему, в этой огромной коллекции файлов. Это требует преодоления двух основных технических барьеров:<\/p>\n<ol start=\"1\">\n<li><b>Проблема ввода-вывода (I\/O problem):<\/b> Главная проблема эффективности запросов — минимизация объема данных, считываемых из хранилища. Подход “в лоб” с чтением каждого объекта просто нежизнеспособен. Основная цель — читать только те данные, которые абсолютно необходимы.<\/li>\n<li><b>Проблема вычислений (Compute problem):<\/b> Объем данных, которые *действительно* нужно прочитать, все равно может быть огромным. Нам нужен способ выделить запросу, который может быть массивным, необходимое количество вычислительной мощности всего на несколько секунд, а затем мгновенно снизить его до нуля, чтобы избежать лишних трат.<\/li>\n<\/ol>\n<p>Наша архитектура для `R2 SQL` разработана для решения этих двух проблем с помощью двухэтапного подхода: <b>Планировщик запросов<\/b> (Query Planner), который использует метаданные для интеллектуального отсечения (pruning) пространства поиска, и система <b>Выполнения запросов<\/b> (Query Execution), которая распределяет работу по глобальной сети Cloudflare для параллельной обработки данных.<\/p>\n<h5>Планировщик запросов (Query Planner)<\/h5>\n<p>Самый эффективный способ обработки данных — не читать их вовсе. Это ключевая стратегия планировщика `R2 SQL`. Вместо исчерпывающего сканирования каждого файла планировщик использует структуру метаданных, предоставляемую каталогом `R2 Data Catalog`, чтобы “подрезать” пространство поиска, то есть избежать чтения огромных массивов данных, не относящихся к запросу.<\/p>\n<p>Это расследование “сверху вниз”, где планировщик перемещается по иерархии слоев метаданных Iceberg, используя статистику (<b>stats<\/b>) на каждом уровне для построения быстрого плана, точно указывающего, какие диапазоны байтов должен прочитать движок.<\/p>\n<h6>Что мы подразумеваем под “статистикой”?<\/h6>\n<p>Когда мы говорим, что планировщик использует “статы”, мы имеем в виду сводные метаданные, которые Iceberg хранит о содержимом файлов данных. Эта статистика создает грубую карту данных, позволяя планировщику принимать решения о том, какие файлы читать, а какие игнорировать, даже не открывая их.<\/p>\n<p>Есть два основных уровня статистики, которые планировщик использует для отсечения (pruning):<\/p>\n<ol start=\"1\">\n<li><b>Статистика уровня раздела (Partition-level stats):<\/b> Хранится в списке манифестов (manifest list) Iceberg. Эти статы описывают диапазон значений разделов для всех данных в определенном файле манифеста Iceberg. Для раздела по `day(event_timestamp)` это будут самый ранний и самый поздний дни, присутствующие в файлах, отслеживаемых этим манифестом.<\/li>\n<li><b>Статистика уровня столбца (Column-level stats):<\/b> Хранится в файлах манифестов. Это более детальная статистика о каждом отдельном файле данных. Файлы данных в `R2 Data Catalog` отформатированы с использованием `Apache Parquet`. Для каждого столбца файла Parquet манифест хранит ключевую информацию, такую как:\n<ul>\n  <li>Минимальное и максимальное значения. Если запрос запрашивает `http_status = 500`, а статистика файла показывает, что в столбце `http_status` минимум 200 и максимум 404, этот файл можно пропустить целиком.<\/li>\n  <li>Количество null-значений. Это позволяет планировщику пропускать файлы, когда запрос ищет конкретно non-null значения (например, `WHERE error_code IS NOT NULL`), а метаданные файла сообщают, что все значения для `error_code` являются null.<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n<h6>Отсечение пространства поиска (Pruning)<\/h6>\n<p>Процесс отсечения — это расследование “сверху вниз”, которое происходит в три основных этапа:<\/p>\n<ol start=\"1\">\n<li><b>Метаданные таблицы и текущий снимок (snapshot):<\/b>  <br \/>\nПланировщик начинает с запроса к каталогу о местоположении текущих метаданных таблицы. Это JSON-файл, содержащий текущую схему таблицы, спецификации разделов и журнал всех исторических снимков. Затем планировщик выбирает последний снимок для работы.<\/li>\n<\/ol>\n<ol start=\"2\">\n<li><b>Список манифестов и отсечение разделов:<\/b>  <br \/>\nТекущий снимок указывает на единый *список манифестов* (manifest list) Iceberg. Планировщик читает этот файл и использует статистику уровня разделов для каждой записи, чтобы выполнить первый, самый мощный шаг отсечения, отбрасывая любые манифесты, чьи диапазоны значений разделов не удовлетворяют запросу. Например, для таблицы, партиционированной по дням, планировщик может отбросить манифесты за ненужные даты.<\/li>\n<\/ol>\n<ol start=\"3\">\n<li><b>Манифесты и отсечение на уровне файлов:<\/b>  <br \/>\nДля оставшихся манифестов планировщик читает каждый из них, чтобы получить список фактических файлов данных Parquet. Эти файлы манифестов содержат более детальную статистику уровня столбцов. Это позволяет выполнить второй шаг отсечения, отбрасывая целые файлы данных, которые не могут содержать строки, соответствующие фильтрам запроса.<\/li>\n<\/ol>\n<ol start=\"4\">\n<li><b>Отсечение групп строк (Row-group pruning) внутри файла:<\/b>  <br \/>\nНаконец, для конкретных файлов данных, которые всё еще являются кандидатами, Планировщик использует статистику, хранящуюся внутри *футеров* (footers) файлов Parquet, чтобы пропускать целые группы строк (row groups).<\/li>\n<\/ol>\n<p>Результатом этого многослойного отсечения является точный список файлов Parquet и групп строк внутри этих файлов. Они становятся рабочими единицами (work units), которые отправляются в систему Выполнения запросов.<\/p>\n<p><b>поясненИИе: Формат Parquet и Row Groups<\/b><\/p>\n<p><b>Apache Parquet<\/b> — это колоночный формат хранения данных. В отличие от CSV, где данные хранятся строка за строкой, в Parquet данные хранятся столбец за столбцом. Это идеально для аналитики (когда вам нужно посчитать среднее по одной колонке, не читая остальные 50).<\/p>\n<p>Внутри себя файл Parquet делится на <b>Row Groups<\/b> (группы строк). Представьте файл на 1 миллион строк. Он может быть разбит на 10 групп по 100,000 строк. У каждой группы есть свой мини-заголовок со статистикой (min\/max значения).<\/p>\n<p><b>Пример:<\/b> Вы ищете `id = 950,000`.<br \/>\nДвижок читает футер файла и видит:<\/p>\n<ul>\n<li>Row Group 1: id 1-100,000 -> Пропускаем.<\/li>\n<li>...<\/li>\n<li>Row Group 10: id 900,001-1,000,000 -> <b>Читаем только эту часть файла<\/b>.<\/li>\n<\/ul>\n<p>Это называется “I\/O skipping” и экономит огромное количество времени и денег на трафике.<\/p>\n<h5>Конвейер планирования (The Planning pipeline)<\/h5>\n<p>В `R2 SQL` описанное выше многослойное отсечение не является монолитным процессом. Для таблицы с миллионами файлов метаданные могут быть слишком большими, чтобы обработать их полностью до начала реальной работы. Ожидание полного плана внесет значительную задержку (latency).<\/p>\n<p>Вместо этого `R2 SQL` рассматривает планирование и выполнение как единый конкурентный конвейер (pipeline). Работа планировщика — производить поток рабочих единиц (work units), которые исполнитель (executor) потребляет, как только они становятся доступны.<\/p>\n<h6>Начало выполнения как можно раньше<\/h6>\n<p>С этого момента запрос обрабатывается в потоковом режиме. По мере того как Планировщик читает файлы манифестов (и, следовательно, файлы данных, на которые они указывают) и отсекает их, он немедленно отправляет любые подходящие файлы данных\/группы строк как рабочие единицы в очередь выполнения.<\/p>\n<p>Такая конвейерная структура гарантирует, что вычислительные узлы могут начать дорогую работу по вводу-выводу данных практически мгновенно, задолго до того, как планировщик закончит свое полное расследование.<\/p>\n<p>На вершине этой модели конвейера планировщик добавляет критически важную оптимизацию: <b>преднамеренное упорядочивание<\/b> (deliberate ordering). Файлы манифестов не стримятся в случайной последовательности. Вместо этого планировщик обрабатывает их в порядке, соответствующем условию `ORDER BY` вашего запроса, руководствуясь статистикой метаданных. Это гарантирует, что данные, которые с наибольшей вероятностью содержат желаемые результаты, обрабатываются первыми.<\/p>\n<h6>Ранняя остановка: как закончить, не читая всё<\/h6>\n<p>Благодаря тому, что Планировщик передает рабочие единицы в порядке, соответствующем `ORDER BY`, система выполнения сначала обрабатывает данные, которые с наибольшей вероятностью попадут в итоговый набор результатов.<\/p>\n<p>Например, для запроса типа `... ORDER BY timestamp DESC LIMIT 5`: по мере того как движок выполнения обрабатывает рабочие единицы и отправляет результаты обратно, планировщик одновременно делает две вещи:<\/p>\n<ol start=\"1\">\n<li>Поддерживает ограниченную “кучу” (heap) из лучших 5 результатов, увиденных на данный момент.<\/li>\n<li>Следит за “ватерлинией” (high-water mark) самого потока. Благодаря метаданным он всегда знает абсолютно самый поздний `timestamp` любого файла данных, который *еще не был* обработан.<\/li>\n<\/ol>\n<p>В момент, когда самая старая временная метка в нашей “Топ-5 куче” оказывается новее, чем “ватерлиния” оставшегося потока (максимально возможная дата в еще не прочитанных файлах), <b>весь запрос может быть остановлен<\/b>.<\/p>\n<p>В этот момент мы можем доказать, что ни одна оставшаяся рабочая единица не может содержать результат, который попал бы в топ-5. Конвейер останавливается, и пользователю возвращается полный, корректный результат, часто после чтения лишь крошечной доли потенциально подходящих данных.<\/p>\n<hr \/>\n<h5>Выполнение запросов (Query Execution)<\/h5>\n<p>Планировщик передает работу кусочками, называемыми <b>Row Groups<\/b>. Сервер, который получает запрос пользователя, берет на себя роль <b>координатора запроса<\/b>. Он распределяет работу между <b>воркерами<\/b> (query workers) и агрегирует результаты.<\/p>\n<p>Сеть Cloudflare огромна. Координатор связывается с внутренним API Cloudflare, чтобы убедиться, что для выполнения выбираются только здоровые серверы. Соединения между координатором и воркерами проходят через `Cloudflare Argo Smart Routing` для обеспечения быстрой и надежной связи.<\/p>\n<p>Серверы, получающие задачи от координатора, становятся воркерами. Они служат точкой горизонтального масштабирования в `R2 SQL`. При большем количестве воркеров `R2 SQL` может обрабатывать запросы быстрее, распределяя работу между множеством серверов. Это особенно актуально для запросов, охватывающих большие объемы файлов.<\/p>\n<h6>Внутреннее устройство: Apache DataFusion<\/h6>\n<p>Внутри каждый воркер использует `Apache DataFusion` для выполнения SQL-запросов к группам строк. `DataFusion` — это аналитический движок запросов с открытым исходным кодом, написанный на <b>Rust<\/b>.<\/p>\n<p>Разделы (partitions) в `DataFusion` идеально ложатся на модель данных `R2 SQL`, поскольку каждая группа строк (row group) может рассматриваться как независимый раздел. Благодаря этому каждая группа строк обрабатывается параллельно.<br \/>\nПоскольку группы строк обычно содержат как минимум 1000 строк, `R2 SQL` выигрывает от <b>векторизованного выполнения<\/b>. Каждый поток DataFusion может выполнять SQL-запрос сразу на множестве строк за один проход, амортизируя накладные расходы на интерпретацию запроса.<\/p>\n<h6>Поддержка Parquet и Arrow<\/h6>\n<p>`DataFusion` имеет первоклассную поддержку Parquet. Используя ranged reads (чтение диапазонов) в R2, он способен считывать только части файлов Parquet, содержащие запрошенные столбцы, пропуская остальные.<\/p>\n<p>Оптимизатор `DataFusion` также позволяет нам “проталкивать” фильтры (push down filters) на самые низкие уровни плана запроса. Другими словами, мы можем применять фильтры прямо в момент чтения значений из файлов Parquet.<\/p>\n<p>Когда воркер заканчивает вычисления, он возвращает результаты координатору через протокол <b>gRPC<\/b>. `R2 SQL` использует `Apache Arrow` для внутреннего представления результатов. Это формат в оперативной памяти (in-memory), который эффективно представляет массивы структурированных данных. Arrow также определяет формат сериализации `Arrow IPC`, который идеально подходит для передачи данных между процессами по сети.<\/p>\n<p><b>поясненИИе: Векторизация и Apache Arrow<\/b><\/summary><br \/>\n<b>Векторизованное выполнение (Vectorized execution):<\/b> Традиционные базы данных обрабатывали одну строку за раз (Row-at-a-time). Это медленно, потому что процессор постоянно переключается. Векторизация означает обработку данных “пачками” (например, сложить сразу 1000 чисел из колонки А с 1000 чисел из колонки Б). Это использует современные возможности CPU (SIMD инструкции) и работает в разы быстрее.<\/p>\n<p><b>Apache Arrow:<\/b> Это стандарт того, как хранить эти “пачки” данных в оперативной памяти, чтобы процессору было максимально удобно их читать.<br \/>\nГлавный плюс Arrow: <b>Zero-copy<\/b>. Если один инструмент (DataFusion) передает данные другому (по сети координатору), и оба понимают Arrow, им не нужно тратить время на перекодирование (сериализацию\/десериализацию) данных. Они просто “передают указатель” или копируют сырые байты как есть.<\/p>\n<h5>Будущие планы<\/h5>\n<p>Хотя `R2 SQL` и так хорош в фильтрации, мы планируем быстро добавлять новые возможности:<\/p>\n<ul>\n<li>Поддержка сложных агрегаций (GROUP BY) в распределенном и масштабируемом виде.<\/li>\n<li>Инструменты для визуализации выполнения запросов (explain analyze), чтобы помочь разработчикам улучшать производительность.<\/li>\n<li>Поддержка многих конфигурационных опций Apache Iceberg.<\/li>\n<li>Возможность запрашивать каталоги прямо из панели управления Cloudflare (Dashboard).<\/li>\n<\/ul>\n<p>Мы также исследуем различные виды индексов, чтобы сделать запросы еще быстрее, и планируем добавить полнотекстовый поиск, геопространственные запросы и многое другое.<\/p>\n<h5>Попробуйте сейчас!<\/h5>\n<p>Это ранние дни для `R2 SQL`, но он уже доступен в открытой бете! Переходите к нашему руководству по началу работы, чтобы создать сквозной конвейер данных. Мы ждем вашей обратной связи в нашем Discord для разработчиков.<\/p>\n<p>***<\/p>\n<h4>Итог и СоображенИИя<\/h4>\n<p><b>Итог:<\/b> Cloudflare выпустила мощный инструмент, который превращает их объектное хранилище (R2) в полноценную аналитическую базу данных. Используя открытые стандарты (Iceberg, Parquet, Arrow, DataFusion) и свою глобальную сеть периферийных вычислений (Edge), они решили главную проблему Big Data — необходимость платить за простой серверов. Здесь вы платите только за время выполнения конкретного SQL-запроса.<\/p>\n<p><b>СоображенИИя:<\/b><\/p>\n<ol start=\"1\">\n<li><b>Коммодитизация аналитики:<\/b> Cloudflare делает с Big Data то же, что ранее сделала с CDN и защитой от DDoS — делает сложные энтерпрайз-технологии доступными “по кнопке”. Использование открытого стека (Rust + Arrow + DataFusion) — это сейчас золотой стандарт построения современных СУБД (по этому пути идут такие гиганты как InfluxDB 3.0, LanceDB и др.). Cloudflare не изобретает велосипед, а собирает очень быструю ракету из лучших деталей.<\/li>\n<li><b>Убийца Snowflake\/Databricks для “бедных”?<\/b> Для огромных корпораций Snowflake и Databricks останутся стандартом из-за богатого функционала. Но для стартапов и среднего бизнеса, у которых данные лежат в R2 (чтобы не платить за egress трафик AWS), появление R2 SQL делает переезд на сторонние аналитические платформы бессмысленным. Зачем гонять данные туда-сюда, если можно выполнить SQL прямо “на месте”?<\/li>\n<li><b>Синергия с ИИ:<\/b> Упоминание планов на “индексы” и “геопространственные запросы” намекает на векторный поиск в будущем. Если Cloudflare добавит возможность делать векторный поиск по данным в R2 так же нативно, это станет киллер-фичей для всех, кто строит RAG (Retrieval-Augmented Generation) приложения на базе LLM. Хранишь документы в R2 -> R2 SQL ищет контекст -> Workers AI генерируют ответ. Весь цикл внутри одной экосистемы с минимальными задержками.<\/li>\n<\/ol>\n<p>Еще можно почитать про <a href=\"https:\/\/vegafusion.io\">https:\/\/vegafusion.io<\/a> и про формат <a href=\"https:\/\/lance.org\">https:\/\/lance.org<\/a> – он как раз и добавит векторочков.<\/p>\n",
            "date_published": "2026-02-18T21:56:56+03:00",
            "date_modified": "2026-02-18T21:57:57+03:00",
            "tags": [
                "big data",
                "Data",
                "Data Engineer",
                "Platform",
                "Serverless"
            ],
            "image": "https:\/\/gavrilov.info\/pictures\/Snimok-ekrana-2026-02-18-v-21.51.06.png",
            "_date_published_rfc2822": "Wed, 18 Feb 2026 21:56:56 +0300",
            "_rss_guid_is_permalink": "false",
            "_rss_guid": "319",
            "_rss_enclosures": [],
            "_e2_data": {
                "is_favourite": false,
                "links_required": [],
                "og_images": [
                    "https:\/\/gavrilov.info\/pictures\/Snimok-ekrana-2026-02-18-v-21.51.06.png"
                ]
            }
        },
        {
            "id": "304",
            "url": "https:\/\/gavrilov.info\/all\/epoha-tolstogo-brauzera-i-revolyuciya-lokalnyh-dannyh-na-wasm\/",
            "title": "Эпоха «Толстого» браузера и революция локальных данных на WASM",
            "content_html": "<p>В истории IT-архитектуры маятник всегда качался между двумя крайностями: централизацией и децентрализацией. Сначала были мейнфреймы (центр), затем «толстые» клиенты на ПК (локальные вычисления), а потом пришла эра веб-приложений, и индустрия массово мигрировала в Облака.<\/p>\n<p>Мы привыкли считать браузер лишь «тонким окном», интерфейсом, где вся магия, сложные вычисления и хранение происходят где-то далеко — на серверах AWS или Google. Но сегодня правила игры меняются. Благодаря технологиям WebAssembly (WASM), современному «железу» и новым подходам, браузер превращается в полноценную операционную систему для анализа данных или еще чего-то <a href=\"https:\/\/blog.openreplay.com\/ru\/%D1%80%D1%83%D0%BA%D0%BE%D0%B2%D0%BE%D0%B4%D1%81%D1%82%D0%B2%D0%BE-%D0%BD%D0%BE%D0%B2%D0%B8%D1%87%D0%BA%D0%B0-%D0%BB%D0%BE%D0%BA%D0%B0%D0%BB%D1%8C%D0%BD%D0%B0%D1%8F-%D1%80%D0%B0%D0%B7%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%BA%D0%B0\">blog.openreplay.com<\/a>. Посмотрите статью о “Руководство по Разработке Local-First Приложений”.<\/p>\n<h3>Почему мы уходили в облака и почему возвращаемся?<\/h3>\n<p><b>Эра миграции в облака:<\/b><br \/>\nВ 2010-х локальные машины были «бутылочным горлышком». Чтобы обработать гигабайты данных, требовались серверные стойки. Облака давали бесконечную масштабируемость. Архитектура сводилась к простой формуле: *данные пользователя → загрузка через сеть (latency) → обработка на сервере ($$$) → результат обратно клиенту*.<\/p>\n<p><b>Проблемы сегодняшнего дня:<\/b><\/p>\n<ol start=\"1\">\n<li><b>Избыточность мощностей:<\/b> Современный ноутбук аналитика (даже базовый MacBook Air на M-чипе) обладает вычислительной мощностью, сопоставимой с сервером десятилетней давности. Эти ресурсы простаивают, пока компании платят за облачные CPU.<\/li>\n<li><b>Сетевые задержки и стоимость:<\/b> Передать CSV-файл на 2 ГБ в облако для простой фильтрации или агрегации — это долго и дорого (ingress\/egress трафик).<\/li>\n<li><b>Приватность:<\/b> Передача чувствительных отчетов или персональных данных на чужой сервер для разового анализа всегда несет риски утечки и нарушений регуляторики.<\/li>\n<\/ol>\n<p><b>Решение: Приложения Local-First<\/b><\/p>\n<p>Технология WebAssembly (WASM) позволила запускать нативный код (C++, Rust, Go) прямо в песочнице браузера со скоростью, близкой к нативной <a href=\"https:\/\/habr.com\/ru\/articles\/892052\">habr.com<\/a>. Это породило новый класс ПО, которое выглядит как веб-сайт, но работает как десктопное приложение. Вы заходите на страницу, она загружает легковесный движок, и далее вы можете отключить интернет — приложение продолжит «перемалывать» ваши данные локально.<\/p>\n<h3>Новые герои: Сервер внутри вкладки<\/h3>\n<p>Уже сейчас существуют продукты, которые меняют представление о работе с данными. Они объединяют UX веб-приложений с мощностью десктопного софта, создавая ощущение, что сервер находится прямо у вас в RAM.<\/p>\n<h4>1. DataKit — Швейцарский нож аналитика<\/h4>\n<p>Проект <b>DataKit.page<\/b> — яркий пример такой архитектуры. Это не просто “просмотрщик файлов”, это полноценная ETL\/Analytics платформа, живущая в вашем браузере.<\/p>\n<ul>\n<li><b>Как это работает:<\/b> Вы перетаскиваете массивные файлы (CSV, JSON, Excel, Parquet) в окно. Они <b>не загружаются<\/b> на внешний сервер. Браузер получает доступ к файлу через `File System Access API`, а движок (основанный на DuckDB WASM) монтирует их виртуально.<\/li>\n<li><b>Функционал:<\/b>\n<ul>\n  <li><b>SQL и Python в одном окне:<\/b> Внутри работает не только SQL-движок, но и Python (через Pyodide). Вы можете использовать `pandas`, `polars`,  `numpy` и строить графики `matplotlib`, обращаясь к данным прямо с вашего диска.<\/li>\n  <li><b>AI на борту:<\/b> Интеграция с локальными LLM (через Ollama) или облачными провайдерами позволяет писать запросы на естественном языке, при этом сама схема и данные остаются у вас.<\/li>\n  <li><b>Умные форматы и коннекторы:<\/b> Платформа «нативно» понимает Parquet и вложенные JSON, автоматически определяя типы данных и аномалии. Кроме того, она может подключаться к S3, Google Sheets и базам данных PostgreSQL, выполняя федеративные запросы.<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<h4>2. DuckDB Local UI — SQL без инсталляции<\/h4>\n<p>Команда DuckDB в сотрудничестве с MotherDuck выпустила официальный локальный UI, работающий через расширение. Это прямой ответ на боль пользователей консольных утилит и отличный пример гибридного подхода <a href=\"https:\/\/habr.com\/ru\/companies\/cinimex\/articles\/913878\">habr.com<\/a>.<\/p>\n<ul>\n<li><b>Сценарий:<\/b> Раньше, чтобы поработать с локальной базой данных, нужно было либо мучиться в CLI, либо ставить тяжелый DBeaver. Теперь одной командой `duckdb -ui` или SQL-вызовом `CALL start_ui();` запускается локальный веб-сервер и открывается современный Notebook-интерфейс.<\/li>\n<li><b>Гибридность:<\/b> Вы работаете локально, но интерфейс имеет встроенную бесшовную интеграцию с облачным сервисом MotherDuck. Если для разового анализа локальных ресурсов достаточно, вы делаете это приватно. Как только требуется коллаборация или более мощные вычисления, вы можете переключить контекст выполнения в облако в том же окне.<\/li>\n<\/ul>\n<h4>3. Marimo – тетрадки, почти тот же подход имеет<\/h4>\n<p><a href=\"https:\/\/gavrilov.info\/all\/tetradki-nashe-vsyo-marimo-io-i-utochkadb\/\">https:\/\/gavrilov.info\/all\/tetradki-nashe-vsyo-marimo-io-i-utochkadb\/<\/a><\/p>\n<h4>3. PGlite и PondPilot — Postgres и SQL-песочницы<\/h4>\n<ul>\n<li><b>PGlite:<\/b> Этот проект идет еще дальше и компилирует полноценный PostgreSQL в WASM, позволяя запускать его в браузере или Node.js без эмуляции ОС <a href=\"https:\/\/habr.com\/ru\/articles\/873112\">habr.com<\/a>. Это идеально для тестирования, прототипирования и создания приложений, которые требуют совместимости с Postgres.<\/li>\n<li><b>PondPilot:<\/b> Пример open-source SQL-редактора, построенного вокруг DuckDB-WASM <a href=\"https:\/\/habr.com\/ru\/articles\/913682\">habr.com<\/a>. Он позволяет быстро анализировать локальные файлы (CSV, Parquet, JSON), сохраняет историю, поддерживает вкладки и даже предлагает виджет для встраивания интерактивных SQL-примеров в блоги и документацию.<\/li>\n<\/ul>\n<h3>Сдвиг парадигмы: От DBeaver к Браузеру<\/h3>\n<p>Многие аналитики и инженеры привыкли к классическим клиентам баз данных (DBeaver, DataGrip). Это мощные, но «тяжелые» инструменты, требующие установки, настройки драйверов и обновлений. Новый WASM-тренд предлагает более гибкую альтернативу.<\/p>\n<p><b>Сценарий «Мгновенной аналитики»:<\/b><br \/>\nПредставьте, что вам прислали ссылку на лог-файл в S3 размером 5 ГБ или Parquet-дамп.<\/p>\n<ul>\n<li><b>Старый путь:<\/b> Скачать файл → Установить\/открыть DBeaver → Настроить драйвер → Импортировать → Ждать загрузки → Писать SQL.<\/li>\n<li><b>Новый путь (WASM):<\/b> Открыть ссылку веб-приложения → Перетащить файл (или указать S3 URL) → Мгновенно писать SQL.<\/li>\n<\/ul>\n<p>Еще вариант, лог 30ГБ и вы заказали функционал в другой команде, она с радостью сказала, что через два спринта сделает пайплайн за неделю, но ей надо требования. Вы их конечно написали на основе небольшого семпла строк из excel или на основе документации и отдали в разработку. А через месяц получили отличный пайплайн или, который не нужен или его нужно еще доработать.<\/p>\n<p><b>Технологическая магия за кулисами:<\/b><\/p>\n<ol start=\"1\">\n<li><b>Apache Arrow:<\/b> Это скрытый герой революции. Бинарный колоночный формат Arrow позволяет передавать данные из SQL-движка (DuckDB) в JavaScript-интерфейс или Python-ячейку <b>без копирования и сериализации памяти<\/b> (Zero-copy). Это обеспечивает мгновенную реакцию интерфейса на миллионах строк — то, чего раньше было невозможно добиться при работе с DOM. (все помним D3JS)<\/li>\n<li><b>Федеративные запросы:<\/b> Локальное приложение умеет «ходить» в интернет. Вы можете написать `SELECT * FROM ‘s3:\/\/my-bucket\/file.parquet’` прямо из браузера. Движок скачает только нужные байты (range requests), обработает их локально и покажет результат. Данные не оседают на промежуточных серверах разработчика софта.<\/li>\n<\/ol>\n<h3>Органическое масштабирование и новая экономика<\/h3>\n<p>Для архитекторов платформ данных этот тренд открывает удивительную экономическую модель <b>«Bring Your Own Compute» или «Client-side computing» (Принеси Свои Вычисления)<\/b>.<\/p>\n<ul>\n<li><b>Масштабирование без усилий:<\/b> Вам не нужно создавать сложный кластер, чтобы тысячи пользователей могли фильтровать свои Excel-файлы. Вы просто хостите статические JS\/WASM файлы на CDN.<\/li>\n<li><b>Органическая нагрузка:<\/b> Вычислительная мощность вашего “облака” растет линейно с количеством пользователей, потому что каждый новый пользователь приносит свой CPU и RAM. Пользователи выключают компьютеры — ваше “облако” естественным образом уменьшается.<\/li>\n<li>Коллаборация и Воспроизводимость:**\n<ul>\n  <li>*Разовая задача:* Сделал анализ локально, закрыл вкладку — данные исчезли из памяти (полная приватность).<\/li>\n  <li>*Командная работа:* Написал SQL\/Python код локально, сохранил его (текст скрипта весит килобайты) и отправил коллеге. Коллега открыл ту же ссылку, подгрузился код, и магия вычислений произошла уже на его машине над теми же данными (если они в общем S3) или над его локальной копией.<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<h3>Итого<\/h3>\n<p>Мы движемся к миру, где браузер — это не тонкий клиент, а <b>универсальная песочница для гибридных вычислений<\/b>.<\/p>\n<p><b>Разработчикам и Архитекторам:<\/b><\/p>\n<ol start=\"1\">\n<li><b>Присмотритесь к Serverless 2.0:<\/b> Истинный `serverless` — это не AWS Lambda, за которую вы платите. Это когда сервера нет вообще, а код исполняется на клиенте (`client-side computing`). Это дешевле, быстрее для пользователя и безопаснее, удобно разрабатывать и обновлять код.<\/li>\n<li><b>Privacy-first как преимущество:<\/b> Позиционируйте такие решения как безопасные по умолчанию. Аргумент “Ваши данные никогда не покидают ваш компьютер” становится решающим для Enterprise-сектора.<\/li>\n<li><b>Гибридная архитектура:<\/b> Не отказывайтесь от сервера полностью. Пусть браузер берет на себя интерактивную работу, парсинг и предобработку, а сервер подключается для тяжелых “батчей” или работы с петабайтами данных в том же привычном окне.<\/li>\n<\/ol>\n<p><b>Пользователям и Аналитикам:<\/b><\/p>\n<ol start=\"1\">\n<li><b>Осваивайте инструменты:<\/b> Попробуйте <a href=\"https:\/\/datakit.page,\">https:\/\/datakit.page,<\/a> <a href=\"https:\/\/app.pondpilot.io\">https:\/\/app.pondpilot.io<\/a> или <a href=\"https:\/\/shell.duckdb.org\">DuckDB WASM Shell<\/a> для разведочного анализа данных. Это часто быстрее, чем запускать локальный Jupyter.<\/li>\n<li><b>Используйте облачные хранилища напрямую:<\/b> Учитесь подключать S3, Google Sheets и другие облачные источники напрямую к таким инструментам. Это дает мощь облачного хранения в сочетании со скоростью и приватностью локального интерфейса.<\/li>\n<\/ol>\n<p>Ренессанс локальных вычислений начался. Ваш браузер способен на большее, чем просто отображать HTML. Он становится вашей персональной дата-лабораторией.<\/p>\n",
            "date_published": "2025-12-13T01:20:55+03:00",
            "date_modified": "2025-12-13T01:20:35+03:00",
            "tags": [
                "Architecture",
                "Data",
                "Dev",
                "Platform"
            ],
            "_date_published_rfc2822": "Sat, 13 Dec 2025 01:20:55 +0300",
            "_rss_guid_is_permalink": "false",
            "_rss_guid": "304",
            "_rss_enclosures": [],
            "_e2_data": {
                "is_favourite": false,
                "links_required": [],
                "og_images": []
            }
        },
        {
            "id": "293",
            "url": "https:\/\/gavrilov.info\/all\/novye-arhitektury-sovremennoy-infrastruktury-dannyh-a16z\/",
            "title": "Новые архитектуры современной инфраструктуры данных: a16z",
            "content_html": "<p><b>Источник:<\/b> <a href=\"https:\/\/a16z.com\/emerging-architectures-for-modern-data-infrastructure\">Emerging Architectures for Modern Data Infrastructure<\/a><br \/>\n<b>Авторы:<\/b> Matt Bornstein, Jennifer Li, and Martin Casado<br \/>\nPDF: <a href=\"https:\/\/a.gavrilov.info\/data\/posts\/Emerging_Architectures_for_Modern_Data_Infrastructure_Andreessen_Horowitz.pdf\">Тут<\/a><\/p>\n<hr \/>\n<p>Индустрия инфраструктуры данных продолжает стремительно развиваться. С момента публикации первой версии эталонных архитектур в 2020 году, на рынке появилось множество новых продуктов, а метрики ключевых компаний достигли рекордных высот. Эта статья представляет собой обновленный анализ ключевых архитектурных шаблонов и трендов, основанный на опыте ведущих специалистов в области данных.<\/p>\n<p>Основная гипотеза заключается в том, что, хотя <b>ядро систем обработки данных осталось относительно стабильным<\/b>, вокруг него произошел “Кембрийский взрыв” — стремительное размножение поддерживающих инструментов и приложений. Это явление можно объяснить формированием настоящих <b>платформ данных<\/b>, которые становятся фундаментом для новой экосистемы.<\/p>\n<h4>Обновленные эталонные архитектуры<\/h4>\n<p>Статья предлагает два общих взгляда на современный стек данных.<\/p>\n<h5>1. Единая инфраструктура данных (Unified Data Infrastructure 2.0)<\/h5>\n<p>Эта схема дает комплексное представление о стеке данных, охватывая все основные варианты использования — от аналитики до операционных систем.<\/p>\n<div class=\"e2-text-picture\">\n<img src=\"https:\/\/gavrilov.info\/pictures\/image-222.png\" width=\"2000\" height=\"1236\" alt=\"\" \/>\n<div class=\"e2-text-caption\">Notes: Excludes OLTP, log analysis, and SaaS analytics apps.<\/div>\n<\/div>\n<div class=\"e2-text-picture\">\n<img src=\"https:\/\/gavrilov.info\/pictures\/image-223.png\" width=\"2000\" height=\"955\" alt=\"\" \/>\n<\/div>\n<p>Схема демонстрирует путь данных от источников (`Sources`) через этапы загрузки и транспортировки (`Ingestion and Transport`), хранения (`Storage`), обработки запросов (`Query and Processing`), трансформации (`Transformation`) до конечного анализа и вывода (`Analysis and Output`).<\/p>\n<h5>2. Инфраструктура для машинного обучения (Machine Learning Infrastructure 2.0)<\/h5>\n<p>Вторая схема подробно рассматривает сложную и все более независимую цепочку инструментов для машинного обучения.<\/p>\n<div class=\"e2-text-picture\">\n<img src=\"https:\/\/gavrilov.info\/pictures\/image-224.png\" width=\"2000\" height=\"1406\" alt=\"\" \/>\n<\/div>\n<div class=\"e2-text-picture\">\n<img src=\"https:\/\/gavrilov.info\/pictures\/image-225.png\" width=\"2000\" height=\"840\" alt=\"\" \/>\n<\/div>\n<p>Здесь показан жизненный цикл ML-модели: от трансформации данных и разработки модели (`Data Transformation`, `Model Training and Development`) до ее развертывания (`Model Inference`) и интеграции в конечные продукты (`Integration`).<\/p>\n<h4>Что изменилось? Стабильное ядро и “Кембрийский взрыв”<\/h4>\n<h5>Что не изменилось: стабильность в ядре<\/h5>\n<p>Несмотря на активное развитие рынка, базовые архитектурные паттерны сохранили свою актуальность. По-прежнему существует разделение между:<\/p>\n<ul>\n<li><b>Аналитическими системами<\/b> (Analytic Systems), которые помогают принимать решения на основе данных (`data-driven decisions`).<\/li>\n<li><b>Операционными системами<\/b> (Operational Systems), которые являются основой для продуктов, использующих данные (`data-powered products`).<\/li>\n<\/ul>\n<p>Ключевые технологии в ядре стека доказали свою устойчивость и продолжают доминировать:<\/p>\n<ul>\n<li>В <b>аналитике<\/b> связка `Fivetran` (для репликации данных), `Snowflake`\/`BigQuery` (облачные хранилища данных) и `dbt` (для SQL-трансформаций) стала почти стандартом де-факто.<\/li>\n<li>В <b>операционных системах<\/b> укрепились такие стандарты, как `Databricks`\/`Spark`, `Confluent`\/`Kafka` и `Airflow`.<\/li>\n<\/ul>\n<h5>Что нового: “Кембрийский взрыв”<\/h5>\n<p>Вокруг стабильного ядра наблюдается бурный рост новых инструментов и приложений, которые можно разделить на две категории:<\/p>\n<ol start=\"1\">\n<li><b>Новые инструменты<\/b> для поддержки ключевых процессов обработки данных:\n<ul>\n  <li><b>Data Discovery:<\/b> Каталоги данных для поиска и понимания имеющихся активов (`Amundsen`, `DataHub`, `Atlan`).<\/li>\n  <li><b>Data Observability:<\/b> Инструменты для мониторинга состояния и качества конвейеров данных (`Monte Carlo`, `Bigeye`).<\/li>\n  <li><b>ML Model Auditing:<\/b> Решения для аудита и валидации ML-моделей.<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n<ol start=\"2\">\n<li><b>Новые приложения<\/b> для извлечения ценности из данных:\n<ul>\n  <li><b>Data Workspaces:<\/b> Интерактивные среды для совместной работы аналитиков и Data Scientist’ов (`Mode`, `Hex`, `Deepnote`).<\/li>\n  <li><b>Reverse ETL:<\/b> Сервисы, которые возвращают обогащенные данные из хранилища обратно в операционные системы (CRM, ERP), такие как `Census` и `Hightouch`.<\/li>\n  <li><b>ML Application Frameworks:<\/b> Фреймворки для создания приложений на основе ML-моделей (`Streamlit`).<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n<h4>Три основных архитектурных шаблона (Blueprints)<\/h4>\n<h5>Шаблон 1: Современная Business Intelligence (BI)<\/h5>\n<p>Этот шаблон предназначен для компаний любого размера, которые строят облачную BI-аналитику.<\/p>\n<div class=\"e2-text-picture\">\n<img src=\"https:\/\/gavrilov.info\/pictures\/image-226.png\" width=\"2000\" height=\"1236\" alt=\"\" \/>\n<div class=\"e2-text-caption\">Darker boxes are new or meaningfully changed since v1 of the architecture in 2020; lighter colored boxes have remained largely the same. Gray boxes are considered less relevant to this blueprint.<\/div>\n<\/div>\n<ul>\n<li><b>Что не изменилось:<\/b> Основой по-прежнему является комбинация репликации данных (`Fivetran`), облачного хранилища (`Snowflake`) и SQL-моделирования (`dbt`). Дашборды (`Looker`, `Tableau`, `Superset`) остаются главным инструментом анализа.<\/li>\n<li><b>Что нового:<\/b>\n<ul>\n  <li><b>Metrics Layer:<\/b> Появился активный интерес к слою метрик — системе, которая предоставляет стандартизированные бизнес-определения поверх хранилища данных (`Transform`, `LookML`). `dbt` также движется в этом направлении. ( dbt кстати открыла в общий доступ свои метрики <a href=\"https:\/\/gavrilov.info\/all\/dbt-otkryvaet-ishodny-kod-metricflow-upravlyaemye-metriki-dlya-a\">тут<\/a><\/li>\n  <li><b>Reverse ETL:<\/b> Этот инструмент позволяет операционализировать аналитику, отправляя результаты (например, скоринг лидов) из хранилища напрямую в `Salesforce` или `Hubspot`. ( теперь мы знаем как эта штука называется по-модному, когда кто-то просит excele’чку всунуть к табличке рядышком :) )<\/li>\n  <li><b>Data Workspaces:<\/b> Новые приложения для более гибкого и глубокого анализа, чем стандартные дашборды.<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<h5>Шаблон 2: Мультимодальная обработка данных<\/h5>\n<p>Этот шаблон развивает концепцию “озера данных” (`Data Lake`) для поддержки как аналитических, так и операционных задач. Часто используется компаниями, которые “мигрировали” с `Hadoop`.<\/p>\n<div class=\"e2-text-picture\">\n<img src=\"https:\/\/gavrilov.info\/pictures\/image-227.png\" width=\"2000\" height=\"1236\" alt=\"\" \/>\n<\/div>\n<ul>\n<li><b>Что не изменилось:<\/b> Ядром остаются системы обработки (`Databricks`, `Starburst`), транспортировки (`Confluent`, `Airflow`) и хранения (`AWS S3`).<\/li>\n<li><b>Что нового:<\/b>\n<ul>\n  <li><b>Архитектура Lakehouse:<\/b> Получила широкое признание концепция `Lakehouse` — гибрид, объединяющий гибкость озера данных и производительность\/управляемость хранилища данных. Она позволяет использовать поверх одного и того же хранилища (`S3`) множество движков: `Spark`, `Presto`, `Druid`\/`ClickHouse` и др.<\/li>\n  <li><b>Форматы хранения:<\/b> Быстрое распространение получают открытые табличные форматы, такие как `Delta Lake`, `Apache Iceberg` и `Apache Hudi`, которые привносят транзакционность и надежность в озера данных.<\/li>\n  <li><b>Stream Processing:<\/b> Растет популярность потоковой обработки данных в реальном времени. Появляются новые, более простые в использовании инструменты (`Materialize`, `Upsolver`), а существующие (`Databricks Streaming`, `Confluent`\/`ksqlDB`) наращивают функциональность.<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<h5>Шаблон 3: Искусственный интеллект и машинное обучение (AI\/ML)<\/h5>\n<p>Стек для разработки, тестирования и эксплуатации ML-моделей.<\/p>\n<div class=\"e2-text-picture\">\n<img src=\"https:\/\/gavrilov.info\/pictures\/image-228.png\" width=\"2000\" height=\"1406\" alt=\"\" \/>\n<div class=\"e2-text-caption\">Note: Darker boxes are new or meaningfully changed since v1 of the architecture in 2020; lighter colored boxes have remained largely the same. Gray boxes are considered less relevant to this blueprint.<\/div>\n<\/div>\n<ul>\n<li><b>Что не изменилось:<\/b> Инструменты для разработки моделей в целом остались прежними: облачные платформы (`AWS Sagemaker`, `Databricks`), ML-фреймворки (`PyTorch`, `XGBoost`) и системы для отслеживания экспериментов (`Weights & Biases`, `Comet`).<\/li>\n<li><b>Что нового:<\/b>\n<ul>\n  <li><b>Data-Centric AI:<\/b> Произошел сдвиг парадигмы в сторону подхода, ориентированного на данные. Вместо бесконечного улучшения кода модели, фокус сместился на улучшение качества и управления данными для обучения. Это привело к росту сервисов <b>разметки данных<\/b> (`Scale AI`, `Labelbox`).<\/li>\n  <li><b>Feature Stores:<\/b> Увеличилось внедрение хранилищ признаков (`Tecton`, `Feast`) для совместной разработки и использования ML-признаков в production.<\/li>\n  <li><b>Pre-trained Models:<\/b> Использование предобученных моделей (особенно в NLP) стало стандартом. Компании, как `OpenAI` и `Hugging Face`, играют здесь ключевую роль.<\/li>\n  <li><b>MLOps:<\/b> Инструменты для эксплуатации моделей стали более зрелыми, особенно в области <b>мониторинга<\/b> (`Arize`, `Fiddler`) на предмет деградации качества и дрифта данных.<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<h4>Гипотеза о “платформе данных”<\/h4>\n<p>Ключевая идея статьи — объяснить наблюдаемые изменения через формирование <b>платформ данных<\/b>.<\/p>\n<p>В широком смысле, платформа — это то, на чем могут строить свои продукты другие разработчики. Определяющей чертой является взаимная зависимость между поставщиком платформы и большим пулом сторонних разработчиков.<\/p>\n<p>Применительно к данным, “бэкенд” стека (загрузка, хранение, обработка) консолидируется вокруг небольшого числа облачных вендоров. Эти вендоры (`Snowflake`, `Databricks`) активно инвестируют в то, чтобы сделать данные легкодоступными для других через стандартные интерфейсы (например, SQL).<\/p>\n<p>В свою очередь, “фронтенд” разработчики пользуются этим, создавая множество новых приложений поверх единой точки интеграции, не беспокоясь о сложностях базовой инфраструктуры. Это приводит к появлению нового класса `warehouse-native` (или `lakehouse-native`) приложений, которые работают непосредственно с данными клиента в его хранилище.<\/p>\n<div class=\"e2-text-picture\">\n<img src=\"https:\/\/gavrilov.info\/pictures\/image-229.png\" width=\"2000\" height=\"986\" alt=\"\" \/>\n<\/div>\n<div class=\"e2-text-picture\">\n<img src=\"https:\/\/gavrilov.info\/pictures\/image-230.png\" width=\"2000\" height=\"1977\" alt=\"\" \/>\n<\/div>\n<p>Эта модель объясняет, почему поставщики ядра данных (`Snowflake`, `Databricks`) так высоко ценятся (они борются за долгосрочную позицию платформы) и почему наблюдается взрывной рост в экосистеме инструментов (`Reverse ETL`, `Metrics Layer`) — они становятся важными компонентами, встроенными в эту новую платформенную архитектуру.<\/p>\n<h4>Итог и акценты в трендах<\/h4>\n<ol start=\"1\">\n<li><b>Стабилизация ядра и консолидация.<\/b> Ключевые компоненты стека (хранилище\/озеро, движки обработки) консолидируются вокруг нескольких крупных игроков, которые становятся де-факто стандартами.<\/li>\n<\/ol>\n<ol start=\"2\">\n<li><b>Взрывной рост экосистемы.<\/b> Вокруг стабильного ядра формируется богатая экосистема вспомогательных инструментов (`observability`, `discovery`) и бизнес-приложений (`reverse ETL`, `workspaces`), которые повышают ценность данных.<\/li>\n<\/ol>\n<ol start=\"3\">\n<li><b>Платформизация стека данных.<\/b> Центральные хранилища данных (`Data Warehouse`, `Lakehouse`) превращаются из простых баз данных в полноценные платформы для разработки. Это открывает путь для нового поколения `warehouse-native` SaaS-приложений.<\/li>\n<\/ol>\n<ol start=\"4\">\n<li><b>Операционализация данных.<\/b> Тренд смещается от простой аналитики (посмотреть на дашборд) к активному использованию данных в операционных процессах бизнеса. Технологии `Reverse ETL` являются главным драйвером этого тренда.<\/li>\n<\/ol>\n<ol start=\"5\">\n<li><b>Data-Centric AI.<\/b> В мире машинного обучения фокус окончательно сместился с улучшения алгоритмов на улучшение данных, что стимулирует рынок инструментов для управления жизненным циклом данных в ML (`data labeling`, `feature stores`, `monitoring`).<\/li>\n<\/ol>\n",
            "date_published": "2025-11-04T17:02:04+03:00",
            "date_modified": "2025-11-04T18:24:31+03:00",
            "tags": [
                "Data",
                "Platform",
                "Programming"
            ],
            "image": "https:\/\/gavrilov.info\/pictures\/image-222.png",
            "_date_published_rfc2822": "Tue, 04 Nov 2025 17:02:04 +0300",
            "_rss_guid_is_permalink": "false",
            "_rss_guid": "293",
            "_rss_enclosures": [],
            "_e2_data": {
                "is_favourite": false,
                "links_required": [],
                "og_images": [
                    "https:\/\/gavrilov.info\/pictures\/image-222.png",
                    "https:\/\/gavrilov.info\/pictures\/image-223.png",
                    "https:\/\/gavrilov.info\/pictures\/image-224.png",
                    "https:\/\/gavrilov.info\/pictures\/image-225.png",
                    "https:\/\/gavrilov.info\/pictures\/image-226.png",
                    "https:\/\/gavrilov.info\/pictures\/image-227.png",
                    "https:\/\/gavrilov.info\/pictures\/image-228.png",
                    "https:\/\/gavrilov.info\/pictures\/image-229.png",
                    "https:\/\/gavrilov.info\/pictures\/image-230.png"
                ]
            }
        },
        {
            "id": "273",
            "url": "https:\/\/gavrilov.info\/all\/platforma\/",
            "title": "Платформа",
            "content_html": "<div class=\"e2-text-picture\">\n<img src=\"https:\/\/gavrilov.info\/pictures\/Snimok-ekrana-2025-08-28-v-23.36.14.png\" width=\"1382\" height=\"426\" alt=\"\" \/>\n<\/div>\n<p><b>Оригинал:<\/b><\/p>\n<blockquote>\n<p>A platform is a set of software and a surrounding ecosystem of resources that helps you to grow your business. A platform enables growth through connection: its value comes not only from its own features, but from its ability to connect external tools, teams, data, and processes.<\/p>\n<\/blockquote>\n<p><b>Перевод:<\/b><\/p>\n<blockquote>\n<p>Платформа — это комплекс программных решений и окружающая их экосистема ресурсов, которые способствуют росту вашего бизнеса. Платформа стимулирует рост за счёт связности: её ценность заключается не только в собственных функциях, но и в способности объединять внешние инструменты, команды, данные и процессы.<\/p>\n<\/blockquote>\n<h4>Дополнение с учетом современных трендов и опыта<\/h4>\n<p>Приведённая цитата — отличное базовое определение. Однако современное понимание платформ стало значительно шире и глубже. Сегодня платформа — это не просто технологический фундамент, а ключевой стратегический актив для трансформации всего бизнеса.<\/p>\n<p>Вот несколько ключевых аспектов, дополняющих это определение:<\/p>\n<ol start=\"1\">\n<li><b>Платформа как основа бизнес-стратегии.<\/b>  <br \/>\nСовременные лидеры рынка рассматривают платформы не как набор инструментов, а как основу для полного переосмысления своего бизнеса. Платформенный подход позволяет заново выстроить всю цепочку поставок, клиентский путь и процессы принятия решений. Это критический компонент «цифрового ядра» компании, стремящейся к постоянному обновлению и росту accenture.com <a href=\"https:\/\/www.accenture.com\/us-en\/insights\/strategy\/platform-strategy.\">https:\/\/www.accenture.com\/us-en\/insights\/strategy\/platform-strategy.<\/a><\/li>\n<\/ol>\n<ol start=\"2\">\n<li><b>Ценность требует инвестиций и настройки.<\/b>  <br \/>\nПлатформа сама по себе не является готовым решением. Она требует значительных инвестиций в настройку и интеграцию для того, чтобы начать генерировать ценность. Как отмечает Forrester, пустой аккаунт в `Amazon Web Services` (AWS) бесполезен до тех пор, пока вы не установите и не настроите на нём программное обеспечение и не окружите его дополнительными возможностями forrester.com <a href=\"https:\/\/www.forrester.com\/blogs\/a-simple-definition-of-platform.\">https:\/\/www.forrester.com\/blogs\/a-simple-definition-of-platform.<\/a><\/li>\n<\/ol>\n<ol start=\"3\">\n<li><b>Переход от монолита к экосистеме.<\/b>  <br \/>\nЭпоха единых монолитных IT-приложений, которые должны были решать все задачи бизнеса, подходит к концу. Современная парадигма — это создание гибкой архитектуры, в которой решения от разных поставщиков могут быть бесшовно развёрнуты и интегрированы. Такие «инновационные платформы» позволяют компаниям быстро адаптироваться к изменениям и использовать лучшие в своём классе инструменты для каждой функции cimdata.com <a href=\"https:\/\/www.cimdata.com\/en\/platformization-some-common-definitions.\">https:\/\/www.cimdata.com\/en\/platformization-some-common-definitions.<\/a><\/li>\n<\/ol>\n<ol start=\"4\">\n<li><b>Драйвер новых бизнес-моделей и конкурентного преимущества.<\/b>  <br \/>\nПлатформенные бизнес-модели — это проверенный способ достижения успеха. Они позволяют технологическим компаниям монетизировать свои продукты через модели `as-a-service` (по подписке или на основе потребления), повышать лояльность клиентов за счёт связанных сервисов и масштабироваться гораздо быстрее. Для 80% компаний, ещё не перешедших на платформенную модель, главным вызовом становится растущая конкуренция со стороны тех, кто уже сделал этот шаг ey.com <a href=\"https:\/\/www.ey.com\/en_nz\/insights\/technology\/how-can-your-platform-business-model-fuel-competitiveness-and-growth.\">https:\/\/www.ey.com\/en_nz\/insights\/technology\/how-can-your-platform-business-model-fuel-competitiveness-and-growth.<\/a><\/li>\n<\/ol>\n<ol start=\"5\">\n<li><b>Создание сетевого эффекта.<\/b>  <br \/>\nКлючевая особенность успешной платформы — способность создавать <b>сетевой эффект<\/b>. Чем больше пользователей, разработчиков, партнёров и сервисов подключается к платформе, тем выше становится её ценность для каждого участника. Примерами могут служить операционные системы (`Windows`, `macOS`), платформы для разработки (`Java`), браузеры (`Chrome`) или социальные сети, где ценность напрямую зависит от количества и активности пользователей и создателей контента appmarketplace.com <a href=\"https:\/\/appmarketplace.com\/blog\/what-is-a-platform.\">https:\/\/appmarketplace.com\/blog\/what-is-a-platform.<\/a><\/li>\n<\/ol>\n<hr \/>\n<p><b>Итоговое современное определение<\/b> можно сформулировать так:<\/p>\n<blockquote>\n<p><b>Платформа<\/b> — это стратегический бизнес-актив, представляющий собой гибкую и масштабируемую технологическую основу, которая объединяет внутренние и внешние ресурсы (инструменты, данные, команды, партнёров) в единую экосистему. Её главная цель — не просто предоставлять функции, а стимулировать рост, инновации и создание сетевых эффектов, позволяя компании переосмысливать бизнес-модели и получать устойчивое конкурентное преимущество.<\/p>\n<\/blockquote>\n",
            "date_published": "2025-08-28T23:44:51+03:00",
            "date_modified": "2025-09-08T21:30:20+03:00",
            "tags": [
                "IT",
                "Platform",
                "Programming"
            ],
            "image": "https:\/\/gavrilov.info\/pictures\/Snimok-ekrana-2025-08-28-v-23.36.14.png",
            "_date_published_rfc2822": "Thu, 28 Aug 2025 23:44:51 +0300",
            "_rss_guid_is_permalink": "false",
            "_rss_guid": "273",
            "_rss_enclosures": [],
            "_e2_data": {
                "is_favourite": false,
                "links_required": [],
                "og_images": [
                    "https:\/\/gavrilov.info\/pictures\/Snimok-ekrana-2025-08-28-v-23.36.14.png"
                ]
            }
        }
    ],
    "_e2_version": 4171,
    "_e2_ua_string": "Aegea 11.4 (v4171e)"
}