Всем привет, мы снова встретились, я ваш друг Цюаньчжаньцзюнь.
краткое содержание: Предисловие В нынешней волне информации в Интернете скорость распространения информации выходит далеко за пределы нашего воображения. Пост от большого V на Weibo, обновление статуса в Moments, новость на популярном форуме или обзор покупок на торговой платформе могут вызвать десятки тысяч ретвитов, подписок и лайков. Некоторые иррациональные и негативные комментарии вызовут негативные чувства у людей и даже повлияют на узнаваемость корпоративного бренда потребителями. Если вовремя не принять правильные меры реагирования, это приведет к неоценимым потерям.
Предисловие
В нынешней волне информации в Интернете скорость распространения информации выходит далеко за пределы нашего воображения. Пост от большого V на Weibo, обновление статуса в Moments, новость на популярном форуме или обзор покупок на торговой платформе могут вызвать десятки тысяч ретвитов, подписок и лайков. Некоторые иррациональные и негативные комментарии вызовут негативные чувства у людей и даже повлияют на узнаваемость корпоративного бренда потребителями. Если вовремя не принять правильные меры реагирования, это приведет к неоценимым потерям.Поэтому нам нужна эффективная общесетевая система анализа общественного мнения.,Помогите нам наблюдать общественное мнение в режиме реального времени。
Эта общесетевая система анализа общественного мнения может хранить десятки миллиардов данных веб-страниц, захватывать и сохранять новые веб-страницы в режиме реального времени, а также извлекать метаданные новых веб-страниц в режиме реального времени. По результатам добычи нам также необходимо провести дальнейший анализ добычи, который включает, помимо прочего,
Чтобы диагностировать влияние общественного мнения, мы делаем прогнозы, основанные на величине и тенденции распространения, чтобы определить, сформируется ли общественное мнение в конечном итоге. Анализ пути коммуникации, анализ критического пути коммуникации общественного мнения. Портреты пользователей дают представление об общих характеристиках участников общественного мнения, таких как пол, возраст, регион и интересующие темы. Анализ настроений анализирует, являются ли новости или обзоры положительными или отрицательными. За классификацией настроений следует статистическое агрегирование. Для настроек раннего предупреждения мы поддерживаем настройку порогового значения для объема обсуждения общественного мнения. При достижении порогового значения компания, осуществляющая push-уведомления, будет уведомлена, чтобы не пропустить основное время для участия общественного мнения. Эти добытые результаты общественного мнения будут перенесены на сторону спроса.,Он также предоставляет интерфейсы для различных деловых сторон для поиска,Использование запроса。Далее мы обсудим системудизайнПроблемы, с которыми вы можете столкнуться в,Мы сосредоточимся на темах, связанных с проектированием систем хранилищ.,Найдите оптимальное решение этих проблем.
Проектирование системы
Для системы общественного мнения вам сначала понадобится поисковый механизм для сбора различной информации о сообщениях с основных порталов, торговых веб-сайтов, форумов сообщества, исходного содержимого страниц, Weibo и Moments. Массивные собранные веб-страницы и данные сообщений (десятки миллиардов) необходимо хранить в режиме реального времени. Прежде чем получить веб-страницу на основе URL-адреса веб-сайта, вам необходимо определить, сканировалась ли эта страница ранее, чтобы избежать ненужного повторного сканирования. После сбора веб-страницы нам необходимо извлечь веб-страницу, удалить ненужные теги, извлечь заголовок, аннотацию, текстовое содержимое, комментарии и т. д. Извлеченный контент поступает в систему хранения для облегчения последующих запросов. В то же время новые результаты извлечения необходимо передать на вычислительную платформу для статистического анализа, создания отчетов или последующего извлечения общественного мнения и других функций. Содержание расчета может потребовать новых данных или полных данных в зависимости от алгоритма. Чувствительность общественного мнения к своевременности определяет, что наша система должна быть способна эффективно обрабатывать этот новый контент. Лучше всего получать новые горячие поисковые запросы после задержки второго уровня.
Весь поток данных можно обобщить следующим образом:
Судя по приведенному выше рисунку, нетрудно обнаружить, что для разработки платформы хранения и анализа общественного мнения во всей сети нам необходимо обрабатывать сканирование, хранение, анализ, поиск и отображение. В частности, нам необходимо решить следующие задачи:
Как эффективно хранить десятки миллиардов необработанной информации веб-страниц. Чтобы повысить полноту и точность анализа общественного мнения, мы часто надеемся просканировать как можно больше информации веб-страниц, а затем агрегировать ее в соответствии с установленными нами весами. Таким образом, историческая база данных веб-страниц будет относительно большой, в ней будут накоплены десятки миллиардов информации о веб-страницах, а объем данных может достигать сотен терабайт или даже нескольких петабайт. При таком большом объеме данных нам также необходимо добиться низкой задержки на уровне миллисекунд для чтения и записи, что затрудняет удовлетворение спроса традиционными базами данных. Как определить, сканировалась ли веб-страница ранее сканером. Для обычных веб-страниц общественное мнение заботится об их своевременности. Возможно, мы хотим просканировать одну и ту же веб-страницу только один раз, тогда мы сможем использовать адрес веб-страницы, чтобы просканировать ее и уменьшить ее. ненужная трата ресурсов веб-страницы. Поэтому нам нужно распределенное хранилище для обеспечения эффективных случайных запросов на основе веб-страниц. Как добавить новую исходную веб-страницу и выполнить структурированное извлечение в реальном времени после завершения хранения, а также сохранить результаты извлечения. Здесь наша исходная веб-страница может содержать различные HTML-теги. Нам нужно удалить эти HTML-теги и извлечь название, автора, время публикации и т. д. статьи. Это содержание предоставляет необходимые структурированные данные для последующего анализа настроений общественного мнения. Как эффективно подключиться к вычислительной платформе и передать извлеченные структурированные данные для вычислений в реальном времени. Здесь нам необходимо классифицировать контент, описанный на веб-страницах и в сообщениях, выполнить распознавание эмоций и провести статистический анализ результатов распознавания. Из-за несвоевременности полного анализа и того факта, что общественное мнение часто фокусируется на последних новостях и комментариях, мы должны проводить поэтапный анализ. Как обеспечить эффективный поиск общественного мнения Помимо подписки на общественные мнения с фиксированными ключевыми словами, пользователи также могут выполнять поиск по некоторым ключевым словам. Например, я хочу узнать анализ общественного мнения о новом продукте конкурирующей компании. Как реализовать толчок нового общественного мнения в режиме реального времени Чтобы обеспечить своевременность общественного мнения, нам нужно не только сохранять результаты анализа общественного мнения, но и поддерживать толчок результатов общественного мнения. Публикуемый контент обычно представляет собой новое общественное мнение, которое мы анализируем в режиме реального времени. Архитектура системы
В ответ на проблемы, представленные выше, давайте представим, как построить платформу анализа общественного мнения на уровне десятков миллиардов для всей сети на основе различных облачных продуктов в Alibaba Cloud. Мы сосредоточимся на выборе продуктов хранения и эффективном подключении. различные типы вычислений, поисковая платформа.
В качестве механизма сканирования мы выбираем ECS. Количество машинных ресурсов, использующих ECS, можно определить исходя из объема сканирования. Во время ежедневных пиков ресурсы также можно временно расширить для сканирования веб-страниц. После сканирования исходной веб-страницы ее адрес и содержимое исходной веб-страницы записываются в систему хранения. В то же время, если вы хотите избежать повторного сканирования, механизм сканера должен выполнить дедупликацию на основе списка URL-адресов перед сканированием. Механизм хранения должен поддерживать запросы произвольного доступа с малой задержкой, чтобы определить, существует ли текущий URL-адрес. Если он существует, нет необходимости сканировать его снова.
Чтобы добиться извлечения исходного содержимого веб-страниц в реальном времени, нам необходимо отправить вновь добавленные страницы на вычислительную платформу. Предыдущая архитектура часто требовала двойной записи на уровне приложения, то есть одновременно с сохранением исходных данных веб-страницы в базе данных мы неоднократно записывали копию данных в вычислительную платформу. Такая архитектура потребует от нас поддержки двух наборов логики записи. Аналогичным образом, возникают аналогичные проблемы, когда структурированные данные постепенно поступают на платформу анализа общественного мнения. Извлеченные структурированные метаданные также необходимо дважды записать на платформу анализа общественного мнения. Результаты анализа общественного мнения также необходимо записать в распределенное хранилище и отправить на поисковую платформу. На этом этапе мы можем обнаружить, что три красные линии на рисунке соответствуют нашим требованиям двойной записи для трех источников данных. Это увеличит объем работы по разработке кода и усложнит внедрение и обслуживание системы. Двойная запись каждого источника данных должна учитывать существование нисходящего потока или использовать службу сообщений для достижения разделения посредством двойной записи сообщений. Традиционные базы данных, такие как mysql, поддерживают подписку на инкрементные журналы binlog. Если продукты распределенного хранения могут поддерживать больший доступ и емкость хранилища, а также обеспечивать инкрементные подписки, наша архитектура может быть значительно упрощена.
После того, как данные веб-страницы собраны и сохранены в базе данных, приращения передаются на нашу вычислительную платформу для извлечения метаданных в реальном времени. Здесь мы можем выбрать функцию вычисления. Когда необходимо извлечь новую страницу, используется управляемая функция функции вычисления. срабатывает для извлечения метаданных веб-страницы. После того, как извлеченные результаты сохраняются в системе хранения, они также передаются в MaxCompute для анализа общественного мнения, например анализа настроений, кластеризации текста и т. д. Здесь могут быть сгенерированы некоторые данные таблицы общедоступной информации, статистика данных о настроениях пользователей и другие результаты. Результаты общественного мнения будут записаны в систему хранения и поисковую систему, а некоторые отчеты и пороговые сигналы тревоги будут отправлены подписчикам. Данные поисковых систем передаются в онлайн-системы поиска общественного мнения.
После ознакомления с полной архитектурой давайте посмотрим, как выбрать хранилище в Alibaba Cloud.
Выбор хранилища
Представляя архитектуру, мы суммируем требования к Выбору хранилища:
Он может поддерживать массивное хранилище данных (уровень ТБ/ПБ), высокую скорость одновременного доступа (от 100 000 до 10 миллионов TPS) и низкую задержку доступа. По мере того, как бизнес приспосабливается к источникам веб-страниц, которые собираются и на которые подписаны, объем сбора будет динамически корректироваться. В то же время в течение дня количество веб-страниц, просканированных сканерами в разные периоды времени, также будет иметь очевидные пики и спады, поэтому база данных должна иметь возможность гибко расширяться и сжиматься. При наличии свободной структуры атрибутов таблицы атрибуты, на которые нам нужно обращать внимание при получении информации на обычных веб-страницах и страницах социальных платформ, могут сильно различаться. Гибкая схема облегчит наше расширение. Вы можете выбрать автоматическое истечение срока действия или многоуровневое хранилище для старых данных. Поскольку данные общественного мнения, как правило, сосредоточены на недавних горячих точках, к более старым данным обращаются реже. Необходим хороший дополнительный канал для регулярного экспорта новых данных на вычислительную платформу. На приведенном выше рисунке есть три красные пунктирные линии. Эти три части имеют общую особенность. Они должны иметь возможность направлять приращение на соответствующую вычислительную платформу в реальном времени для расчета, а затем рассчитанные результаты записываются в соответствующее хранилище. двигатель. Если ядро базы данных само поддерживает приращения, архитектуру можно значительно упростить, уменьшив необходимость фильтрации приращений в полной области чтения или двойной записи на клиенте для реализации логики получения приращений. Существует потребность в более качественном поисковом решении (оно само поддерживает его или может легко подключать данные к поисковым системам). Учитывая эти требования, нам необходимо использовать распределенные данные NoSQL для решения задач хранения и доступа к огромным данным. Возрастающие требования к доступу к данным по нескольким каналам и пиковые колебания доступа в бизнесе также определяют, что эластичное хранилище таблиц биллинга является нашим лучшим выбором в этой архитектуре. Для ознакомления с архитектурой хранения таблиц обратитесь к модели данных хранилища таблиц.
Большим функциональным преимуществом TableStore (хранилище таблиц) по сравнению с аналогичными базами данных является то, что TableStore (хранилище таблиц) имеет относительно полный инкрементный интерфейс, то есть инкрементный API Stream. Для ознакомления с Stream см. Обзор потока хранения таблиц. Описание сценария см. в разделе «Введение в сценарий приложения Stream», а информацию об использовании конкретного API см. в разделе «JAVA SDK Stream». С помощью интерфейса Stream мы можем легко подписаться на все операции модификации TableStore (хранилища таблиц), то есть новых типов данных. В то же время мы создали множество каналов данных на основе Stream для подключения к различным нисходящим вычислительным продуктам. Пользователям даже не нужно напрямую вызывать Stream API. Они могут использовать наши каналы для прямой подписки на дополнительные нисходящие данные, естественным образом подключаясь к ним. всю экосистему облачных вычислений Alibaba. Для расчета функций, упомянутых в приведенной выше архитектуре, поддерживаются MaxCompute, ElasticSearch и DataV, TableStore (хранилище таблиц). Для получения информации о конкретном использовании см.:
Стыковка потоковых и функциональных вычислений Стрим и MaxCompute Потоки и Elasticsearch Отображение данных, хранящихся в таблицах, через DataV TableStore (хранилище таблиц) — это свободная структура таблиц, основанная на столбцах атрибутов. Для сценария анализа общественного мнения по мере обновления алгоритма анализа общественного мнения мы можем добавить новые поля атрибутов. В то же время атрибуты для обычных веб-страниц и социальных страниц, таких как Weibo, также могут быть разными. Таким образом, свободная структура таблиц может лучше соответствовать нашим потребностям, чем традиционные базы данных.
В архитектуре у нас есть три требования к репозиторию. Это исходная библиотека страниц, библиотека структурированных метаданных и библиотека результатов общественного мнения. Первые два обычно представляют собой автономную библиотеку анализа хранилища, а последняя — онлайн-базу данных. У них разные требования к производительности доступа и стоимости хранения. Table Storage имеет два типа экземпляров, которые поддерживают многоуровневое хранение: высокую производительность и емкость. Высокая производительность подходит для сценариев, в которых выполняется много операций записи и чтения, то есть ее можно использовать в качестве онлайн-хранилища для бизнеса. Тип емкости подходит для сценариев, в которых выполняется больше операций записи и меньше операций чтения, то есть он используется для автономного бизнес-хранилища. Их задержку записи одной строки можно контролировать в пределах 10 миллисекунд, а производительность чтения можно поддерживать на уровне миллисекунд. TableStore (хранилище таблиц) также поддерживает TTL и устанавливает срок действия данных на уровне таблицы. В соответствии с потребностями мы можем установить TTL для результатов общественного мнения, предоставлять только недавние запросы данных, а срок действия более старых общественных мнений автоматически истечет и будет удален.
Благодаря этим функциям TableStore (табличное хранилище),Шесть требований системы к Выбору хранилища могут быть вполне удовлетворены.,Основанный на TableStore (хранилище таблиц), он может идеально реализовать дизайн и всю сетевую систему анализа общественного мнения.
постскриптум
В этой статье обобщаются проблемы хранения и анализа, возникающие в сценарии реализации анализа общественного мнения в больших объемах данных, а также рассказывается, как использовать TableStore собственной разработки Alibaba Cloud (хранилище таблиц) для удовлетворения основного объема бизнес-данных через Stream. вычислительные платформы упрощают архитектуру. TableStore (Table Store) — это распределенная база данных NoSQL профессионального уровня, независимо разработанная Alibaba Cloud. Это высокопроизводительная, недорогая, легко расширяемая, полностью управляемая полуструктурированная платформа хранения данных на основе общего хранилища. Хранение и анализ данных мнений является ведущей ролью TableStore в мире. Одно из важных приложений в области обработки данных. Дополнительные сценарии см. в разделе «Расширенный путь к TableStore».
Автор: Ю Хэн
Заявление об авторских правах: Содержание этой статьи добровольно предоставлено пользователями Интернета, а мнения, выраженные в этой статье, представляют собой только точку зрения автора. Данный сайт лишь предоставляет услуги по хранению информации, не имеет никаких прав собственности и не несет соответствующей юридической ответственности. Если вы обнаружите на этом сайте какое-либо подозрительное нарушение авторских прав/незаконный контент, отправьте электронное письмо, чтобы сообщить. После проверки этот сайт будет немедленно удален.
Издатель: Лидер стека программистов полного стека, укажите источник для перепечатки: https://javaforall.cn/194171.html Исходная ссылка: https://javaforall.cn