2.3. Большие данные
Большие данные
Большие данные, или big data, — гигантские массивы разнородной информации, которые нельзя обработать вручную или обычными программами типа MS Excel.
Годовая статистика продаж одного магазина — обычные данные. А сведения о том, какие товары, по каким ценам в этом году приобрели покупатели всех супермаркетов страны, — это уже big data. Чтобы собрать, обработать и использовать их, нужны специальные инструменты и технологии.
С точки зрения анализа, статистических, визуализационных подходов и т. д. big data не отличается от небольших данных, которые можно обработать в Excel. Используя эту технологию, можно построить гистограмму, пироговую диаграмму или любую другую, которую вы привыкли делать в Excel. Сейчас цель развития технологии состоит в том, чтобы конечный пользователь не мог отличить работу Excel от big data. Так, чтобы все нюансы были скрыты под капотом и не пугали пользователя.

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

Допустим, речь идет о банке. Кто-то перевел 100 рублей, кто-то — 10 000, кто-то — 100 000. Мы хотим узнать среднюю величину транзакций за день. Это предполагает базовый уровень анализа данных, но считать придется очень долго. Компьютер будет перерабатывать 10 терабайт данных несколько дней — это неприемлемо. Так возникла идея использовать больше серверов.

Реализацию технологии назвали MapReduce. Это самый популярный, практически единственный подход к big data.
Логи
Расскажем о важном источнике больших данных — логах пользовательской активности на веб-сервисах.
Логи — это записи событий и сообщений, создаваемые программой или системой во время ее работы. Они представляют собой источник информации о том, что происходит внутри приложения в определенный момент времени.
Логи содержат различные данные, такие как:
сообщения об ошибках
предупреждения
информацию о выполнении определенных действий и т.д.
Они помогают:
понять работу приложения
обнаружить потенциальные проблемы
сделать тестирование более эффективным
В зависимости от того, информация какого типа фиксируется системой, формируются разные типы записей. Это помогает быстрее находить нужный лог и оптимизировать работу с ним. Поэтому логи делятся на:
системные
серверные
почтовые
логи аутентификации
log file баз данных и т. д.
Существует также разделение логов в порядке их значимости для ситуационной ошибки:
срочное исправление — Fatal error
ошибки, не влияющие на пользователя, — Not critical error
события, требующие внимания, — Warning
информация о вызовах сервера — Initial information
Для чтения простых логов можно использовать обыкновенный текстовый редактор. А вот для расшифровки более сложных и объемных записей стоит воспользоваться специальным программным обеспечением.
Логирование — это процесс формирования логов: фиксация и структурирование информации о работе системы в отдельные лог-файлы с возможностью быстрого доступа к ним в случае необходимости. Файлы содержат отчет обо всем, что происходило с системой:
какие действия совершали конкретные пользователи
когда совершались действия
как система реагировала на события и т. д.
Логирование данных помогает администраторам вовремя:
выявлять баги системы
исправлять баги
предотвращать появление ошибок или сбоев в будущем
Таким образом, логирование — важный этап контроля и мониторинга работы системы, которое позволяет увеличить коэффициент ее производительности.
Open source
Большинство российских компаний работают на стеке open source — ПО с открытым исходным кодом, использование которого бесплатно для компаний. Это неотъемлемая часть современного ИТ-ландшафта, поскольку такое ПО:
стимулирует инновации и быстрое развитие технологий
упрощает процесс разработки
становится решением многих проблем, связанных с импортозамещением
В частности разработчики могут собрать стек из российских компонентов взамен иностранным решениям, да еще и совершенно бесплатно.

На специальном сервере лежит исходный код системы, где каждый желающий может скачать код и запустить ПК, который начнет работать бесплатно и без лицензии, — free open source software.

Сообщество программистов-разработчиков постоянно дополняет и улучшает системы совместными усилиями — они обладают колоссальной сложностью и порой в них встречаются ошибки.
Распределить таблицу на 10 серверов — непростая техническая задача. Код для реализации сложен, и технология слишком дорогая, чтобы быть разработанной внутри одной компании. Это могут себе позволить только самые крупные. Например, на стеке open source работали:
Delivery (до того, как уехал в «Яндекс»)
«Ситимобил»
«ВКонтакте»
телекоммуникационные компании:
«МегаФон»
«Билайн»
«Авито»
Ozon и т. д.
Таким образом, стек open source — самое популярное ПО, которое используют для генерации большого объема данных.
YTsaurus
Отечественное решение для big data — система YTsaurus «Яндекса». Проект стал доступен широкой аудитории в декабре 2022 года, его используют в основном «Яндекс» и «ВКонтакте». Это YTsaurus — вычислительная платформа, которая подразумевает запуск произвольного пользовательского кода.

В Github-репозитории находятся серверный код YTsaurus, инфраструктура развертывания с использованием K8s, а также веб-интерфейс системы и клиентский SDK для распространенных языков программирования — C++, Java, Go и Python. Все это — под лицензией Apache 2.0, что позволяет всем желающим загрузить его на свои серверы, а также дорабатывать его под свои нужды.
Платформу отличают:
удобный и простой в использовании пользовательский интерфейс
простая миграция для существующих решений
развитая система прав и доступов для множества пользователей
возможность независимой работы различных бизнес-юнитов
высокая степень утилизации ресурсов оборудования
широкий набор инструментов: MapReduce, SQL-запросы, планировщик заданий
отсутствие единой точки отказа
автоматизированная репликация между серверами
проверенная масштабируемость (до 1 млн ядер CPU и тысячи GPU)
распределенные ACID-транзакции
разнообразные SDK и API
безопасная изоляция вычислительных ресурсов и хранилищ
Один из наиболее показательных и типовых сценариев использования YTsaurus — построение DWH. Например, заказы в сервисах «Яндекс.Такси», «Яндекс.Еда», «Яндекс.Лавка» и «Яндекс.Доставка» поступают в динамические таблицы YTsaurus в сыром виде с минимальной задержкой. Объем данных измеряется сотнями терабайт ежемесячно.

Затем заказы обрабатываются разными инструментами: например, большинство аналитических витрин подготавливается при помощи YQL и SPYT. Общий объем данных превышает 6 ПБ. При помощи CHYT выполняется ad-hoc-аналитика и строятся разнообразные визуализации в Yandex DataLens. Похожие кейсы есть и у других сервисов «Яндекса»: «Яндекс.Маркет», «Яндекс.Музыка», «Яндекс.Путешествия».
BigQuery
Еще один важный пример big data — это Google и его сервис BigQuery.
BigQuery — это полностью управляемое и полностью бессерверное хранилище корпоративных данных Google Cloud. BigQuery поддерживает все типы данных, работает в облаках и имеет встроенные возможности машинного обучения и бизнес-аналитики — и все это на единой платформе. Кроме того, он предлагает надежные средства управления безопасностью: данные в нем надежно зашифрованы.
Есть несколько способов начать работу с BigQuery. Новые клиенты получают 300 долларов США в виде бесплатных кредитов, которые можно потратить на BigQuery. Все клиенты получают 10 ГБ хранилища и до 1 ТБ запросов в месяц бесплатно, без взимания средств с их кредита. Вы можете получить их, подписавшись на бесплатную пробную версию BigQuery.
Компании всех размеров используют BigQuery для:
консолидации разрозненных данных в одном месте
анализа данных
получения ценной информации из бизнес-данных
Это позволяет компаниям принимать решения в режиме реального времени, оптимизировать бизнес-отчетность и включать машинное обучение в анализ данных для прогнозирования.

Кроме того, в BigQuery — оптимальное соотношение цены и производительности. Это позволяет сократить расходы на хранение и увеличить объемы данных.
Благодаря BigQuery вы можете:
Перенести любые данные из нескольких источников — так вы упростите аналитику.
01
Перенести хранилища данных в BigQuery — так вы решите текущие потребности в аналитике и плавно масштабируете бизнес.
02
Использовать событийный анализ — так вы получите конкурентное преимущество, реагируя на бизнес-события в режиме реального времени с помощью анализа событий. Это позволит вам оставаться гибкими и принимать бизнес-решения на основе самых свежих данных.
03
Прогнозировать результаты бизнеса с помощью передового искусственного интеллекта и машинного обучения — это позволит вам оптимизировать операции, увеличивать доходы и снижать риски.
04
Анализировать данные журнала#nbsp;— вы можете хранить, исследовать и выполнять запросы к данным, сгенерированным с серверов, датчиков и других устройств, просто используя GoogleSQL.
05
Повысить рентабельность инвестиций и эффективность маркетинга с помощью данных и искусственного интеллекта — вы сможете использовать больше первичных данных, а также осуществлять персонализированный и таргетированный маркетинг в любом масштабе.
06
Обмениваться данными и быть уверенным в их конфиденциальности — так вы и ваши партнеры сможете сотрудничать, не копируя и не перемещая базовые данные в BigQuery. Это позволяет выполнять преобразования, повышающие конфиденциальность, в интерфейсах и отслеживать использование для обнаружения угроз конфиденциальности общих данных.
07
Большие данные изменили методы работы организаций. Предоставляя ценные сведения, улучшая качество обслуживания клиентов, снижая затраты и стимулируя инновации, они стали важным компонентом современного бизнеса. Для управления большими данными и их анализа требуются специализированные инструменты и технологии, такие как Hadoop, алгоритмы машинного обучения и средства визуализации данных. Поскольку объем генерируемых данных продолжает расти, важность больших данных будет только увеличиваться.