Свежий проект от команды 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