Код в мешке
249 subscribers
9.08K photos
1.6K videos
2.11K files
42.7K links
Код в мешке - про кодинг, и не только...
Это личная записная книжка

https://t.me/joinchat/AAAAAEIy6oGlr8oxqTMS5w
Download Telegram
Forwarded from Ivan Begtin (Ivan Begtin)
Я ранее писал про применение ИИ агентов для рефакторингка кода и про декларативное программирование, а теперь а теперь расскажу про декларативное создание баз данных.

Когда я только-только начинал вести список каталогов с данными в мире я делал это в в Excel файле с парой десятков колонок и сотнями записей, потом Excel стал неудобен и я перенес все в Airtable что было удобнее в течение длительного времени, там можно было настраивать разные view на одну и ту же таблицу и целенаправленно вносить новые записи с по странам или темам. С автоматизацией было не очень, зато ручная работа облегчалась.

И вот когда у меня в голове уже созрела мысль что не попробовать ли сделать поисковик по датасетам, я понял что надо перестать думать об этих данных как о таблицах (сложно перестать, конечно) и начать думать как о реестре. Для меня тогда выбор был в том чтобы:
- перенести этот реестр в СУБД и создать поверх интерфейс для редактирования. Например, загрузить в Postgres и поверх сделать быстро интерфейс с помощью Strapi или Directus'а или других no-code инструментов
- или начать смотреть на этот реестр как на код и поместить все в Github. Не так удобно для работы вручную, но хорошо автоматизируется

В итоге я пошёл вторым путем и разрезал таблицы на индивидуальные карточки дата каталогов сохраненные как YAML файлы согласно предопределенной схеме данных. Например, вот такая карточка. Эти записи можно редактировать вручную, а можно и автоматически. Можно автоматизировать обогащение метаданных, проверку API, доступность сайтов, проверку ошибок и так далее. Чтобы собственно и происходит внутри этого репозитория. От изначальный 2 тысяч каталогов до текущего их числа в более чем 10+ тысяч дата каталогов он вырос за счет автоматизированной загрузки в него большого числа дата каталогов из их агрегаторов.

Теперь я подключил последнюю версию Cursor'а к обновлению этого репозитория и оказывается он очень хорош в массовом обновлении YAML файлов и понимает команды сформулированные в стиле:
- "Проанализируй все записи, найди те у которых веб сайт владельца не указан, найди веб сайт и заполни поля owner.name и owner.link"
- "Проверь все записи относящиеся к Бельгии и проверь доступны ли указанные там сайты"
- "Создай JSON схему для YAML файлов дата каталогов и проверь все их записи на соответствие этой схеме"

и так далее.

Магия начала работать когда реестр достиг некоторой критической массы которая "помогает" ИИ агенту понимать схемы данных, предназначение репозитория и находить несоответствия. Ручная работа всё еще необходима, но для проверки сделанного, и её тоже можно автоматизировать.

Итого сейчас в обновленных данных реестра Dateno 10 905 каталогов. Они все пока в репозитории реестра в виде YAML файлов и parquet файла слепка с данными. Это на 794 каталога данных больше чем пока есть в общедоступном реестре (всего 10 111 каталогов).

Были добавлены:
- каталоги данных на базе GBIF IPT
- большие списки каталогов данных во Франции, Испании и Нидерландах
- по мелочи каталоги данных в других странах

А также огромное число исправлений в метаданных всех каталогов.

Фактически ИИ агенты для разработки прекрасно подходят для работы с данными упакованными таким образом. Я начинаю склоняться к мысли что такое обогащение данных работает лучше чем инструменты вроде OpenRefine.

Чуть позже я буду писать об этом всем лонгрид, но это уже после завершения чистки и обогащения репозитория которое уже сильно ускорилось.

#opendata #datacatalogs #dateno #dataengineering #dataanalysis