Гарри Поттер, Big Data и управление данными
Непростительное ожидание
Я аналитик данных, и каждый день передо мной стоят задачи по сбору/анализу/проектированию данных для отчетов или приложений. С каждым днем количество источников увеличивается, а объем самих данных растет прямо пропорционально времени переработок. При появлении нового источника данных цепочка действий, обычно, следующая:
- пишешь DevOps-ам/разработчикам о появлении нового источника;
- получаешь оценку возможности интеграции;
- в случае сервиса, ждешь пока пройдет интеграция;
- в случае БД, ждешь пока развернут СУБД;
- запрашиваешь у Заказчика обезличенный бэкап;
- просишь DevOps-а/разработчика загрузить бэкап.
При успешном выполнении всех шагов я наконец-то смогу изучить данные (разбавляем все эти шаги заведением задач в JIRA и ожиданием, пока они пойдут в работу).
Логичные вопросы, которые могут возникнуть у внимательного читателя:
- Почему самой не развернуть бэкап?
- В чем сложность оценки интеграции?
- Почему каждый раз вы разворачиваете СУБД, если такие кейсы повторяются?
Окей, но как это сократит мое время? Невозможно предусмотреть все виды источников, архитектуры сервисов и заранее развернуть у себя всевозможные СУБД. Никто не знает, хранит ли Заказчик данные у себя в красивой БД или же в экселевском файле в папке «Разобрать».
Следующим острым вопросом является то, как эти данные обрабатывать? С помощью каких инструментов, как их сравнивать и объединять?
В результате можно подытожить, что сложность сбора данных, отсутствие единого интерфейса для управления данными, а, главное, многообразие библиотек и инструментов ведет к часам (а иногда и неделям), потраченным на подготовительную работу. Не круто.
Маховик времени
С учетом сформулированных проблем и отсутствием маховика времени вопрос стоял более, чем остро, и я решительно направилась к нашему отделу разработки.
И именно о реализованном ими инструменте я хочу рассказать в данной статье, об облачной системе iDVP.Data SaaS.
iDVP.Data SaaS — это многофункциональный инструмент для работы с данными в облаке, который позволяет подключать различные данные, преобразовывать их и отдавать во внешние системы, как веб-сервисы. Для наглядности расскажу про функциональные возможности платформы на примере подключения данных по серии фильмов о Гарри Поттере.
Первым делом зайдем на сайт iDVP.Data SaaS и зарегистрируемся.
После этого мы попадаем на рабочую страницу пользователя, где есть рабочие пространства с тестовыми кейсами. В них представлены потоки данных от подключения источника данных до витрины данных.
Изучив тестовые примеры и добавив новое рабочее пространство, перейдем к созданию собственного потока данных. В качестве источников данных (частично с сайта Harry Potter API) у нас есть:
- REST cервис, возвращающий информацию об основных магических домах, включая информацию о директорах, цветах флагов и основателях;
- таблица в Postgres 10, хранящая информацию об основных персонажах серии фильмов;
- файл в формате XLSX, где указаны основные заклинания.
Шаг 1. Подключить
Поочередно подключаем данные:
В результате получаем три подключенных источника данных:
- houses_raw — сервис;
- characters_raw — БД;
- spells — файл в формате XLSX.
Шаг 2. Преобразовать
После подключения данных создаем наборы данных (Datasets), где выполняем необходимые преобразования (очистка данных, вычисления или, например, парсинг данных из JSON) при помощи SQL-скриптов.
В результате получаем распарсенные данные:
И такую цепочку потоков данных:
После подключения данных и их преобразования скорость доступа полученной информации все еще может быть низка (из-за долгого ответа источника или из-за большого объема данных). Здесь срабатывает механизм «материализации» (сохранения) данных в самой iDVP.Data SaaS. Обращение к сохраненным данным осуществляется крайне быстро даже при работе с большими объемами информации за счет использования технологий BigData. Сохраненные данные в любой момент можно обновить (полностью или частично), а также настроить расписание, по которому система будет их обновлять автоматически.
Таким образом, есть возможность накапливать исторические данные, даже если сам источник этого не поддерживает. Материализация также помогает продолжать работу с данными, в случае если источник становится недоступным, за счет сохранения в файловой системе iDVP.Data SaaS.
Шаг 3. Опубликовать
Создаем web-сервисы (или витрины), которые также представляют собой SQL-запросы. В витрине данных можно определить входные и выходные параметры.
После того, как витрины данных созданы, их можно публиковать в открытый доступ и использовать в своих внешних системах.
Полученный сервис можно использовать для построения отчетов и 3D приложений, как, например, мы это делали для визуализации данных Выборов 2018.
Выводы
Если вам также, как и мне, надоело мучать ваших DevOps-ов и разработчиков, тратить свое время впустую на подключение данных и создание тасков, то можно воспользоваться системой iDVP.Data SaaS, которая на данный момент проходит этап бета-тестирования. Наша команда надеется, что среди вас, дочитавших эту историю до конца, есть те, кто станут первыми тестировщиками нашего нового инструмента.
Вы сможете самостоятельно:
- подключаться к различным источникам;
- единообразно получать данные из любых источников;
- выполнять ETL-преобразования данных при помощи SQL;
- повышать скорость работы с данными с помощью технологий BigData;
- анализировать данные;
- предоставлять данные во внешние системы;
- осуществлять все эти операции в удобном и простом интерфейсе.
Заранее спасибо за обратную связь!