Welcome to my personal place for love, peace and happiness 🤖

Later Ctrl + ↑

Утиные истории с DuckDB 🦆

1. DuckDB для потоковой обработки данных https://github.com/turbolytics/sql-flow

  • Суть:** SQLFlow — это движок потоковой обработки данных, построенный на базе DuckDB и Apache Arrow. Он позволяет пользователям определять конвейеры данных с использованием SQL для высокопроизводительных преобразований и агрегаций данных в реальном времени.

SQLFlow принимает данные из различных источников, таких как Kafka и WebSockets, обрабатывает их с помощью DuckDB, обеспечивая выполнение SQL-запросов, и выводит результаты в различные приемники, включая PostgreSQL, Kafka и облачные хранилища. В архитектуре SQLFlow ключевую роль играют: источники входных данных, обработчики (реализующие SQL-выполнение через DuckDB) и приемники выходных данных. SQLFlow предлагает широкий спектр сценариев использования, таких как преобразования потоковых данных (например,

basic.agg.mem.yml

), обогащение потока данных (например,

enrich.yml

), агрегация данных в реальном времени и интеграция с внешними сервисами, включая Bluesky Firehose и Iceberg catalogs.

  • Вывод:** SQLFlow позволяет пользователям DuckDB эффективно использовать SQL для определения конвейеров данных в реальном времени, представляя собой облегченную альтернативу традиционным системам потоковой обработки. Это особенно полезно в сценариях, где важна низкая задержка и интеграция с существующей инфраструктурой DuckDB.

2. Создание гибридной базы данных векторного поиска с помощью Arrow и DuckDB

  • Суть:** Томас представляет Quiver, базу данных гибридного векторного поиска, разработанную на языке Go. Quiver сочетает в себе HNSW (Hierarchical Navigable Small World) для быстрого векторного поиска, DuckDB для фильтрации метаданных на основе SQL-запросов и Apache Arrow для эффективной передачи данных между компонентами.

Quiver является open-source проектом, предлагающим полную поддержку SQL и столбцовое хранилище, оптимизированное для аналитических нагрузок благодаря использованию DuckDB. Это устраняет необходимость использования тяжеловесной внешней базы данных для хранения метаданных. Томас подробно рассматривает реализацию гибридного поиска, включая стратегии предварительной фильтрации (сначала SQL, затем векторный поиск) и постобработки (сначала векторный поиск, затем SQL), и объясняет, как выбирать оптимальный подход в зависимости от специфики запроса.

  • Важно отметить, что использование Apache Arrow в связке с Arrow Database Connectivity (ADBC) позволяет осуществлять передачу данных между компонентами без копирования, что значительно повышает эффективность. Если вас интересует эта тема, обратите внимание на более глубокий анализ векторных технологий для AI: Расширение существующей инфраструктуры данных тут https://motherduck.com/blog/vector-technologies-ai-data-stack

3. Нет полосы пропускания? Не проблема: почему локальный кеш отлично подходит для DuckDB

  • Суть:** Расширение `cache_httpfs` для DuckDB позволяет ускорить чтение данных из объектного хранилища за счет локального кеширования, существенно повышая производительность.

Расширение `cache_httpfs` решает проблемы, связанные со стоимостью полосы пропускания, задержками при доступе к данным и надежностью при запросе данных из объектного хранилища. Оно поддерживает несколько режимов работы: кеширование в памяти, сохранение кеша на диск и полное отключение кеширования. Выбор режима осуществляется через настройку

SET cache_httpfs_type='noop'

. Использование `cache_httpfs` может значительно улучшить пользовательский опыт, сокращая время выполнения запросов, например, со 100 до 40 секунд. Расширение использует встроенные оптимизации DuckDB, включая фильтры Блума Parquet, для минимизации объема данных, передаваемых из объектного хранилища. Поддерживаются параллельное чтение и профилирование работы расширения, сохраняется совместимость с `httpfs` DuckDB. `cache_httpfs` поддерживает доступ к Hugging Face (`hf:`), Amazon S3 (`S3:`) и Cloudflare R2 (`R2://`).

  • Практический вывод:** Использование `cache_httpfs` позволяет пользователям снизить затраты на доступ к S3 и ускорить выполнение запросов DuckDB, требуя при этом минимальных изменений в конфигурации. Репозиторий расширения доступен на GitHub:
dentiny/duck-read-cache-fs

тут: https://github.com/dentiny/duck-read-cache-fs

4. DuckDB Local UI

  • Суть:** Недавно представленный DuckDB UI представляет собой удобный пользовательский интерфейс для локальных экземпляров DuckDB, значительно повышающий удобство работы благодаря таким функциям, как интерактивные блокноты и возможность удобного просмотра структуры таблиц, что упрощает управление данными и их анализ. Подробнее тут: https://duckdb.org/2025/03/12/duckdb-ui.html

DuckDB UI реализован в стиле блокнота и доступен локально. Он был разработан в результате тесного сотрудничества между MotherDuck и командой DuckDB Labs. Начиная с версии DuckDB v1.2.1, пользователи могут запустить UI из командной строки с помощью команды

duckdb -ui

или через SQL-запрос

CALL start_ui();

. Пользовательский интерфейс предлагает подсветку синтаксиса для SQL-кода и функцию автозавершения. Встроенный проводник по столбцам позволяет быстро анализировать структуру таблиц и результаты запросов. UI поддерживает локальное выполнение запросов и опциональную интеграцию с MotherDuck для работы с облачным хранилищем данных. UI хранит блокноты в базе данных DuckDB (`ui.db`) в каталоге `.duckdb`. Для работы пользовательского интерфейса запускается HTTP-сервер на localhost, а для обновления интерфейса используются server-sent events (SSE), что обеспечивает минимальные задержки при взаимодействии с пользователем.

  • Ознакомиться с работой DuckDB UI можно в видеоуроке на YouTube. Duckdb-ui является проектом с открытым исходным кодом (open-source) и доступен на GitHub.

5. DuckDB: Обработка данных где угодно, От ноутбуков до серверов

  • Суть:** В рамках доклада на FOSDEM 2024 была продемонстрирована высокая производительность DuckDB при работе с большими наборами данных, а также потенциал для снижения затрат на облачные вычисления. Доклад был высоко оценен участниками конференции. Все. доклады тут: https://www.techtalksweekly.io/p/100-most-watched-software-engineering

Габор продемонстрировал, что DuckDB может загрузить 15 ГБ CSV-данных всего за 11 секунд и выполнять сложные аналитические запросы за миллисекунды на обычном ноутбуке. В своем докладе он объяснил принципы столбцового хранения данных, векторизованного выполнения запросов и использования zone maps для эффективной индексации. Габор также подчеркнул высокую переносимость DuckDB, обеспеченную благодаря использованию C++11 и минимальному количеству внешних зависимостей. DuckDB может работать в веб-браузерах, используя WebAssembly.

6. Предварительный просмотр: таблицы Amazon S3 в DuckDB

  • Суть:** DuckDB теперь поддерживает каталоги Apache Iceberg REST, что обеспечивает возможность простого и быстрого подключения к таблицам Amazon S3 и SageMaker Lakehouse. Тут подробнее: https://duckdb.org/2025/03/14/preview-amazon-s3-tables.html

Новая функция предварительного просмотра в расширении Iceberg позволяет подключаться к каталогам Iceberg REST, используя команду

ATTACH

. Для использования этой возможности требуется установить bleeding edge версии расширений из репозитория

core_nightly

. Учетные данные AWS могут быть сконфигурированы с использованием Secrets Manager, как с использованием credential_chain, так и путем явного указания ключа, секрета и региона. Подключение к таблицам S3 осуществляется с использованием ARN таблиц S3, например,

ATTACH 'arn:aws:s3tables:us-east-1:111122223333:bucket/bucket_name' AS s3_tables_db (TYPE iceberg, ENDPOINT_TYPE s3_tables);

.

  • В качестве альтернативы можно использовать конечную точку каталога Amazon SageMaker Lakehouse (AWS Glue Data Catalog) Iceberg REST:
ATTACH 'account_id:s3tablescatalog/namespace_name' AS (TYPE iceberg, ENDPOINT_TYPE glue);

. Расширение также поддерживает evolution schema в Iceberg, позволяя отслеживать изменения в структуре таблиц. Эта функциональность особенно полезна при работе с evolving datasets.

7. Защита DuckDB, ускорение запуска и работа в автономном режиме

  • Суть:** Статическая компиляция DuckDB позволяет повысить безопасность, сократить время запуска и обеспечить возможность автономной работы за счет встраивания необходимых расширений непосредственно в исполняемый файл. Смотрим тут: https://blog.colinbreck.com/securing-duckdb-improving-startup-time-and-working-offline

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

icu

,

parquet

и

sqlite_scanner

, непосредственно в двоичный файл DuckDB, что устраняет необходимость их загрузки во время выполнения программы. Это достигается с помощью команды сборки:

DISABLE_EXTENSION_LOAD=1 CORE_EXTENSIONS='icu;parquet;sqlite_scanner' GEN=ninja make

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

DISABLE_EXTENSION_LOAD

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

8. Хитрости DuckDB – Переименование полей в SELECT * по таблицам

  • Суть:** Представлены быстрые советы по переименованию полей в запросе
SELECT *

при работе с несколькими таблицами в DuckDB, что позволяет разрешить конфликты, возникающие при наличии одинаковых имен полей в разных таблицах. Тут: https://rmoff.net/2025/02/27/duckdb-tricks-renaming-fields-in-a-select-across-tables

Робин рассматривает ситуацию, когда после операции

JOIN

нужно четко различать поля, происходящие из разных таблиц, а использование простого

SELECT *

приводит к неоднозначности. Он предлагает использовать выражение `COLUMNS` в DuckDB для добавления префикса к именам столбцов, эффективно создавая псевдонимы на основе имени таблицы. Например, запрос

describe select columns(t1.*) as "t1_\0", columns(t2.*) as "t2_\0" from t1 inner join t2 on t1.X = t2.X;

добавляет префиксы

t1_

и

t2_

к столбцам из таблиц

t1

и

t2

соответственно.

  • Вывод:** Это удобный прием, позволяющий повысить продуктивность при работе со сложными запросами
JOIN

, избегая трудоемкого ручного переименования каждого столбца.

9. Плагин Yazi, использующий DuckDB для предварительного просмотра файлов данных

  • Суть:** `duckdb.yazi` – это плагин для файлового менеджера Yazi, использующий DuckDB для быстрого предварительного просмотра и создания summary файлов данных, что значительно упрощает навигацию по файлам непосредственно из терминала. Гит тут: https://github.com/wylie102/duckdb.yazi

Плагин позволяет практически мгновенно просматривать содержимое файлов в форматах

.csv

,

.json

,

.parquet

и

.tsv

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

10. Освоение DuckDB, когда вы привыкли к Pandas или Polars

  • Суть:** В статье описывается, как реализовать распространенные операции, выполняемые с помощью pandas/Polars, в DuckDB с использованием SQL, что предоставляет надежную и стандартизированную альтернативу DataFrame API. тут: https://labs.quansight.org/blog/duckdb-when-used-to-frames

Марко демонстрирует, как переводить операции pandas/Polars в эквивалентные SQL-запросы для DuckDB, уделяя особое внимание оконным функциям для решения таких задач, как центрирование данных (

a - MEAN(a) OVER () AS a_centered

) или изменение частоты дискретизации временных рядов путем использования функций усечения даты и арифметики интервалов (

DATE_TRUNC('week', date - INTERVAL 2 DAYS) + INTERVAL 2 DAYS AS week_start

). Он также кратко рассматривает альтернативные Python API для DuckDB, такие как SQLFrame, Relational API DuckDB, Narwhals и Ibis, описывая их возможности и ограничения.

  • Также рекомендуется ознакомиться с другой статьей, в которой рассматривается использование DuckDB вместо Pandas/Polars.

Growth Engineering: Искусство взрывного роста компании через код

На основе: https://newsletter.pragmaticengineer.com/p/what-is-growth-engineering

Что такое Growth Engineering?

В современном мире технологического бизнеса, где конкуренция ощущается на каждом шагу, компании постоянно ищут способы взрывного роста. На стыке разработки продукта и маркетинга возникла область, получившая название Growth Engineering. Это не просто написание кода – это стратегическое применение инженерных навыков для максимизации прибыли компании, оптимизируя каждый этап взаимодействия с пользователем. Алексей Комиссарук, бывший руководитель Growth Engineering в MasterClass, говорит об этом просто: “Growth Engineering – это написание кода, который помогает компании зарабатывать больше денег”.

Зачем компаниям Growth-инженеры?

Десять лет назад о Growth Engineering мало кто знал. Сегодня, когда стартапы стремятся масштабироваться, а публичные технологические компании – защищать свои позиции, команды с Growth-инженерами стали необходимостью. Они, словно хирурги, препарируют существующие продукты или услуги, выявляя точки роста и реализуют их, зачастую минимальными, но точными изменениями.

Growth-инженеры особенно востребованы в компаниях, осуществляющих продажи потребителям или работающих по модели SaaS, на этапе Series B и далее. Именно тогда компания имеет достаточно трафика и ресурсов, чтобы проводить A/B-тесты и инвестировать в команду, которая будет заниматься исключительно вопросами роста.

Чем занимаются Growth-инженеры? Три ключевых направления

Работа Growth-инженера лежит в трёх основных плоскостях:

  • Работа, непосредственно влияющая на бизнес:** Это сердце Growth Engineering. Здесь Growth-инженеры, вооружившись A/B-тестами и аналитическими инструментами, оптимизируют ключевые бизнес-метрики. Примеры задач:
    • Оптимизация воронки регистрации:** Снижение барьеров для новых пользователей, упрощение форм, добавление социальных логинов, улучшение онбординга.
    • Персонализация рекомендаций:** Разработка алгоритмов, которые предлагают пользователям наиболее релевантный контент или продукты, повышая вовлеченность и вероятность покупки.
    • A/B-тестирование цен и пакетов услуг:** Проверка различных ценовых стратегий для максимизации дохода, включая тестирование скидок, пробных периодов и различных комбинаций функций в платных планах.
    • Оптимизация рекламных посадочных страниц:** Создание и A/B-тестирование целевых страниц, адаптированных к конкретным рекламным кампаниям, чтобы повысить конверсию посетителей в лиды или клиентов.
  • Предоставление возможностей для роста:** Задача Growth-инженера – расширить возможности команды маркетинга и других специалистов, предоставив им инструменты, которые позволяют самостоятельно реализовывать идеи и экспериментировать без постоянного участия разработчиков. Это включает в себя:
    • Интеграцию с платформами автоматизации маркетинга (например, HubSpot, Marketo), автоматизируя e-mail маркетинг и работу с пользователями.
    • Создание инструментов для работы с CDP (Customer Data Platform) для сегментации пользователей, таргетинга и персонализированных предложений.
    • Настройку систем атрибуции для отслеживания источников трафика и оценки эффективности маркетинговых каналов, позволяя максимально точно определять ROI (Return on Investment) маркетинговых активностей.
  • Работа с платформой:** Чтобы команда Growth могла двигаться максимально быстро, необходима надежная платформа, включающая в себя:
    • Микросервисную архитектуру, позволяющую командам независимо развертывать эксперименты и избегать конфликтов.
    • Создание инструментов для автоматической интеграции с маркетинговыми платформами, упрощающими процесс подключения новых сервисов.
    • Централизованные системы ведения логов и аналитики, обеспечивающие доступ ко всем необходимым данным для мониторинга и анализа результатов экспериментов.
    • Централизованную A/B платформу, которая позволяет удобно проводить и анализировать результаты экспериментов.

Почему Growth-инженеры работают быстрее, чем Product-инженеры?

Ключевое различие между Growth и Product Engineering кроется в философии и подходе к работе. Product-инженеры *разрабатывают*, чтобы создать продукт. Growth-инженеры *разрабатывают*, чтобы учиться. Growth Engineer быстрее принимает решения, потому что их цель – проверять гипотезы, а не создавать идеальный продукт сразу. Они быстрее оптимизируют свою работу, чтобы можно было проводить как можно больше экспериментов.

Представьте себе строительство. Product Engineering – это возведение небоскреба: основательно, долговечно, но требует огромного количества времени и ресурсов. Growth Engineering – это скорее установка палатки: быстро, дешево и легко. Палатка не предназначена для жизни на века, но она позволяет быстро проверить, подходит ли это место для более основательного строительства.

Пример из практики: Masterclass и ценовые планы

В Masterclass команда Growth Engineering столкнулась с необходимостью протестировать новую модель ценообразования. Разработка полноценного многоуровневого решения заняла бы месяцы и потребовала привлечения множества команд. Вместо этого, Growth-инженеры реализовали “фейковую дверь” – показали пользователям страницу с различными тарифными планами, которые на тот момент еще не были реализованы. Анализ данных показал, что переход на новую модель ценообразования может значительно увеличить доход компании. Это позволило убедить руководство инвестировать в полноценную разработку.

Инструменты Growth-инженера: Технологический стек

Для эффективной работы Growth-инженеру необходим обширный набор инструментов, охватывающих разработку, аналитику и автоматизацию маркетинга:

  • Языки программирования:** Python, JavaScript, TypeScript и другие, в зависимости от специфики проекта.
  • Feature Flags:** LaunchDarkly, Optimizely – для быстрого включения и выключения функциональности и проведения A/B-тестов.
  • Продуктовая аналитика:** Amplitude, Mixpanel – для отслеживания поведения пользователей и оценки эффективности изменений.
  • Экспериментальные платформы:** AB Tasty, VWO – для автоматизации A/B-тестирования и анализа результатов.
  • Системы мониторинга и алертинга:** Datadog, Grafana, Prometheus – для оперативного выявления проблем и оповещения о критических ситуациях.
  • Платформы автоматизации маркетинга:** HubSpot, Marketo, Iterable – для автоматизации коммуникаций с пользователями и персонализации маркетинговых кампаний.
  • CDP (Customer Data Platform):** Segment, mParticle – для управления данными о клиентах и создания персонализированных предложений.

Кто такой Growth-инженер: Необходимые навыки и качества

Чтобы преуспеть в Growth Engineering, необходимо обладать не только техническими навыками, но и определенным складом ума:

  • Любознательность:** Желание постоянно учиться новому, исследовать и экспериментировать. Умение смотреть на все глазами пользователя и анализировать причины тех или иных действий.
  • “Строительство ради обучения”:** Готовность быстро прототипировать, проводить эксперименты и учиться на ошибках.
  • “Мастер на все руки”:** Обширный набор навыков, позволяющий решать задачи, лежащие на стыке разработки, аналитики и маркетинга.
  • Аналитическое мышление:** Умение анализировать данные, выявлять тренды и делать обоснованные выводы.

Организация команды Growth: Где размещаются Growth-инженеры?

Обычно Growth-инженеры входят в состав отдела разработки, но их работа тесно связана с маркетингом и аналитикой. Существуют разные модели организации команды:

  • Модель “владельца”:** Команда Growth полностью отвечает за определенный участок работы, например, за оптимизацию воронки регистрации.
  • Модель “автостопщика”:** Команда Growth оказывает помощь другим командам, предоставляя экспертизу и реализуя их идеи, действуя как внутренний консультант.

Стать Growth-инженером: Путь к карьерному росту

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

В заключение

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

Тем временем в Apache Seatunnel появился конектор к blockchain

https://seatunnel.apache.org/docs/2.3.10/connector-v2/source/Web3j

Есть батчевевый и стримосянный :)

Пробуем так:

env {
parallelism = 1
job.mode = “BATCH”
}

source {
Web3j {
url = “https://mainnet.infura.io/v3/xxxxx
}
}

Console printing of the read Http data

sink {
Console {
parallelism = 1
}
}

Ответ:

{“blockNumber”:19525949,“timestamp”:“2024-03-27T13:28:45.605Z”}

Хорошая книжка 🧠 Мышление за пределами кода

Как мы мыслим, когда проектируем? Почему системы разваливаются? И как писать код, который живёт дольше недели?

Автор: Андрей Корниенко (PPROGER)
📄 Скачать книгу (PDF)
🗓 Год: 2025
🗣 Язык: Русский
📚 Формат: PDF
📌 Лицензия: CC BY-NC-SA 4.0

📘 О книге

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

В формате беседы ты пройдёшь путь от простых идей к глубоким архитектурным концепциям, которые помогут:

💡 понять суть архитектуры без академического налёта,
🧱 научиться отделять поведение от данных,
🧭 видеть за кодом намерение,
🔧 проектировать гибко, но не хаотично.
🔍 Темы, которые раскрываются

Почему системы рушатся со временем — и как это предсказать
Что такое Command, Configurator, и Behavior в реальном проекте
Как применять концепции, похожие на Clean Architecture, без overengineering
Почему WorkSpace — это не UI, а способ мышления о контексте
Как связать поведение, интерфейс и конфигурацию в единую систему
Почему «истина» — это не переменная, а отражение состояния
✍️ Стиль и подход

📖 Книга написана в живом и понятном стиле — как разговор с опытным коллегой.
💬 Формат — диалог и размышление, а не формальная инструкция.
📐 Все идеи опираются на реальные проекты, включая сложные конфигураторы и 3D-сцены.
🧠 Главное внимание уделено мышлению, а не технологиям.
👀 Для кого эта книга?

Для мидлов и синьоров, уставших от «модульной каши»
Для тех, кто хочет писать не компоненты, а системы
Для разработчиков, интересующихся архитектурой, проектированием, смыслом
Для тех, кто хочет перейти от «работы с фреймворком» к созданию решений
📥 Скачать книгу

Файл: thinking-code.pdf
Размер: ~3MB
Формат: PDF

👉 📄 Скачать PDF

💬 Обратная связь

Если тебе понравилась книга, или ты хочешь обсудить идеи, задать вопрос или просто сказать спасибо:

📬 Email: pproger@pproger.me
💬 Telegram: @pprogerrr
▶️ YouTube: PPROGER на YouTube
📸 Instagram: @p_proger
🌐 Сайт: pproger.me – крутой кстати, змейка есть :)
Git: тут

Открыты любые предложения, идеи и критика 🙌

🧾 Лицензия

Creative Commons Attribution-NonCommercial-ShareAlike 4.0
Ты можешь:

Читать и распространять книгу бесплатно
Делать форки, адаптации, цитаты
Но не использовать в коммерческих целях без разрешения автора
Подробнее о лицензии

Файл лицензии: LICENSE

Код — это просто отражение наших решений.
Архитектура — это отражение наших мыслей.
© 2025, Андрей Корниенко

Китайская виртуализация Openscaler и RISC-V

Тестирование производительности решений контейнерной виртуализации — https://openscaler.ru/2023/06/21/1125/

Второй подход к снаряду, iSula
https://openscaler.ru/2023/10/12/secont-test-isula/

Тестирование запуска контейнеров внутри виртуальных машин в кластере kubernetes
https://openscaler.ru/2024/02/19/isulad-kata-k8s/

Обновление ОС рабочих узлов кластера k8s при помощи KubeOS
https://openscaler.ru/2024/05/24/kubeos_kubevirt/

Rubik – ещё один способ управления ресурсами в kubernetes
https://openscaler.ru/2024/11/01/rubik/

Kmesh и k8s — https://openscaler.ru/2023/12/12/kmesh-and-k8s/

Kuasar – runtime с поддержкой sandbox — https://openscaler.ru/2025/02/17/kuasar/
Тестирование контейнерной ОС на основе кодовой базы openEuler / OpenScaler — https://openscaler.ru/2023/07/27/nestos/

А еще это:
Побег из технологической клетки США. Китай создал первый серверный процессор на RISC-V на замену Intel Xeon и AMD Epyc https://www.cnews.ru/news/top/2025-04-04_kitaj_sbegaet_iz_tehnologicheskogo

https://www.securitylab.ru/news/558028.php или читаем в оригинале тут: https://www.tmtpost.com/7519579.html

Но интересно это: “Процессор Lingyu построен по интересной схеме: в нём объединены 32 универсальных ядра для вычислений и 8 специализированных интеллектуальных ядер. Такая конфигурация хорошо подходит, например, для запуска моделей вроде ChatGPT с открытым исходным кодом, и при этом позволяет сдерживать энергопотребление и общую стоимость владения”

Но и это любопытно тоже:
https://tenstorrent.com

Tenstorrent представила ИИ-ускорители Blackhole на архитектуре RISC-V

Канадский стартап Tenstorrent анонсировал ИИ-ускорители семейства Blackhole, выполненные в виде двухслотовых карт расширения с интерфейсом PCI Express 5.0 x16. Кроме того, дебютировала рабочая станция TT-QuietBox, оборудованная этими изделиями. Напомним, ранее Tenstorrent выпустила ИИ-ускорители Wormhole с 72 и 128 ядрами Tensix, каждое из которых содержит пять ядер RISC-V. Объём памяти GDDR6 составляет соответственно 12 и 24 Гбайт. Производительность достигает 262 и 466 Тфлопс на операциях FP8. Для сравнения A100 дает 624 до 1248 если SXM. Но дело все в цене, которая в десятки раз ниже.

Кстати, мы используем аналог Trino, это CedrusData, он на Java. Учитывая тот факт, что там используется Temurin java, которая имеется для архитектуры risc-v, то можно сказать – мимиграция ядер не за горами.

а есть и российская java для рисков https://www.axiomjdk.ru/announcements/2024/12/11/risc-v/ от Axiom

ждем )

 No comments   1 mo   AI   LLM   RISC-V

Тестируем Гуся 🪿

an open source, extensible AI agent that goes beyond code suggestions – install, execute, edit, and test with any LLM

смотрим, все понятно.

Основной их сайт: https://block.github.io/goose/
Взять можно тут: https://github.com/block/goose
или еще почитать тут: https://habr.com/ru/articles/877522/

Вот, что сделал:

или тут файлы: Goose_App.zip

  • Небольшой сайт, что выше
  • Скачал версию на Мак
  • Настроил на openrouter.ai
  • Выбрал сеть Sonnet 3.5 ( Есть и другие, но эта первая попалась )
  • Поставил режим режим апрува Goose Mode: Smart Approval
  • Рабочая директория /Users/yuriygavrilov/NeDir
  • Промт:

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

    Ответ:

    Я помогу вам модифицировать и запустить программу. Давайте выполним это пошагово.
    
    Сначала найдем и остановим запущенную программу:
    Shell
    command
    ps aux | grep python | grep uvicorn
    
    Output
    Shell
    command
    pkill -f uvicorn
    
    Output
    Goose would like to call the above tool. Allow?
    Shell is approved
    Теперь посмотрим текущий код:
    Shell
    command
    rg --files | rg '\.py$'
    
    Output
    Text Editor
    command
    view
    path
    /Users/yuriygavrilov/NeDir/app.py
    
    Output
    Создадим новый HTML шаблон с красивым дизайном:
    Shell
    command
    mkdir -p templates static/images
    
    Output
    Goose would like to call the above tool. Allow?
    Shell is approved
    Создадим обновленный HTML файл:
    Text Editor
    command
    write
    file_text
    <!DOCTYPE html> <html lang="ru"> <head> <meta charset="U...
    
    path
    /Users/yuriygavrilov/NeDir/templates/index.html
    
    Output
    Goose would like to call the above tool. Allow?
    Text Editor is approved
    Создадим SVG изображение самолета:
    Text Editor
    command
    write
    file_text
    <?xml version="1.0" encoding="UTF-8"?> <svg width="800px" he...
    
    path
    /Users/yuriygavrilov/NeDir/static/images/airplane.svg
    
    Output
    Goose would like to call the above tool. Allow?
    Text Editor is approved
    Установим необходимые зависимости:
    Shell
    command
    pip install flask flask-talisman pyOpenSSL
    
    Output
    Goose would like to call the above tool. Allow?
    Shell is approved
    Запустим программу в фоновом режиме:
    Shell
    command
    python app.py &
    
    Output
    Goose would like to call the above tool. Allow?
    Shell is approved
    Теперь вы можете открыть программу в браузере по адресу: https://localhost:5000
    
    Что было сделано:
    
    Остановлена предыдущая версия программы
    Создан новый дизайн с красной кнопкой
    Добавлено исчезающее приветствие (появляется на 3 секунды при нажатии на кнопку)
    Добавлен зеленый самолет
    Настроен SSL сертификат (самоподписанный)
    Программа запущена в фоновом режиме
    При открытии в браузере вы увидите:
    
    Красивый градиентный фон
    Красную кнопку в центре
    Полупрозрачный зеленый самолет на фоне
    При нажатии на кнопку появится приветствие, которое исчезнет через 3 секунды
    Примечание: Поскольку используется самоподписанный SSL-сертификат, браузер может показать предупреждение о безопасности. Это нормально в тестовой среде. Чтобы продолжить, нужно подтвердить исключение безопасности в браузере.
    
    Жду ваших дальнейших инструкций!

    🤖 Ай да Гусь :) но самолета не вижу почему то. А денег съела прилично где-то 80 центов за пару тестов.

    Еще не то увидим, когда заработает MCP повсюду.

     No comments   1 mo   Agents   AI   LLM

    Мой фреймворк управления данными (Статья)

    Оригинал: https://medium.com/zs-associates/my-data-governance-framework-c1879486bc09

    За последние 10+ лет у меня была возможность быть автором или внести вклад в более чем 100 стратегий и фреймворков управления данными в различных отраслях. Хотя у каждой организации есть свои уникальные вызовы, я обнаружил, что определенный общий фреймворк неизменно служил эффективной отправной точкой для внедрения управления данными.

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

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

    Стратегия

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

    • Миссия, видение и общая стратегия.** Этот подкомпонент определяет, почему необходимо управление данными, чего оно стремится достичь и как оно будет реализовано. Миссия формулирует основную цель управления, такую ​​как обеспечение целостности данных, соответствие требованиям и создание ценности. Видение обеспечивает долгосрочную перспективу, описывая желаемое состояние управления данными внутри организации. Общая стратегия определяет подход и руководящие принципы для внедрения управления в бизнес-операции.
    • Задачи и цели.** Чтобы добиться значимых результатов, управление данными должно быть связано с измеримыми целями. Это включает в себя установление конкретных, количественно определяемых целей, таких как улучшение показателей качества данных на определенный процент, снижение рисков соответствия требованиям или увеличение внедрения метаданных. Четкие цели обеспечивают подотчетность и позволяют организациям отслеживать прогресс, демонстрировать ценность и постоянно совершенствовать свои усилия по управлению.

    Области компетенции

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

    • Политики, стандарты и соответствие требованиям.** Управление начинается с четко определенных политик и стандартов, которые устанавливают правила, руководящие принципы и требования соответствия для управления данными во всей организации. Политики определяют, что необходимо сделать, устанавливая ожидания в отношении таких тем, как доступ к данным, качество и защита, а стандарты определяют, как эти ожидания реализуются с помощью конкретных процедур или пороговых значений. Важно отметить, что управление должно также включать возможность подтверждения соответствия этим политикам и стандартам посредством механизмов мониторинга, отчетности и аудита, обеспечивая подотчетность и соответствие нормативным требованиям.
    • Управление данными.** Может показаться немного странным иметь «управление данными» в качестве компетенции в рамках управления данными, но оно служит уникальной и основополагающей цели. Эта компетенция определяет и реализует роли, обязанности и подотчетность во всей модели управления. Она обеспечивает организационную основу, которая поддерживает все другие компетенции, разъясняя, кто отвечает за принятие каких решений и деятельность, как назначается право собственности и как координируется деятельность по управлению между бизнесом и ИТ. Это включает в себя определение владельцев данных, распорядителей, руководителей доменов, путей эскалации и форумов по управлению.
    • Метаданные и каталогизация.** Метаданные – данные о данных – необходимы для понимания, организации и управления информационными активами. Эта компетенция сочетает в себе управление метаданными с инструментами каталогизации и обнаружения данных для предоставления централизованного инвентаря активов данных, включая бизнес-определения, технические метаданные и происхождение данных. Управление метаданными также включает в себя определение минимальных стандартов метаданных, установление того, какие метаданные необходимо собирать и поддерживать, и где. Каталог данных строится на этой основе, делая метаданные доступными для поиска и доступными, позволяя пользователям находить, понимать и доверять данным, с которыми они работают. Это способствует прозрачности и демократизации данных, позволяя большему количеству пользователей в организации получать доступ к необходимым им данным.
    • Архитектура данных.** Эта статья посвящена фреймворку управления данными, а не архитектуре предприятия или фреймворку архитектуры решений. Таким образом, роль архитектуры данных здесь конкретно ограничена теми аспектами, которые пересекаются с управлением данными. Сюда входит обеспечение того, чтобы посредством программ изменений, процессов проектирования решений и механизмов архитектурного управления правильные средства контроля и соображения по управлению данными были встроены на раннем этапе жизненного цикла новых систем, потоков данных и процессов. Это соответствие имеет решающее значение, поскольку отдача от инвестиций в управление данными значительно выше, когда оно внедряется на этапе проектирования, а не когда средства контроля управления ретроспективно устанавливаются после создания и развертывания систем. Таким образом, архитектура данных становится фактором, способствующим устойчивому управлению данными в масштабах предприятия в соответствии с политикой.
    • Управление качеством данных.** Высококачественные данные являются основой надежной аналитики, искусственного интеллекта, нормативной отчетности и повседневных бизнес-операций. Эта компетенция охватывает ряд действий, которые обеспечивают соответствие данных цели, и ее обычно можно разбить на несколько различных областей. Во-первых, она начинается с понимания данных и формулирования четких бизнес-требований – какие данные необходимы, на каком уровне точности, своевременности или полноты и для какой цели. После установления этих требований организации могут обеспечить, чтобы правильные средства контроля качества данных были встроены в операционные процессы для предотвращения проблем в источнике (например, правила проверки в формах или автоматические проверки в каналах данных). Отдельная, но тесно связанная компетенция фокусируется на измерении самого качества данных, используя определенные метрики и методы профилирования для оценки данных по отношению к бизнес-требованиям. Кроме того, компетенция качества данных может включать в себя управление проблемами: структурированный процесс для выявления, документирования, отслеживания и устранения проблем с данными. Это позволяет организациям не только реагировать на проблемы с данными, но и анализировать основные причины и внедрять долгосрочные улучшения, обеспечивая надежность данных с течением времени.
    • Мастер-данные и справочные данные.** Управление мастер-данными и справочными данными управляет основными бизнес-сущностями данных (например, клиентами, продуктами, поставщиками), чтобы устранить дублирование, повысить согласованность и обеспечить единый источник истины. Во многих организациях эта компетенция поддерживается платформой управления мастер-данными (MDM). Платформа MDM обеспечивает централизованные рабочие процессы, создание золотой записи, сопоставление данных и синхронизацию между системами. Она играет решающую роль в обеспечении согласованности, целостности и точности данных, особенно для общекорпоративной отчетности и обработки транзакций.
    • Безопасность данных.** Безопасность данных обеспечивает защиту конфиденциальных, критически важных и регулируемых данных от несанкционированного доступа, неправильного использования или раскрытия в соответствии с политиками управления и схемами классификации данных. Это включает в себя внедрение и мониторинг контроля доступа на основе ролей, шифрование, токенизацию, маскирование, протоколы безопасной передачи данных и разделение обязанностей. Эффективное управление безопасностью данных также гарантирует, что меры безопасности соответствуют утвержденным политикам использования данных и регулярно тестируются и подтверждаются посредством проверок соответствия требованиям и оценок рисков.
    • Этика и конфиденциальность.** Технически, эту область можно интерпретировать как подпадающую под действие “Политики, стандарты и соответствие требованиям”, поскольку многие этические требования и требования конфиденциальности в конечном итоге регулируются посредством формальной политики. Однако часто стоит выделять их отдельно из-за их растущей актуальности и заметности – особенно с ростом искусственного интеллекта, алгоритмического принятия решений и усилением нормативного контроля. Эта компетенция фокусируется на обеспечении ответственного, справедливого и прозрачного использования данных путем определения этических принципов, практик конфиденциальности, процессов управления согласием и стратегий защиты персональных данных. Учитывая, насколько централизованными стали доверие и подотчетность в организациях, движимых данными, рассмотрение этики и конфиденциальности как отдельных компетенций помогает обеспечить, чтобы она получала необходимую видимость, право собственности и ресурсы.
    • Грамотность в области данных и культура.** Управление – это не только контроль, или не должно быть. Речь также идет о том, чтобы предоставить людям возможность эффективно и ответственно использовать данные. Эта компетенция способствует повышению грамотности в области данных, снабжая бизнес-пользователей и технических пользователей обучением, знаниями и инструментами, необходимыми им для интерпретации, доверия и действий на основе данных. Она включает в себя информационные кампании, образовательные ресурсы, передовые методы и поддержку самообслуживания для развития культуры, основанной на данных, во всей организации.

    Адаптация фреймворка

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

    • Безопасность данных и архитектура данных** иногда явно не выделяются как часть фреймворка компетенции управления данными. Во многих организациях они рассматриваются как ответственность ИТ-функции или функции технологий, и предполагается, что соображения управления встроены в более широкие процессы архитектурного управления и управления безопасностью.
    • Грамотность в области данных** иногда переименовывается или перефразируется, называя ее управлением изменениями, расширением возможностей данных, пропагандой данных или продвижением данных. Во всех случаях основная цель, которая заключается в расширении возможностей пользователей и развитии культуры, основанной на данных, остается очень похожей.
    • Этика и конфиденциальность** иногда полностью встроены в более широкую компетенцию “Политики, стандарты и соответствие требованиям”, особенно когда этические принципы и принципы конфиденциальности уже формально кодифицированы посредством политических инструментов. В этих случаях основное внимание уделяется пониманию соответствующих нормативных требований (например, GDPR, HIPAA или законов, связанных с искусственным интеллектом), преобразованию их в действенные политики и стандарты, а затем обеспечению соответствия посредством структур управления, обучения и механизмов надзора.
    • Некоторые организации проявляют интерес к выделению возможности искусственного интеллекта или аналитики в качестве отдельной компетенции или управлению ими (“Управление искусственным интеллектом”). Лично я считаю, что большая часть того, что требуется для обеспечения надежной аналитики и искусственного интеллекта, может и должна обрабатываться с помощью существующих компетенций. Тем не менее, небольшое число организаций, с которыми я работал, предпочли рассматривать это как отдельную компетенцию, особенно когда управление моделями искусственного интеллекта/машинного обучения является текущим приоритетом.

    Реализация (внедрение и исполнение)

    В то время как стратегия и области компетенции управления данными в основном универсальны, реализация управления может значительно варьироваться между организациями, отраслями и нормативной средой. Этот компонент фокусируется на том, как управление структурировано, встроено и введено в действие в организации. Речь идет о том, как вы “делаете” управление – как вы стимулируете исполнение на местах.

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

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

    • Основные роли и обязанности**

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

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

    Управление может применяться в значимых бизнес-контекстах, известных как домены данных. Эти домены определяют логические группировки данных на основе того, как они используются в организации. Хотя конкретные домены будут различаться в зависимости от отрасли (следовательно, эта часть фреймворка обязательно является пользовательской), следующие примеры иллюстрируют, как розничная компания может структурировать свои домены данных:

    • Клиент** – Информация о физических или юридических лицах, которые покупают или используют ваши продукты или услуги.
    • Продукт** – Информация о предлагаемых товарах или услугах, в том числе структура, цены и описания.
    • Поставщик** – Информация о поставщиках, их контрактах и результатах их деятельности.
    • Финансовый** – Записи о доходах, расходах, бюджетах и других финансовых транзакциях.
    • Сотрудник** – Информация о персонале, в том числе роли, вознаграждение и история отдела кадров.
    • Продажи** – Данные о покупках, транзакциях и деятельности, приносящей доход.
    • Запасы и цепочка поставок** – Отслеживает уровни запасов, перемещение товаров и процессы доставки.
    • Маркетинг и кампании** – Захватывает кампании, расходы на рекламу и стратегии таргетинга.
    • Соответствие требованиям и нормативным требованиям** – Данные, используемые для выполнения юридических, аудиторских и нормативных обязательств.
    • Цифровая и веб-аналитика** – Измеряет, как пользователи взаимодействуют с цифровыми платформами и веб-сайтами.

    Технологическое обеспечение

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

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

    • Платформа управления данными.** Эти платформы позволяют организациям определять и управлять правом собственности на данные, обязанностями по управлению, рабочими процессами и утверждениями, а также облегчают операции управления, такие как ведение журналов проблем, запросы на изменение данных и подтверждение. Все чаще они также поддерживают управление проблемами на основе рабочих процессов, позволяя организациям назначать, отслеживать и решать проблемы управления данными между командами. Эти инструменты служат основой для того, чтобы сделать управление действенным и видимым в разных доменах.
    • Примеры: Collibra, Informatica Axon, Alation Stewardship Workbench
    • Качество данных.** Обеспечение высокого качества данных требует специализированных инструментов мониторинга, профилирования, очистки и исправления. Эти решения выявляют несоответствия, отсутствующие значения и ошибки, позволяя командам исправлять проблемы с данными в режиме реального времени и обеспечивать соблюдение стандартов качества данных в разных системах.
    • Примеры: Informatica Data Quality, Talend, Ataccama ONE
    • Каталог данных и наблюдаемость.** Каталоги данных предоставляют центральный инвентарь активов данных, объединяя метаданные, происхождение и бизнес-определения для повышения обнаружения и прозрачности данных. Все чаще каталоги объединяются с инструментами наблюдаемости данных для мониторинга работоспособности, свежести и поведения данных в режиме реального времени. Некоторые инструменты также предлагают автоматическое сканирование и классификацию данных по всему ландшафту данных.
    • Примеры: Alation, Collibra, BigID
    • Управление мастер-данными.** Платформы MDM необходимы для управления основными бизнес-сущностями, такими как клиенты, продукты и поставщики. Эти инструменты поддерживают сопоставление данных, создание золотой записи, рабочие процессы проверки и синхронизацию мастер-данных в разных системах. Они являются ключом к обеспечению согласованности в масштабах предприятия, удалению дубликатов и единому источнику истины для ключевых доменов данных.
    • Примеры: Informatica MDM, Reltio
    • Решения для обеспечения безопасности данных.** Эта категория включает в себя инструменты, которые управляют контролем доступа, шифрованием, маскированием, токенизацией и безопасной передачей данных. Она также поддерживает рабочие процессы запросов на доступ к данным, гарантируя, что только авторизованные пользователи могут получить доступ к конфиденциальным или классифицированным данным на основе политик управления и классификации данных.
    • Примеры: Immuta, Privacera, Microsoft Purview Data Security
    • Мониторинг этики, конфиденциальности и соответствия требованиям.** Эти инструменты поддерживают обеспечение соблюдения и мониторинг этичного использования данных, правил конфиденциальности (например, GDPR, HIPAA) и внутренних политик. Они предоставляют возможности для управления правами субъектов данных, отслеживания согласия, контрольных журналов и мониторинга использования, которые имеют решающее значение для укрепления доверия и выполнения нормативных обязательств.
    • Примеры: BigID, OneTrust, Collibra Protect

    При создании этой части фреймворка вы можете заменить общие категории фактическими инструментами и платформами, которые вы используете, например, перечислив Collibra вместо “платформы управления данными” или Informatica Data Quality вместо “инструментов качества данных”. Это обеспечивает более ощутимое, специфичное для организации представление о том, как конкретные технологии обеспечивают ключевые возможности.

    Управление управлением данными

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

    • Политики и стандарты**

    Политики и стандарты являются основой управления данными. Они определяют правила, ожидания и обязанности, как правила дорожного движения на дороге. Все остальное во фреймворке указывает на них. Политики задают направление, а стандарты воплощают его в жизнь:

    • Политика** говорит, что необходимо сделать. Это четкое правило, например, “данные о клиентах должны быть защищены”.
    • Стандарт** говорит, как это сделать. Он дает подробности, например, “зашифруйте данные о клиентах и храните их в течение 3 лет”.
    • Форумы управления**

    Форумы управления обеспечивают необходимый надзор, координацию и структуры принятия решений для управления данными. Хотя конкретные форумы зависят от структуры организации и потребностей в управлении, к распространенным типам относятся:

    • Совет по управлению корпоративными данными.** Центральный орган, который устанавливает стратегическое направление, решает межфункциональные вопросы и обеспечивает соответствие управления бизнес-целям.
    • Форумы управления данными, ориентированные на домен.** Группы, которые осуществляют надзор за управлением в пределах конкретных доменов данных (например, клиенты, финансы, продукты), обеспечивая реализацию политик на уровне домена и эскалируя критические вопросы на корпоративный уровень.
    • Региональные форумы управления или форумы управления бизнес-подразделением.** В глобальных или децентрализованных организациях управление данными может быть структурировано по региональному, бизнес-подразделению или дивизионному признаку для учета местных требований, нормативных различий и операционных потребностей.
    • Рабочие группы, ориентированные на конкретные компетенции.** Некоторые организации учреждают группы управления, ориентированные на конкретные компетенции, такие как качество данных, управление метаданными, безопасность данных или этика данных, для продвижения передовых методов и технической реализации.
    • Метрики и измерение производительности**

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

    • Управление изменениями**

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

    Заключение

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

    Распределённое хранилище данных с Bacalhau и DuckDB

    Оригинал тут: https://blog.bacalhau.org/p/distributed-data-warehouse-with-bacalhau

    Это часть 5-дневной серии о Bacalhau 1.7

    День 1: Анонс Bacalhau 1.7.0: Расширение возможностей предприятий за счет улучшенной масштабируемости, управления заданиями и поддержки
    День 2: Масштабирование вычислительных задач с помощью разделенных заданий Bacalhau
    День 3: Упрощение безопасности: Облегчение модели аутентификации Bacalhau
    День 4: Использование разделения AWS S3 с Bacalhau

    Это пятая часть – Распределенное хранилище данных с Bacalhau и DuckDB

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

    В этой статье Bacalhau используется для организации распределенной обработки, а DuckDB предоставляет возможности SQL-хранения и запросов для некоторой фиктивной информации о продажах, расположенной в ЕС и США.

    Предварительные требования

    Для воспроизведения этого руководства вам понадобятся следующие компоненты:

    • Bacalhau CLI
    • Docker и Docker Compose
    • Пример многорегиональной настройки:
    git clone https://github.com/bacalhau-project/examples.git

    Архитектура

    Пример файла Docker Compose и определения заданий Bacalhau в репозитории примеров имитируют следующую архитектуру:

    • Оркестратор Bacalhau:** Центральная панель управления для распределения заданий
    • Вычислительные узлы:** Распределены по регионам, работают близко к данным
    • Региональное хранилище:** Региональные хранилища данных, использующие MinIO в этой настройке
    • DuckDB:** Механизм SQL-запросов, работающий на каждом вычислительном узле. Bacalhau использует пользовательский образ, который добавляет несколько определяемых пользователем функций для помощи в разделении больших наборов данных между узлами на основе следующих методов:
      • `partition_by_hash`: Равномерное распределение файлов по разделам
      • `partition_by_regex`: Разделение на основе шаблонов
      • `partition_by_date`: Разделение на основе времени

    Вы можете найти более подробную информацию о том, как работают эти функции, в документации по пользовательскому образу.
    Вы можете увидеть настройку каждого компонента в файле Docker Compose. Создайте архитектуру, выполнив следующую команду:

    docker compose up -d

    Файл Docker Compose использует несколько файлов конфигурации Bacalhau, которые вы можете увидеть в папке configuration, где вычислительные узлы помечены как узлы US и EU соответственно.

    Они также настраивают узлы оркестратора для записи данных в региональные бакеты MinIO.

    Создание образцов данных

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

    Перейдите в каталог заданий

    cd ../jobs

    Сгенерируйте данные для США:

    bacalhau job run -V Region=us -V Events=3000 \
    -V StartDate=2024-01-01 -V EndDate=2024-12-31 \
    -V RotateInterval=month data-generator.yaml

    Сгенерируйте данные для ЕС:

    bacalhau job run -V Region=eu -V Events=3000 \
    -V StartDate=2024-01-01 -V EndDate=2024-12-31 \
    -V RotateInterval=month data-generator.yaml

    Доступ к данным для анализа

    Bacalhau поддерживает два способа доступа к региональным данным:

    • Источники ввода Bacalhau**
    InputSources:
        - Type: s3
          Source:
            Bucket: local-bucket
            Key: "data/*"

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

    • Прямой доступ DuckDB**
    SET VARIABLE files = (
        SELECT LIST(file)
        FROM partition_by_hash('s3://local-bucket/**/*.jsonl')
        );
        SELECT * FROM read_json_auto(getvariable('files'));

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

    Выполнение анализа

    После размещения данных вы можете отправлять задачи анализа в виде заданий Bacalhau. В каждом случае, после запуска задания используйте `

    bacalhau job describe <job_id>

    `, чтобы увидеть результаты задания, передав идентификатор задания из вывода команды `

    bacalhau job run

    `. Во всех примерах показано использование данных из США. Вы также можете изменить `Region` на `eu`, чтобы увидеть результаты из региона ЕС.

    • Анализ месячных трендов**
    bacalhau job run -V Region=us monthly-trends.yaml

    Определение задания.

    Пример вывода:

    month      | total_txns | revenue | unique_customers | avg_txn_value
    ------------|------------|----------|------------------|---------------
    2024-03-01 | 3,421      | 178,932  | 1,245            | 52.30
    2024-02-01 | 3,156      | 165,789  | 1,189            | 52.53
    2024-01-01 | 2,987      | 152,456  | 1,023            | 51.04
    • Оперативный мониторинг**
    • Hourly Operations (Почасовые операции)
      • Отслеживает метрики работоспособности
      • Контролирует процент успешных транзакций
      • Показывает почасовые закономерности
    bacalhau job run -V Region=us hourly-operations.yaml
    • Anomaly Detection (Обнаружение аномалий)
      • Идентифицирует необычные паттерны
      • Использует статистический анализ
      • Отмечает значительные отклонения
    bacalhau job run -V Region=us anomaly-detection.yaml
    • Бизнес-аналитика**
    • Product Performance (Эффективность продукта)
      • Анализирует эффективность категорий
      • Отслеживает долю рынка
      • Показывает паттерны продаж
    bacalhau job run -V Region=us product-performance.yaml
    • Monthly Trends (Месячные тренды)
      • Долгосрочный анализ трендов
      • Месячные агрегации
      • Ключевые бизнес-показатели
    bacalhau job run -V Region=us monthly-trends.yaml
    • Анализ клиентов**
    • Customer Segmentation (Two-Phase) (Сегментация клиентов (Двухфазная))
      • Фаза 1: Вычисление локальных метрик
      • Фаза 2: Объединение и сегментация
      • Запустите Фазу 1
    bacalhau job run -V Region=us customer-segments-phase1.yaml
    • Запомните ID задания и запустите Фазу 2
    bacalhau job run -V Region=us -V JobID=<phase1-job-id> customer-segments-phase2.yaml

    Итог

    В этой статье объединены распределенные вычислительные мощности Bacalhau с гибкими возможностями SQL DuckDB для создания распределенного хранилища данных, разнесенного по регионам. Примеры заданий Bacalhau предоставляют ряд аналитических задач, от оперативного мониторинга до сегментации клиентов, при этом данные остаются в исходном месте и используются запросы SQL к данным, хранящимся в S3-совместимых бакетах.

    Внедрение и оптимизация Apache DolphinScheduler в NetEase Mail

    Перевод: Внедрение и оптимизация Apache DolphinScheduler в NetEase Mail

    Оригинал: https://apachedolphinscheduler.substack.com/p/netease-mails-migration-journey-to

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

    Докладчик:

    Лэй Баосинь, инженер больших данных NetEase Mail

    Предпосылки проекта и выбор платформы

    NetEase Mail – это ведущий китайский поставщик услуг электронной почты, являющийся частью крупной интернет-компании NetEase. Вот основные характеристики и информация о компании:

    * Широкая линейка продуктов: NetEase Mail предлагает разнообразные почтовые услуги, включая:
    * Бесплатная почта: Наиболее известные сервисы 126.com и 163.com, хорошо известные в Китае.
    * Корпоративная почта: Предназначена для бизнеса, предлагая более надежные и профессиональные решения.
    * VIP-почта: Почтовые сервисы премиум-класса с расширенными функциями и поддержкой.
    * Долгая история: Существует с 1997 года, что говорит о стабильности и накопленном опыте.
    * Огромная база пользователей: Благодаря популярности сервиса в Китае, NetEase Mail обслуживает миллионы пользователей.
    * Технологическая зрелость: NetEase Mail активно использует современные технологии (например, Kubernetes, Apache DolphinScheduler и Streampark) для обработки больших объемов данных, планирования задач и улучшения общей эффективности.
    * Ориентация на стабильность и безопасность: Компания уделяет большое внимание предоставлению стабильных, безопасных и эффективных почтовых услуг.
    * Инновационное развитие: NetEase Mail постоянно совершенствует свои сервисы, внедряя новые функции, интегрируя искусственный интеллект и оптимизируя инфраструктуру.
    * Вклад в opensource: NetEase Mail активно контрибьютит в open-source проекты, например, SeaTunnel, что говорит об их технической экспертизе и желании делиться разработками с сообществом.

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

    История развития NetEase Mail

    С момента запуска в 1997 году, NetEase Mail прошла несколько важных этапов развития, эволюционировав от 126 Mail, 163 Mail до Mail Master, постоянно расширяя линейку продуктов и спектр услуг. Сегодня NetEase Mail создала диверсифицированную бизнес-систему, включающую бесплатную почту, корпоративную почту, VIP-почту и многое другое, предоставляя стабильные, безопасные и эффективные услуги электронной почты огромному количеству пользователей.

    *Из рисунка выше видно, что NetEase Mail внедрила Apache DolphinScheduler в 2023 году.*

    Сценарии применения данных

    В ежедневной работе NetEase Mail необходимо обрабатывать огромные объемы данных журналов бизнес-операций. Эти данные требуют постоянного холодного и горячего резервного копирования в течение более полугода, а журналы бизнес-операций обрабатываются и хранятся отдельно как в автономном режиме (HDFS), так и в режиме реального времени (ClickHouse). В то же время, для обеспечения доступности бизнеса, критически важные звенья, такие как основные механизмы отправки/получения электронной почты и аутентификации пользователей, требуют эффективной обработки данных и поддержки планирования задач.

    Предпосылки выбора и преимущества DolphinScheduler

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

    Развертывание платформы и текущее использование

    Путь обновления и преобразования на основе DS

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

    Архитектура данных и текущее использование

    В настоящее время в отделе NetEase Mail платформа DolphinScheduler развернута в архитектуре 3 Master, 5 Worker и работает на Kubernetes (k8s). Платформа поддерживает более 1200 автономных задач планирования для таких сервисов, как защита от спама, контроль рисков, AI и многого другого, с ежедневным количеством запусков, превышающим 50 000.

    *На уровне архитектуры данных, благодаря интеграции DolphinScheduler с Streampark, было достигнуто сочетание автономного планирования и обработки задач Flink в режиме реального времени. Между тем, самостоятельно разработанные компоненты, такие как центр метаданных и портал данных, формируют уровень обслуживания данных, обеспечивая поддержку управления данными и сервисов.*

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

    Типы задач и поддержка приложений

    Платформа DolphinScheduler стала основной платформой планирования задач внутри отдела, предлагая широкий спектр типов задач, включая Spark, Shell, SQL, SeaTunnel, Python и многое другое. Эти задачи обеспечивают надежную поддержку данных для нисходящих приложений, таких как управление метаданными, отчеты BI и исследования и разработки данных, удовлетворяя потребности в обработке данных в различных бизнес-сценариях.

    Интеграция функциональности распространения данных и методы оптимизации

    Интеграция функциональности распространения данных

    Что касается планирования и распространения данных, команда NetEase Mail выявила несколько проблем, которые необходимо было решить для повышения эффективности и возможностей обработки данных, в том числе:

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

    Чтобы решить эти проблемы, команда NetEase Mail интегрировала функциональность распространения данных в платформу DolphinScheduler.

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

    Эта функциональность предлагает два режима — быструю конфигурацию и пользовательскую конфигурацию. Она может автоматически генерировать операторы DDL таблицы на основе параметров формы и выполнять логику создания таблицы, одновременно генерируя SQL для промежуточной обработки и конфигурации задач синхронизации данных, и, наконец, вызывать внутренние методы Dolphin для создания рабочих процессов и задач планирования.

    В результате внедрения этой функциональности среднее время обработки промежуточных данных сократилось с 1 часа до 20 минут, что увеличило эффективность разработки на 67%, и она уже поддерживает более 40 онлайн-задач обработки данных, при этом количество пользователей постоянно растет.

    Оптимизация методов автономного планирования для повышения отказоустойчивости

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

    Чтобы решить эту проблему, команда переработала логику обработки сигналов ожидания и сбоев в методе getModelDependResult класса DependentExecute в модуле dolphinscheduler-master. Когда статус зависимой задачи — FAILED, статус в dependResultList изменяется на WAITING, чтобы нижестоящие задачи получали статус WAITING, а не FAILED.

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

    Интеграция и оптимизация компонентов SeaTunnel, повышение эффективности синхронизации данных

    Чтобы удовлетворить потребности в крупномасштабной синхронизации данных для нового бизнеса, команда внедрила инструмент интеграции данных SeaTunnel и развернула его в кластере Kubernets (k8s) в режиме разделенного кластера.

    За счет оптимизации плагинов SeaTunnel NetEase Mail предлагает как пользовательские, так и быстрые режимы конфигурации, тем самым снижая порог использования.

    Принцип реализации

    С точки зрения реализации, решение поддерживает как конфигурацию на основе форм, так и пользовательскую конфигурацию. Режим конфигурации на основе форм генерирует логику взаимодействия для конфигурации SeaTunnel (ST) через параметры формы и поддерживает конфигурацию дополнительных пользовательских параметров, а также конфигураций JVM на уровне задач.

    Бэкэнд получает параметры формы для генерации необходимой конфигурации для контекста выполнения задачи. Он разрабатывает интерфейс IConfigGenerator для реализации логики генерации Source и Sink для каждого источника данных, и, наконец, класс SeatunnelConfigGenerator используется для генерации окончательной конфигурации ST.

    Развертывание и настройка

    Что касается развертывания и настройки, то кластер SeaTunnel использует архитектуру 2 Master, 5 Worker для обеспечения высокой доступности и производительности синхронизации.

    За счет оптимизации логики сегментирования для HDFS, HIVE и MultiTable Source, считыватель получает более сбалансированные сегменты, что повышает производительность синхронизации данных. Соответствующие оптимизации были отправлены в виде PR в сообщество.

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

    Практический пример проекта: перенос задач и практика изоляции ресурсов

    Эффективная миграция задач с платформы Mammoth на DolphinScheduler

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

    В конце концов, после изучения представления зависимостей задач на платформе DolphinScheduler, было решено перейти на DolphinScheduler.

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

    Исходя из различных соображений, после обсуждения и исследований NetEase Mail решила принять решение об автоматизированном решении синхронизации. Это решение автоматически собирает метаданные задач и lineage задач со старой платформы, преобразует их в формат конфигурации задач платформы Dolphin и одновременно добавляет зависимости задач. Наконец, рабочие процессы быстро создаются через интерфейс Dolphin. Для достижения этого процесса NetEase Mail использовала инструмент синхронизации PyDolphinScheduler, официально предоставляемый DolphinScheduler — Python API, который позволяет определять рабочие процессы с использованием кода Python, а именно, “workflow as code”.

    Кроме того, NetEase Mail также собирала метаданные и lineage задач Mammoth через систему метаданных, пакетно переписывала задачи Mammoth в задачи DolphinScheduler и автоматически добавляла узлы зависимостей в соответствии с lineage.

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

    Практика изоляции групп Worker

    Следующая практика проекта — это практика изоляции ресурсов на основе группировки Worker в DolphinScheduler.

    В повседневном использовании платформы NetEase Mail DolphinScheduler ключевым бизнес-сценарием является поддержка задач планирования онлайн-мониторинга QA. Эти задачи характеризуются высокой частотой планирования, в основном на уровне минут; существует большое количество задач, при этом количество задач, связанных с мониторингом, в настоящее время достигает 120+.

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

    Однако этот вид вызова запустит множество процессов JVM на рабочих узлах (worker nodes). В это время, если некоторые критически важные задачи планирования также запланированы на тот же рабочий узел, и OOM killer запускается из-за нехватки памяти, эти критически важные задачи, как правило, имеющие более высокое использование памяти, могут получить более высокий балл OOM и с большей вероятностью будут завершены, что приведет к нестабильному выполнению критически важных задач.

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

    Поэтому команда NetEase Mail рассматривала возможность использования решения для изоляции Worker group для решения вышеуказанных проблем.

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

    На практике NetEase Mail создала на платформе различные группы Worker, содержащие различные узлы Worker, включая такие группы, как Default, AI, Monitoring, Hadoop и группы задач с большими ресурсами, чтобы избежать проблем блокировки задач и состязания за ресурсы, оптимизировать распределение ресурсов и повысить общую утилизацию ресурсов и производительность платформы.

    Эта практика эффективно решила такие проблемы, как блокировка задач, вызванная высокой частотой планирования задач мониторинга QA, и проблемы OOM узла worker, вызванные высоким запросом ресурсов задачами Т+1 рано утром, тем самым снизив операционные риски.

    Итоги и перспективы

    Резюме практики

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

    Значение и преимущества платформы

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

    Обмен опытом и идеями

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

    Перспективы на будущее

    Заглядывая в будущее, команда NetEase Mail планирует продолжить изучение и продвижение в следующих направлениях:

    • Внедрение ИИ:** Интеграция возможностей ИИ и LLM для достижения более интеллектуальных и удобных для пользователя процессов ETL обработки данных, повышая уровень автоматизации и интеллектуализации обработки данных.
    • Управление данными:** Интеграция данных планирования DolphinScheduler с внутренним центром метаданных для достижения интеллектуального сбора и анализа lineage данных/задач и карт данных, обеспечивая сильную поддержку управления данными.
    • Оптимизация платформы:** Дальнейшая оптимизация производительности и функциональности платформы DolphinScheduler для повышения ее стабильности и надежности, что позволит лучше удовлетворять растущие потребности в обработке данных.
    • Внедрение DATA OPS:** Достижение интеграции и консолидации между платформой DolphinScheduler и другими системами платформ данных, содействие автоматизации интеграции и передачи данных, а также построение более эффективной экосистемы данных.

    В заключение

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

    DataHub 1.0

    DataHub 1.0 уже здесь! Получите максимальную отдачу от нового UX

    00:00:00 Введение и анонсы

    • Приветствие участников и анонс гостей.
    • Мэгги расскажет об обновлении дорожной карты DataHub.
    • Паулина и Анна представят новый UX DataHub 10.
    • Харшел из команды DataHub поделится новостями от Block.
    • Шершанка, технический директор и соучредитель, подведет итоги.

    00:01:01 Анонс DataHub 10

    • Анонс DataHub 10 и ссылки на блог и видеоролики.
    • Видео о начале проекта DataHub.

    00:02:33 Важность DataHub

    • DataHub как важный компонент инфраструктуры.
    • Переход на DataHub и отключение собственного инструмента lineage.
    • Расширение модели DataHub для поддержки элементов данных.

    00:04:11 Обновления дорожной карты DataHub

    • Мэгги рассказывает о последних обновлениях DataHub.
    • Четыре столпа: открытие, управление, метаданные и наблюдаемость.
    • Фокус на открытии данных и интеграции с новыми инструментами.

    00:05:09 Открытие данных

    • Фокус на человеко-ориентированном понимании данных.
    • Интеграция с новыми инструментами, такими как MLflow и Cockroach DB.
    • Разработка новых интеграций, включая Hex и Vertex AI.

    00:07:32 Управление данными

    • Введение иерархической родословной для упрощения графиков.
    • Расширение поддержки терминов в глоссарии.
    • Обеспечение всеобщего доступа к данным и централизованного соответствия требованиям.

    00:10:52 Наблюдаемость данных

    • Обеспечение доступности и демократизация качества данных.
    • Централизованное отслеживание и разрешение инцидентов.
    • Улучшения в утверждениях и расширенный поток инцидентов.

    00:12:53 Основные направления проекта

    • Фокус на API и SDK для автоматизации регистрации, обогащения и поиска данных.
    • Важность качества обслуживания и аудита ведения журнала.
    • Улучшение отслеживаемости событий в центре обработки данных.

    00:13:40 Пакет SDK для Python

    • Работа над улучшением пакета SDK для Python версии 2.
    • API для регистрации, обогащения и извлечения данных.
    • Вклад в документацию для улучшения понимания улучшений.

    00:14:42 Учетные записи служб

    • Внедрение учетных записей служб для команд.
    • Управление автоматизацией и рабочими процессами.
    • Призыв к обратной связи и сотрудничеству.

    00:15:41 Будущие обновления и DataHub Cloud

    • Опрос о будущих обновлениях DataHub и DataHub Cloud.
    • DataHub Cloud как управляемый сервис с дополнительными возможностями.
    • Переход к повестке дня и представлению UX-дизайнеров.

    00:16:47 Дизайн продуктов в DataHub

    • Инвестиции в дизайн продуктов в DataHub.
    • Важность дизайна для инноваций и постоянного совершенствования.
    • Использование данных и отзывов пользователей для улучшения продукта.

    00:18:44 Принципы дизайна

    • Философия дизайна: простота, обратная связь, последовательность.
    • Создание системы проектирования в Figma и Storybook.
    • Внедрение токенов и принципов для компонентов.

    00:19:43 Примеры изменений

    • Изменения в цветах и стилях кнопок и диаграмм.
    • Введение специальных дизайнерских жетонов.
    • Постепенные обновления пользовательского интерфейса.

    00:20:54 Панель навигации и структурированные свойства

    • Улучшение панели навигации для удобства пользователей.
    • Гибкость отображения структурированных свойств.
    • Постоянное совершенствование продукта на основе отзывов пользователей.

    00:23:37 Введение и принципы последовательности

    • Обсуждение предварительных просмотров вкладки “Стоп”.
    • Введение в принципы согласованности и последовательности.
    • Создание графической библиотеки для визуализации данных.

    00:24:02 Итеративность и визуализация данных

    • Итеративный процесс создания графических элементов.
    • Примеры различных диаграмм и их эволюция.
    • Переход от высокой плотности данных к более сжатым диаграммам.

    00:25:46 Новые функции и панель вкладок

    • Введение новой панели вкладок “Статистика”.
    • Улучшение представления данных для пользователей.
    • Демонстрация новых функций и взаимодействий.

    00:28:27 Взаимодействие с пользователями

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

    00:31:19 Обнаружение данных с агентами ИИ

    • Введение в тему обнаружения данных с агентами ИИ.
    • Представление Сэма Осборна и его роли в компании Block.
    • Обзор управления данными и блокчейна в компании.

    00:32:39 Проблемы и перспективы управления данными

    • Переход на облачный сервис Data Hub.
    • Проблемы и возможности каталогизации данных.
    • Введение агентов ИИ для улучшения управления данными.

    00:34:33 Демонстрация работы с Cloud Desktop

    • Cloud Desktop настроен для взаимодействия с LLM.
    • Возможность задавать вопросы о данных, связанных с домашними животными.
    • Программа ищет данные на сервере Data Hub и предоставляет резюме.

    00:35:23 Анализ данных и ключевые показатели

    • Программа ищет данные и предоставляет информацию о ключевых показателях.
    • Возможность задавать дополнительные вопросы о профилях домашних животных.
    • Программа показывает количество строк и активные инциденты.

    00:37:05 Использование Slack и Data Hub

    • Возможность использовать Slack для планирования изменений в Data Hub.
    • Программа помогает определить, на какие данные повлияет изменение.
    • Возможность узнать, кому нужно сообщить об изменениях.

    00:38:38 Демонстрация работы с Goose

    • Goose – агент искусственного интеллекта с открытым исходным кодом.
    • Интеграция с локальной и удаленной системами через расширения.
    • Пример использования для поиска данных и владельцев данных.

    00:43:39 Демонстрация работы в среде IDE

    • Проект DBT с использованием идентификатора на базе искусственного интеллекта.
    • Возможность проверять изменения в Data Hub и их влияние.
    • Программа помогает избежать проблем и обеспечивает безопасность.

    00:45:59 Введение в агентов искусственного интеллекта

    • Агенты организуют контекстное управление разговорами с LLM.
    • Интеграция с системами через протокол MCP.
    • Агенты взаимодействуют с LLM и внешними службами данных.

    00:47:50 Модель контекстного протокола MCP

    • MCP – открытый стандарт для использования данных и инструментов в контексте взаимодействия с ИИ.
    • Охватывает аспекты запроса данных, вызова служб и чтения/записи информации.
    • Может использоваться для конкретных случаев использования и внешних серверов.

    00:48:41 Агенты и спецификация MCP

    • Представлен агент искусственного интеллекта с открытым исходным кодом codename goose.
    • Спецификация MCP выпущена компанией Anthropic и является стандартным протоколом для ИИ.
    • Обсуждается сотрудничество с ACRIL и улучшения Python SDK для приложений ИИ.

    00:49:45 Демонстрация и использование codename goose

    • Codename goose поддерживает стандарт MCP и позволяет подключаться к различным моделям и поставщикам.
    • Демонстрационное видео показывает, как codename goose помогает в выполнении различных задач и упрощении рабочих процессов.

    00:50:12 Интеграция и улучшения

    • Агенты, стандарты MCP и центр обработки данных помогают быстрее подключать пользователей и интегрироваться с внутренними службами.
    • Обсуждаются улучшения Python SDK для поиска сущностей и lineage, оптимизированных для интеграции с ИИ.

    00:51:16 Будущее MCP

    • В спецификацию MCP добавлены элементы авторизации с помощью OAuth и элементы для выборки и потоковой передачи.
    • Ожидается появление множества официальных и неофициальных серверов MCP для различных приложений и сервисов.

    00:51:50 Философия Data Hub

    • Спецификация MCP вписывается в философию Data Hub, подчеркивающую важность стандартов и переносимости.
    • Внедряются стандарты Open Lineage, Iceberg REST Catalog и MCP Model для более эффективного взаимодействия с метаданными.

    00:53:02 Рекомендации и советы

    • Видео на YouTube и ресурсы на GitHub подробно рассказывают о стандарте MCP.
    • Профессиональный совет: делайте сеансы короткими, обобщайте данные и записывайте их в текст для предотвращения разрыва контекстного окна.

    00:53:57 Заключение

    • Агенты искусственного интеллекта и центр обработки данных помогают в обнаружении данных.
    • Проект codename goose и его интеграция с Data Hub являются важными шагами в развитии ИИ.

    00:54:38 Введение и прогресс проекта

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

    00:55:50 Проблемы и решения центра обработки данных

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

    00:56:32 Важность контекста для различных ролей

    • Потребители данных ищут доверие и доступность данных.
    • Специалисты по обработке данных беспокоятся о своевременности и изменениях.
    • Руководители команд следят за доступом и использованием данных.

    00:57:25 Управление искусственным интеллектом

    • Важно отслеживать данные, используемые моделями искусственного интеллекта.
    • Управление искусственным интеллектом должно быть машинно-ориентированным.
    • Понимание доступа моделей к персональным данным и автономных агентов.

    00:59:16 Переход к машинно-ориентированному управлению

    • Агенты будут действовать автономно, преобразовывать и создавать данные.
    • Важно отслеживать действия агентов и гарантировать их правильность.
    • Центр обработки данных помогает создавать контекст для машин и агентов.

    01:00:53 Заключение и благодарности

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

    Earlier Ctrl + ↓