• /
  • /
Игнат Сатирский
Автор блога Андата
02.05.2024

Открытые технологии анализа данных на примере Uber

Игнат Сатирский
Автор блога Андата
Uber больше всего известен как крупный оператор такси и доставки. Также эта компания из Кремниевой долины — хороший пример дата-центричности в бизнесе, обладающий большим влиянием в мире Big Data аналитики. Uber — один из крупных разработчиков открытых платформ, доступных бесплатно для инженеров данных по всему миру. В первую очередь, их решения создавались для внутреннего использования, но потом переросли в проекты международного сообщества, находящие финансирование всей индустрии в проектах open-source фондов, в частности Apache.

В этой статье мы поговорим об open-source решениях для работы с данными, которые можно применить для сверхбыстрой аналитики при больших объемах данных.

Содержание

Базовая аналитика в близком к реальному времени

ElasticSearch используется в Uber для хранения основных бизнес-данных, интегрируется с различными системами Big Data с помощью взаимодействия с экосистемой hadoop.

Два варианта экосистемы аналитики

1. Elasticsearch

Распределенная система хранения, визуализации (Kibana), сбора данных (logstash / metricbeat). Elasticsearch - это распределенный поисковой и аналитический движок, спроектированный для обработки и анализа больших объемов данных в реальном времени. Он предоставляет мощные возможности поиска, фильтрации, агрегации и визуализации данных. Elasticsearch использует структуру обратного индекса для эффективного выполнения операций поиска и анализа. В контексте работы с Big Data, Elasticsearch может быть использован для хранения и быстрого поиска больших объемов данных, таких как логи, метрики, текстовые данные и другие. Позволяет реализовать базовые требования аналитики.

2. Elasticsearch-hadoop

Такая связка дает возможность взаимодействовать с любыми другими открытыми средствами аналитики в мире Big Data. Elasticsearch-Hadoop - это интеграция между Elasticsearch и Apache Hadoop, популярной экосистемой для обработки и анализа больших объемов данных. Этот инструмент позволяет связать Elasticsearch с Hadoop, позволяя использовать Elasticsearch в качестве источника или приемника данных для задач анализа и обработки на Hadoop-кластере.

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

Интеграция Elasticsearch-Hadoop предоставляет несколько преимуществ в сравнении с чистым использованием только Elasticsearch, особенно когда речь идет о работе с большими объемами данных и сложными аналитическими задачами. Есть сразу несколько причин, по которым Uber (и другие компании) пришли к интеграции Elasticsearch-Hadoop:

1) Обработка больших объемов данных: Apache Hadoop - это мощный фреймворк для обработки и анализа больших объемов данных в распределенной среде. Интеграция Elasticsearch-Hadoop позволяет использовать преимущества обработки данных в Hadoop для предварительной обработки, трансформации и агрегации данных перед их индексацией и хранением в Elasticsearch.

2) Аналитическая мощь Hadoop: Hadoop предоставляет множество инструментов и библиотек для выполнения сложных аналитических задач, таких как MapReduce, Spark, Hive и другие. Эти инструменты позволяют выполнять более сложные и гибкие анализы, чем те, которые предоставляет Elasticsearch в чистом виде.

3) Обработка разнообразных источников данных: Hadoop поддерживает множество источников данных, включая структурированные и неструктурированные данные. Интеграция Elasticsearch-Hadoop позволяет легко интегрировать данные из различных источников в Elasticsearch для последующего анализа и поиска.

4) Масштабируемость: Используя Hadoop-кластер, можно легко масштабировать инфраструктуру для обработки данных по мере их роста. Это особенно важно для больших компаний, таких как Uber, которые имеют огромные объемы данных.

5) Управление вычислительными ресурсами: Интеграция Elasticsearch-Hadoop позволяет более эффективно управлять вычислительными ресурсами и распределять их между задачами обработки данных и поиска/анализа.

6) Гибкость в аналитике: Комбинируя возможности Elasticsearch для быстрого поиска и агрегации данных с аналитическими инструментами Hadoop, можно достичь более широкого спектра аналитических целей и сценариев.

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

Аналитика больших данных в реальном времени с низким временем отклика

Существуют оупенсорсные решения для аналитики больших данных в реальном времени. Uber Pinot — одно из таких решений, сейчас перешедшее под финансирование и проект Apache, с которым можно интегрироваться через вышеупомянутый стек открытых технологий, а также поставлять данные в реальном времени (через очереди). Uber Pinot позволяет анализировать большие данные не просто в реальном времени, а с незаметным для пользователя временем отклика.

Также можно упомянуть среди таких решений Yandex ClickHouse как альтернативу Pinot. Основные отличия в том, что у ClickHouse один движок с различными режимами работы пост-обработчика под разные задачи, а у Pinot — набор специально заточенных движков хранения под разные задачи.

Сверхбыстрая аналитика в реальном времени с помощью графических ускорителей

Uber AresDB, используется для автоматизированного принятия решений по бизнес-данным там, где скорости обычных процессоров может быть недостаточно.
Инновация AresDB заключается в использовании графических процессоров (GPU) для ускорения обработки данных. Традиционно, для анализа больших данных использовались центральные процессоры (CPU). Однако, CPU не очень хорошо подходят для обработки больших объемов данных в реальном времени. GPU, с другой стороны, очень хорошо подходят для параллельной обработки данных, что делает их идеальными для real-time analytics.

AresDB — одна из первых платформ для анализа данных, которая использует GPU для ускорения обработки данных. Это позволяет AresDB обрабатывать большие объемы данных в реальном времени, что делает его идеальным для приложений, требующих быстрого анализа данных, таких как мониторинг трафика, определение фрода и ad hoc querying.

Благодаря своему инновационному подходу, Uber AresDB обладает целым рядом преимуществ для принятия решений по бизнес-данным:

  • Масштабируемость: AresDB может масштабироваться до миллиардов строк данных. Это позволяет компаниям хранить и анализировать все свои данные, независимо от их размера.

  • Надежность: AresDB построена на базе Apache Cassandra, которая является одной из самых надежных платформ для хранения данных. Это означает, что данные компании будут всегда доступны, даже в случае сбоя.

  • Безопасность: AresDB обеспечивает высокий уровень безопасности данных. Это позволяет компаниям защитить свои данные от несанкционированного доступа.

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

Визуализация аналитики

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

Мы в Андата выбрали именно этот стек для визуализации своих отчетов. Те отчеты, которые пользователи Андаты видят в Личном кабинете, визуализированы с помощью Kibana. Пример данных, визуализированных с помощью Kibana:
Для Pinot и Ares визуализаторы не используютсяп ользователями напрямую, потом что эти системы рассчитаны больше на автоматическое принятие решений с высокой скоростью. Тем не менее, для анализа данных за необходимую визуализацию отвечает Apache HUE/Uber Trino.

Мы выбрали Kibana для визуализации данных в связке с Elasticsearch по нескольким причинам:

  • Простота использования: Kibana проста в использовании и позволяет легко создавать различные представления данных.

  • Мощность: Kibana — мощный инструмент для визуализации данных. Она позволяет пользователям создавать различные представления данных и использовать различные способы визуализации данных.

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

  • Совместимость: Kibana полностью совместима с Elasticsearch. Это означает, что Kibana может быть использована для визуализации данных, хранящихся в Elasticsearch.

  • Доступность: Самое главное, что эта связка инструментов является opensource решением. По сравнению с другими возможными вариантами, Elasticsearch + Kibana не стоит сотни тысяч долларов, если задействовать большие бъемы данных, как это делает Андата.

Инфраструктура данных на примере Андата

Наша инфраструктура данных предназначена для хранения, обработки и анализа больших объемов данных. Она построена на основе кластера Elasticsearch+Spark и Zeppelin.

Кластер Spark - это распределённая система обработки данных, которая позволяет нам обрабатывать большие объёмы данных очень быстро.

Zeppelin - это веб-приложение, которое позволяет создавать и запускать ноутбуки. Мы выбрали для своей работы Zeppelin Notebooks, удобный способ совместной работы над проектами анализа данных. Они удобны тем, что совместимы с различными языками программирования “из коробки”, включая SQL, R, Python, Scala и Java. Elasticsearch в нашей инфраструктуре выполняет роль основного хранилища данных (Data and Delta lake), которая позволяет нам хранить и искать данные. Наша инфраструктура данных позволяет собирать, обрабатывать и анализировать данные из различных источников, включая базы данных, файлы и веб-сайты. Это позволяет получать ценные инсайты, которые помогают принимать лучшие решения для бизнеса.
Благодаря такому подходу, Андата легко обрабатывает большие объемы аналитических данных для клиентов, которые используют нашу сквозную аналитику. Мы рассчитываем уникальные цифровые паспорта пользователей и применяем data-driven атрибуцию с помощью ML. Все это мы не смогли бы делать также быстро, не построив и не продумав грамотную инфраструктуру данных.
Читайте также