- PVSM.RU - https://www.pvsm.ru -
Думаю многие уже наслышаны о пользе открытых данных. То здесь, то там открытые данные экономят бюджет, помогают бизнесу и многое другое. Тем не менее качество государственных открытых данных все ещё оставляет желать лучшего. Это сильно тормозит прогресс в этом направлении.
Очевидно, что ждать, когда государственные органы начнут публиковать данные в готовом для использования виде, не имеет смысла. К тому же открытые данные не ограничиваются только государственными данными.
Поэтому представляю вашему вниманию проект MyDataSpace [1], который призван сделать открытые данные более доступными всем желающим.
MyDataSpace [1] – это сервис публикации данных. Любой может опубликовать данные и любой же может получить доступ к ним через веб-интерфейс или API.
Вот основные возможности сервиса:
имя-набора-данных.myda.space
Теперь подробнее по некоторым пунктам.
Веб-интерфейс для импорта реализован на базе OpenRefine [2]. Это инструмент для очистки наборов данных и для выполнения сложных операций с данными. У него есть свой язык GREL похожий на формумы Exel и OpenOffice.
OpenRefine сложен в освоении, зато имеет открытый исходный код и безграничные возможности по обработке данных разных форматов – JSON, JSONL, XML. Также от позволяет импортировать данные из ODT, XLS, XLSX и даже из Google Docs.
Из недостатков можно отметить то, что OpenRefine загружает все данные в память единовременно и это ограничивает размер импортируемого через него файла. Но для импорта больших файлов (> 500мб) есть API.
В отличие от аналогов таких как data.word [3] или Firebase [4], данные хранятся в древовидном виде. К каждому элементу данных можно обратиться по абсолютному пути, как к файлу в файловой системе. Например, так можно узнать стоимость биткойна на бирже WEX 5 марта 2018 года в 14:45 (по UTC):
https://api.mydataspace.net/v1/entities?root=exchange_rates&path=btc_usd/wex/2018-03-05_14-45
Все дополнительные сервисы являются частью этого дерева. Благодаря этому у нас есть единый API для чтения/изменения данных, добавления задач, загрузки файлов и создания визуализаций.
MyDataSpace [1] – не просто хранилище данных. Его можно использовать как бекенд для сайта или мобильного приложения. Поэтому API проектировался так, чтобы дать пользователю максимальные возможности по работе с данными:
Данные хранятся в множестве шардов MySQL и индексируются в ElasticSearch. Так-как Elastic используется только как индекс, мы можем легко мигрировать на новые версии, менять маппинги не боясь потерять данные и не останавливая работу сервиса.
API доступен в 2 вариантах:
По возможностям они одинаковые, за исключением того, что для WebSocket есть SDK [5] и он позволяет получать уведомления об изменении интересующих вас данных в реальном времени. Благодаря чему возможно сделать, например, такое:
Все открытые данные в государственных источниках версионируются. Наш сервис без такой возможности тоже был бы неполноценен.
Пользователи могут писать небольшие программы на JavaScript, которые будут выполняться по расписанию (раз в час, сутки, неделю, месяц) на сервере. Такие программы полезны для обновления данных из удаленного источника.
Программа на сервере выполняется в песочнице как в браузере (можно, например, подключить jQuery), это позволяет отлаживать программу непосредственно в вашем браузере перед тем как отправить её на выполнение на сервер.
Так как на сервере используется nodejs 8+, пользователю доступны последние фичи JavaScript (классы, async/await, и др. [6]).
Пост уже получится достаточно большой, так что продолжение следует.
Автор: fiftin
Источник [7]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/otkry-ty-e-danny-e/274539
Ссылки в тексте:
[1] MyDataSpace: https://myda.space/ru
[2] OpenRefine: https://github.com/OpenRefine/OpenRefine/wiki
[3] data.word: https://data.world
[4] Firebase: https://firebase
[5] SDK: https://github.com/mydataspace/mydataspace
[6] др.: http://node.green/
[7] Источник: https://habrahabr.ru/post/350482/?utm_campaign=350482
Нажмите здесь для печати.