Ivan Begtin
9.29K subscribers
2.06K photos
3 videos
102 files
4.79K 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
Ещё одна любопытная СУБД для аналитики GreptimeDB [1] на высоких позициях в метриках JSONBench [2] и похоже что хорошо годится для сохранения логов и как JSON хранилище.
Существует в форме открытого кода, коммерческого продукта и облака. Открытый код под лицензией Apache 2.0

Не удалось найти какой движок внутри, похоже какой-то собственный.

Продукт относительно новый, менее 2-х лет, но с венчурным финансированием в 2022 и 2023 годах.

Даже странно что он не так уж популярен.

Ссылки:
[1] https://greptime.com
[2] https://jsonbench.com

#opensource #rdbms #data #datatools
В рубрике как это устроено у них publiccode.yml [1] [2] стандарт публикации открытого кода созданного за счёт государственного или местных бюджетов (public software). Изначально разработан итальянскими госразработчиками, потом преобразованный в международный стандарт.

Пока не очень популярен на Github'е, поиск находит всего 24 репозитория path:**/publiccode.yml path:/, но вполне себе находится в Google за пределами Github'а inurl:publiccode.yml -site:github.com на сайтах gitlab.com, opencode.de, code.europe.eu и различных госинсталляций Gitlab'а

Структура метаданных чем-то похожа на стандарты описания датасетов и цифровых документов.

Хорошая идея, но пока не популярная, тем не менее постепенно развивающаяся как минимум в Италии и Германии.

Ссылки:
[1] https://yml.publiccode.tools/
[2] https://github.com/publiccodeyml/publiccode.yml

#opensource #government #standards
Полезные ссылки про данные, технологии и не только:

AI & Science

- AI Scientist [1] фреймворки и примеры научных статей созданных полностью с помощью больших языковых моделей. Создано в японской AI лаборатории Sakana, у них же в блоге подробности [2]
- Accelerating scientific breakthroughs with an AI co-scientist [3] в блоге Google о мультиагентной системе на базе Gemini 2.0 для помощи исследователям в формировании гипотез и предложений исследователям. С акцентом на биомедицину, ожидаемо. Кстати, я до сих пор не видел ни одного исследования о потенциальном влиянии ИИ на разные научные дисциплины, а ведь потребность в таком анализе есть.
- ScienceOS [4] коммерческий сервис помощи исследователям с помощью ИИ. Как я понимаю пока там три основных сервиса: поговорить о науке в чате, поговорить вокруг PDF документа и управление ссылками.
- Awesome MCP Servers [5] большая коллекция серверов с Model Context Protocol в самых разных областях, в том числе с интеграцией с СУБД: Clickhouse, Elastic, BigQuery, Postgres и др.

Open Source
- Make Ubuntu packages 90% faster by rebuilding them [6] автор рассказывает как пересобирать пакеты для Linux ускоряя их приложения на примере утилиты jq. Почему это важно? jq используется во многих системах преобразования данных (ELT/ETL/скрейпинг) и сами советы дают некоторое понимание того как оптимизировать приложения с открытым кодом не меняя сам код
- Plane [7] аналог системы управления проектами Asana/Monday с открытым кодом. У открытой версии лицензия AGPL-3.0, так что использовать локально можно, а вот перепродавать свой сервис на их основе не получится.

Government & Data
- Government data is disappearing before our eyes [8] в целом ничего нового, но много ссылок на старое и происходящее сейчас с исчезновением открытых госданных в США.
- The State of Open Humanitarian Data 2025 [9] обзор состояния данных в сфере гуманитарной помощи от United Nations Office for the Coordination of Humanitarian Affairs (OCHA).

Ссылки:
[1] https://github.com/SakanaAI/AI-Scientist
[2] https://sakana.ai/ai-scientist-first-publication/
[3] https://research.google/blog/accelerating-scientific-breakthroughs-with-an-ai-co-scientist/
[4] https://www.scienceos.ai/
[5] https://github.com/punkpeye/awesome-mcp-servers
[6] https://gist.github.com/jwbee/7e8b27e298de8bbbf8abfa4c232db097
[7] https://github.com/makeplane/plane
[8] https://thehill.com/opinion/technology/5201889-government-data-is-disappearing-before-our-eyes/

#opendata #opensource #openaccess #ai #science #government #data
Marimo [1] альтернатива Jupyter Notebook по созданию аналитических и научных тетрадок. Среди многих альтернатив отличается наличием открытого кода под лицензией Apache 2.0. Даёт некоторое число фич которых нет у Jupyter, например, встраивание UI элементов, ячейки с SQL, визуализации и ряд других фич.

Конечно, объективно, сравнивать надо не только с Jupyter, но и с Deepnote, Hex, Google Collab, но те врядли будут доступны с исходным кодом.

Ссылки:
[1] https://marimo.io

#opensource #datascience #data #datatools
В США была расформирована команда 18F [1] [2] - это была уникальная по функциям ИТ команда, работавшая в Госдепартаменте в режиме инсорсинга, а то есть они не были сотрудниками господрядчиков и имели прямые многолетние контракты. Особенность 18F была в функциях пожарной команды. Когда у них были и постоянные задачи помощи отдельным агентствам и срочные задачи когда они спасали конкретные федеральные департаменты от ИТ провалов. Например, история с 3-х дневным проектом которая спасла $500 миллионный проект Департамента обороны [2].

Вообще только очень крупные компании или гос-ва могут себе позволить такие "пожарные команды", то что Элон Маск и DOGE инициировали их роспуск было поскольку их считали слишком либеральными из-за больших усилий по комфортности работы для меньшинств и инклюзивности в работе.

В любом случае теперь этой команды нет, остался их открытый код [3], который, возможно, стоило бы заархивировать.

Ссылки:
[1] https://donmoynihan.substack.com/p/skilled-technologists-are-being-forced
[2] https://substack.com/home/post/p-158259375
[3] https://github.com/18F

#opensource #usa #18F
Для тех кто работает с CSV файлами, неплохой и даже немного смешной текст A love letter to the CSV format [1] где автор рассуждает и расхваливает преимущества CSV формата для данных и аргументы его неплохи, но... лично мне недостатки не перевешивают. На его 9 пунктов я могу пару десятков пунктов написать о недостатках CSV, но плюсы тоже есть, чего уж тут скрывать. И, правильнее сказать что не один автор, а авторы, создатели утилиты xan, the CSV magician [2] для обработки CSV файлов.

Утилита эта является переписанной и переработой утилиты xsv [3] и позволяет вытворять самое разное с CSV файлами, включая визуализации, параллельную обработку, просмотр с командной строки и ещё многое другое.

Хороший инструмент, у него только один недостаток, он работает только с CSV файлами😂

Для тех кто любит командную строку и CSV формат - незаменимая штука.

Ссылки:
[1] https://github.com/medialab/xan/blob/master/docs/LOVE_LETTER.md
[2] https://github.com/medialab/xan
[3] https://github.com/BurntSushi/xsv

#opensource #data #datatools
Полезные ссылки про данные, технологии и не только:
- DuckDB Roadmap [1] команда DuckDB опубликовала дорожную карту. Много любопытного, обещают шифрование базы данных в будущем, поддержку парсинга XML
- FastOpenAPI [2] библиотека для Python для быстрого создания документации и схемы API по стандарту OpenAPI. Поддерживает Flask, Falcon, Starlette, Sanic и Tornado. Полезно для очень быстрого развертывания API с помощью Python.
- CSVConf [3] пройдёт в сентябре 2025 года в Болонье, Италия. Это конференция больше про сообщество чем про индустрию, там про применение данных в исследованиях и гражданском обществе. Ещё есть время подать заявку на выступление [4]
- Streamlining access to tabular datasets stored in Amazon S3 Tables with DuckDB [5] в блоге Amazon о том как настраивать хранилище файлов для прямого доступа к S3 таблицам через DuckDB.
- Unstructuted [6] open source и SaaS сервис для обработки данных через извлечение их из PDF, HTML, Word и других документов. Интересная бизнес модель, открытый код доступен, а через его же библиотеку и утилиту командной строки можно подключить аккаунт их облачного продукта и преобразовывать данные быстрее с его помощью. Такая бизнес модель аллергии не вызывает, похоже на хороший, годный продукт.

Ссылки:
[1] https://duckdb.org/docs/stable/dev/roadmap.html
[2] https://github.com/mr-fatalyst/fastopenapi
[3] https://csvconf.com/
[4] https://docs.google.com/forms/d/e/1FAIpQLSdoCI37INVkMMI3tcRLJ5dr2Lfrd86TqH_NjvhT02xoSUMYmw/viewform
[5] https://aws.amazon.com/ru/blogs/storage/streamlining-access-to-tabular-datasets-stored-in-amazon-s3-tables-with-duckdb/
[6] https://github.com/Unstructured-IO/unstructured

#opensource #data #datatools
Читаю работу OpenAlex: End-to-End Process for Topic Classification [1] от команды графа по научным работам OpenAlex о том как они классифицируют научные работы по каким темам и там у них есть иерархическая модель разметки работ по уровням Domains -> Fields -> Subfields -> Topics, причём тем (topics) довольно много и они привязаны все к статьям в Википедии. А вообще они построили свою классификацию через идентификацию макрокластеров [3] сообществ через цитирование. Большая и интересная тема, с понятной сложностью и результатами.

Я на всё это смотрю с точки зрения улучшения классификации датасетов в Dateno [4]. Сейчас в Dateno используется два классификатора. Европейский Data Theme [5] используемый в их портале data.europe.eu, но у него всего 13 тем очень верхнеуровневых и тематические категории (topic category) из ISO 19115 [6] которых 19 штук и тоже без иерархии. Тематические категории используются в каталогах данных на базе Geonetwork и в программе INSPIRE Евросоюза и они применимы к геоданным, в первую очередь.

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

Сложностей несколько:
- в отличие от научных работ здесь нет цитирования или аналогичных связей, значительно сложнее строить смысловые кластеры. Их можно строить на названиях, оригинальных тематиках в первоисточнике, тематиках самого первоисточника, но не на цитировании и не на связях.
- язык науки в мире почти весь английский, а там где не английский то французский, но в целом все исходят из того что он английский. А среди датасетов много данных на самых разных языках. Тут как раз проще со статистикой которая почти всегда имеет английскую версию и сложнее с остальным.

Тем не менее своя классификация необходима и её идеальные параметры были бы когда одна тема охватывает не более 10 тысяч наборов данных или временных рядов. То есть если мы имеем базу в 22 миллиона набора датасетов, то тематик должно быть не менее 2.2 тысяч, а ещё лучше не менее 5 тысяч. Тогда пользователь получает возможность быстро сузить поиск до нужной ему темы. Тогда у Dateno появляется ещё одна важная модель его применения, это подписка на появление нужных данных в одной или нескольких узких областях избегая ложных срабатываний при ключевых словах.

Без ИИ тут, кстати, не обойтись и ребята из OpenAlex использовали модель GPT 3.5 Turbo [7] для кластеризации научных работ и подбора названий выявленным кластерам.

Ссылки:
[1] https://docs.google.com/document/d/1bDopkhuGieQ4F8gGNj7sEc8WSE8mvLZS/edit?tab=t.0
[2] https://docs.google.com/spreadsheets/d/1v-MAq64x4YjhO7RWcB-yrKV5D_2vOOsxl4u6GBKEXY8/edit?gid=983250122#gid=983250122
[3] https://zenodo.org/records/10560276
[4] https://dateno.io
[5] https://op.europa.eu/en/web/eu-vocabularies/concept-scheme/-/resource?uri=http://publications.europa.eu/resource/authority/data-theme
[6] https://apps.usgs.gov/thesaurus/term-simple.php?thcode=15&code=000
[7] https://www.leidenmadtrics.nl/articles/an-open-approach-for-classifying-research-publications

#opendata #opensource #dateno #thoughts
Полезные ссылки про данные, технологии и не только:
- Towards Inserting One Billion Rows in SQLite Under A Minute [1] заметка 2021 года о том как высокопроизводительно загружать миллиарды строк а базы SQLite. Актуально для всех кто делает высокопроизводительные системы не имея больших бюджетов.
- GROBID [2] переводится как GeneRation Of BIbliographic Data, инструментарий с открытым кодом по извлечению структурированного содержания из PDF файлов, особенно применяется к научным статьям. Активно используется для извлечения библиографических данных.
- Depsy [3] онлайн база цитирования пакетов с открытым кодом в научных статьях. От той же команды что делает OpenAlex. Этот проект более не развивается уже лет 7, а жаль, но исходный код доступен как и API.
- Cadent Open Data [4] раздел с открытыми данных в Cadent, британской газовой компании. Открытые данные прописаны в стратегии цифровизации и отдельный портал с данными [5] которые раскрываются по регуляторным требованиям и инициативами по data sharing
- Schneider Electric Datasets [6] коллекция наборов данных на портале для разработчиков Schneider Electric. В основном данные по энергопотреблению. Бесплатные, но требуют регистрации

Ссылки:
[1] https://avi.im/blag/2021/fast-sqlite-inserts/
[2] https://grobid.readthedocs.io/en/latest/
[3] http://depsy.org
[4] https://cadentgas.com/reports/open-data
[5] https://cadentgas.opendatasoft.com/pages/welcome/
[6] https://exchange.se.com/develop/developer-resources?source=developerResources&developerResources=Datasets

#opendata #opensource #readings
В качестве регулярных напоминаний, за долгое время я написал немало инструментов с открытым кодом для работы с данными. За что члены команды меня регулярно ругают потому что основная моя работа искать клиентов и профессионалов в команду, но слишком я люблю работать руками, поэтому разного рода инструментов создал много и часть поддерживаю.

- newsworker - библиотека для Python по автоматическому извлечению новостей из веб страниц. Анализирует структуру веб страницы, кластеризует блоки, идентифицирует элементы блоков, парсит даты и создаёт RSS ленту на основе. Написал это много лет назад и до сих пор использую, но уже не обновляю

- qddate - библиотека для Python для парсинга дат в условно любом формате, которые могут быть написаны на 8 языках, в разных стилях и тд. Особенность в том что работает она очень быстро, не использует регулярные выражения, а вместо этого внутри используется библиотека pyparsing. Плюс куча оптимизаций по тому как парсить даты максимально быстро. До сих пор использую, но код практически не обновлялся

- undatum - утилита командной строки для обработки данных в форматах CSV, JSON, NDJSON, Parquet, BSON и др. Изначально была цель сделать аналог xsv для NDJSON. В целом получилось и я ей пользуюсь до сих пор, но с недавних пор чаще использую DuckDB из-за значительно большей производительности. Возможно утилиту переделаю однажды.

- apibackuper - утилита командной строки для архивации API. Странно звучит, но да, утилита через API выгружает все данные последовательным перебором и сохраняет их в виде датасета JSON Lines/NDJSON. Активно используется внутри Dateno для сбора метаданных и в Ruarxive для архивации

- metacrafter - утилита и библиотека для идентификации семантических типов данных. Полезна для выявления смысловых полей в датасетах: адресов, названий компаний, кодов типа ИНН, ОГРН, КПП и тд., а также для идентификации персональных данных. Делал я её относительно недавно, умеет она работать и с файлами и с базами данных. Тоже используется в Dateno

- docx2csv - утилита извлечения таблиц из файлов docx. Очень простая и были планы перенести этот код в универсальный дата конвертер.

- pyiterable - библиотека для Python для потокового чтения дата файлов таких как BSON, JSON, NDJSON, Parquet, ORC, XLS, XLSX и XML в том числе сжатых Gzip, Bzip2, ZStandard и другими компрессорами. Используется внутри metacrafter и undatum.

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

#opensource #data #datatools
Билл Гейтс опубликовал оригинальный код Microsoft 50 летней давности, для Altair BASIC [1].

Подумать только, я вот BASIC во всех формах застал очень мало. Только QBasic в ранних версиях MS DOS и совсем немного Visual Basic в Windows. А так мой самый ранний код - это Паскаль и Ассемблер. И, признаться, в 15-16 лет я писал его чище и аккуратнее, но с куда меньшим пониманием ответов на вопрос "зачем".

Но код на BASIC это, в любом случае, ностальгия.

Ссылки:
[1] https://www.gatesnotes.com/home/home-page-topic/reader/microsoft-original-source-code

#opensource #microsoft #billgates #digitalpreservation
Я вот всё расхваливаю DuckDB как очень быстрый движок для обработки данных, а он не один такой. Например, ещё есть FireDucks который делает команда из японского NEC и который они активно оптимизируют конкурируя с DuckDB и Polars и в который добавляют поддержку ускорения через GPU.

Плюс разработчики много полезного пишут в своём блоге о том как они работают над оптимизацией обработки запросов [1]

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


P.S. Картинка отсюда [2].

Ссылки:
[1] https://fireducks-dev.github.io/posts/
[2] https://www.linkedin.com/posts/avi-chawla_pandas-is-getting-outdated-and-an-alternative-activity-7312407582340485120-fH_K?utm_source=share&utm_medium=member_desktop&rcm=ACoAAAA_-HABh4I2pH__YZElkrySwr_MWhdKIVs

#data #datatools #opensource
Сугубо техническое. К вопросу про автодокументирование и применение LLM. Я в качестве теста решил обновить инструмент undatum [1] переделав команду analyze для анализа структуры разных видов дата файлов: csv, jsonl, parquet и xml и добавив поддержку не таких машиночитаемых xls, xlsx и даже таблиц из docx файлов.

Но главное было автоматизировать документирование датасетов. Утилита теперь принимает опцию —autodoc при которой список колонок таблиц передаётся в AI Perplexity и полученные описания используются для генерации описания к полям. Соответственно, можно задавать разные языки и получать детальное описание колонки на нужном языке.

Это, конечно, не всё что нужно для автодокументирования датасетов, но некая существенная часть.

И да, в некоем преобразованном виде оно используется в Dateno [2] и есть ещё много других областей применения.

Пока код в основной ветке undatum и для работы надо также обновить библиотеку pyiterable [3] и пока нет отдельного релиза в виде пакета для Python, но потестировать уже можно.

Для работы надо ввести ключ для API Perplexity в переменную окружения PERPLEXITY_API_KEY и вызвать команду
undatum analyze —autodoc —language <язык> <название дата файла>

Дата файл может быть сжатым, например, somedata.csv.gz или somedata.jsonl.zst

Ссылки:
[1] https://github.com/datacoon/undatum
[2] https://dateno.io
[3] https://github.com/apicrafter/pyiterable

#opensource #datatools #data