Как стать автором
Поиск
Написать публикацию
Обновить

Marvel: Infinity War или Как собрать данные под свой проект за пару минут

Время на прочтение4 мин
Количество просмотров3.2K


У меня есть две сферы интересов. Первая: общество анонимных ленивых аналитиков данных, вторая: общество анонимных гиков. И если со второй у меня все ок, то с первой все сложнее. Когда говоришь людям, какие задачи решают аналитики данных, что они представляют? Ради эксперимента ввела в гугл определение и первое же:
Аналитик данных — это универсальный специалист, который обладает знаниями в математике, статистике, информатике, компьютерных науках, бизнесе и экономике. Аналитик Big Data изучает большие массивы данных, содержащие разрозненную информацию, например: результаты исследований, рыночные тенденции, предпочтения клиентов и пр. Исследование и анализ такой информации может привести к новым научным открытиям, повышению эффективности работы компании, новым возможностям получения дохода, улучшению обслуживания клиентов и т.д. Основное умение специалистов по изучению данных – это видеть логические связи в системе собранной информации и на основании этого разрабатывать те или иные бизнес-решения, модели.

Определение с сайта buduguru.org/profession/39.

Универсальный специалист, окей. Судя по описанию что-то между доктором Манхэттеном и Стивеном Хокингом.


Однако не буду вдаваться в семантику этого определения, я хочу поговорить на больную тему аналитиков данных (нет, не ту, где нытье разговоры об отсутствии данных). А что делать если данные ЕСТЬ?

И тут мы переходим к вытекающим проблемам:

  • С помощью каких инструментов изучать эти данные?
  • Как преобразовывать эти массивы данных?
  • Как хранить их? Надо ли их хранить?
  • Что делать, если источников очень много, и все они гетерогенны?

Окей. Пул проблем мы сформировали, а что делать дальше? В данной статье я расскажу об инструменте, который реализовала наша команда разработки, а именно об облачной системе iDVP.Data SaaS.

Что это такое?

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

Война бесконечности


Тут мы невольно пересекаемся со второй сферой интересов: в качестве примера я решила подключить открытые данные Marvel к iDVP.Data SaaS. Все уже смотрели новый фильм о Войне бесконечности? Посмотрев фильм, я не могла не вспомнить и другие масштабные конфликты во вселенной Marvel, понесшие за собой глобальные изменения франшизы. Мне стало интересно вспомнить, сколько персонажей по линии комиксов участвовало в Infinity War, и сколько в ней погибло? Чтобы ответить на эти вопросы, я обратилась к самому достоверному источнику — официальному сайту Marvel.



Первым делом зайдем на сайт iDVP.Data SaaS и зарегистрируемся.

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



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

  • REST cервис, возвращающий информацию о всех персонажах вселенной Marvel;
  • REST cервис, возвращающий информацию о всех событиях вселенной Marvel;
  • файл в формате CSV, где указаны основные участники гражданской войны.

Шаг 1. Подключить

Поочередно подключаем данные:



В результате получаем три подключенных источника данных:



  • participants_marvel_raw — сервис;
  • characters_marvel_raw — сервис;
  • events_marvel_raw — файл в формате CSV.

Шаг 2. Преобразовать

После подключения данных создаем наборы данных (Datasets), где выполняем необходимые преобразования (очистка данных, вычисления или, например, парсинг данных из JSON) при помощи SQL-скриптов.

select
k.id,
k.name,
k.com.name as comics_name,
k.ser.name as series_name,
k.stor.name as stories_name,
k.event.name as events_name
from (
    select
    a.id,
    a.name,
    flatten(a.comics) as com,
    flatten(a.series) as ser,
    flatten(a.stories) as stor,
    flatten(a.events) as event
    from (
        select
        c.`data`.id as id,
        c.`data`.name as name,
        c.`data`.comics.`items` as comics,
        c.`data`.series.`items` as series,
        c.`data`.stories.`items` as stories,
        c.`data`.events.`items` as events
        from (
            select
            t.res.`data`.`results` as `data`
            from (
                select
                convert_from(a.content, 'JSON') res
                from `characters_marvel_raw` a
                ) t
            ) c
        ) a
    ) k

В результате получаем распарсенные данные:



И такую цепочку потоков данных:



После подключения данных и их преобразования скорость доступа к полученной информации все еще может быть низка (из-за долгого ответа источника или из-за большого объема данных). Здесь срабатывает механизм «материализации» (сохранения) данных в самой iDVP.Data SaaS. Обращение к сохраненным данным осуществляется крайне быстро даже при работе с большими объемами информации за счет использования технологий BigData. Сохраненные данные в любой момент можно обновить (полностью или частично), а также настроить расписание, по которому система будет их обновлять автоматически.

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



Шаг 3. Опубликовать

Создаем витрину данных (web-сервис), которая также представляет собой SQL-запрос. В витрине данных можно определить входные и выходные параметры.



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




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

P.S. Выводы




Первый вывод

Мы вспомнили линейку комиксов, где упоминается Война бесконечности, и вот что получили:

  • участвовало 57 персонажа;
  • 5 не подтверждено;
  • 15 погибло.

Второй вывод

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

С его помощью вы сможете самостоятельно:

  • подключаться к различным источникам;
  • единообразно получать данные из любых источников;
  • выполнять ETL-преобразования данных при помощи SQL;
  • повышать скорость работы с данными с помощью технологий BigData;
  • анализировать данные;
  • предоставлять данные во внешние системы;
  • осуществлять данные операции в удобном и простом интерфейсе.

Заранее благодарны за обратную связь!

Пример использования на комментариях к посту:

Статистика по комментариям.
Теги:
Хабы:
Всего голосов 10: ↑8 и ↓2+6
Комментарии12

Публикации

Ближайшие события