О том как собирать и загружать данные, я хочу напомнить про один из важнейших проектов в этой области - Singer [1]. Singer - это open source стандарт по перемещению данных и работающий с командной строки.
Основными концепциями в Singer являются tap (на русский язык можно перевести как вентиль) и target (по-русски это будет цель).
Основная идея в том что процессы извлечения данных (extraction) и загрузки (load) являются довольно типовыми и укладываются стандартные файловые потоки. А то есть можно перенаправлять ввод вывод как между приложениями командной строки и получать результат.
Пример вызова команд в Singer выглядят примерно так: tap-exchangeratesapi | target-csv
Все цели и вентили пишутся на Python, всего их довольно много уже создано, а у проекта есть коммерческий интересант Stitch [2] которые и выложили его как открытый код. А сами Stitch предоставляют облачный сервис для работы с потоками данных.
Но используют Singer не только Stitch, его используют многие другие коммерческие и open source решения. Например, Singer лежит в основе Meltano [3] и ещё ряда инструментов. Хотя вот в случае Airbyte, другого инструмент для ETL, его создатели пишут что у Singer много недостатков и поэтому они его не используют [4].
Конечное решение можно принять самостоятельно. Лично я вижу пока ключевым недостатком Singer - в разном качестве вентилей и уровне их поддержки. А также почти полным отсутствием российские сервисов - Яндекс.Метрики, к примеру. Впрочем не факт что эти недостатки затмевают возможности.
Ссылки:
[1] https://www.singer.io/
[2] https://www.stitchdata.com
[3] https://hub.meltano.com/singer/taps/
[4] airbyte.com/blog/wh…f-singer
#datatools #opensource #datapipelines