Ivan Begtin
7.99K subscribers
1.82K photos
3 videos
101 files
4.53K links
I write about Open Data, Data Engineering, Government, Privacy, Digital Preservation and other gov related and tech stuff.

Founder of Dateno https://dateno.io

Telegram @ibegtin
Facebook - https://facebook.com/ibegtin
Secure contacts ivan@begtin.tech
Download Telegram
Git для данных - это давняя мечта многих разработчиков и дата-инженеров. Как организовать хранение и передачу данных так чтобы было похоже на систему контроля версий и учитывало объёмы и изменения в наборах данных.

Несколько проектов существуют для решения этой задачи, например такие:
- Dolt [1] [2] - умеет многое, объединять данные, сравнивать, делать таблицы сравнения, разрешать конфликты и тд. плюс многое из возможностей git
- Daff [3] позволяет работать с таблицами CSV и также сравнивать их, объединять и тд. Интегрирован с git
- DVC [4] система контроля версиями для проектов по машинному обучению. Довольно популярна и умеет многое связанное с проектами именно по ML


Ссылки:
[1] https://github.com/liquidata-inc/dolt
[2] https://www.dolthub.com/
[3] https://github.com/paulfitz/daff
[4] https://dvc.org/

#opendata #data #git #datatools
Свежий проект от команды 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
Интересные стартапы по дата инженерии։
- Seek AI [1] позиционируют себя как Generative AI for Data. Ты формулируешь запрос/вопрос на аналитику общими словами, а они используют ИИ для генерации ответа. Привлекли $7.5m инвестиций в этом январе [2], очень интересно что будет их итоговым продуктом потому что общедоступной информации маловато.

- Metaplane [3] платформа для мониторинга данных включая базы данных, трубы данных, источники и тд. Позиционируют себя как Datadog for data. Позиционирование довольно грамотное, для облачной дата инфраструктуры это актуально начиная со средних размеров компаний. Привлекли $8.4m инвестиций в последнем раунде в этом январе [4]. Таких проектов всё больше, с разными акцентами и шансами на выживаемость. Делать аналог Datadog кажется вполне разумной затеей.

- XetData [5] ещё один проект Git для данных, с поддержкой версионности и git-подобного режима доступа к данным. Акценты делают на обучении моделей работы с данными, возможности исследования данных (data exploration) и на эффективной дедупликации данных с сильным сжатием оригинальных данных. Привлекли $7.5m инвестиций. Выглядят интересно, но это лишь ещё один проект "git for data" вроде тех о которых я писал недавно [7]. ИМХО, в этой области модель github'а не сработает, потому что код давно уже гораздо больше подходит под общественное достояние, а данные являются объектами монетизации. Скорее востребовано должна быть модель Gitlab для данных, с возможность делать свои инстансы бесплатно или за небольшие деньги и управлять хранилищем данных подключая разные опции. А сервисы вроде XetData или того же Dolt(-а) больше напоминают сервисы очень специализированного хостинга с монетизацией за гигабайт/терабайт и каналы доступа.

Ссылки։
[1] https://www.seek.ai
[2] https://www.seek.ai/press-01-11-23
[3] https://www.metaplane.dev
[4] https://www.metaplane.dev/blog/the-next-stage-of-metaplane
[5] https://xetdata.com
[6] https://xetdata.com/blog/2022/12/13/introducing-xethub/
[7] https://t.me/begtin/4532

#startups #data #dataquality #git #dataengineering
В рубрике любопытных инструментов по работе с данными GQL [1] утилита/оболочка по доступу к Git репозиторию через SQL-подобные запросы.

Запросы могут выглядеть, например, вот так:
- SELECT name, email FROM commits WHERE name LIKE "%gmail%" ORDER BY name
- SELECT * FROM branches

Автор явно перфекционист и вложил много усилий в SQL подобный парсер и сам инструмент, который полностью на написан Rust.

Почему я обращаю внимание на подобное, потому что это один из многих примеров восприятия мира как "всё данные" в форме "со всем можно работать через SQL".

Ссылки:
[1] https://github.com/AmrDeveloper/GQL

#opensource #datatools #git