- PVSM.RU - https://www.pvsm.ru -

Еще одна реализация Обработки Данных

Представьте себе инструмент, с помощью которого вы можете трансформировать любые данные в… любые данные.

Самый доступный пример — Изображения. Что если я хочу получить картинку определенного размера и поставить где-нибудь водяную марку (тоже определенного размера).

И вот один из примеров как это может выглядеть [1]:

image

P.S.: Это обзорная статья, если будет интересно, дальше опишу подходы детальнее.

Мотивация

Недавно, в ноябре 2018, мне нужно было изменить размер фотографии…

Онлайн сервисы из-за своих «особенностей» ( реклама, странный интерфейс и тд ) сделали этот процесс максимально мучительным.

Стандартные средства Windows 10 мне показались не очевидными. Пришлось скачать GIMP и оттуда сделать все что было надо — изменить размер фотографии.

В свое оправдание:

  1. Время возникновения проблемы ~1AM ( час ночи )
  2. Рабочего ноута под рукой не было
  3. Windows дома только для игр. Сейчас иногда пишу код с apple клавиатурой

Еще одна реализация Обработки Данных - 2

И тут очередной программист решил создать еще один кост… Инструмент.

Требования

Этот Инструмент должен быть всем костылям костыль:

  1. Простой UI
  2. Простой API
  3. Удобная организация сущностей проекта
  4. Минимум кнопок и настроек
  5. Возможность имплементировать свои… «стандарты»
  6. Open Source: Backend [2] и Frontend [3]

И главное — пользоваться этим должны иметь возможность все, кто понимают чего они хотят.

Несколько возможных последовательностей:

  1. Картинка, Картинка поменьше, Фильтр
  2. Скачать содержимое URL, оставить только полезный Контент, Оставить только текст
  3. Скачать картинку, определить что на ней есть какой-нибудь предмет ( template matching )

Еще одна реализация Обработки Данных - 3

Имплементация

Недавно на Хабре читал До микросервисов нужно дорасти... [4] и решил последовать этому. Уже были пару попыток сделать такую штуку через «красивые» ( в моем воображении ) структуры: каждая функция ( вроде template_match, md5 ) как микросервис, оптимизированный для решения своей задачи. В итоге к этому все и придет, но не сегодня :)

Итого имеются:

  1. Frontend без красивых обоев [3]
  2. Backend API [2]
  3. Celery ( в локальной разработке использую Redis, а в тесте и проде RabbitMQ )
  4. Backend Workers

Скажу сразу: я очень посредственно знаком с Frontend, однако, спасибо Stackoverflow и Google поиску.

Еще одна реализация Обработки Данных - 4

Больше примеров

Все примеры можно найти здесь [5], они объединены в «проекты».

Один из них: извлечение текста из HTML страницы

Еще одна реализация Обработки Данных - 5

Внимание: сайт работает в режиме read-only, но результат вам вернет. Он не сможет сохранить ваши изменения на Project и Pipeline.

Небольшие пояснения

Список того, что может трансформировать данные: здесь [6]

Чем этот Проект не является:

  1. Хранилищем данных
  2. Майнером биткоинов [7]

Проект очень похож на:

  1. Zapier
  2. Яндекс Нирвана
  3. Parse.com (пару лет как выкуплен Facebook )

Автор: andrey665

Источник [8]


Сайт-источник PVSM.RU: https://www.pvsm.ru

Путь до страницы источника: https://www.pvsm.ru/python/301242

Ссылки в тексте:

[1] может выглядеть: https://pipeline.live/pipelines/f043fc5c-7e89-4028-b530-1dc6a8ef4ec0

[2] Backend: https://github.com/firewut/data-transform-pipelines-api

[3] Frontend: https://github.com/firewut/data-transform-pipelines-ui

[4] До микросервисов нужно дорасти...: https://habr.com/post/427215/

[5] здесь: https://pipeline.live/projects

[6] здесь: https://pipeline.live/processors

[7] Майнером биткоинов: https://habr.com/post/354796/

[8] Источник: https://habr.com/post/430880/?utm_campaign=430880