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

https://t.me/joinchat/AAAAAEIy6oGlr8oxqTMS5w
Download Telegram
Forwarded from Ivan Begtin (Ivan Begtin)
В рубрике как это устроено у них о том как управляют публикацией открытых данных во Франции. Частью французского национального портала открытых данных является schema.data.gouv.fr [1] на котором представлено 73 схемы с описанием структурированных данных. Эти схемы охватывают самые разные области и тематики:
- схема данных о государственных закупках
- схема данных о грантах
- схема данных архивных реестров записей
и ещё много других.

Всего по этим схемам на портале data.gouv.fr опубликовано 3246 наборов данных, чуть более 5% от всего что там размещено.

Особенность портала со схемами в том что все они опубликованы как отдельные репозитории на Github созданными из одного шаблона. А сами схемы представлены, либо по стандарту Frictionless Data - тот самый формат про таблицы о котором я писал и он тут называется TableSchema, либо в формате JSONSchema когда данные не табличные. В общем-то звучит как правильное сочетания применения этих подходов.

А для простоты публикации данных по этим схемам у был создан сервис Validata [2] в котором загружаемые данные можно проверить на соответствие этой схеме.

Ссылки:
[1] https://schema.data.gouv.fr
[2] https://validata.fr/

#opendata #datasets #data #datatools #france
Forwarded from Ivan Begtin (Ivan Begtin)
Полезные ссылки про данные, технологии и не только:
- Cloudflare R2 data catalog [1] свежий каталог данных на базе Apache Iceberg от Cloudflare поверх их сервиса хранения файлов R2. Хорошая новость, потому что R2 дешевле Amazon S3 при сравнимом качестве сервиса. Жду когда Backblaze запустит аналогичный сервис для их Backblaze B2
- xorq [2] читается как zork, фреймворк для обработки данных с помощью разных движков. Там и DuckDB, и Pandas, и DataFusion и др. Удобство в универсальности, но продукт пока малоизвестный, надо смотреть
- Iceberg?? Give it a REST! [3] автор рассуждает о том что без REST каталога Iceberg малополезен и, в принципе, про развитие этой экосистемы. Многие уже рассматривают стремительный взлёт Iceberg как хайп, что не отменяет того что технология весьма любопытная.
- BI is dead. Change my mind. [4] текст от Engeneering director в Clickhouse о том как меняется (может поменяться) BI в ближайшее время. TLDR: LLM + MCP + LibreChat. Чтение полезное для всех кто занимается внутренней аналитикой и использует Clickhouse
- Roadmap: Data 3.0 in the Lakehouse Era [5] изменения в экосистеме управления данными с точки зрения венчурного капитала. Простым языком для тех кто инвестирует средства в то какие новые технологии в дата инженерии появились и развиваются.

Ссылки:
[1] https://blog.cloudflare.com/r2-data-catalog-public-beta/
[2] https://github.com/xorq-labs/xorq
[3] https://roundup.getdbt.com/p/iceberg-give-it-a-rest
[4] https://www.linkedin.com/pulse/bi-dead-change-my-mind-dmitry-pavlov-2otae/
[5] https://www.bvp.com/atlas/roadmap-data-3-0-in-the-lakehouse-era

#opensource #dataanalytics #datatools #dataengineering
Forwarded from Ivan Begtin (Ivan Begtin)
По поводу каталогов данных на базы Apache Iceberg, я не поленился и развернул один на базе Cloudflare R2 о котором писал ранее и могу сказать что всё прекрасно работает, с некоторыми оговорками конечно:

- каталог в Cloudflare R2 настраивается очень просто, без танцев с бубном, но требует ввода карты даже если не надо платить (на бесплатном тарифе в R2 можно хранить до 10GB и бесплатный исходящий трафик). Фактически там просто одна галочка которую надо включить
- подключение к pyIceberg также крайне простое, и в части загрузки данных, и в части запросов к ним. Для всего есть примеры
- а вот для прямого подключения DuckDB к этому каталогу танцы с бубном явно понадобятся, потому что в документации нет ничего про R2, примеры только с Amazon S3 Tables и Amazon Glue, скорее всего всё вскоре появится, но пока ничего нет.
- не заработало передача параметров фильтрации в функции table.scan, что решается последующим запросом к не фильтрованным записям, но при фильтрации требует очень много памяти;
- какие-либо UI для каталогов Apache Iceberg пока отсутствуют. Вернее есть встроенные инструменты в облачных сервисах и возможность посмотреть на загруженное в open source каталогах типа Nessie и Lakehouse, но всё это встроенные интерфейсы. Явно напрашивается UI для Iceberg browser и доступ к таблицам из веб интерфейса через DuckDB WASM к примеру.
- спецификация предусматривает возможность задания метаданных таблицам и пространствам имён, но у меня это не сработало. Впрочем я бы метаданные по пространствам имён хранил бы отдельно. Как то это логичнее
- хотя UI для каталога нет, но UI для доступа к данным в нём можно обеспечить через UI к DuckDB. Хотя для DuckDB нет пока инструкций для подключения к R2, но есть примеры прямого чтения метаданных по файлу манифеста в JSON
- есть ощущение что для работы с Iceberg и подобными таблицами напрашивается кеширующий клиент. Собственно я не первый и не один кто об этом думает.

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

#datatools #data #dataengineering #dataanalytics
Forwarded from Ivan Begtin (Ivan Begtin)
Полезные ссылки для работы с данными, технологиями и не только:
- DocsGPT и LocalGPT два похожих продукта для извлечения знаний и чата с локальными документами. Первый под лицензией MIT, второй под Apache 2.0. Поддерживают множество форматов документов, работают с облачными и локальными моделями ИИ. Какой лучше не знаю, надо пробовать оба продукта.
- Markitdown утилита от Microsoft по преобразованию чего угодно в формат markdown. Поддерживает документы MS Office, PDF, HTML, аудио и изображения и многое другое.
- AI Dataset generator генератор синтетических наборов данных с помощью ИИ. Умеет подключаться к разным LLM и интегрировано с инструментом визуализации Metabase. Открытый код, лицензия MIT
- gt-extras расширение для пакета great-tables для Python позволяющее рисовать красивые таблицы в Python в средах научных тетрадок Jupyter или в Quatro из фреймов данных Pandas и Polars. Удобное для всех кто занимается аналитикой на данных
- OpenAIRE changelog хороший пример версионирования и журнала большого открытого дата-продукта.

#opensource #data #datatools
Forwarded from Ivan Begtin (Ivan Begtin)
Полезные ссылки про данные, технологии и не только:
- DuckDB XML Extension - расширение для DuckDB для парсинга XML/HTML, пока не пробовал и интересно как он сможет съесть XML в пару пару десятков гигабайт, но выглядит полезно
- remote-jobs - репозиторий с огромным числом IT компаний имеющих вакансии для дистанционной работы. Некоторые компании remote-only, без офисов, в некоторых гибридный подход, в любом случае список полезный для тех кто ищет работу дистанционно
- Embedding User-Defined Indexes in Apache Parquet Files - для тех кто хочет поглубже разобраться с тем что такое Parquet, разбор реализации специализированного индекса внутри Parquet файлов.
- Rethinking CLI interfaces for AI у автора рефлексия о переосмыслении подхода к созданию и развитию утилит командной строки в контексте MCP и LLM. Текст довольно короткий, но здравый
- Edit перевыпуск древнего редактора Edit для MS-DOS переписанного на Rust под множество платформ. Для тех кого пробивает на ностальгию, но у меня лично по Edit'у никакой ностальгии не осталось, он мне не нравился ещё тогда;)

#opensource #ai #datatools
Forwarded from Ivan Begtin (Ivan Begtin)
Для тех кто работает с данными на регулярной основе и любит командную строку:
- xan, the CSV magician - инструмент для манипуляции с CSV файлами от команды medialab французского SciencePo. Акценты на визуализацию в командной строке. Написан на Rust, открытая лицензия
- qsv - инструмент обработки CSV файлов с акцентом на производительность и подготовку данных для публикации на порталах открытых данных CKAN. Написан на Rust, открытая лицензия
- q - инструмент SQL запросов к текстовым файлам, например, CSV
- jq - инструмент запросов к JSON файлам

Я также создавал немало инструментов командной строки https://t.me/begtin/6557, но, каюсь, у всех из них есть явные недостатки в отсутствии документации.

Та часть жизни когда хочется больше программировать, а приходится проектировать продукты, писать документы, собеседовать людей и многое другое.

#data #tools #datatools
Forwarded from Ivan Begtin (Ivan Begtin)
Для тех кто любит исследовать данные, любопытный open source проект с непереводимым, но благозвучным названием huey который внутри использует DuckDB-WASM, а на вход разные дата файлы - parquet, csv, json и др. и позволяет их исследовать прямо в браузере. Можно отнести его к категории data exploration tool, их всё больше, все немного разные и безусловно иногда необходимые.

Из минусов:
- не поддерживает CSV файлы с кодировками отличными от utf8
- не всегда умеет распознавать структуру файлов

Из плюсов:
- всё локально в браузере

#opensource #datatools #duckdb
Forwarded from Ivan Begtin (Ivan Begtin)
Sim, ещё один любопытный продукт оркестратор потоков данных со встроенной работой с промптами. Доступен под свободной лицензией Apache 2.0, имеет встроенное ИИ и сделан по архитектуре local-first и может использоваться без облачных сервисов, а для ИИ можно связать с Ollama.

Выглядит интересно для задач с минимальной дата инженерией и как альтернатива n8n.

#opensource #dataengineering #ai #datatools
Forwarded from Ivan Begtin (Ivan Begtin)
В качестве регулярных напоминаний, всяческий полезный [и бесполезный] код утилит для командной строки которые я когда-то делал и иногда продолжаю развивать когда это необходимо для работы,
например, для Dateno. Лично я испытываю глубокую привязанность к работе в командной строке отсюда и все эти инструменты:

- undatum - многофункциональная утилита для обработки данных изначально в формате JSON lines, делалась как xsv для JSON/JSON lines, я её лично активно и везде применяю.
- docx2csv - утилита по извлечению таблиц из файлов MS Word (.docx), настолько простая что надо её с чем-то объединить
- mongo2md - инструмент автоматизации документирования коллекций в MongoDB было полезно когда MongoDB была в основе технологического стека разных проектов, сейчас скорее буду переводить в статус легаси, но полезно как пример автодокументирования.
- metawarc утилита по извлечению метаданных из файлов WARC, умеет собирать данные из pdf, doc, docx, pdf, png, jpg, xls, xlsx и других файлов документов и изображений. Полезна для разного рода OSINT задач и для автоматизированного анализа WARC файлов
- apibackuper утилита для сбора данных из API через декларативно заданные правила. Использую её повсеместно и всё время хочу переписать чтобы вместо cfg файлов использовать yaml/toml, заменить zip контейнеры на базу duckdb и в целом сделать удобнее. Но и так работает
- wparc архиватор API и данных из Wordpress и файлов заодно. Одна из утилит для архивации сайтов для RuArxive
- lazyscraper скрейпер сайтов для лентяев, когда хочется извлечь данные минимальными усилиями и без программирования. Я её чуть-чуть не доделал чтобы даже xpath не использовать, но в остальном вполне рабочий инструмент
- metacrafter мой любимый инструмент идентификации структуры таблиц в файлах и таблицах с данными. Надо объединить с undatum её конечно же
- apicrafter утилита по быстрому созданию API поверх коллекций в MongoDB. Когда-то использовалась в проектах где основной стек был на MongoDB, сейчас всё по другому я бы делал

#opensource #data #datatools
Forwarded from Ivan Begtin (Ivan Begtin)
Продолжая рассказывать про применение ИИ агентов для разработки, после экспериментов на не самом критичном коде я добрался до обновления реестра дата каталогов в Dateno и могу сказать что результаты пока что хорошие.

Вплоть до того что ИИ агент способен сформировать карточку дата каталога просто передав ему ссылку и задав промпт сгенерировать его описание. Это работает, во многом, потому что уже есть больше 10 тысяч созданных карточек и поскольку есть чёткие спецификации схем ПО дата каталогов, самих описаний дата каталогов и тд.

Кроме того хорошо отрабатывают задачи которые:
- находят ошибки в метаданных дата каталогов
- находят и исправляют дубликаты записей
- обогащают карточки каталогов тематиками и тэгами
- исправляют геоклассификацию каталогов
- и многое другое что предполагает массовое исправление и обогащение данных

Лично для меня и Dateno это очень хорошая новость это означает что реестр (dateno.io/registry) можно вести теперь значительно меньшими личными усилиями.

В ближайшее время я сделаю очередное обновление реестра уже по итогам большого числа итераций обновления метаданных и качество реестра существенно вырастет. А оно влияет и на индекс Dateno и на сам продукт реестра дата каталогов.

P.S. Тут я описываю внутренности происходящего в Dateno, которым я занимаюсь как основным проектом и продуктом. А новости проекта всегда можно читать в LinkedIn

#opendata #datacatalogs #ai #dev #datatools