Свежий проект от команды Github'а - FlatData [1] как набор инструментов для сбора и обработки данных в git репозиториях. Это подход который когда-то продвигал Simon Wilson [2], автор многих инструментов и проектов на данных. Действительно Github с его набором действий очень подходит для автоматизации сбора данных. У него же есть пример автоматизации сбора данных о пожарах в Калифорнии [3].
Не менее интересный инструмент Flat Viewer для просмотра простых (плоских) файлов [4].
Инструменты интересные, и открытым кодом и интегрированностью в Github, хотя вот скажу честно для работы с относительно большими наборами данных они уже ограничены.
Я могу сказать что про эти инструменты что про десятки других что я видел за последние годы, у них примерно одна и та же проблема - работа с плоскими данными. Данные с которыми я и моя команда работаем, к примеру, почти всегда не_плоские. Это сложные JSON или XML объекты декомпозиция которых назад в плоские таблицы - это большая работа, трудоёмкая и ресурсозатратная. Часто проще с самого начала сохранять сложность первичных данных, преобразуя их только тогда когда есть в этом необходимость. Для такого не подходят CSV и плоский JSON, а скорее файлы построчного JSON lines и BSON (используется в MongoDB)
Я сам выложил в открытый код как минимум 2 инструмента с таким подходом:
- undatum [5] - утилита для обработки данных, с акцентом как раз на JSON lines и BSON.
- apibackuper [6] - утилита для автоматизации выгрузки наборов данных из API с экспортом данных в JSON lines.
С другой стороны я знаю немало инициатив как раз по отказу от платформ вроде Github'а для хранения данных и использованию альтернатив. Например, Giftless [7] от Datopian даёт возможность эмулировать Git LFS поверх локального хранилища и хранилищ Google, Amazon и Azure, тем самым мигрируя с хранилища Github.
В любом случае современные проекты на данных - это чаще конструкторы. Иногда можно и нужно писать свой код, но чаще итоговый продукт или решение - это сборная солянка из множество компонентов.
Ссылки:
[1]
https://octo.github.com/projects/flat-data[2]
https://simonwillison.net/2020/Oct/9/git-scraping/[3]
https://github.com/simonw/ca-fires-history[4]
https://flatgithub.com/the-pudding/data[5]
https://github.com/datacoon/undatum/[6]
https://github.com/ruarxive/apibackuper[7]
https://github.com/datopian/giftless#opendata #datatools #opensource #git #github