После 5 итераций за 5 лет эволюция рекомендательной системы Douyin
После 5 итераций за 5 лет эволюция рекомендательной системы Douyin

Автор | Го Вэньфэй

Редактор | Цай Фанфанг

В 2021 году общий объем MAU продуктов ByteDance превысил 1,9 миллиарда. В контексте продуктового бизнеса, представленного Douyin, Toutiao, Xigua Video и др., мощная система рекомендаций особенно важна. Flink предоставляет очень мощные модули SQL и модули вычислений с отслеживанием состояния. В настоящее время в сценарии рекомендаций по байтам функции простого подсчета в реальном времени, функции подсчета окон и функции последовательности полностью перенесены в решение Flink SQL. Объединив возможности вычислений Flink SQL и Flink с отслеживанием состояния, мы создаем универсальную унифицированную архитектуру вычислений с базовыми функциями следующего поколения, надеясь эффективно поддерживать создание часто используемых базовых функций с отслеживанием и без сохранения состояния.  

Деловой фон

Для таких продуктов ByteDance, как Toutiao, Douyin и Xigua Video, рекомендации, основанные на потоках новостей и краткосрочных эффектах, являются основными бизнес-сценариями. Основным топливом рекомендательных систем являются функции, и эффективное создание базовых функций имеет решающее значение для итерации систем бизнес-рекомендаций.

Основные бизнес-сценарии

  • Тик Ток、Короткое видео Volcano и другие варианты представляют собой сценарии рекомендаций для коротких видеоприложений, такие как рекомендации по потоку каналов.、сосредоточиться различные сценарии, такие как на, общение в социальных сетях и пребывание в одном городе. В общем, наверняка есть. 6 100 миллионов + шкала DAU;
  • заголовки、арбузждатьдляпредставлятьиз Feed Сценарии рекомендаций по информационным потокам, такие как Feed поток、сосредоточиться на, подканалы и другие разнообразные сцены, их в стране сотни миллионовшкала DAU; Болевые точки и проблемы бизнеса

в настоящий момент Рекомендуемые сценарии ByteDanceБазаособенностьиз Статус производства“Пусть расцветают сто цветов”。Оффлайнособенностьвычислитьизосновной режим Все прошло Потребление Kafka、BMQ、Hive、HDFS、Abase、RPC и другие источники данных, основанные на Spark、Flink Механизм вычислений выполняет расчеты функций, а затем записывает результаты функций в онлайн- и автономное хранилище. Различные типы вычислений базовых функций разбросаны по разным сервисам, им не хватает бизнес-абстракции, что приводит к увеличению затрат на эксплуатацию и обслуживание, а также к проблемам со стабильностью.

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

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

огромный бизнес:Тик Ток、заголовки、арбуз、вулканждатьпродуктизданныешкала Может достигать среднего дневного значения PB уровень. Например, в сценарии Доуин в вечерний час пик Feed Миллионы просмотров QPS,Клиент сообщает строку пользователядляданныеДо десятков миллионов IOPS. Бизнес-сторона ожидает, что функциональные задачи могут выполняться непрерывно и использоваться в любое время. lag и т. д., что требует очень высокой стабильности при создании функций.

Высокие требования к функциям в режиме реального времени:прямая трансляция、Электронная коммерция、короткое видеодляпредставлятьиз Рекомендуемый сценарий,для гарантирует рекомендуемые результаты,Своевременность автономного создания функций реального времени должна быть нормальной и стабильной на минутном уровне.

Лучше из-за масштабируемости и гибкости:вместе сбизнес Сцены продолжают усложняться,особенностьнуждаться Дажедля Гибкий。Из статистики、последовательность、свойствотипизособенность Производство,В связи с необходимостью гибкого поддержания оконных функций, многомерных функций и т. д.,бизнеспартийные нуждыособенность Китай и Тайвань могутподдерживатьпостепенно выведено изизновыйособенностьтипинуждаться。

Быстрая бизнес-итерация:особенность Средняя платформапредоставил Длябизнесиз DSL Необходимо достаточное количество сценариев, а ссылка на производство функций позволяет бизнесу писать как можно меньше кода. Базовый вычислительный механизм и механизм хранения данных полностью прозрачны для бизнеса, что полностью освобождает от бремени бизнес-вычислений, выбора и настройки хранилища. полностью реализуя крупномасштабное производство основных функций в режиме реального времени, постоянно повышая производительность функций;

итерационный процесс эволюции

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

Рекомендуемый сценарий развития сервиса объектов

Среди них важным узлом является начало 2020 года. Мы начали внедрять технологические системы Flink SQL и Flink State в производство функций и постепенно внедряли их в таких сценариях, как системы подсчета функций, объединение выборок для обучения моделей и оконные функции для изучения. новое поколение художественного производства Идея плана.

Системная архитектура нового поколения

В сочетании с вышеуказанным бизнес-опытом мы основываемся на Flink SQL и Flink иметьсостояниевычислить能力重новый设计了новыйодинв реальном времениособенностьвычислитьплан。новый планиз Позиционирование:решать Базаособенностьизвычислитьионлайн Обслуживание, предоставление более абстрактного бизнес-уровня базовых функций. DSL。 На вычислительном уровне мы основываемся на Flink SQL Гибкие выразительные возможности обработки данных и Flink State Государственные хранилища вычислительных мощностей и других технологий поддерживают различные комплексные оконные вычисления. Значительно сократить производственный цикл Бизнес База, повысить стабильность выходного звена. В новой Архитектуре мы будем Ссылка на создание функций разделена на извлечение источника данных. / Три этапа сращивания, хранения состояния и расчета, Флинк SQL Полные функции обработки данных, потокового сращивания, Flink State Хранение промежуточного состояния для завершения расчета функции.

Функции с сохранением состояния — это очень важный тип функций, наиболее часто используемые из которых — это функции с различными окнами, например статистика последних событий. 5 минутное воспроизведение видео VV ждать。дляокнотипизособенность在字节内部иметьодиннекоторые на основехранилищедвигательизплан,Общая идея заключается в том,“Легкий офлайн тяжелый онлайн”,То есть хранилище состояния окна и расчет агрегации объектов выполняются на уровне хранилища ионлайн. Автономные потоки данных отвечают за базовую фильтрацию и запись данных.,Подробности оффлайнданные Разделить агрегацию по временихранилище(Похоже на: micro пакетный), большая часть базового хранилища KV Хранилище, или специально оптимизированный механизм хранения, выполняет сложную логику расчета агрегирования окон на онлайн-уровне. После поступления каждого запроса онлайн-уровень извлекает подробные данные из уровня хранения для агрегирующих вычислений.

наш новыйизрешать Идея в том,“Легкий онлайн тяжелый оффлайн”,То есть ручка тяжелееиз Подробности временного интервала Все расчеты агрегации окон состояния хранилища размещаются в автономном слое. Проходы агрегирования результатов окна Механизм запуска офлайн-окна Выполнено, выложим результаты функции подтолкнуть к онлайн KV хранилище. Онлайн-модуль очень легкий и отвечает только за простой изонлайн. обслуживание, значительно упрощая сложность онлайн-слоя архитектуры. В автономном состоянии хранилища. мы в основном полагаемся на Flink предоставил Собственный механизм хранения состояний RocksDB,充分利用Оффлайнвычислить Кластер локальныйиз SSD Дисковые ресурсы, значительно сокращающие онлайн KV Нехватка ресурсов хранилища.

Для длинных оконных элементов (7 функция окна дня или выше), из-за Flink Процесс возврата подробных данных уровня состояния, Flink Embedded состояниехранилищедвигатель没иметь提供特别好извнешнийданныемеханизм рециркуляции(Или нецелесообразно это делать)。поэтомудля Этот вид“Статус холодного запуска”сцена,Мы представляем хранилище централизации как нижний уровень хранилища и среду хранения.,Целое Hybrid архитектура. Например 7 Статус в течение суток хранится локально SSD,7~30 Ежедневный статус сохраняется в централизованном хранилище, а отслеживание автономных данных может быть очень удобно записано в централизованное хранилище.

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

Система классификации объектов в реальном времени

общая архитектура

Характеристики с окнами, такие как количество лайков на видео Douyin за последний 1 час (скользящее окно), продолжительность последнего сеанса прямой трансляции, воспроизведенного пользователями в комнате прямой трансляции (окно сеанса) и т. д.;

слой источника данных

В новой интегрированной архитектуре функций мы единообразно абстрагируем различные типы источников данных в Schema Таблица, это потому, что базовые зависимости Flink SQL Уровень механизма вычислений предоставляет очень удобный источник данных. Table Format абстрактный. В сценарии рекомендаций источники данных очень разнообразны, и каждая функция зависит от одного или нескольких вышестоящих источников данных. Источником данных может быть Kafka、RMQ、KV Хранилище, RPC Служить. Для нескольких источников данных поддерживаются потоковая передача данных и пакетное объединение. Типы объединения включают в себя. Window Join на основе key зернистый Window Union Присоединение, таблица размеров Join поддерживать Abase、RPC、HIVE ждать. Конкретная логика сращивания для каждого типа следующая:

три типа Join и Union Может использоваться в комбинации для достижения сложного сращивания нескольких потоков данных. Например (A union B) Window Join (C Lookup Join D)。

Кроме того, Флинк SQL поддерживаются сложные поля вычислительных возможностей, то есть бизнес-сторона может быть определена на основе источника данных TableSchema Базовые поля реализуют расчет расширенных полей. Сущность логики бизнес-вычислений заключается в УДФ, мы предоставим UDF API Отдайте интерфейс деловому человеку, а затем загрузите его. JAR Загружайте функции в фоновом режиме. Кроме того, логика расчета для относительно проста, и фон также прост при отправке. Python Код реализует многоязычные вычисления.

Бизнес-DSL

Предоставьте высокоабстрактный язык DSL для создания функций с точки зрения бизнеса, скрывая детали базовых вычислений и механизмов хранения, позволяя деловым сторонам сосредоточиться на определении бизнес-функций. Уровень бизнес-DSL предоставляет: источники данных, форматы данных, логику извлечения данных, типы функций генерации данных, методы вывода данных и т. д.

уровень хранения состояния

Как упоминалось выше, основная проблема, которую решает новое решение по интеграции функций, заключается в том, как решать проблемы расчета различных типов (обычно скользящих окон) функций с состоянием. Для этого типа функций в архитектуре уровня автономных вычислений будет предусмотрен уровень хранения состояний, который извлекает RawFeature Следите за кусочками Slot магазин (Отрезок может быть временным интервалом или Session кусочки и др.). Тип среза является внутренним типом интерфейса и может быть архитектурно расширен в соответствии с потребностями бизнеса. То, что на самом деле хранится в состоянии, не является оригиналом RawFeature (хранение необработанных данных о поведении занимает слишком много места), но преобразовано в FeaturePayload вроде POJO структура,этотиндивидуальныйвнутри структурыподдерживатьобщийиз Различныйданныеструктуратип:

  • Int:хранилище Простойизсчитатьценитьтип (Многомерный counter);
  • HashMap<int, int>:хранилище2D-счетценить,Например счетчик действий,key для target_id,value длясчитатьценить;
  • SortedMap<int, int>: хранилище topk 2D-счет ;
  • LinkedList :хранилище id_list типданные;
  • HashMap<int, List >:хранилищедвумерный id_list;
  • Пользовательский тип, бизнес может в соответствии с потребностями FeaturePayload Настроить внутриданныетип

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

Язык кода:javascript
копировать
/** *  Статус функции update интерфейс */public interface FeatureStateApi extends Serializable {    /**     * особенность Даженовыйинтерфейс, Каждый восходящий журнал извлечет необходимые поля и преобразует их в формат. fields, Используется для обновления перепискииз Статус функции     *     * @param fields     *      context: Сохранить имя функции, первичный ключ и Некоторые параметры конфигурации ;     *      oldFeature: Характеристики до статуса     *      fields: платформа / Конфигурационный файл Средний изобразить поле     * @return     */FeaturePayLoad assign(Context context,FeaturePayLoad feature, Map<String, Object> rawFeature);}

Конечно, нет необходимости в уровне хранения состояния для функций ETL без сохранения состояния.

Вычислительный уровень

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

Язык кода:javascript
копировать
/** *  иметьсостояниеособенностьвычислитьинтерфейс */public interface FeatureStateApi extends Serializable {
    /**     * особенностьполимеризацияинтерфейс,будет настроен в соответствии сизособенностьвычислитьокно, читатьокно内所иметь Статус функции,После сортировки передатьинтерфейс     *     * @param featureInfos, Включать 2 индивидуальный field     *      timeslot: Статус функция соответствует временному интервалу     *      Feature: Временной интервализ Статус функции     * @return     */    FeaturePayLoad aggregate(Context context, List<Tuple2<Slot, FeaturePayLoad>> slotStates);
}

Интерфейс агрегирования функций с отслеживанием состояния

Язык кода:javascript
копировать
/** *  Интерфейс расчета объектов без сохранения состояния */public interface FeatureConvertApi extends Serializable {
    /**     * Конвертироватьинтерфейс, Каждый восходящий журнал извлечет необходимые поля и преобразует их в формат. fields, При расчете без сохранения состояния конвертируйте для внутреннего из feature тип ;     *     * @param fields     *      fields: платформа / Конфигурационный файл Средний изобразить поле     * @return     */    FeaturePayLoad convert(Context context,  FeaturePayLoad featureSnapshot, Map<String, Object> rawFeatures);
}

Интерфейс расчета объектов без сохранения состояния

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

Реализация бизнеса

в настоящий момент рекомендуемая сцена в Байте,новыйодинпоколениеособенность Архитектура Уже вПрямая трансляция Douyin, электронная коммерция, push-уведомления, рекомендации Douyin и т. д.сцена Выходим в онлайн один за другимодиннемного реального времениособенность。В основномиметьсостояниетипизособенность,带иметьокноиз Одномерная статистикатип、Двумерная перевернутая молния.тип、двумерный TOPK Тип, в режиме реального времени CTR/CVR Rate Типовые особенности, особенности типа последовательности и т. д.

Достигнуты замечательные результаты в достижении основных бизнес-показателей. В сценарии прямой трансляции, после того как был запущен пакет функций, основанных на мощных возможностях выражения новой архитектуры функций, основные показатели бизнес-просмотра и показатели взаимодействия достигли очень значительного прироста. В сценарии электронной коммерции было запущено более 400 функций реального времени на основе новой архитектуры функций. Среди них, что касается электронной коммерции в прямом эфире, показатели основного бизнеса GMV и количества заказов достигли значительных успехов. В сценарии Douyin push емкость автономного хранилища создается на основе новых функций, данные о поведении пользователей агрегируются, а затем записываются в различные нижестоящие хранилища, что значительно снижает нагрузку на нижестоящую базу данных бизнеса. В некоторых сценариях QPS может снизиться. до 10% от предыдущего уровня об. Кроме того, лента рекомендаций Douyin, комментарии и другие компании реконструируют исходную систему функций на основе новой архитектуры функций.

Стоит упомянуть, что,В сценариях электронной коммерции и прямой трансляции Douyin,Flink Достигнут максимальный статус задачи потоковой передачи 60T,ииэтотиндивидуальный Масштабы все еще растут。Ожидается, что в ближайшем будущем,один Задача изсостояниеиметь可能会突破 100T,Это представляет собой серьезную угрозу стабильности архитектуры.

Оптимизация производительности

Flink State Cache

в настоящий момент Flink Укажите две категории StateBackend: на основе Heap из FileSystemStateBackend на основе RocksDB из RocksDBStateBackend. для FileSystemStateBackend, поскольку данные находятся в памяти, скорость доступа очень высокая и дополнительных накладных расходов нет. и RocksDBStateBackend Есть запрос и сериализация / Дополнительные накладные расходы, такие как десериализация, процессор Использование значительно увеличится. Внутри байтов интенсивно используются State изjob, для работы с большим статусом, обычно используется RocksDBStateBackend для управления данными местного состояния. Рокс ДБ это KV база данных, с LSM из Формальная организацияданные,В процессе фактического использования,Имеет следующие характеристики

  1. Прикладной уровень RocksDB изданныевзаимодействие основано на Bytes Он выполняется в виде массива, и каждый доступ на уровне приложения необходимо сериализовать. / десериализация;
  2. данные записываются непрерывно в виде добавления RocksDB Средний, RocksDB Фон будет продолжать обрабатываться compaction удалить неверные данные.

Используется деловыми сторонами State из Сцены в основном получить обновление, используется RocksDB В процессе эксплуатации локального государственного хранилища возникли следующие проблемы:

  1. Данные рептилий вызывают жару ключ, статус будет постоянно обновляться (получить обновление),одиночный KV данныедостигать 5 МБ, в то время как RocksDB Дополнительные обновления и функции приводят к тому, что фоновая обработка продолжает обрабатываться. flush и уплотнение, одиночное task Появляется медленный узел (сцена прямой трансляции Douyin).
  2. Электронная коммерциясцена Большая часть домашней работыдля Большая статусная работа (в настоящий момент на сайте и статус примерно 60 ТБ), что будет часто выполняться в бизнес-логике. State действовать. В слиянии Flink State Нашел в процессе CPU изнакладные расходыиоригинальный~~ из~~ По памяти или abase из орудий 40%~80% из подъемов. После оптимизации процессор Накладные расходы в основном сосредоточены на сериализации. / противоположныйпоследовательностьизменятьизв процессе。

Чтобы решить вышеуказанные проблемы, вы можете хранить объект в памяти. Кэш для оптимизации доступа к данным точек доступа и сокращения CPU накладные расходы Мы надеемся, что благодаря приведенному выше вводному материалу StateBackend предоставитьиндивидуальный Универсальныйиз Cache функция, через Flink StateBackend Cache План функционального проектирования преследует следующие цели:

  1. уменьшать CPU накладные расходы Кэшируя данные горячей точки, можно уменьшить базовые данные. StateBackend из Количество взаимодействий, достигающее меньшей сериализации / противоположныйпоследовательностьизменятьнакладные расходыизглазиз。
  2. продвигать State Пропускная способность путем увеличения Cache После того, как государство Пропускная способность следует сравнивать с оригиналом из StateBackend предоставил Пропускная способность выше. Теоретически Cache Достаточно большой кейс, Пропускная способностьотвечатьна основе Heap из StateBackend приблизительный.
  3. Cache Общая функция другой StateBackend может быть непосредственно адаптирован к Cache Функция. в настоящий момент Наш главныйподдерживать RocksDB, мы надеемся предоставить его другим напрямую в будущем. StateBackend Используйте, например RemoteStateBackend。

Автор: ibyte База Архитектура Flink Командная работа для создания обновлений функций в реальном времени , зайди в интернет Cache Большинство сцен CPU Уровень использования, вероятно, будет таким же высоким, как 50% влево и вправо от дохода;

PB IDL-обрезка

Во внутренней ссылке на генерацию байтов в режиме реального времени мы в основном полагаемся на изданные потоки. Кафка. Эти Kafka Все прошло PB Определение изданные, со многими полями. Уровень компании большой Topic Обычно там будет 100+ из полей, но в большинстве задач по производству функций используются только некоторые из полей. для Protobuf Формат изданных исходников, мы можем полностью стримить через Обрезанные, маска Некоторые несущественные поля для сохранения изнакладных десериализации расходы。PB типизация журнала,Вы можете напрямую Обрезать idl, сохранит порядковый номер необходимого поля без изменений и пропустит его при десериализации unknown field из анализа, это для CPU Это более экономично, но выигрыша в пропускной способности сети не будет. Ожидается, что после Обрезания удастся сэкономить много денег. CPU ресурс. Сейчас онлайнPB IDL-обрезкапосле,Самая сложная задача из CPU Доход 30% о.

Возникла проблема

Новые возможности архитектуры. Производственные задачи по своей сути являются отслеживаемыми. Flink Задача, лежащая в основе состояния хранилища StateBackend В основном местные RocksDB。В основном лицом к лицу с двумяиндивидуальный Сложнее понятьизвопрос,Во-первых, задача изменения контрольной точки DAG недействительна.,Второй – местный.хранилищенехорошоподдерживать Статус функцииисторияданныеобратная трассировка。

  • в реальном времениособенность任务不能动态添加новыйизособенность:дляодининдивидуальныйонлайниз Flink Для задач создания функций в реальном времени мы не можем добавлять новые функции по своему желанию. Это связано с введением новых функций, которые вызовут Flink Расчет задачииз DAG изменения, в результате чего Flink Задача из Checkpoint Невосстанавливаемый, что неприемлемо для задач создания функций с отслеживанием состояния в реальном времени. в настоящий моментнасиз解法是禁止Даже改онлайнразвертыватьизособенность Конфигурация задачи,ноэтот Что также приводит конлайнгенерироватьизособенность Вы не можете случайно выйти из сетииз。дляэтотиндивидуальныйвопрос暂时没иметь找到Даже好изрешатьспособ,На более позднем этапе по-прежнему необходимы непрерывные исследования.
  • особенность Статус холодного запускавопрос:в настоящий момент main из статуса движка хранилища RocksDB не очень хорошо работает с обратным отслеживанием статуса данных. Последующее планирование

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

Чтобы добиться создания функций в унифицированных сценариях рекомендаций, мы продолжим использовать Flink SQL Имея возможность интегрировать поток и партию, мы уделяем особое внимание серийному производству. Это также будет основано на Hudi Технология озера данных завершает ввод функций в озеро в режиме реального времени и эффективно поддерживает сценарии обучения моделей для отслеживания болевых точек автономных функций. Направление двигателя правил, планы продолжить исследование CEP продвигает больше практик реализации в сценариях электронной коммерции. В направлении расчета окон в реальном времени мы продолжим проводить углубленные исследования. Flink Родной оконный механизм для решения проблемы настоящий В тот момент программа сталкивается с проблемой выхода из окна функции данных.

  • поддерживатьпартияособенность:этотнаборособенность Производствоплан В основномрешатьв реальном временииметьсостояниеособенностьизвопрос,ив настоящий моментbytes В автономном сценарии передается большое количество пакетных функций. Spark SQL Производство заданий из. В будущем мы также будем опираться на Flink SQL Возможности потоковой передачи и интегрированных вычислений в пакетном режиме обеспечивают унифицированные функции сцен пакетного типа. настоящий момент Есть также несколько предварительныхиндивидуальныйсценаизприземление;
  • Особенности Автономный доступ к озеру:на основе Hudi On Flink поддержка функции реального времени из построения автономного хранилища данных, в основном для поддержки модели обучения, сращивания выборки сцены, обратного отслеживания автономной функции;
  • Механизм правил Flink CEP одобрение:Flink SQL По сути, это механизм правил, в настоящий моментонлайн давай к нам Flink SQL делатьдлябизнес DSL Семантика фильтра, лежащая в основе механизма выполнения. но Flink SQL Хорошо выражать ETL типизировать правила фильтра,Невозможно выразить семантику с помощью правил временной типизации. В прямом эфире Электронная коммерциясценаиз Правила тайминга нужно опробовать Flink CEP Более сложный движок правил.
  • Внедрение механизма Flink Native Windowing:дляокнотипизиметьсостояниеособенность,насв настоящий момент использует абстракцию, описанную выше SlotState Схема разделения времени осуществляется равномерно. кроме того Flink Он сам по себе обеспечивает очень полный оконный механизм, посредством Window Assigner、Window Trigger и т. д. Компоненты могут быть очень гибкими с различной семантикой окон. Поэтому в будущем мы также введем его в сценарий расчета оконных характеристик. Flink Родной из Windowing Механизм для более гибкого поддержания итерации функций окна.
  • Бэкэнд-архитектура Flink HybridState:в настоящий момент В байте из онлайн-сценария, Flink нижний слой StateBackend По умолчанию используется RocksDB двигатель хранилища. Такой встроенный механизм не может обеспечить обратную связь с государственными данными и совместное использование нескольких задач через внешние механизмы, поэтому нам необходимо признание. KV центризменятьхранилищеплан,Гибкость реализациииз Статус функцииобратная трассировка。
  • Унифицированное управление характеристиками типов статических атрибутов:проходитьособенностьплатформа Предоставить системуодиниз DSL семантика,системаодин Управление другимивнешнийстатическийтипизособенность Служить。Напримеродинкакой-то другойбизнескомандное измерениеиз Классификация пользователей、Услуги по маркировке и т.д.

Об авторе:

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

Команда архитектуры рекомендаций Bytedance, направление вычислений в реальном времени, ответственное за Douyin, Toutiao, Xigua Video и другие супер 10 100 миллионы пользовательских продуктов Система Рекомендации Архитектура Проектирование и разработка вычислительных систем реального времени для обеспечения стабильности и высокой доступности системы. Абстрагируйте общую вычислительную систему реального времени, создайте унифицированную промежуточную платформу с функциями рекомендаций, реализуйте гибкую и масштабируемую высокопроизводительную систему и модель вычислений, а также внедрите расширенную дедупликацию, подсчет, сервисы функций и другие системы потоковой передачи рекомендаций в реальном времени. в настоящий момент Очень не хватает людей,Студенты, изучающие технологии, приглашаются присоединиться.,Давайте вместе создадим передовую систему потоковой передачи рекомендаций мирового уровня в режиме реального времени.,Контактная информация: guowenfei@bytedance.com.

Рекомендуемые статьи сегодня

Компания Byte в очередной раз объявила о масштабных увольнениях; Huawei выпускает предварительную версию HarmonyOS 3 для разработчиков, а другие 20 компаний обещают не следить за конфиденциальностью | Q News |

Один из крупнейших проектов программного обеспечения C++ в Китае, подход WPS «самозащиты».

Alibaba Cloud официально открыла исходный код базы данных PolarDB-X, которая прошла тестирование на различных мероприятиях Double 11 и теперь доступна на GitHub.

Программисты запустили «расписание компаний», которое было настолько популярным, что, как сообщается, оно охватывает более 1300 компаний. Заработная плата Tencent за 2022 год является первой, а общий пакет приближается к 400 000 Q Информация |


Рекомендации по активности

11 луна 12-13 Состоялось в тот же день ArchSummit Глобальный саммит архитекторов Станция Шэньчжэнь [Периферийные вычисления и IoT Архитектура] Специальная тема приглашает старших технических экспертов из Alibaba Cloud поделиться «На основе OpenYurt В теме «Практика реализации собственной облачной архитектуры Edge», помимо внедрения периферийных технологий и периферийных облачных вычислений, также будет представлено OpenYurt Технические детали, точки проектирования и варианты реализации для детального анализа и обмена OpenYurt В логистической отрасли случаи общения в режиме реального времени.

Более Архитектура Нажмите на нижнюю часть корпуса«Прочитай оригинальный текст»Проверять。Не пропустите прямую трансляциюпотокиз Шанс~ArchSummit Продажа билетов на вокзал Шэньчжэня подошла к концу,заинтересованныйизодноклассникОтсканируйте QR-код нижеИли проконсультируйтесь напрямую с билетершей.:17310043226(То же, что WeChat)。

boy illustration
Углубленный анализ переполнения памяти CUDA: OutOfMemoryError: CUDA не хватает памяти. Попыталась выделить 3,21 Ги Б (GPU 0; всего 8,00 Ги Б).
boy illustration
[Решено] ошибка установки conda. Среда решения: не удалось выполнить первоначальное зависание. Повторная попытка с помощью файла (графическое руководство).
boy illustration
Прочитайте нейросетевую модель Трансформера в одной статье
boy illustration
.ART Теплые зимние предложения уже открыты
boy illustration
Сравнительная таблица описания кодов ошибок Amap
boy illustration
Уведомление о последних правилах Points Mall в декабре 2022 года.
boy illustration
Даже новички могут быстро приступить к работе с легким сервером приложений.
boy illustration
Взгляд на RSAC 2024|Защита конфиденциальности в эпоху больших моделей
boy illustration
Вы используете ИИ каждый день и до сих пор не знаете, как ИИ дает обратную связь? Одна статья для понимания реализации в коде Python общих функций потерь генеративных моделей + анализ принципов расчета.
boy illustration
Используйте (внутренний) почтовый ящик для образовательных учреждений, чтобы использовать Microsoft Family Bucket (1T дискового пространства на одном диске и версию Office 365 для образовательных учреждений)
boy illustration
Руководство по началу работы с оперативным проектом (7) Практическое сочетание оперативного письма — оперативного письма на основе интеллектуальной системы вопросов и ответов службы поддержки клиентов
boy illustration
[docker] Версия сервера «Чтение 3» — создайте свою собственную программу чтения веб-текста
boy illustration
Обзор Cloud-init и этапы создания в рамках PVE
boy illustration
Корпоративные пользователи используют пакет регистрационных ресурсов для регистрации ICP для веб-сайта и активации оплаты WeChat H5 (с кодом платежного узла версии API V3)
boy illustration
Подробное объяснение таких показателей производительности с высоким уровнем параллелизма, как QPS, TPS, RT и пропускная способность.
boy illustration
Удачи в конкурсе Python Essay Challenge, станьте первым, кто испытает новую функцию сообщества [Запускать блоки кода онлайн] и выиграйте множество изысканных подарков!
boy illustration
[Техническая посадка травы] Кровавая рвота и отделка позволяют вам необычным образом ощипывать гусиные перья! Не распространяйте информацию! ! !
boy illustration
[Официальное ограниченное по времени мероприятие] Сейчас ноябрь, напишите и получите приз
boy illustration
Прочтите это в одной статье: Учебник для няни по созданию сервера Huanshou Parlu на базе CVM-сервера.
boy illustration
Cloud Native | Что такое CRD (настраиваемые определения ресурсов) в K8s?
boy illustration
Как использовать Cloudflare CDN для настройки узла (CF самостоятельно выбирает IP) Гонконг, Китай/Азия узел/сводка и рекомендации внутреннего высокоскоростного IP-сегмента
boy illustration
Дополнительные правила вознаграждения амбассадоров акции в марте 2023 г.
boy illustration
Можно ли открыть частный сервер Phantom Beast Palu одним щелчком мыши? Супер простой урок для начинающих! (Прилагается метод обновления сервера)
boy illustration
[Играйте с Phantom Beast Palu] Обновите игровой сервер Phantom Beast Pallu одним щелчком мыши
boy illustration
Maotouhu делится: последний доступный внутри страны адрес склада исходного образа Docker 2024 года (обновлено 1 декабря)
boy illustration
Кодирование Base64 в MultipartFile
boy illustration
5 точек расширения SpringBoot, супер практично!
boy illustration
Глубокое понимание сопоставления индексов Elasticsearch.
boy illustration
15 рекомендуемых платформ разработки с нулевым кодом корпоративного уровня. Всегда найдется та, которая вам понравится.
boy illustration
Аннотация EasyExcel позволяет экспортировать с сохранением двух десятичных знаков.