Привет! Меня зовут Андрей Шмиг, я основатель и разработчик платформы DataHub — Crowd Data Sourcing at Hand, своего рода GitHub для данных. В этой статье покажу, каким образом можно монетизировать имеющиеся у вас структурированные и неструктурированные данные будь вы разработчик, data‑scientist или ML‑специалист.
![](https://habrastorage.org/getpro/habr/upload_files/561/781/538/5617815387d50e8c6fe1c61bbe509c23.jpg)
Предыдущие статьи
В прошлой статье я продемонстрировал, каким образом можно создавать репозитории данных типа FREE (бесплатные) и SPONSORED (спонсируемые), что из себя представляют репозитории данных и как выглядят хранилища данных.
Полный список связанных статей:
Типы репозиториев данных
Платформа DataHub поддерживает три типа репозиториев:
FREE (бесплатный);
SPONSORED (спонсируемый);
COMMERCIAL (коммерческий).
Первые два типа репозитория данных позволяют получать бесплатный доступ к данным, а отличаются только возможностью финансирования автора для поддержания репозитория данных в актуальном состоянии. Например, логично было бы репозиторий данных со списком стран мира сделать типа FREE, а репозиторий с данными со списком улиц города (если представим, что эти данные требуют обновления с некой периодичностью) типа SPONSORED.
COMMERCIAL тип репозитория данных поддерживает несколько форматов (способов) оплаты доступа к данным:
Pay per row;
Pay per query;
Pay by function;
О каждом из этих форматов расскажу ниже.
Меняем тип репозитория данных
Из прошлой статьи у нас остался демо‑репозиторий, который мы и будем использовать сейчас — база стран всего мира (демо).
Переходим в режим редактирования репозитория данных — его основной информации:
![](https://habrastorage.org/getpro/habr/upload_files/801/bc7/499/801bc7499775b78ec8485fe958f712fe.png)
Переключаем репозиторий с типа FREE на тип COMMERCIAL:
![](https://habrastorage.org/getpro/habr/upload_files/60d/d87/686/60dd876866b6d4cd4a83759e60cb3212.png)
Тип репозитория данных COMMERCIAL поддерживает три режима (формата) оплаты за доступ к данным:
Pay per row;
Pay per query;
Pay by function;
Pay per row: при использовании данного режима (формата) оплаты стоимость конечной выборки данных зависит от количества строк (rows) в результате выполнения запроса через Visual Query Builder или Predefined Queries. В поле со стоимостью указывается стоимость 1 строки данных, а конечная стоимость вычисляется как произведение стоимости одной строки данных на общее количество в результатирующей выборке.
Pay per query: при использовании данного режима (формата) оплаты стоимость конечной выборки фиксирована и не зависит от количества строк (rows) в результатирующей выборке. В поле со стоимостью указывается стоимость одного запроса к репозиторию данных, вне зависимости от количества строк (rows), которые были в ответе.
Pay by function: при использовании данного режима (формата) оплаты стоимость конечной выборки вычисляется указанной JS‑функцией, которая на входе получает объект с полями storage и rows. Поле storage — объект с информацией о хранилище к которому выполняется запрос, а rows — результатирующий набор данных полученный в результате выполнения запроса либо через Visual Query Builder, либо через Predefined Queries.
![](https://habrastorage.org/getpro/habr/upload_files/b66/a84/71a/b66a8471a3baadadf1623a3cfc3cca33.png)
JS‑функция формирования стоимости должна возвращать значение типа Number — в любом другом случае платформа установит стоимость выборки данных равной нулю (0.00)
На выполнение функции даётся 10с, после чего выполнение прерывается и значение стоимости устанавливается в 0.00 рублей. В функции доступны глобальные объекты Math и некоторые другие.
Использование JS‑функции в качестве метода формирования стоимости удобно, когда в одном репозитории несколько хранилищ данных и доступ к каждому из них должен быть тарифицирован по‑разному.
Как вы уже, наверно, догадались — коммерческий репозиторий может быть бесплатным (точнее — к части данных предоставлять бесплатный доступ, например, к демо‑данным), если в соответствующих полях указывать нулевые стоимости строк / запросов.
Воспользуюсь Pay per row форматом оплаты и установлю стоимость одной строки данных равно 0.5 коп. Сохраню репозиторий и перейду в публичное его представление.
![](https://habrastorage.org/getpro/habr/upload_files/7e8/718/cd4/7e8718cd4033ed6a1cf0d79ca8b82ca3.png)
Обратите внимание, что в правом блоке с базовой информацией о репозитории данных появилась отметка, что это коммерческий репозиторий и указан алгоритм определения стоимости.
Так как до Predefined Queries мы ещё не дошли в наших статьях — воспользуюсь демонстрацией Visual Query Builder на главном экране репозитория.
Переключаемся на вкладку Builder и выбираем таблицу countries:
![](https://habrastorage.org/getpro/habr/upload_files/e92/20c/70d/e9220c70db4059bfccd12c988c87b352.png)
В прошлой статье мы создавали эту таблицу и добавляли в неё три страны. В левом нижнем углу видим, что в выборке (без каких‑либо других условий) содержится 3 строки (rows) и стоимость этой выборки 1.50 ₽
Если мы добавим какое‑то условие во вкладке Conditions и изменим количество строк в выборке, то автоматически пересчитается и стоимость:
![](https://habrastorage.org/getpro/habr/upload_files/06f/963/05c/06f96305c9f243a7f47e0cefb190c64b.png)
Конечный пользователь может выбрать один из форматов в которых необходимо выгрузить данные — JSON, XML, XLS и по клику на кнопку «Download» получить необходимый набор данных (только в том случае, если на балансе будет достаточно средств для списания).
Надеюсь, что возможности DataHub позволят вам монетизировать имеющиеся у вас данные эффективно!
В следующих статьях рассмотрим с вами возможности предоставления более гибких способов доступа к данным репозитория конечным пользователям через Predefined Queries.
Если вам понравилась статья — ставьте лайк и оставляйте комментарий. Подписывайтесь на мой блог про DataHub на Хабре, а так же на Телеграм канал поддержки сервиса.
Мой публичный профиль на DataHub — @aashmig.
Буду рад ответить на ваши вопросы и дополнить статью.