Ivan Begtin
9.08K subscribers
2.52K photos
4 videos
114 files
5.29K links
I write about Open Data, Data Engineering, Government, Privacy, Digital Preservation and etc.

CTO&Founder of Dateno https://dateno.io

Telegram @ibegtin
Facebook - https://facebook.com/ibegtin
Email ivan@begtin.tech

Ads/promotion agent: @k0shk
Download Telegram
Полезные ссылки про данные, технологии и не только:
- A Deep Dive into DuckDB for Data Scientists о том как дата сайентистам использовать DuckDB. Если коротко, то всё довольно просто и понятно.
- ClickHouse welcomes LibreChat: Introducing the open-source Agentic Data Stack Clickhouse поглотил LibreChat, инструмент с открытым кодом для создания ИИ чатботов. Инструмент был хороший, надеюсь таким и останется.
- Hannes Mühleisen - Data Architecture Turned Upside Down отличное выступление Hannes Mühleisen про ключевые изменения в архитектуре данных последних лет. Полезно и по смыслу и по визуальному представлению хорошо
- agor: Next-gen agent orchestration for AI coding ИИ агент для управления ИИ кодированием, автор его создатель Superset и позиционирует этот проект как думай об асситентах для кодирования как о Figma. С открытым. кодом. Любопытно, но ИМХО автор плохо объясняет преимущества, как подхода, так и интерфейса.

#opensource #data #datatools #dataengineering #ai
2
Полезные ссылки про данные, технологии и не только:
- quackstore расширение для DuckDB для кеширования облачных дата файлов, позволяет сильно ускорить выполнение запросов к облачным файлам благодаря их частичному сохранению. Полезная штука, её можно бы и сразу внутрь DuckDB ибо логично
- Catalog of Patterns of Distributed Systems для тех разработчиков кто хотят не только кодировать, но и двигаться в сторону архитектуры ПО.
- The Data Engineering Agent is now in preview Гугл запустили ИИ агента для дата инженеров внутри BigQuery, конечно же на базе Gemini. Дайте мне такой же только с открытым кодом и без инфраструктуры Google и с поддержкой всех основных инструментов и СУБД!
- Diseño del V Plan de Gobierno Abierto 2025-2029 5-й план по открытости гос-ва опубликовали власти Испании. Сейчас проходят публичные консультации и далее он будет утвержден. Открытые данные там, конечно же, присутствуют

#opendata #opensource #rdbms #datatools #dataengineering #ai
🔥42
Часто встречающаяся задача когда необходимо быстро создать API над какими-то данными и предоставить его внутренним и/или внешним пользователям. API, как правило, нужно для одной или нескольких из перечисленных причин:
1. Данные обновляются слишком часто чтобы делать дампы или предоставлять к ним прямой доступ
2. Необходимо предоставить данные недоверенным пользователям и поэтому прямой доступ к данным невозможен
3. Данные предоставляются на каких либо условиях предусматривающих ограничения, например, за деньги и ограничением числа записей за раз
4. API необходимо для интеграции с каким-либо существующим ПО которое умеет в API, но плохо или совсем не умеет работать с дампами и выгрузками данных
5. Нужна возможность ссылаться постоянными ссылками на конкретные записи в машиночитаемом виде.
6. API нужно, например, для быстрого написания фронтэнда или иного интерфейса которое бы через это API работало

Ситуации когда нужно сделать API достаточно частые и я лично за эти годы перебрал немало инструментов с помощью которых это можно делать и написал несколько своих.

Эти инструменты можно поделить на условно 3 типа:
- преобразующие данные в API
- создающие API поверх SQL и других баз данных
- позволяющие загрузить данные и сразу получить API на выходе

Для превращения данных несколько инструментов существовало относительно давно, например, csv-to-api и csv2api, они работали с CSV файлами и в общем-то довольно просты

Для баз данных есть инструменты вроде:
- gosql относительно свежий, работает поверх условно любой SQL базы данных
- Express REST API Generator - для MongoDB, давно не обновлялся
- RestHEART аналогично для MongoDB, но вроде как живой
- DataBeam код 12-летней давности от GSA (орган пр-ва США) с поддержкой преимущественно тяжелых корпоративных баз данных

И, наконец, есть какое-то число low-code инструментов вроде Retool, Baserow, Directus и тд. которые позволяют загружать туда таблицы и генерируют интерфейс для их редактирования и API заодно.

В своё время я сделал два похожих инструмента. Первый, самый простой, apiready грузил данные в MongoDB (в основном это были csv или tsv) файлы, анализировал их и создавал API поверх них. Я этот инструмент довольно быстро забросил и писал его оочень давно.

Более продвинутый инструмент был apicrafter вместо загрузки данных, он строился поверх базы MongoDB и создавл интерфейсы с помощью Python Eve довольно удобного инструмента, но статического. А apicrafter анализировал данные и собирал схему для работы Python Eve.

Когда-то я думал сделать этот инструмент поумнее и автоматически генерировать не только точки к API, но и документацию, примеры и тд., но со временем я начал убеждаться что MongoDB - это, конечно, неплохая штука, но с несколькими системными изъянами главные из которых низкая производительность и серьёзная неэффективность в хранении данных. В общем-то DuckDB или Polars или другие датафреймовые инструменты дают качественно лучший опыт в работе с данными, но переписывать под них не так то просто и главное нужно применение.

Тем не менее если решать не общую задачу, а конкретную по организации доступа к данным со всеми ограничениями, то может оказаться что схема данных + FastAPI + ИИ агент помогут собрать REST API гораздо быстрее. А могут и не собрать😂

В любом случае полезно знать про альтернативы и инструменты.

#api #opensource #datatools
81❤‍🔥1
Подборка полезных ссылок про данные, технологии и не только. В этот раз ссылки на видео:
- Meta Just Changed Data Compression FOREVER (OpenZL Explained) про новый инструмент для сжатия файлов OpenZL. Его важная особенность - это понимание форматов сжимаемых файлов и выбор правильного способа сжатия.
- Trustworthy Data Visualization (Kieran Healy, Duke University) видео с конфренции Posit 2025 о том как создавать визуализации данным которым можно доверять, полезное для всех кто визуализирует данные или читает визуализируемое. Автор написал немало про визуализацию, три книги и много статей ну и выступает весьма неплохо
- Mooncake: Real-Time Apache Iceberg Without Compromise (Cheng Chen) про построение озера данных с Apache Iceberg и Mooncake для реального времени. Заодно и с историей OLTP и OLAP и переход к озерам данных
- Introduction to OpenRefine использование OpenRefine, инструмента для очистки и обогащения данных. Примеры.и применение из работы с цифровыми архивами и библиотеками и не все знают что библиотекари - это основная аудитория пользователей OpenRefine.
- PostgresAI я так понимаю что это пока малоизвестный стартап который обещает применение ИИ для оптимизации баз Postgres. Концептуальная идея на поверхности, я, если честно, думал что появится что-то более универсальное по мониторингу и оптимизации с поддержкой разных СУБД. Честно говоря видео оформлено дурацки.и документация на их сайте практичнее

#readings #ai #datatools #datatools
🔥3👍2
В рубрике интересных инструментов работы с данными, datanomy утилита для командной строки для просмотра метаданных и данных внутри Parquet файлов. Простая штука, работает на базе фреймворка Textual для создания утилит командной строки и позволяет смотреть разную информацию включая схему, метаданные, данные и статистику по выбранному parquet файлу.

Инструментов для наглядного отображения Parquet файлов не так много, хотя и прибавляется. Этот выглядит как полезный.

#opensource #datatools #parquet
👍7
AgenticSeek альтернатива Manus умеющая выполнять разные, в том числе довольно сложные задачи требующие запуска приложений и браузера иных агентских операций. Важное отличие - открытый код и локальный (приватный) запуск.

#opensource #ai #privacy #llm #tools #datatools
10🔥1
После экспериментов с простым кодом, я постепенно добрался до тех инструментов которые используются внутри Dateno для сбора данных. Один из них это утилита apibackuper которая помогает вытащить данные публикуемые через API и сохранять их в виде датасета. Фактически это инструмент скрейпинга API через декларативное описание параметров скрейпинга (да, я люблю декларативные описания). У инструмента был ряд недостатков которые я исправлял и думаю что исправил, вот перечень изменений:
- переход от декларативного описания скрейперов с INI (.cfg) файлов на YAML, читать легче, синтаксис приятнее
- валидация YAML описаний через JSON схему
- поддержка ограченичений и таймаутов на число запросов в минуту (Rate Limiting)
- поддержка аутентификации к API
- экспорт данных не только в JSONL, но и в Parquet
- автоопределение формата экспорта данных по расширению файла
- массовое обработка исключений и понятные сообщения об ошибках везде где возможно
- тесты для покрытия большей части кода
- подробная документация
- и всякое по мелочи

Я этот инструмент изначально разрабатывал для для архивации данных публикуемых через API, но сейчас он используется в части кода Dateno для выгрузки метаданных из каталогов данных. Может его даже пора уже перенести из ruarxive в dateno на Github'е, ещё не решил.

На скриншоте то как это выглядит на примере реестра лекарственных средств ЕСКЛП

Для сбора данных достаточно выполнить две команды
- apibackuper run
- apibackuper export current.parquet


Первая выгрузит все данные постранично, вторая сохранит выгруженные данные в parquet файл.

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

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

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

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

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

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

#opendata #datacatalogs #ai #dev #datatools
83🔥3🎉2
Ещё про официальную статистику, есть важный тренд о котором я писал пока что мало - это отделение данных от их представления. Официальная статистика чаще всего строится как цельные системы в которых сразу есть и возможность получения данных и их визуальное представление.

А за это время появились десятки стартапов и сервисов которые наглядность обеспечивают значительно лучше официальные статистические сервисы, например, я довольно давно слежу за сервисом PlotSet с их интерактивными графиками. Очень наглядные штуки они генерируют в очень короткие сроки. При этом я не призываю использровать именно их, есть и другие варианты, и многие из них создаются с помощью ИИ агентов.

Ключевое тут в отделении данных от представления. Отдельно данные и API и отдельно интерактивный сервис на них основанный. Для популяризации официальной статистики такое разделение может быть эффективнее любых монолитных централизованных платформ.

Интересно, кстати, есть ли альтернативы PlotSet с открытым кодом?

#dataviz #statistics #datatools
👏3🤝32
Для тех кто анализирует данные и тд. я масштабно обновил инструмент metacrafter https://github.com/apicrafter/metacrafter по идентификации семантических типов данных, включая персональные данные по многим странам и языка.

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

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

Собственно сами правила тоже обновились https://github.com/apicrafter/metacrafter-rules

Это не финальные изменения, а подготовка кода к интеграцию в Dateno.

#opensource #datatools #dataengineering
👍31🔥1
DeepScholar свежий ИИ агент помощник ученого-исследователя. В авторах команда из Стенфорда которые делали Lotus, фреймворк по работе с датасетами с помощью LLM (собственно читая про Lotus я про DeepScholar и узнал).

Это не единственный подобный инструмент и их становится все больше.

#ai #research #tools #datatools
115
Как обмениваться большими файлами не привлекая внимания санитаров без необходимости использовать облачные диски или аренды серверов? AltSendme инструмент по отправке данных через зашифрованное peer-to-peer соединение, представляет собой GUI приложение для Linux, Windows и Mac. Можно выбрать конкретный файл и после нажатия на "Start sharing" приложение создает длинны код/тикет который надо любым способом передать получателю и который после ввода этого кода в это же приложение у себя быстро и напрямую скачивает файл.

Лично у меня реакция на такое "почему это не я придумал?!" потому что инструмент простой и полезный.

Всё это с открытым кодом, использует p2p прокотолы iroh у которых также есть аналогичная утилита SendMe для командной строки, также с открытым кодом.

Этот инструмент не единственный, их становится больше, интересно когда появятся первые proxy/vpn инструменты такой же природы? А может они уже и есть.

#opensource #filetransfer #tools #datatools
🔥1952
Ещё один полезный инструмент для дата инженера и аналитика data-peek SQL клиент для десктопа под Windows, Mac и Linux с поддержкой PostgreSQL, MySQL и Microsoft SQL. Для личного пользования лицензия MIT и открытый код, для коммерческого отдельная лицензия и платное использование.

В целом ничего нового, кроме построителя SQL запросов через ИИ модели, поддерживает многие модели включая локальные через Ollama.

Как же много таких клиентов появилось в последнее время, кто бы сделал аналогичное для NoSQL: Elasticsearch, OpenSearch, MongoDB и тд.

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

Но понятно, на самом деле, почему таких инструментов нет, потому что ёмкость рынка инструментов для SQL превышает все остальные. Но тогда уж надо добавлять поддержку не Microsoft SQL, а Clickhouse, SQLite, DuckDB и тд.

#opensource #datatools #dataengineering #tools
👏5👍21🔥1🤝1
В продолжение инструментов работы с данными, я на днях обновил утилиту undatum которую создавал для разных манипуляций с данными в командной строке. Главная была особенность в том что она кроме CSV файлов поддерживает всяческие структурированные не плоские форматы данных вроде JSONL, BSON, Parquet и тд.

А также умеет автодокументировать датасеты.

Собственно свежее изменение в том что теперь автодокументирование расширилось поддержкой любых LLM'ом через Ollama, LM Studio, Perplexity, OpenAI и OpenRouter и в поддержке множества языков, можно получать описание буквально на любом языке поддерживаемом выбранной LLM.

Автодокументирование работает не быстро, но зависит только от скорости работы LLM, а не от размера набора данных. Оно полезно для многих задач, у меня лично много задач с тем чтобы приводить описания наборов данных в порядок и один из способов для этого в использовании вот этого инструмента

У меня в отложенных задачах есть интеграция его с утилитой metacrafter, но это уже как-то позже.

#opensource #datatools #ai
1🔥7
Google обновили Magika инструмент для идентификации типов файлов в зависимости от содержимого. Пишут что теперь он поддерживает более 200 форматов файлов (ранее было 100), полностью переписан на Rust и работает существенно быстрее. Можно обратить внимание что многие из упомянутых новыз форматов файлов это файлы с данными npz, pytorch, parquet, h5 и файлы кода zig, dart, kotlin и тд. Фактически Magika это альтернатива идентификации типа файла по расширению и альтернатива magic (утилита идентификации файлов в Unix-подобных операционных системах) и утилитам Siegfried и DROID используемых цифровыми архивистами.

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

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

Что характерно Magika занимается команда Security research в Google, а то есть можно предполагать что основное применение это, все же, цифровая форенсика.

Из интересного, разработчики пишут что чтобы обучить Magika они использовали 3-х террабайтный несжатый датасет.

В целом видно что над проектом работает группа ИИ инженеров, но не методистов и это сопутствующий продукт их работы потому что иначе они бы начали с реестра типов mime и расширений в который собрали бы метаданные из PRONOM и пары других крупных реестров форматов файлов.

#opensource #google #datatools #forensics
18🔥6
Я как то уже рассуждал здесь и вслух о том что ИТ профессии часто формируют устойчивые когнитивные искажения, например, когда все окружающее воспринимается как таблицы или как данные, лично я считаю что в этом нет ничего зазорного и сам иногда впадаю в состояние автоматического построения структур данных в голове и доведение их до 3NF.

Но то что кто-то может назвать когнитивным искажением, можно назвать и способом взгляда на те или иные явления. И вот один из таких способов восприятия реальности - это смотреть на все как на список. Список дел, список строк в файле, список записей в БД и так далее. А если по списку можно проходить и что-то делать с тем что в нем находится то он является перебираемым или на английском языке iterable.

Собственно под восприятия мира данных того что большая часть структур данных, форматов дата файлов и тд - это перебираемые списки я когда-то создал, а недавно обновил библиотеку iterabledata для Python.

Изначально она создавалась для того чтобы реализовать для JSON/JSON lines файлов логику перебора содержимого по принципу csv.DictReader, стандартной библиотеки в Python в которой перебираемые объекты возвращаются как словари. Заодно добавив к этому что чаще всего эти файлы с данными сжаты чем-то Gzip, LZMA, Zstandard и тд.

А в этот раз я обновил эту библиотеку для большей универсальности и поддержки десятков новых форматов данных DBF, JSON-LD, KML, GML, CSVW, Annotated CSV, MessagePack и еще много, полный список.

Включая некоторые экзотические форматы такие как WARC для веб-архивации, которые тоже можно рассматривать как объекты со списками для перебора.

А в качестве наглядного примера, преобразование дампа Википедии из сжатого XML в Parquet.

Особенность Iterable Data именно в универсальности инструмента, но не в скорости обработки данных. Для супербыстрой обработки, например, CSV файлов есть и другие инструменты, но CSV лишь один из десятков встречающихся форматов данных.

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

#opensource #dateno #datatools #dataengineering
👍104❤‍🔥11👌1🗿1
В качестве регулярных напоминаний, большое количество открытого кода который я лично создавал и поддерживаю:
- iterabledata библиотека для Python по работе с любыми файлами с записями с помощью прямого их перебора и возвращением каждой записи как словаря (dict). Фактически реализация интерфейсов csv.DictReader и csv.DictWriter для десятков форматов файлов таких как JSON, JSON lines, XML, Parquet, ORC и множества более специфических и отраслевых таких как PCAP, WARC и др.
- internacia-db референсная база данных с базовыми данными по странам и по страновым блокам. Распространяется в форматах JSONL, Parquet, DuckDB, YAML. Полезно для задач обогащения данных, поиска и фильтрации результатов в территориальной привязке, сравнении стран и территориальных блоков.
- undatum это инструмент командной строки для работы с файлами со сложной иерархией так как работают с CSV файлами. Он умеет считать статистику, преобразовывать файлы, анализировать их, разрезать на части и тд. Внутри используется библиотека iterabledata и большое число форматов файлов поддерживаются
- metacrafter библиотека для Python и инструмент командной строки для работы с семантическими типами данных, используется для выявления персональных идентификаторов и иных объектов (кодов организаций, кадастровых и почтовых кодов и так далее)

А также много другого открытого кода о котором я регулярно тут пишу.

#opensource #data #dataengineering #datatools
👍15
В DuckDB добавили поддержку формата Vortex, это такой специальный формат хранения данных который разработали в компании SpiralDB и передали в Linux Foundation в августе 2025 г.Это такой специально оптимизированный формат хранения данных который может быть компактнее и быстрее Parquet.

Собственно в статье есть примеры бенчмарков Parquet версии 1 и версии 2 и Vortex. Собственно запросы к Vortex через DuckDB быстрее примерно в 1.5 раза чем к Parquet версии 1 (самая распространенная версия).

Выглядит это оптимистично, к тому же постепенно Vortex начинают поддерживать и другие инструменты. Так что не только Parquet актуален как формат хранения данных.

#opensource #data #datatools #dataengineering
🔥9👍5😱1
SiriusDB специальный движок расширяющий инструменты работы с базами данных и ускоряющий выборки из баз данных используя GPU. Реализован в виде расширения для DuckDB и занимает первую позицию в оценке по Hot run в рейтинге ClickBench.

Иначе говоря - даёт мощное ускорение выполнению SQL запросов за счет GPU процессора.

Требует для работы процессор NVIDIA и установленный CUDA.

Выглядит любопытно и соответствует тренду на то что скоро все СУБД будут проектироваться по использование графических процессоров и иных процессоров для ускорения обработки данных и запросов.

#opensource #datatools
5👍4
Оказывается появилось множество инструментов работы с данными через WebAssembly, когда код загружается с сервера, но исполняется локально и работа со всеми данными идет локально. Причем почти все такие инструменты на базе DuckDB.

В списке уже:
- DataKit (открытый код и сервис)
- PondPilot (открытый код и сервис)
- OpenSheet (сервис и приложение для выгрузки локально)
- Tabula Studio (сервис)

А также большая подборка инструментов в списке Awesome DuckDB

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

#opensource #datatools
5🤔1