Ivan Begtin
9.35K subscribers
2.12K photos
3 videos
103 files
4.84K links
I write about Open Data, Data Engineering, Government, Privacy, Digital Preservation and etc.

Founder of Dateno https://dateno.io

Telegram @ibegtin
Facebook - https://facebook.com/ibegtin
Email [email protected]

Ads/promotion agent: @k0shk
Download Telegram
Для тех кто работает с 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
В ответ на список любви к CSV формату, я напишу свои 5 пунктов в пользу формата данных Parquet:

1. Parquet гораздо компактнее CSV и других форматов которые в него преобразуют, даже если они сжаты. Колоночное сжатие в Parquet работает гораздо эффективнее и это особенно ярко ощущается на денормализованных данных, например, статпоказателях в формате плоских файлов в режиме "1 строка=1 значение".
2. Parquet позволяет работать с данными как с базами данных позволяя на недорогих устройствах работать с данными большого объёма и быстро выполнять аналитические запросы.
3. Parquet имеет строгую схему описания и хорошую типизацию полей, а большая часть инструментов по работе с ним умеют определять типы данных динамически при создании Parquet файлов.
4. Parquet может иметь вложенные объекты в отличие от CSV файлов в Parquet есть возможность хранить структурированные вложенные объекты и Parquet файлы могут создаваться на базе JSON / NDJSON / JSON lines файлов
5. Все современные аналитические инструменты работы с данными умеют работать с этим форматом это Pandas, Polars, Clickhouse, DuckDB и многие другие. Новые инструменты появляются ежегодно и работают всё более производительно.

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

- 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
Совсем не первоапрельская новость, закрывается проект openSNP [1] о чём пишет его создатель у себя в блоге [2]. Это была и пока ещё есть открытая база расшифрованных геномов позволявшая искать родственников, делиться результатами расшифровки генома с другими, а исследователям ещё и находить связи между генотипом и фенотипом.

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

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

Я к этим мыслям добавлю лишь то что о кризисе движений за открытость слышу уже давно и оно звучит именно в контекстах отступления от демократии и том что "ИИ пожирает всё". Это демотивирует многих

А судьба проекта openSNP, безусловно, печалит.

Ссылки:
[1] https://opensnp.org
[2] https://tzovar.as/sunsetting-opensnp/

#opendata #openaccess #genetics #data
Какое-то время я рассуждал о том как было бы хорошо если бы был инструмент для очистки и подготовки данных вроде OpenRefine, но более производительным движком внутри. Потому что OpenRefine хорошая штука, но с собственным движком на Java по работе с данными в памяти и всеми вытекающими из этого ограничениями на размеры датасетов. По личному опыту датасет в несколько гигабайт он уже тянет с трудом, на "стандартном настольном железе".

И вот вижу первый такой продукт, Coco Alemana [1] настольное приложение для очистки данных с DuckDB в качестве внутреннего движка. Обещают что работает с файлами до 50ГБ и нативную поддержку Parquet. Чем-то похоже на недавно появившийся DuckDB UI, но с акцентами на чистке и обработке данных.

Из дополнительных плюсов - быстрый поиск по данным и UI к базам данных.

Из минусов:
- работает только на Mac OS X, так что проверить лично смогут пока только маководы
- открытого кода нет, скорее это будет коммерческий продукт в будущем

Ссылки:
[1] https://www.cocoalemana.com

#duckdb #data #datatools #dataquality
В рубрике как это устроено у них портал открытых данных Франции data.gouv.fr [1]. Всего на портале опубликовано 61 947 набора данных, на 2 апреля 2025 г, а также 338 точек подключения к API к которым предоставлена документация, есть возможность связаться с разработчиками и тд.

Особенность их портала в большом сообществе из 131.4 тысячи зарегистрированных пользователей и 15.1 тысяче дискуссий вокруг опубликованных датасетов и API.

Параллельно с этим они создают портал открытых научных данных entrepot.recherche.data.gouv.fr [2] на базе продукта Dataverse . Там сейчас чуть менее 7 тысяч наборов данных и список постоянно растёт.

Многие команды и компании публикуют свои проекты сделанные на открытых данных Франции в специальном разделе на сайте [3].

Во Франции порталом занимается их национальная команда Etalab, почти все что они делают является открытым кодом и портал открытых данных создан на непривычном ПО - uData, используемом ещё в паре-тройке стран.

Ссылки:
[1] https://www.data.gouv.fr
[2] https://entrepot.recherche.data.gouv.fr
[3] https://www.data.gouv.fr/fr/reuses/

#opendata #datasets #france #data
Я вот всё расхваливаю 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
Интересная свежая статья в Journal of Democracy под названием Delivering Democracy. Why Results matter? [1], на русском языке она прозвучала была с двояким смыслом "Доставляя демократию. Почему результаты имеют значение?". Доставляя как: гуманитарными или военными самолётами? Но здесь речь о классическом понимании provide (предоставлять). Среди авторов статьи Френсис Фукуяма что ещё одна причина её почитать.

Если коротко, то основная идея в том что Демократия не может быть основана только на идеалах. Граждане хотят результатов: работы, безопасности, услуг. Мысль не то чтобы новая, но предельно коротко и точно изложенная именно в этой статье и то что ситуации когда в демократических странах идут долгие экономические кризисы то возникают и кризисы восприятия демократии и наоборот и есть бесспорные экономические успехи в авторитарных странах.

Я, также, ранее не встречал термина performance legitimacy, он есть в предыдущей статье Бена Кросса, Performance Legitimacy for Realists [2] одного из соавторов. Это термин применяемый к восточно-азиатским странам и его можно описать так

Легитимность на основе эффективности (или performance legitimacy) — это концепция, согласно которой власть обосновывает своё право на управление через успешное выполнение задач, направленных на улучшение жизни граждан, а не через традиционные или демократические источники легитимности. Этот подход основывается на достижении положительных материальных результатов, таких как экономический рост, снижение уровня бедности и повышение качества жизни населения.

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

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

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

Ссылки:
[1] https://muse.jhu.edu/pub/1/article/954557
[2] https://muse.jhu.edu/pub/5/article/918473

#opengov #data tech #thoughts #democracy #digitalservices